This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, master has been updated via 3a451d8433c92444bd38b78e51bf9a4c6f07708b (commit) via f2cd1800473a75c5e73bb1feff6237056ca57ef8 (commit) via 8435c437d3f8990d47219e4804a96457cf1417b5 (commit) via 670d5144851ea2bddb5bb23d929524a112164521 (commit) via df64bfd3966104ccc75f8dcb02ed08fd37457387 (commit) via 3d9d58848197475b46980cb3207979d4207d84a0 (commit) via a0ef4c5bb6f17494172148fe0a5b09e6278c0e92 (commit) via 0aa93f5b11a57236f523714373e1abca25caaa65 (commit) via 6f704a3c85dc453e1a8cebafbca5446e59aab6d6 (commit) via 1d76272bd30ec4933a268be3a6a41c72a43a43f4 (commit) via 707ca1fb846cbbdca61c7107f4f1e44b0b089c92 (commit) via 18b39b38aed96e348b3996f7e69aed88c7c95d4f (commit) via d1f2931c85b8c117ffefed0c14d04dda09af105d (commit) via 778ac3ed83223d9bd234e5516456407ee1404157 (commit) via be82627d34d1255c504569c170da11ba5470f114 (commit) via 45a4448a9628b33c81ce86a84305d52c5d3c4bf0 (commit) via b34dac1ff503f405f08144b89f6bc290a624f762 (commit) via c28be8fda09b6a6587408e28a024b3c04db62272 (commit) via 09c8a88a54ed9f399f98e86748e7bb3e0daa105f (commit) via f8622265fa476c1d53874184dc7e1abaec878d64 (commit) via f1a58c3322701040090efd1b7949f448c3128d5a (commit) via 7a26d28aa4f4c3602970cccdf0697d555b39ef3c (commit) via ea31a62aadf428e37a686568e5b95caf0fbc07b6 (commit) via 20d78d9e76d15992ebd9d4f0db783b7a83fb8f23 (commit) via d50fe89686deaa8527c81a7292e5eba0efa32a82 (commit) via d0abcb92d28020f2d786cba29fef69fc2fecccb7 (commit) via 3e30714aa7ce83cc6717baae415f8618b0000b73 (commit) via ce22214b4c1d108b0c219a5751fbd07ddcf0d08d (commit) via 745d9c0717cc9bbf92e9d2a9fa48da7cc55ca3ba (commit) via 38288aeed180e2e9de3ec66d8ec5424c17b7cfb4 (commit) via a747603dc5a2813608cb44f05bac2a06011a9a8c (commit) via 4a29f8541b6233a119ebb357b04c2e3c4dab7156 (commit) via 7b0a7b562dd0689ed001220b41442b61627b118d (commit) via 92e79452599259c0398ad6b16a3ff3cdfd75ca57 (commit) via ab133d83d5f0df9c56d4cf962c6edb5726857419 (commit) via 66304ea8bb378c918280df2ddb3349db25aad38f (commit) via 8807eeaf8d0b952bd38b2c7df634c3fdecf2e7b1 (commit) via 83f1971428fa456462ee24ad6f0baab12f1ae8d7 (commit) via 4d4760225bb7f2de1df9b38bfa56599c3f935499 (commit) via 0d732df29702a9f0fcdbbb4c4e0be1a39b064f2a (commit) via be6cb8eab784474cfb0dcf737aac3ba2d3e59775 (commit) via eb915ddd55640ae2856458f86f9013fc8a95fe4c (commit) via 92d75b2ed53e72427beab0dbda8f06577d42e4c5 (commit) via f1245444a8cfd2be1ebf1d348fe74d8261bc5cfd (commit) via b21d4f81e0f7dddf50f06aacd0ef3daf1dd1cc24 (commit) via 4537ec169c8e996a46e77909a698277413f95787 (commit) via c75cc1f68ead70bff8617fecfd46a6405b38a9ca (commit) via a45d2204afcdf47af93884b48cdf6705d6f39d15 (commit) via d54cea882a8b43a80e31587b00ade2203f769d54 (commit) via a19f33961c979b8c0b342971950337f7ed486c0d (commit) via 5114bcb3cdee18bdb30b71e9e0df2b559b561273 (commit) via c25b6ae66a52e2cfe6320ea63916b738cfb1f232 (commit) via dcfc6334b91b8b6d24df73bb30e35e2fd865ee08 (commit) via e201b6d5376939eaeec36417f09d9fe6b6dcfe5d (commit) via 5292c03dde57902d170a3a7bbd3a74e6ae1acdf9 (commit) via 8b6f424c03c527ecfbd7445d5e7553e767d65ca9 (commit) via 7f39519efeeb2b87fa06d31b2e52010183a4ad09 (commit) via 9c7d04fe5ef7e75ccde5e0446ed1d1c1ca02c537 (commit) via 963f4bffca99d8b19a3149ae280a4308c0fc9e70 (commit) via 91b86890a6dd6beb9df775f59b29dc6f61c08501 (commit) via 0976ce2f192b75a332813cb83239f523ef90954a (commit) via dc0c6fbbd8919f8c8e083c88db928a2f5b57232e (commit) via 3e5f2ee99d7431be19c09971b38e1ee3ee040bce (commit) via 60cc2e54a74de59f7bbecac7965d7aa58a3fda2e (commit) via b2531cb080d5e44df059c7ba2431ce6d702249e7 (commit) via 558a00527937969b0090c01d10cc60a812254922 (commit) via e7b7cbae360dc4406e14faddd4cd1d1dac0495b2 (commit) via 1cab447f8fbf0aa35af9d65a1c44885a5dd12eec (commit) via 940da289efa4379002e129f40ab78bc0ded465fd (commit) via c65c1facb42a0519f810534548be7ee9d989cd51 (commit) via 5411bbb296a32ac22b13007da955e38dfe5349b2 (commit) via d5a7ff9500d4a206bc9780c2deab54e96c7c3f79 (commit) via 47713b5e2627438325d2644304d4249a309923a9 (commit) via f0ccae18190edf6c4b1041c5aff91a01b4ddffb3 (commit) via f3b0222e3f85921f3792b03a2428f611c50b339c (commit) via b25c4ede55e33e6add1690940ddade495d71b8d1 (commit) via 5fd4c3e5ddf495f1c4a065af2ac6f127938a54be (commit) via c490c6e802d8b42b521bb091c2538e3aeebaed58 (commit) via b643120c014c7ece5d13587376bfc9f09b706b11 (commit) via 1d109fd2a63305c5ec3653bbb7888a2142aa744b (commit) via d14229c0da139a3dca3bff3b95a6dafdc7a52f93 (commit) via 7234a472adac6d5e8111c529570fe4cfe873fac0 (commit) via c36da4cb06f15d1d6bb39ad7961b7efd2e15a18b (commit) via eed187d68ba226aa60721b5edf1ce50fce8459e1 (commit) via 8cb035bac87b663e871960b90a11b811923d51f9 (commit) via 4fa6aa529ddbad85b6c9d00b4fe28e8454335b76 (commit) via f224c3f26535c5b8c7530f32af933697c9678fb2 (commit) via a10733a5d8580b6ab8cff46235daab6547723781 (commit) via ac2f710771ba327b5b8fd1b8f3829b977d08aa24 (commit) via f7e3d2080b044e7ecd70c20c1e9a96ea11cc529c (commit) via 28481f108351456c46ea7aec7e46b9cc05068553 (commit) via 6201ce613a2d2bceaf9bce3305de292f658e2fe0 (commit) via e4061f1f14ebcea7928fdef06e7940446f268b79 (commit) via 31d619a6ef001219e7268e63fd7cdd6dc7c9271b (commit) via 468d3963108f95a29adf121ab8530bf5927a9e15 (commit) via a161b1f112da5659de501edcbb77096723792edd (commit) via 11b5b85cb8c4e937137e84efceefbef3373a47f8 (commit) via 8cd1b3b02123782f49373d2ab6b874469dac89f0 (commit) via 5c313dec7d860d47b51c69923a3d91c8f2334df5 (commit) via 65c6ed3f278cc8e42dc79309bed1c96e8c171d33 (commit) via 568854621c0c8182da236227106c96d43478fea4 (commit) via 00ede2200eae242c6f91f876a05d6dca57fbfba3 (commit) via d77b8843c75abb260be7f6952671445151dd3d76 (commit) via 52b597b40cdaab9f4adaeb9d5a938a4c670f76d1 (commit) via 07c9b89f861e4fc08b8d8bea2207064a235641aa (commit) via c3d9a16d5768bb4dbcdd731674c4bc48efab48e3 (commit) via d81d4fa89c2e2e83100d1553191b3a22416957e7 (commit) via fa3f587984feb5e9ff4e6d5ade55a51b40214b63 (commit) via 6da6905a95d224f80fe65a19ae00ab911381e04a (commit) via e54330e01e20314f796543d2d2e5eb34ee43caf3 (commit) via d1cc6eaac8d8d27f69c13c43557166a679fa3d44 (commit) via acddae55daa17a8f08953e6a163194c6e942391e (commit) via 91b20d84de68c80e230838e81a470c7bf5d3457b (commit) via 68e2d326edb9c8b514a47f6744bfda4484cb0004 (commit) via a7ade35692705f4bbfbf4e1b5ea4d5b4de97840c (commit) via 360378014d0ba62c1ced4b204080f05c2a3de575 (commit) via a57072e3f1060dbf09ae4a842f5500551a09ef7c (commit) via 2efd0cd68aa23e977a57b9cdb4177c3dc2d30edf (commit) via fc992179a15a53c920d8f18e276624c0ace6a6ec (commit) via d65e0bd38d3bf816c854d57d520bea9836959747 (commit) via 13e294d9c267f2ed58496bd1c33d368b00499ea2 (commit) via c51f6767e956061da2cd3db417328e03ae92a4ce (commit) via 404c8e462b1b4ba05f679e9759a58afd3090f0e0 (commit) via bec27ff2636c01c0085deddb4c848fc066533a41 (commit) via ca87aefda5375729081397aee80d0b3ab8a1aeb1 (commit) via 0413e130db2965981a620bfe54aacd708b2e574c (commit) via d7a3254acedb43995d6a6e769562576cc7ff8639 (commit) via 2e732994a12431c6f7aa14876f358da90cfc9f32 (commit) via 7c5a318f2d8674cb5fd1aa7cae220c9ffd29e8e3 (commit) via bb2430de1ab72c553fbdb374856aa2acab72040c (commit) via 1c5473366c149f5154aa27cd9fbe27085605a455 (commit) via dd179479b840c89917b9de349a1fcf805b577c4b (commit) via 505ceb2ab34ea0febcdba5f15d09664ac0160b52 (commit) via ed62983f6240c89ad9f3f85cc7d8b136ea51ba8f (commit) via 3b772d874a34a87798b1ae02ac0eeed3e3d5f60a (commit) via bb71011054a715f8781a6b1945af1fe16df3c0db (commit) via ef3bc862489a5dfddd0d242a7eb7a0e545996e04 (commit) via 6bd5e3144c62df819fbb9d790d0348a64065d179 (commit) via 95c26b24859ac1537c5df79cbfaf3ae732be301d (commit) via 01e5e86e1a9f6c158d3f928da0c1340ea877d914 (commit) via 44967a84023ffa884ab4c4b484bdc6982ded66d3 (commit) via 0add8f90ae1d5a15000147df2a86d060a2a89917 (commit) via 83601a06bc8036b21e9b6c6911c8096e35bd443d (commit) via 0eb9a71a7b5dfce4425b9ca6e1e9dfb47dac6dac (commit) via e5713a7e2109cd38a64a2d752495a735a8ac4453 (commit) via 330e81cd9d08d47699032b5eb972c72a0c150ab5 (commit) via 0338cdb0f82a5385924bdee7983556f1b8773f42 (commit) via a30c7aa3be69a31b8dedda5a706b063e918d870f (commit) via 5cba361800e14e4d8d698686a2d634126018f646 (commit) via 43f4c938c18775afd3ed03295c1dbdbca588d761 (commit) via ceffe9bdf29d9e86fb7b8fe6ab65505e6e76eb24 (commit) via 5e374e547d153a8998110275ec2f5720e559d5b6 (commit) via 1f7e3a1c2fd0b2d1165a39e74aef542b1581091f (commit) via f579ed457c077db1707993fd90f7bc77a3757f58 (commit) via 13008f32712f15fa231b22531585d0d7ef6df740 (commit) via 9e034218d008fa9ad2b9e4b3bb87717e19066317 (commit) via e1f3cb88a8adc5ee004fb54982c06193374e7102 (commit) via b9d4e380c7099f67f32b030ac78bc02acd58ca7f (commit) via 8df8a8690bb774bc574c47c74a5964be9858be73 (commit) via 10885fa912d583ddf3e545174747b70254e35c92 (commit) via 5691eba9443f8851b95b95294ed1210e220eff51 (commit) via 5254aa51955ec88b4994486caa98e24b8541c0ac (commit) via b9c73f663286c61cf184a1fca2cd7ccff78b4e42 (commit) via 6a8ea85102d5154a3fb6efbe8a344cbf3d5c9c19 (commit) via 06f3145ff4003c4e8dd021804b15aa5a8afc495c (commit) via 0333dc1dbe6dadae747ffbde7b88c91c051fcbd7 (commit) via e209a19a16d7a174056c0d794f342cffa21228cf (commit) via bb91f5a5440c761640b4b413a3ba8f476e05a4d6 (commit) via ee9987e89e10e8f1bd13b77ce759e4ade8070235 (commit) via e1c97b8a41046385395ed68ac67f9cea100d4e16 (commit) via fa5b71bf288639f8ea8476cbe21631230e87fe37 (commit) via 01f547269da80deb75c121e6c1ec28230311d7b6 (commit) via b30b170975ccbf6515a9495a2da8dc29dbc27dde (commit) via 94ca39b479b1c122294bce9c30d3fbac58ac1738 (commit) via 033ba0349c946f9ca705029a5368ae5db2db461e (commit) via 275f872d706bed14bf62c306e09da1061b73cccb (commit) via a30cf68cd22752af40efe7c294fa0bf057c46f3c (commit) via c9fa828c774ecef372ebc5eac821a93aff7d1965 (commit) via b33c0aee3eb914489806492ab8ee9345c5af261f (commit) via 7e616a3297626457639b9708b4e31efe41c4fff8 (commit) via 2fe90b7cc0ce34124dba7f93ced22a08c7456a2d (commit) via 7064ed3fc0f5c7f93ad79133bd61d550433b7d2b (commit) via 83cc9084a9c86d64cc092ae766cf0884b44f6e24 (commit) via 44d148b9a8017c83860f2eb4a385619313e3a7f9 (commit) via 3f350057661c1c2982cb88cbadef3b22870b52b4 (commit) via 746c2e6a2282ced1123fe4328e14016ff9b78443 (commit) via 7a6448326f80cfa1349ded50eae96fd92df1565a (commit) via 68afc6675df46ecd5ba7ccc9ce342371ba59e816 (commit) via 7e5cbd938bb3d62182689aac0a2ac27c609c4515 (commit) via cc24c14bfe52558aceb4489c8ef7a94fbe79edb0 (commit) via aaddc86cbfea0da30b88a03c326c097562f38b9d (commit) via 94385278fb924524a1781a9ddcc8f42e949ec2c0 (commit) via 6fead212add7e93df5a5f9affab71679f438888f (commit) via 10c30c2066a4c0fd74f7ac6da33005927faec57f (commit) via 0f8a5b08565b456681562f5c8dcd4df7477b1d47 (commit) via 7343fdaf6e7e2619c3be2008ddb261462fb92ea9 (commit) via 10af520f16fb1019a2bcee3c2101bfaa22f0ccb8 (commit) via ef2534611b60a65513bfc61537d711457a497657 (commit) via 919eb671a30a4b3d3ca6ca0886f05bf3ab1a43f0 (commit) via b21b0df6a666936b48592aa825fe1950d32ff21a (commit) via ee11bc4e123fcf5ea1c808e6be5b9489e4ba2474 (commit) via 444b9419e23a4dbf8891b3ba9773dc43995a47bc (commit) via 11a2fa057198466db44225308633c2a732fd4258 (commit) via 20010a5aab03e649f7dc3de1245cae2514a88e15 (commit) via 5854114015c146c37031f9ec23ae32237275d6f7 (commit) via c68e8b99df1839f664012ebc373118928a1fc727 (commit) via c4e286993816469c9e936d2b8ac4e7cbe95df92a (commit) via 9258abb7869443931b29685e68e78dabe301653d (commit) via d39c3435b01da51d3d5e58d6d8d2cbd7cb2cdc51 (commit) via c611233b40ed3a712eda671b412226af35b461fa (commit) via b66eb296d182324c7b0f8fb7d3fa952cc42af16b (commit) via 1d3d1bbc2b7ce6da767069ec90fd5d382fa6fd4f (commit) via 7a1da02bd94f0b587fc74b59217363239057f8fe (commit) via 590bdf1b931a7fbede1e65192d824833c852ee5e (commit) via 88cb3aa68ec070f7dbb8607e12c29cda08ea8952 (commit) via db7a755dabac4f15e42e363e5a69f19f538ef66e (commit) via 033d2763f5b4d07a63f68d50524b588195567024 (commit) via 8b246743fa274e016ba2dd8b59b7f7651b8f53fc (commit) via 3f67e8ad9cfd496d0e9eff9f434bbca380368ff2 (commit) via 63a945c1c8d836f4c51fb354189dd160035b0767 (commit) via edc7345f0fa70764343f6ef1e97fb1f1b67868cd (commit) via 8b34e7507e36531c41004815c71b5b367ac7c709 (commit) via 5e30738231ced6bfbfb603742a40265e7eef1113 (commit) via 0d3e1e8c1da5b0ae9e56ac320be02bdb043485d4 (commit) via f0a4269bfee8bce9904abe62144bc377ca7aab14 (commit) via 1d4a8e4b0d7b33078ea11fcac113fcf4365ca987 (commit) via 0721f5a634db267d7c43504dfc8e86861a7ce72b (commit) via bff7ad01c47f9d4cb58042345c530f1ef12ee1ac (commit) via 2877336122bf64107050cf924e82d5d822b1cc72 (commit) via 4de2df1e0c8dc103c5b845b1b538a6a303c6691c (commit) via ed879161a868e9a9afe5f93ff1625a729eddb510 (commit) via 438a331f3d8879fd508863ef7943271cd1ee3b97 (commit) via 1313b031a8e057b580525d4429ad485571844086 (commit) via cec995ab18935deccb2d2c84d2be9f29c407763a (commit) via 34b0e6cb1f1c0a4e624f7d1d72e6b0ec88371026 (commit) via 3eb54d929ec220763bd6ec8ace56753198d0d8ab (commit) via edd741eb13c696e028f375dc65cc49a187b4d2e6 (commit) via a415ec92ea3745ac5efe32fdbfc5ef11f86408f9 (commit) via 40c7cdd3a521fa3281137ec0a182a4ae5b387856 (commit) via 8ebe10284f3d074a16524abe8418091d23ae17e8 (commit) via 1238e6d8a4b9f4c1eb94e7519315ed804f5c190e (commit) via c1c60dbb7356b18c87f5dd75532af1aad03e9387 (commit) via f6057233ecd1e417fefec08a6b8bfc9fa5e7f25b (commit) via 534fb55f9d0a212c5d857eb3eccabe5c08df1ba1 (commit) via 1e1cdd5840d352b8bcb6b9587af0b6ab8232dbc7 (commit) via 23136c1c7fda174393cc36aa39e5fb9ed2de3673 (commit) via 735596ce0208d010fe286fef6b5e74a48032374b (commit) via 212cab4f9d7d4ebad0c45020f36ee145cc9be709 (commit) via bbfb087e7d9537a0332b2cccc8678581043e277a (commit) via e62efbb73d871bea084b0dde6e6a25a67184bba3 (commit) via eb1951373c5c505d8aeeae27f083efd63de73894 (commit) via c6389bdab450ad3c09fab6ff234c11989840ae08 (commit) via bb2106531da0b9c814ee51387f4f3791e50e049c (commit) via afe5c82aee8c83057cc096ea78562142a3922489 (commit) via 3026d21825b782c68dc5370447ab6edc53196ce9 (commit) via 206ad2f1240ec3ba0786e7c46529dca2e7d55bfc (commit) via ef239becc4807e474cdc8d96dd1ce6bae6a30996 (commit) via 13d491616c1c8aa0f7243e230d28dbb02cb56b38 (commit) via 2c9a70d1581495587b49511f24480b15f89fe7a0 (commit) via ae0d87a63bfea638341bfe54093325707f2f9877 (commit) via ae522f767d6a1641aa605e3f0581ad0cf4497adc (commit) via e8fff1dfef9e4571a1d73441951214ad6122b59e (commit) via 0ebec256b0f59bca995550b1b622378c6ad169ce (commit) via a8c02fc396feddbc2c95076c2e38029ea4b58fc5 (commit) via f83650a1368d55c72869fa94c903e78c097cf598 (commit) via 1d12008db5c86f06c70600ea2ac9cc0721af6d9b (commit) via ecd0ac08a56363fd779bcd08d70a4720f99a33db (commit) via d8ce16fa6619b9090919ffa334aebdc67418f75c (commit) via f3ff2748270b5f0f64b4b36b7d78b468ec766970 (commit) via beecbb59a305cb22c5adc7e5fdba96dc33d14267 (commit) via 48bf31fa46150eb2698083aad5de140568df4b0d (commit) via 08a80c31dcbc49b28ff006741c8d5025c4516f78 (commit) via 60d3e6f6358b0cec3cd95383484f5ca638051af6 (commit) via c553d34f6ab2f2ad5847dcd381561c5e6ee64b4a (commit) via e103515ad83e7f55258ff390053972a7f004eb0b (commit) via ef82c2682fe47788601c81030a99e615ad32db4f (commit) via 55fa19b0fed06561253e8c0faaa68e5607d8bcb1 (commit) via 58ca93ccba8d26feb00304e5b289da0d7305226a (commit) via 0f18c3088fc531e1b41ea54682a15dee4bf64730 (commit) via 2c5aec7d3e1384fec8171d31e7c37b228c608da7 (commit) via 0adb55f28b4e4121b1f21faf0824a04615acbbf4 (commit) via 98f2c8b8cee4b2123d9a2041f05eced72ead2b5d (commit) via e69cbcfc208dd7aacc04f332145d70fcd201ea3b (commit) via 1f0b797ef4575b482fd7897922b37d98aa82fb3d (commit) via c2e8f91776e0eb6b0aa8bd2ddd4bdb63743f6200 (commit) via 9a8bc86eea03aa353096daa55d4b3b5d599310e1 (commit) via 7e9dcadd678f4de8f437d3efbaf1208e695b6ee1 (commit) via 3a2abd61dc06362bd605218eb67cd1ed6045f416 (commit) via beebfc233534e60797ae6b9cd8be0ed85c139fb1 (commit) via 0e9017c5fc8f4a518df9fc29eb659b0a53c03b6a (commit) via 3898da96fb7593d5a31339a6a1b90a23a527bb96 (commit) via 85f029d1868dc0e2af86f11acac06e9580d8fe77 (commit) via d9edbc1be44beeb38a64702427867f8e6311d09d (commit) via 47934bca9f4d7d1b3c2b8a19f68a1abbe1a46a7b (commit) via 3b6f5fb7105a1548f5f6755c5d7e22390745c72a (commit) via 225140ae8fc9f3cedfb32729169f6d98875820ce (commit) via 500f7b48cdb68efe6f6e76933406450f040f7f5d (commit) via 6453a48a8b0cdf2702e2abf799c9fbbe28de52a0 (commit) via 1ae1ce18ae2b6da33d177037bdf16d38026b3fa6 (commit) via 2f2d774cf3c1a2ec64a3f758f31e55b12ea24b68 (commit) via d587b57ca94b4127018cc16c2db91096f6ec3d59 (commit) via e3a92950b2ecdaeed3a40ddd3201a42c496b5f4e (commit) via b9cc83032397ee8522d9de49847bb62c186f9aaa (commit) via 3a01f3a6054d110b0008ce8519db3ac25b572054 (commit) via f28d268360522223fe662b21975b8aff1224480e (commit) via fe1d17eed486f22d0275b2d2fb9c1348317d5309 (commit) via 1913c6a86e0d199eb4eec7084ca9c2025a86bfc1 (commit) via 9983d55f6a3ad52a19c7ac3c4ee648f0142b8357 (commit) via 77a03efc2f8f5f802ef1405005e2984593ac4f6e (commit) via 9574fde3f75244eba632d482dc3b20523fe360fb (commit) via cfeb8fa3de05a525900e0b9d05bee5a4c9a97708 (commit) via 48b51e95962a29de229a47a5e6dfeb50018eab1a (commit) via cd1da6ff458909d486a48a32d91c6a21b0d65c20 (commit) via 207c9813bc3e1ef121bb1bac89752c0a850dda6d (commit) via b8e25fcdcd8ce84791799d332b43ea06dde46919 (commit) via e529cfa5f1040dcbeb445a6efbea2119f520439f (commit) via 79117dc15f51f12163f061e222bb02d77fa9b06d (commit) via 7778e4da40e18c786333bdc28aba1752af3c87b8 (commit) via 2cb35915849558b46ecc492a2c646057643b9945 (commit) via 6d3fb68f34bdb41ad5ba776f5e92f97f70bec077 (commit) via 01b5bc917008f92d20016c1e5280b2cb5d2b8d97 (commit) via 697bb572d905ae0edf522a111db5a5a60e4a3506 (commit) via b8be89c89bddec7be0b6fdafd72bab52ad68139f (commit) via d4621fa0ab1b3d6170208e05d3306c016b179a61 (commit) via 329c7bda00116f32e8b0c62b3c56319e0508a9ab (commit) via 86918e351d1e258f33cd6b7dc401a0c97488ac02 (commit) via 371d0e29bc28faca571f920525716f19773a4041 (commit) via 0ffd7752112e40abfd1820146f41e1a869c9a171 (commit) via 2e67687f91f27714db2263fbe7520bcac0bd190f (commit) via 4a8dc4556aed707286cf3930f57d62362d85a6f8 (commit) via 4bd6b58393a136f17afc1fb823ed551c9c097d33 (commit) via 22a3f77293cf469932811130f4ce73143065b741 (commit) via 5e0a1a503b90c5c80016399308bb2585edba219b (commit) via 421102e775e8822f0c48f730dff86efc8cd20ce8 (commit) via cc45d23e03e7632b13bd6625408b9dde6fe553ef (commit) via ff284736aa0ec6d59a00e8642c0e3a55b76759a5 (commit) via b95f5956dfad0c6ea1dba49ebd561246e44c74f3 (commit) via e0027e6cdc8fb4b7849430aa805a0314fef2b6a7 (commit) via c7961db8ed1127db476d0063998335e14323671f (commit) via 6a3590d6b9324c997da887e4eaebadaeaffd044e (commit) via 1797889eef26270e126eeea8964ac33816dfc288 (commit) via e218d500dd4e7d17591df9c449387c00359ee728 (commit) via 90431550c662d6e8888ea7050fdc957dea326272 (commit) via 9a3d3d9558b36ebb0a283e878a3be39e10fdab72 (commit) via c7f9e0e99c67ed945d1c170d0329ed1b7ad02249 (commit) via be1fe6897c04e1fa4825a656a4bef95cf11d1afe (commit) via 87bcb6cf73f1ec0f85c45d0d559ad7690b57db92 (commit) via ad9406987b4d8c843722da55b6176c2a5cca5119 (commit) via 39c445ab38164511270784c1480bf2a4acde4443 (commit) via b9d51680a64a7da279807b1d9901e206749db97f (commit) via 7837dadb730282ecceae4e7e0811f91b38a00e4d (commit) via b1879b637b00091ff76b32b30032555d4d667e10 (commit) via 2b710ab3fa07fa6dbe31cf72c57b21cf30d43418 (commit) via 211947fa963ccbbc05acde31acf2489b96d44f99 (commit) via 918546e24fe1e0f9114fa7948c31398d9bf30b6f (commit) via daa1e380d5c3cb3e44dfec2e63476ad6427fe4a7 (commit) via 5c08baabb3fbebffa25b00d40325d450a9e47a88 (commit) via 544f40d4f87f6705e680a5da031cd917f24e140c (commit) via 708577a905ecdc5c9a2e7b113088b11d486db44c (commit) via 18245dc27978e321b26aa71af7d7238a309e3f44 (commit) via 25378ca64d9b2618398efaba6fb26bd253d240fe (commit) via e84a520f5e33f8b2163f193ce72ff3d84a022d4c (commit) via 1f2bd1a2b4317262207afd675fd6f0084cf3d651 (commit) via ea1d1022f7eab84168c30557ffde9a3538df220a (commit) via 5fe5aedd2a809f1eac79eacd7b138e487a53b60c (commit) via 31850b463b468567e324cfa6bf6f6e3e642a2925 (commit) via 998375f855071d6a83f8ef3170a9c293bf175f26 (commit) via 009e279a43fd55fc242546944ec4e648c76b9c86 (commit) via 121701c0b0d1802ec1571bb01c6752725932b3e9 (commit) via 62a430f93f97be9f1a56ac42e33666009f83c871 (commit) via bd8e98e8d8666d94e7e128fc19c7accd875e5631 (commit) via 274054142e3033aabf5cb1b89d86fa430dee5d72 (commit) via 83c883b4e5bf70bb129e6b73eef3e7211ab8abac (commit) via 06042c2e3d3eebd34169819130b246651b5e3b5e (commit) via 588ae9cd92389e804829a511403f60dbdb87f1cf (commit) via 161f8b313d0144f9ac766531b5742726fa54b46f (commit) via 560d09a5cc893e12165b33f2c46ad0c65cb408f3 (commit) via 4077128d17adb46ecda748048892d2dd5a5df0c2 (commit) via 68a3ec7d6a25ba4bde14e886889c28bd4a3841ff (commit) via ec1353626db781015479609d1e645f8a934c6856 (commit) via 76628c777fc3a0eec69e2a998e8dc53e9ac8e247 (commit) via e9450f8628f938d3e702b27acaa346ec2bb84824 (commit) via 62f709b395179bddcb7bcebd367b568f219e847f (commit) via c65bfd057e1f1fe8a6942e3ba8570896e16e950d (commit) via d75b739e462d99dc4e7245298ac5d09dad9629ef (commit) via 78be24f73d123a792e38ff388bd05924b648e791 (commit) via 86837f326e39aa118484270e67fa259b382cf27b (commit) via c3db74584136a27f2a9a2952c232d1e5a352ba0a (commit) via a23305b8a2869414e40d7a49bafd2bbc764ea925 (commit) via e3ca409e30a39e6c76a877be49f526e16c137728 (commit) via 9a88769967d78348bcace763ae154df37141c71f (commit) via 423400cffa3697568456dd54418b421ef360cc8a (commit) via 32e62ec2e09eb2f9af2c3368d6026061fa317687 (commit) via 89a010793874c5143882fb49002a0abc6f2f3be2 (commit) via 8f28e1b8fc38b459fdc1c737d6cf42081202823e (commit) via ceee30d43b0b433ea007d046ca7e434cc9e459a6 (commit) via b6bd9a5d572fa0dc82c5d1b9f224c0aad9eeca0b (commit) via cd372b7de2150d3f410bc4cb284b178b160a9d56 (commit) via 847a72987ee919d86d259ec8b4a35e8632e35486 (commit) via a469149777a4ad9d400080a1cfc9f17d1a88b62c (commit) via b4dbff3fe62373f55337534c19fb4a2ff79b7a98 (commit) via 41cfd9e04b1a06d242432e682ab5601f933c0e21 (commit) via e98279ed71cf31ab778f19e156ef14db671c21fa (commit) via 3b7913e671665fc39d8c60eff292d016299a117c (commit) via bc259fdcc14bb766173c7bd0b82a92cc0e33c79b (commit) via bca1f9e152467df2c3a9d54e374240822f6fdb78 (commit) via f00884a05f20ce160d6d557601f995cbc013b595 (commit) via d7386014598f9d442893652b642690658dac43ef (commit) via 7bc516ec7f3bbdd701ebd4ffe4aab37d66356f1d (commit) via 156ef876ca730fad6007b27b5370676b406a4e98 (commit) via 6409250781f06ad533412479dbf1adf037e17507 (commit) via 542244b35afc5bf5cd4318fe84325c0263e128fb (commit) via 98603963381ca8c7396d68786ddf4f1e32f650e5 (commit) via 31e94846beef604223b0409352bcc53e33470018 (commit) via f19b3cb69754ff536f9f399224369b6f655bc6f7 (commit) via c96ea3240f1c0bc2fb85a40b53afc76e9fc97281 (commit) via 998334b028478be01aa37437fa510ef30be00d10 (commit) via 4fd1768f7f2cf931ce9b9e919fc90c4bbe0e0041 (commit) via f5ad8f59d2570aadc2d12077ed389f539775db14 (commit) via 03395fbd076dcb3ebbfe6df18875094900c773e4 (commit) via c2a686313273815e36afa52e7a05f9e517ae545b (commit) via b235b9b9de7aec21a9ae54508d4f7e40f395c4fb (commit) via 11af354f26f9326fbe27111e87f45e3f81ec075c (commit) via 2722bdb21eb8bf4e684ddf1e4667306d0864a2f4 (commit) via 032d9402640a947375a50ef21ece9fa669c276da (commit) via 24acfa146b8665f29d3ab3d027a561763a508444 (commit) via 38a92762c486b7fbbcc17e836e19323c24f17d28 (commit) via fa21f636f657893d3487198db5fd43c7f16ee341 (commit) via 43ef38f45e01d8c337cc000d72260c5144f8707a (commit) via 07ee61b2f9df3569eb77b24e53047348a05abf77 (commit) via 58130033124232a19ff685ceffa5059c510662a0 (commit) via 81a25dbc335071b4b8b07d90e2cc3e60ae158964 (commit) via 38bb1dd6653f79102e17aaae7e72ce85dbc589d6 (commit) via 73a1c982baf987ecc1b8576dba473f79bd0ff926 (commit) via 08e3292c8dc375c34ab1e7e2e69ac312e36b1aa4 (commit) via 2e7e95b87b53ba3dad388c1d50d4c015d455ac40 (commit) via 0d221ef862a205891c7dc82826f543b7e8098f1b (commit) via ed635824a916238bddc7e060bd2273e063e7d339 (commit) via 147041f5d3fa251fd228396ef6355b91a848499b (commit) via 42787ee5a124ce5a9ae22d1f3d57e8b2b0ea1456 (commit) via a09eee160f26a2709c7bfdaac512cc39fd8dd02d (commit) via 3e5f5165063b57f09aadc43e5e549cc9673e1fa3 (commit) via 6ce13437382a1d2b7144aa715fae3b573c01d420 (commit) via df0eca0c36ab9357204a9a7f578171331f5d6a94 (commit) via 4e1bd8c184709af1988557ddfeb6a80f9e3c9b66 (commit) via cacc83602032f5d081d4598d077dac2e8a2ac965 (commit) via 1edfed0326fefb6c91a84c1e6a1beac605bcc652 (commit) via cccf085fa8748261a312cb9801fcb87f5eda231e (commit) via 3e106ae5b05f55a6602ff95d615ed8baa49ff21d (commit) via 13d5707695b81b943d63deceb96717e61ae247b5 (commit) via fc5076e3d21797f03f15bee0b289ac7ea83e3ad9 (commit) via bb0ab3814f839bdc0e87f6f1cd9c0e351874587b (commit) via 6e0bd65765bb125e2828ef4c54d7de60eb636647 (commit) via d9bb5239918653b581c392bd21ed5c82c1547216 (commit) via 6db78002695b1de848137b0b2813a95e13db79a0 (commit) via 997736b7e2c0ba15f0d97e5a7410c0b0d88349ab (commit) via 8399842efa2c7382858b99dbd56dc1afe33ca835 (commit) via 222362c3e20b9397ede90db7984e7511537d8e94 (commit) via c51823b2c4e4d815cb439c1c7b9bc6c9896916b8 (commit) via 7af07de65b7e718df6988855d5b372177ea5e519 (commit) via d6fe5ee94b7212752961eecf12c80bd3216a4bd1 (commit) via 7b40d8221fb40fb36c563f5d674a91bcbe33aaae (commit) via 104b7a2f7ae5626cb99a413c042597159e56c4ac (commit) via a19634639a748f7f354874e566add3702c996e1e (commit) via 628ad2c11720e22fad813ce9d005447b3cc87b8f (commit) via f7b9315ef36af9405529c7d77c23c28a02d9169f (commit) via 1718b2f4cd8235b920fdbb28693d5c341c3c9ff3 (commit) via 13b8798d78f38ddca030c69d5f21de7a9b18bddb (commit) via b469c8c2385cef8f79871897d068ad020908298a (commit) via 80dd5d2cf85c94e0e04c5fe6efdac7749ec08023 (commit) via 3e78d712ccafa64c78439c02d2fae5a3615b0cd5 (commit) via 97bb1c57aea0cfdb554a7bb96d1a121a868b6fa3 (commit) via db95c207362bbf475c4756f1f3b352cabe75c5e8 (commit) via de473c48bc011666d23ccd207b7597bdabae235a (commit) via 6753fbe01100da0b3ade4fc481c015cfda32c536 (commit) via 21df33072c3592bc445760b7c72e0e81e0b74d78 (commit) via 1efe3ea13aedea84f63a2b6b1b448d498f1e7b05 (commit) via 337726bf3a0a21101ade7488264f386d54bbe20f (commit) via acb59f3a997cd39fbcc7b13df3a662533cec08c0 (commit) via 8bec7790904905339ec70cb41ec3b56ce31b3349 (commit) via 6e32d39986c694e8cd72c57f4d276d6861a7d4b0 (commit) via 9572596c47e961c6f4d970b4c4c72bd5f90920e0 (commit) via 28d70963708626d1248262a9a84626b0d8fbb483 (commit) via 6a8c1a558babdfa13db68764d04f18136a40ab8f (commit) via 4a3378526dc03173db3bc97041150866b10093df (commit) via bee870d74f87f40e9f85f67e373f3e53c225e81a (commit) via e4783340bf17b0fbbda17605cc18f115764b4f45 (commit) via 706ea22fea2b69fc7c1062140a7a677b995a0f36 (commit) via a731c19d7f51d0eac8494c316a89e0ebae153474 (commit) via e2ab94792584163c2e55a3fa3b3bb25f979ca236 (commit) via fc44fa1f06fd8db9cdc3f37c29bb240024b10676 (commit) via 21e72899d9b92a6da05983e3d64cbe98ef2f9b1f (commit) via afbd9856273a3317a8ffb9a0e8a67bb589243ab2 (commit) via adbe990efa0b18e524a299660bbd410d4deb2e8b (commit) via be1925bcab75644eef978669e34a4a2ff7d5aa2c (commit) via 47577eb38527c96d8edc712e6470f7984b43635f (commit) via 2435f0cb43f157dd2607e8f21515d91870ea2ec1 (commit) via 1d627130ecae5a1358ee9ca79b328827e862c0ca (commit) via c94c1fa5574230d9edbefdfe6aea14874593ec31 (commit) via 8823b4091acd2d2d93fa5ac881f7611432798bf2 (commit) via 025b7ad557b27ef0964e4b218549703f4d34e946 (commit) via b7d60471a2c50eae9a8783d833c634d5e32f8393 (commit) via bb1f8ba08bc7ca7c2de4d85976784697bc763cc7 (commit) via 3c620eb4681704248645eb2c54b32e190f15d8f0 (commit) via 79b5ee0179796c3dd0d741eabdd949133b1388af (commit) via cecd6ab4b2278475ee68efb94abc0d884c746d50 (commit) via 40e38688a14e19c8e4f45e3953e15cc4836d6ee4 (commit) via 7f4fcdeeb459bb796fc6aea95b80e45afb381246 (commit) via fa22f9276657ce533eb57ee7d2c3c57dd4dfd1cc (commit) via 12788f633fc402cd94078575554595539420d170 (commit) via 82b312a9d212029fb12e2bf6afa6dc44ab9599d9 (commit) via 35a8f5f0a5f900281a1f5ca271495eb3aeaf9ab4 (commit) via d3cb99ade243035401010fb72b883124f1fa06a5 (commit) via c1b57e252c87ed33f5be9bf198fe5ffe331c9d72 (commit) via 6c9d6fcc508ecc5d251bd8d8a8c82294f9d41127 (commit) via 743c467204cf4847a275e53eabd34a6b5b6af861 (commit) via 489589854945f9d52ff24ddb232486c44069e3c2 (commit) via 83d9f3dd20939782633d98ad51738a5df0f6dd90 (commit) via ead7d6750a542648e397b999c04feeff03f0d7c4 (commit) via 593948a8efaa9c53547b5c44e11ed1b1c69814be (commit) via ba890f65844a996100f0c2d32832fec53f194f42 (commit) via afffb56a11db3456e574c292beb048ea21ac91d1 (commit) via 35b5392a958b9f3439dab71a19485326c9d7343b (commit) via 13c68f8755cd382efc422502a641d6d05e50b972 (commit) via 1d8e8da1aa94c6aa1516dc3db41fe655ad4e26d8 (commit) via 0ca893626a6236c17ef8f64cac2683e52dc4b6da (commit) via a97fad0546c235f07cd2e2c89cea03636d5709fb (commit) via e10e39ce47db91bd96f4e6f4cd9eb9fd57eaa440 (commit) via f5bbd27c5c2d3fc067a15fab26fc21b443453cbe (commit) via c9d81eaa3e9bb47279057dfbe7b7f37cca74ba75 (commit) via b7f61020d5be1f081f6417988047322a48498644 (commit) via 44cd45279df4b2a4cc768e11ec5f5ebe0f2a5b85 (commit) via 265f6b972fde7e32566ee2e404cc1ab88c44b1f3 (commit) via 70166a4fc6da2c9b5075f4ef74e7175978c01e59 (commit) via cddcce4398f7027348d81944c874409fec764808 (commit) via af5bc44b8def2b251161d8beb7f901e174ab7719 (commit) via cc7e3a98060f1a3afe86fdc2a42da0c29aceab08 (commit) via 4e7ac1a760eb33435c347a8f6518aa31312dd2ef (commit) via 4c7123bbf67b9a8e78d91309a99b75cb18cd078c (commit) via c20a0bb9806c5116766df754343c6676973a7837 (commit) via 65e6c81f1e0b076d97cfd7fa5b635379fe283787 (commit) via 51537b2aa8802586e6401785081b7f1fe6f39863 (commit) via 8d35adb5b986bb31a3dd5b49c059614aa57ea09d (commit) via 93cb6ff233660b10803e8c7bb2eb4a0a9bc3dd7a (commit) via ca2b2688bf12e963a7c3d0fa0d00950f72e80785 (commit) via 72d2cdfde7bee20c96b82f592ea28d273ff1801b (commit) via 2dda66c97dcfcbdef7b2afd83e7b6f80e1316c86 (commit) via 4d156ef691138d5da786db9507e1078882cdece6 (commit) via af4bfa79951880aebfa0a6ae22b9f583624ebac9 (commit) via bbeb390b2d475d79ad5f8cabf3b69f5a52fbd3a8 (commit) via d499764561ea118edb223009d615d374ceb9508f (commit) via ce346d23a406a3de2893d4b719f68a1a537949e2 (commit) via 4a30f96cfc11eaf83962f6f55a8abbbee82ebd88 (commit) via 064f9fdb8009a89f9165ec82a0b0cec5eee2cac1 (commit) via 06df0c03b1d388e911b8dd7f60223ff70fb88f75 (commit) via 52e9b6c7eae91bec1d4ccf60706b853247b5691c (commit) via 96214c4f67aaba5cc0fb03a68510406ccd801695 (commit) via fdecb9072113b24770af1ce38e0e28bfae029005 (commit) via b07deb380606be4c623126f72c7d41ac825ea49f (commit) via c43ee7b069888120b3c2259553ed1ea0fd67398e (commit) via b94f97a79049a674e1b19fec5130eeaf8bfdd954 (commit) via e9544fbec3452cf7726ad0f4c53d4d49f992588b (commit) via 2e8717bab8904fc83c4a58782d6078f52174f18c (commit) via c40aa43762c1f7d600f6f24c8bc811ce7879d003 (commit) via 098f2c4b401132db0ca65e7f6a178ffbf512226a (commit) via 07c695a72c01a6822f5d618f10efec79854d1832 (commit) via 4503e6b7ad857ceb87b7d6fe02e1952d911634bb (commit) via ad92a4b8ad4ed5a434abff422ceefae3d8f368d1 (commit) via d0cd3ef6b93217a9f5d7364ad4f3412b05684684 (commit) via df1374700091096fcf75a2560e4894e9a8752e8b (commit) via 8e57f223289aeb8cf2eae3246cbd2dbf6ef29a12 (commit) via 50b5d7ce0bc813a35d3daaba150a87c1ae990faa (commit) via 9776dede5dfed3803272ccbe627f862481cbdcd2 (commit) via b431bfce486adcccac747c21882a6f735583104e (commit) via 4ad88740a073e13a69d61848af3a808ce1251af8 (commit) via 68ad7a1ab89eeac485ca85667fb43db3c6431e34 (commit) via 12a8cc1ed90b108fbbcb2d1093e754f05e98bdc1 (commit) via 14356fb908fd6062e987d61cc4c85a618e2fc180 (commit) via 2ade4613c7fe43298ea40947de6c54b07f48dfd0 (commit) via 7916a3bef82e2bb2ff4601c3f851e19bd762f70d (commit) via e6a97a0ca27877bb6396c120a7ab6ec4187dac85 (commit) via 9f0b5c9f4dc586433c8664074fcc46cefda0f666 (commit) via 141c7c95753e00366d0e993d879db1cdc5dc870d (commit) via 9d60c9fd3d750da3c762811b30f7c23eb51a32da (commit) via 70e8a248c7d446655965f8e12868ed0c1e3c167c (commit) via b871af81ed08222d92d98a8e7576b3f7386d5e92 (commit) via 3b24acd0f33b4f803088929e5accc716e663c46f (commit) via ae2782ba1ffa3365719070c031ad59317c451f2f (commit) via b829fa10cc91535ca9b8c7708b3168dd54d34e9c (commit) via 08b4415ef2efe8a22a39f5e836099269fa024738 (commit) via 44fd6d2bb50f728b1ea772b9c184cfcca872b568 (commit) via c78993cdde0391d1336797dd4368b41794a40487 (commit) via 986a6b7c491a5f4a299f3f2f5f4511e33409f379 (commit) via bc9810383517272dc94c641f6c83acfe8408f20e (commit) via f5b5d7a498aff4450ef6fbdca7a8b8276fdd0594 (commit) via 3090c39efd011f4da22fb076cf9fde846619c688 (commit) via 966e5b56c48c1676c0cbdf96c5ad659af7b4df56 (commit) via 83d893a984a9e275e1e80b7f899c63b596ed12b3 (commit) via 631b4d458dac06a8d4b4b20fb71c3df1dbcf9ce7 (commit) via d1605d08109f23d14d069c91195fa7fe17c5816f (commit) via e9b5c8152277bd485edfe9d4af55d0c5ee4cfc30 (commit) via cb6ed5082d43973f65ebf4e17da37bd6dae9c87e (commit) via e384ca20f634bcea499448cb0ae84b2d200ff87c (commit) via c29b05246141dd4366aa0255447d583df3984e68 (commit) via 3dcc590eca8fa21b89a9d1947ec9f0d0e9130b0e (commit) via da23c4be65425a46277e450062efe9e6ee05b6ef (commit) via 2224f665e06f61f67429744d531204d328dbbd2a (commit) via 88a43f4cc11699aa109710cd828793bd4bb4c8ec (commit) via 4fcdcf4125ce43082cce64261d98dc9cd6b89340 (commit) via 3d08d9377d220d4be9238270599fab53f8d66d1b (commit) via bec9089df8be9090e82ad5442176f6b7b4c6897b (commit) via 8a21b99afe9587ab043fcc8ee6b7a28c7d435a55 (commit) via a81cf4fee51002221b269d2b5d90d7632052e9d9 (commit) via 162fe203c5be7f6c5d541b7d5c7d675b67f0749b (commit) via 33a2c62fb34958200189b40a2f4b8f6b94907702 (commit) via e41b341fafa73cc7126e7e7ac0847a301e255d66 (commit) via 75556d531bccbd916f6f05064ae499b285f23034 (commit) via 00b73e3b0fea55577ee03a04935dd12467cdfd2b (commit) via 4dca0bd05db7369de01cbf28ade0a1f1e940798a (commit) via 86d3ada4c67a095d12b897be84bd93a053c8b15f (commit) via 7c8031e54e0be4e2575c73d01da725849b62efc1 (commit) via ee717901edaf6e7496cdd649e29c0b5b06cf67b4 (commit) via 3e011c27dde3276f23cda5197f18144bba078173 (commit) via 1f6abd5362d74f585bdaf26bd9dea71905130e7c (commit) via fddc02a51a9b1c484a6e3c2073adf22dbba8bbac (commit) via 9007007b4ef870fbc115851d7bd53dff771e9415 (commit) via d30f0e5ad8d2dac5620ef76b41d1f44f4571c355 (commit) via eaaf33b609bc816f2b68f547a933105b275fbafc (commit) via c74d2398dc9c02faece2167e9aa2b12e436b265e (commit) via 4c836f54c27e4ac2399ee45935435831ab27a02b (commit) via fef20dab7453231b19228efb90577070d2548c50 (commit) via 36900a8186ac04554763f505b86a43ca91947b36 (commit) via 4117423409b702ef5f3f2ed6a5bd59197c05b784 (commit) via 71af1843723e08a23864af50de27438bde6595f0 (commit) via 1edfc9c33d798a05e77e99c3f3031b3de6db759a (commit) via 75c6309704bb258491ccf3610b15ed7d59ebbced (commit) via ab378a41994392ffdbd7e169d15a94dff59aa175 (commit) via f3d2db8c749d0803a919f92e767f1bfd6aea2f95 (commit) via 10e5b8609463e4957cb58b7ad5de7550ade24c84 (commit) via 4b80e9c54258a573e954a67cfd7635732f7af78d (commit) via 6d1f929a060201df18cac385477610f472a732a8 (commit) via 16e54df92eb2bd7ce7dbcd2989a69ff5fde068ac (commit) via 903d87f49166de7dd0b085fb98282b813203f302 (commit) via cd7507011b3cd82b03768e3a12550029068fc736 (commit) via e715467b498e7d85b2dcb6d4eb40e98597bd053e (commit) via 13c69eff1c58b28076962bb7ecad280eb57a8d18 (commit) via 71fe6ae59fab69c5bf4a12d9a69ad3ad5d7195ef (commit) via 3a082a7c88143b2495a9d2339cfda809bd7bf5fb (commit) via 9831c245f0955f9b5bdbd46777c5fed427a7f540 (commit) via 397e40a33eb99604cbbbac9e397d1f60589a119e (commit) via 8160aeb7f9bea0da57adeabc3b86cf89844ee186 (commit) via ac6945dbbae12ede65bfa23d5890394513af9847 (commit) via 34d94c7c0e81a6753ec1db80bc679711831413da (commit) via 13dcb4ee03b682dcc2be95f87274eaf9ec0fd35c (commit) via 080ce045fb9fbd79affe844312c32f87c5a2074f (commit) via 78e88cfee71a57b7d544b582c3fb9789e8971747 (commit) via deddfbd445426c80f0b2e765786cc1bdc3849e12 (commit) via e18c5b3a42479db27f17ce603750e4acf0ab8c4b (commit) via 9b95d689d522622fc8b1b9173cd3002de6c366f8 (commit) via 48a6571f1d1c6186d0b9c75e3f0b240e47ac0699 (commit) via d5c0c77877b512ac0e19517818a95893cb436fa7 (commit) via 430fb015456b4b3802dcd0c6a191d5646816b9bb (commit) via 5ca1c0b97cd3035f2e017622692fb3b5d4476bd6 (commit) via 36480f231881d88be7b4083db78689f1a344c00f (commit) via 6dc9bb2f529ccf162c7bd3e2f8dd98b9556289ed (commit) via 5aa55777bf792f1d0ca9105083de54cac0105d1e (commit) via 1482dd19e2892ec7949d302911d80884e05554bf (commit) via e6de529fb80231b0268f56b791415dd46cd91a75 (commit) via 68f7ce8f1e70cb48c9f8412c4a435a61b9d434b2 (commit) via c63b2610e958248632e9245363cb24e21624b7f1 (commit) via e0ece8e7cca18bc4521256d013a3e8e550a851c2 (commit) via 7640b78b8fb38b40606c1e7ec5dde14d62fc069a (commit) via 0249e1a638f053816badf81b908ff6989840cf94 (commit) via 524ba44a83c3785f3773ab05961c4059baba8022 (commit) from 4f6e3ae3b8768819b2fc9807d17a1c4e04e7478e (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 3a451d8433c92444bd38b78e51bf9a4c6f07708b Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Feb 8 19:22:40 2013 +0100
IPFire 2.13rc2.
commit f2cd1800473a75c5e73bb1feff6237056ca57ef8 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Feb 8 19:21:52 2013 +0100
core66: add changed initskripts to updater.
commit 8435c437d3f8990d47219e4804a96457cf1417b5 Merge: 670d514 a0ef4c5 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Fri Feb 8 15:49:38 2013 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit 670d5144851ea2bddb5bb23d929524a112164521 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Feb 7 20:28:11 2013 +0100
leds: setup alix:1 as heartbeat.
commit df64bfd3966104ccc75f8dcb02ed08fd37457387 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Feb 7 20:25:54 2013 +0100
syslinux: update to 4.06.
commit 3d9d58848197475b46980cb3207979d4207d84a0 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Thu Feb 7 20:23:01 2013 +0100
network-skripts: fix gateway replace in /etc/hosts.
commit a0ef4c5bb6f17494172148fe0a5b09e6278c0e92 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Feb 7 17:06:13 2013 +0100
bind: Ship dig.
References #10151.
commit 0aa93f5b11a57236f523714373e1abca25caaa65 Author: Daniel WeismÃŒller whytea@ipfire.org Date: Thu Feb 7 11:36:03 2013 +0100
Delete checkdeaddl.lck file on boot.
This lock file does only exist, when the system has suddenly been shut down while update accelerator is optimizing its cache.
commit 6f704a3c85dc453e1a8cebafbca5446e59aab6d6 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Wed Feb 6 20:08:02 2013 +0100
kernel: update to 3.2.38.
commit 1d76272bd30ec4933a268be3a6a41c72a43a43f4 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Feb 5 23:59:38 2013 +0100
installer: fix dutch language.
commit 707ca1fb846cbbdca61c7107f4f1e44b0b089c92 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Feb 5 23:33:43 2013 +0100
configroot: rootfile update.
commit 18b39b38aed96e348b3996f7e69aed88c7c95d4f Merge: d1f2931 778ac3e Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Feb 5 22:37:05 2013 +0100
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
commit d1f2931c85b8c117ffefed0c14d04dda09af105d Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Feb 5 22:32:16 2013 +0100
libsmooth: add dutch language.
commit 778ac3ed83223d9bd234e5516456407ee1404157 Author: Daniel WeismÃŒller daniel.weismueller@ipfire.org Date: Tue Feb 5 21:35:16 2013 +0100
Close console after 10 minutes idle.
For security reasons, all local consoles get closed after 10 min idle. This does not count for screen or ssh sessions.
commit be82627d34d1255c504569c170da11ba5470f114 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 5 21:19:41 2013 +0100
setup: Add Dutch language selection.
commit 45a4448a9628b33c81ce86a84305d52c5d3c4bf0 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 5 21:17:31 2013 +0100
Language cleanups by ./make.sh lang.
commit b34dac1ff503f405f08144b89f6bc290a624f762 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 5 21:17:06 2013 +0100
make.sh: Add Dutch to the language management code.
commit c28be8fda09b6a6587408e28a024b3c04db62272 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 5 21:16:42 2013 +0100
wui: Add Dutch language selection.
commit 09c8a88a54ed9f399f98e86748e7bb3e0daa105f Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 5 21:15:48 2013 +0100
installer: Add Dutch language selection.
commit f8622265fa476c1d53874184dc7e1abaec878d64 Author: H. Horsten dutchtux@gmail.com Date: Tue Feb 5 21:11:02 2013 +0100
Add Nederlands (Dutch) language support.
commit f1a58c3322701040090efd1b7949f448c3128d5a Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 5 19:26:58 2013 +0100
openssh: Update to 6.1p1.
commit 7a26d28aa4f4c3602970cccdf0697d555b39ef3c Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 5 19:01:11 2013 +0100
openssl: Update to 0.9.8y.
Fixes the "Lucky Thirteen" issue: http://www.isg.rhul.ac.uk/tls/ also known as CVE-2013-0169
http://www.openssl.org/news/secadv_20130205.txt
commit ea31a62aadf428e37a686568e5b95caf0fbc07b6 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Feb 5 02:07:42 2013 +0100
graphs: add mmcblk to media graphs.
commit 20d78d9e76d15992ebd9d4f0db783b7a83fb8f23 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Feb 5 01:48:27 2013 +0100
hostapd: update to 2.0.
commit d50fe89686deaa8527c81a7292e5eba0efa32a82 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Feb 5 01:47:58 2013 +0100
wpa_supplicant: update to 2.0.
-----------------------------------------------------------------------
Summary of changes: config/acpid/power | 4 + config/acpid/power.sh | 4 + config/asterisk/asterisk.makeopts | 25 +- config/backup/backup.pl | 2 + config/backup/includes/lcr | 1 + config/backup/includes/pakfire3 | 1 + config/bash/dot_bash_logout | 10 + config/bash/dot_bash_profile | 12 + config/bash/dot_bashrc | 18 + config/cfgroot/general-functions.pl | 29 +- config/collectd/collectd.conf | 2 +- config/etc/bashrc | 121 +- config/etc/group | 2 +- config/etc/inputrc | 56 +- config/etc/modprobe.d/cfg80211 | 1 - config/etc/profile | 114 +- config/etc/securetty | 1 + config/etc/sysctl.conf | 5 + config/fstrim/trim | 8 + config/grub/grub.conf | 22 +- config/hostapd/config | 4 +- config/hostapd/hostapd.conf | 2 +- config/include/obsolete_videodev.h | 320 + .../kernel/kernel.config.armv5tel-ipfire-kirkwood | 1909 +- config/kernel/kernel.config.armv5tel-ipfire-omap | 3577 ++ config/kernel/kernel.config.armv5tel-ipfire-rpi | 3407 ++ .../kernel/kernel.config.armv5tel-ipfire-versatile | 3464 -- config/kernel/kernel.config.i586-ipfire | 2310 +- config/kernel/kernel.config.i586-ipfire-pae | 2325 +- config/kernel/kernel.config.i586-ipfire-xen | 41 +- config/madwifi/madwifi.conf | 295 - config/profile.d/colorls.sh | 40 + config/profile.d/dircolors.sh | 9 - config/profile.d/extrapaths.sh | 24 +- config/profile.d/glib2-locale.sh | 3 + config/profile.d/i18n.sh | 10 +- config/profile.d/lang.sh | 90 + config/profile.d/term256.sh | 26 + config/qos/makeqosscripts.pl | 16 +- config/rootfiles/common/Crypt-PasswdMD5 | 6 +- config/rootfiles/common/armv5tel/binutils | 59 +- config/rootfiles/common/armv5tel/dracut | 65 + config/rootfiles/common/armv5tel/gcc | 1281 +- config/rootfiles/common/armv5tel/glibc | 197 +- config/rootfiles/common/armv5tel/initscripts | 5 +- config/rootfiles/common/armv5tel/installer | 3 + config/rootfiles/common/armv5tel/linux-headers | 678 + config/rootfiles/common/armv5tel/linux-kirkwood | 2084 +- config/rootfiles/common/armv5tel/linux-omap | 1467 + config/rootfiles/common/armv5tel/linux-rpi | 1439 + config/rootfiles/common/armv5tel/linux-versatile | 5 - config/rootfiles/common/armv5tel/rpi-firmware | 9 + config/rootfiles/common/armv5tel/u-boot | 6 + config/rootfiles/common/armv5tel/uboot | 1 - config/rootfiles/common/autoconf | 26 +- config/rootfiles/common/automake | 244 +- config/rootfiles/common/bash | 6 +- config/rootfiles/common/bind | 2 +- config/rootfiles/common/bridge-utils | 4 +- config/rootfiles/common/cairo | 99 + config/rootfiles/common/cmake | 845 +- config/rootfiles/common/collectd | 70 +- config/rootfiles/common/compat-wireless | 2 +- config/rootfiles/common/configroot | 1 + config/rootfiles/common/conntrack-tools | 6 + config/rootfiles/common/coreutils | 6 +- config/rootfiles/common/curl | 2 +- config/rootfiles/common/daq | 6 +- config/rootfiles/common/dejavu-fonts-ttf | 22 + config/rootfiles/common/dvb-firmwares | 23 + config/rootfiles/common/e2fsprogs | 9 +- config/rootfiles/common/file | 15 +- config/rootfiles/common/fontconfig | 424 + config/rootfiles/common/fstrim | 2 + config/rootfiles/common/fw_ath9k_htc | 2 - config/rootfiles/common/gettext | 578 +- config/rootfiles/common/glib | 970 + config/rootfiles/common/gmp | 20 +- config/rootfiles/common/gmp-compat | 2 + config/rootfiles/common/gnupg | 13 +- config/rootfiles/common/grep | 8 +- config/rootfiles/common/hddtemp | 4 - config/rootfiles/common/i586/acpid | 17 + config/rootfiles/common/i586/binutils | 72 +- config/rootfiles/common/{ => i586}/dracut | 0 config/rootfiles/common/i586/gcc | 1307 +- config/rootfiles/common/i586/glibc | 2009 +- config/rootfiles/common/i586/grub | 46 +- config/rootfiles/common/i586/initscripts | 9 +- config/rootfiles/common/i586/kqemu | 2 - config/rootfiles/common/i586/linux | 1324 +- config/rootfiles/common/i586/linux-headers | 704 + config/rootfiles/common/i586/madwifi | 22 - config/rootfiles/common/i586/strongswan-padlock | 1 + config/rootfiles/common/i586/syslinux | 37 + config/rootfiles/common/iproute2 | 39 +- config/rootfiles/common/iptables | 150 +- config/rootfiles/common/iptstate | 2 - config/rootfiles/common/kudzu | 198 - config/rootfiles/common/less | 6 +- config/rootfiles/common/libaal | 31 - config/rootfiles/common/libffi | 15 + config/rootfiles/common/libmnl | 7 + config/rootfiles/common/libsafe | 4 - config/rootfiles/common/libsigc++ | 70 +- config/rootfiles/common/libtool | 71 + config/rootfiles/common/libupnp | 22 +- config/rootfiles/common/linux-atm | 1 + config/rootfiles/common/linux-firmware | 168 +- config/rootfiles/common/linux-libc-header | 1745 - config/rootfiles/common/mISDNuser | 15 +- config/rootfiles/common/mbr | 5 +- config/rootfiles/common/misc-progs | 2 - config/rootfiles/common/mpfr | 21 + config/rootfiles/common/ncurses | 550 +- config/rootfiles/common/newt | 2 +- config/rootfiles/common/openldap | 114 +- config/rootfiles/common/openssl | 2 +- config/rootfiles/common/pam | 6 + config/rootfiles/common/pango | 143 + config/rootfiles/common/pciutils | 23 +- config/rootfiles/common/pcre | 94 +- config/rootfiles/common/pcre-compat | 2 + config/rootfiles/common/pixman | 9 + config/rootfiles/common/procps | 2 +- config/rootfiles/common/readline | 24 +- config/rootfiles/common/readline-compat | 4 + config/rootfiles/common/reiser4progs | 77 - config/rootfiles/common/rrdtool | 228 +- config/rootfiles/common/sdparm | 2 +- config/rootfiles/common/sed | 6 +- config/rootfiles/common/shadow | 3 +- config/rootfiles/common/smartmontools | 6 +- config/rootfiles/common/snort | 4 +- config/rootfiles/common/stage2 | 30 +- config/rootfiles/common/strongswan | 91 +- config/rootfiles/common/sysfsutils | 15 - config/rootfiles/common/sysvinit | 3 + config/rootfiles/common/texinfo | 31 +- config/rootfiles/common/tzdata | 8 + config/rootfiles/common/uClibc | 1353 - config/rootfiles/common/udev | 34 +- config/rootfiles/common/usbutils | 1 + config/rootfiles/common/xz | 20 +- config/rootfiles/common/zlib | 7 +- config/rootfiles/core/66/exclude | 16 + config/rootfiles/core/{61 => 66}/filelists/GeoIP | 0 .../rootfiles/core/66/filelists/armv5tel/binutils | 1 + config/rootfiles/core/66/filelists/armv5tel/dracut | 1 + config/rootfiles/core/66/filelists/armv5tel/gcc | 1 + config/rootfiles/core/66/filelists/armv5tel/glibc | 1 + .../core/66/filelists/armv5tel/linux-kirkwood | 1 + .../core/66/filelists/armv5tel/linux-omap | 1 + .../rootfiles/core/66/filelists/armv5tel/linux-rpi | 1 + .../core/66/filelists/armv5tel/rpi-firmware | 1 + config/rootfiles/core/66/filelists/armv5tel/u-boot | 1 + .../core/66/filelists/armv5tel/util-linux | 1 + config/rootfiles/core/66/filelists/autoconf | 1 + config/rootfiles/core/66/filelists/automake | 1 + config/rootfiles/core/66/filelists/bash | 1 + config/rootfiles/core/66/filelists/bind | 1 + config/rootfiles/core/66/filelists/bridge-utils | 1 + config/rootfiles/core/66/filelists/cairo | 1 + config/rootfiles/core/66/filelists/capi4k-utils | 1 + config/rootfiles/core/66/filelists/cmake | 1 + .../{oldcore/38 => core/66}/filelists/collectd | 0 .../28 => core/66}/filelists/compat-wireless | 0 config/rootfiles/core/66/filelists/conntrack-tools | 1 + config/rootfiles/core/66/filelists/coreutils | 1 + .../{oldcore/28 => core/66}/filelists/curl | 0 .../{oldcore/36 => core/66}/filelists/cyrus-sasl | 0 config/rootfiles/core/{64 => 66}/filelists/daq | 0 .../rootfiles/core/66/filelists/dejavu-fonts-ttf | 1 + config/rootfiles/core/{63 => 66}/filelists/dhcp | 0 config/rootfiles/core/66/filelists/dvb-firmwares | 1 + .../{oldcore/38 => core/66}/filelists/e2fsprogs | 0 config/rootfiles/core/66/filelists/file | 1 + config/rootfiles/core/66/filelists/files | 51 + config/rootfiles/core/66/filelists/fontconfig | 1 + config/rootfiles/core/66/filelists/fstrim | 1 + config/rootfiles/core/66/filelists/gawk | 1 + .../{oldcore/50 => core/66}/filelists/gettext | 0 config/rootfiles/core/66/filelists/glib | 1 + .../{oldcore/53 => core/66}/filelists/gmp | 0 config/rootfiles/core/66/filelists/gmp-compat | 1 + config/rootfiles/core/66/filelists/gnupg | 1 + config/rootfiles/core/66/filelists/grep | 1 + config/rootfiles/core/66/filelists/hdparm | 1 + config/rootfiles/core/66/filelists/i586/acpi-init | 4 + config/rootfiles/core/66/filelists/i586/acpid | 1 + config/rootfiles/core/66/filelists/i586/binutils | 1 + config/rootfiles/core/66/filelists/i586/dracut | 1 + .../{oldcore/53 => core/66}/filelists/i586/gcc | 0 .../{oldcore/53 => core/66}/filelists/i586/glibc | 0 config/rootfiles/core/66/filelists/i586/grub | 1 + config/rootfiles/core/66/filelists/i586/linux | 1 + .../core/66/filelists/i586/strongswan-padlock | 1 + config/rootfiles/core/66/filelists/i586/util-linux | 1 + .../rootfiles/core/{63 => 66}/filelists/inetutils | 0 config/rootfiles/core/66/filelists/iproute2 | 1 + .../{oldcore/28 => core/66}/filelists/iptables | 0 config/rootfiles/core/66/filelists/kbd | 1 + config/rootfiles/core/66/filelists/less | 1 + config/rootfiles/core/66/filelists/libffi | 1 + config/rootfiles/core/66/filelists/libmnl | 1 + .../{oldcore/28 => core/66}/filelists/libnl | 0 config/rootfiles/core/66/filelists/libsigc++ | 1 + config/rootfiles/core/66/filelists/libtool | 1 + config/rootfiles/core/66/filelists/libupnp | 1 + config/rootfiles/core/66/filelists/linux-atm | 1 + .../28 => core/66}/filelists/linux-firmware | 0 config/rootfiles/core/66/filelists/m4 | 1 + .../{oldcore/28 => core/66}/filelists/mISDNuser | 0 config/rootfiles/core/66/filelists/man | 1 + config/rootfiles/core/66/filelists/misc-progs | 1 + config/rootfiles/core/66/filelists/mpfr | 1 + .../{oldcore/34 => core/66}/filelists/ncurses | 0 config/rootfiles/core/66/filelists/newt | 1 + config/rootfiles/core/66/filelists/openldap | 1 + .../{oldcore/36 => core/66}/filelists/openssh | 0 .../{oldcore/28 => core/66}/filelists/openssl | 0 config/rootfiles/core/{61 => 66}/filelists/pam | 0 config/rootfiles/core/66/filelists/pango | 1 + config/rootfiles/core/66/filelists/pciutils | 1 + config/rootfiles/core/66/filelists/pcmciautils | 1 + .../{oldcore/38 => core/66}/filelists/pcre | 0 config/rootfiles/core/66/filelists/pcre-compat | 1 + config/rootfiles/core/66/filelists/pixman | 1 + config/rootfiles/core/66/filelists/popt | 1 + config/rootfiles/core/66/filelists/pptp | 1 + config/rootfiles/core/66/filelists/readline | 1 + config/rootfiles/core/66/filelists/readline-compat | 1 + .../38 => core/66}/filelists/reiserfsprogs | 0 .../{oldcore/38 => core/66}/filelists/rrdtool | 0 config/rootfiles/core/66/filelists/screen | 1 + config/rootfiles/core/66/filelists/sdparm | 1 + config/rootfiles/core/66/filelists/sed | 1 + config/rootfiles/core/66/filelists/setup | 1 + config/rootfiles/core/66/filelists/shadow | 1 + config/rootfiles/core/66/filelists/slang | 1 + .../34 => core/66}/filelists/smartmontools | 0 config/rootfiles/core/{64 => 66}/filelists/snort | 0 config/rootfiles/core/{61 => 66}/filelists/squid | 0 config/rootfiles/core/66/filelists/stage2-partial | 17 + .../rootfiles/core/{60 => 66}/filelists/strongswan | 0 config/rootfiles/core/66/filelists/sysfsutils | 1 + config/rootfiles/core/66/filelists/sysvinit | 1 + config/rootfiles/core/66/filelists/texinfo | 1 + .../{oldcore/54 => core/66}/filelists/tzdata | 0 .../{oldcore/28 => core/66}/filelists/udev | 0 config/rootfiles/core/66/filelists/usbutils | 1 + .../{oldcore/44 => core/66}/filelists/vim | 0 config/rootfiles/core/66/filelists/wget | 1 + .../28 => core/66}/filelists/wpa_supplicant | 0 .../rootfiles/{oldcore/38 => core/66}/filelists/xz | 0 .../{oldcore/38 => core/66}/filelists/zlib | 0 config/rootfiles/core/{60 => 66}/meta | 0 config/rootfiles/core/66/update.sh | 379 + config/rootfiles/installer/findutils | 1 + config/rootfiles/installer/kudzu | 1 - config/rootfiles/installer/libsafe | 1 - config/rootfiles/installer/pcre | 1 + config/rootfiles/{core => oldcore}/60/exclude | 0 .../rootfiles/{core => oldcore}/60/filelists/files | 0 .../{core => oldcore}/60/filelists/strongswan | 0 config/rootfiles/{core/61 => oldcore/60}/meta | 0 config/rootfiles/{core => oldcore}/60/update.sh | 0 config/rootfiles/{core => oldcore}/61/exclude | 0 .../{core/62 => oldcore/61}/filelists/GeoIP | 0 .../{core => oldcore}/61/filelists/Net-Telnet | 0 .../rootfiles/{core => oldcore}/61/filelists/files | 0 .../{core => oldcore}/61/filelists/fireinfo | 0 .../{core => oldcore}/61/filelists/logwatch | 0 .../{core => oldcore}/61/filelists/openvpn | 0 .../rootfiles/{core => oldcore}/61/filelists/pam | 0 .../rootfiles/{core => oldcore}/61/filelists/php | 0 .../rootfiles/{core => oldcore}/61/filelists/squid | 0 .../61/filelists/usb_modeswitch_data | 0 config/rootfiles/{core/62 => oldcore/61}/meta | 0 config/rootfiles/{core => oldcore}/61/update.sh | 0 config/rootfiles/{core => oldcore}/62/exclude | 0 .../{core/63 => oldcore/62}/filelists/GeoIP | 0 .../rootfiles/{core => oldcore}/62/filelists/files | 0 .../{core => oldcore}/62/filelists/hwdata | 0 .../rootfiles/{core => oldcore}/62/filelists/php | 0 .../{core => oldcore}/62/filelists/usb_modeswitch | 0 .../62/filelists/usb_modeswitch_data | 0 config/rootfiles/{core/63 => oldcore/62}/meta | 0 config/rootfiles/{core => oldcore}/62/update.sh | 0 config/rootfiles/{core => oldcore}/63/exclude | 0 .../{core/65 => oldcore/63}/filelists/GeoIP | 0 .../{core => oldcore}/63/filelists/apache2 | 0 .../rootfiles/{core => oldcore}/63/filelists/dhcp | 0 .../rootfiles/{core => oldcore}/63/filelists/files | 0 .../{core => oldcore}/63/filelists/fireinfo | 0 .../{core => oldcore}/63/filelists/inetutils | 0 config/rootfiles/{core/64 => oldcore/63}/meta | 0 config/rootfiles/{core => oldcore}/63/update.sh | 0 config/rootfiles/{core => oldcore}/64/exclude | 0 .../{core/65 => oldcore/64}/filelists/daq | 0 .../rootfiles/{core => oldcore}/64/filelists/files | 0 .../rootfiles/{core => oldcore}/64/filelists/snort | 0 config/rootfiles/{core/65 => oldcore/64}/meta | 0 config/rootfiles/{core => oldcore}/64/update.sh | 0 config/rootfiles/{core => oldcore}/65/exclude | 0 .../{core/61 => oldcore/65}/filelists/GeoIP | 0 .../{core/64 => oldcore/65}/filelists/daq | 0 .../rootfiles/{core => oldcore}/65/filelists/files | 0 config/rootfiles/{core/60 => oldcore/65}/meta | 0 config/rootfiles/{core => oldcore}/65/update.sh | 0 config/rootfiles/packages/alsa | 84 +- config/rootfiles/packages/applejuice | 141 - config/rootfiles/packages/asterisk | 27 +- config/rootfiles/packages/bluetooth | 2 +- config/rootfiles/packages/centerim | 10 - config/rootfiles/packages/cifs-utils | 3 + config/rootfiles/packages/cups | 1 + config/rootfiles/packages/dahdi | 127 - config/rootfiles/packages/ebtables | 2 + config/rootfiles/packages/elinks | 3 + config/rootfiles/packages/flac | 4 +- config/rootfiles/packages/fontconfig | 423 - config/rootfiles/packages/git | 39 +- config/rootfiles/packages/glib | 641 - config/rootfiles/packages/gnump3d | 20 +- config/rootfiles/packages/gpgme | 18 + config/rootfiles/packages/hplip | 529 +- config/rootfiles/packages/ipfireseeder | 5 - config/rootfiles/packages/lcr | 1 + config/rootfiles/packages/libassuan | 8 + config/rootfiles/packages/libgpg-error | 25 + config/rootfiles/packages/libogg | 156 +- config/rootfiles/packages/libsolv | 23 +- config/rootfiles/packages/libtool | 33 - config/rootfiles/packages/libvorbis | 267 +- config/rootfiles/packages/linux-pae | 1328 +- config/rootfiles/packages/linux-xen | 3880 +- config/rootfiles/packages/mc | 51 +- config/rootfiles/packages/pakfire3 | 118 + config/rootfiles/packages/pakfire3-deps | 1 - config/rootfiles/packages/pycurl | 53 + config/rootfiles/packages/pygpgme | 7 + config/rootfiles/packages/python-rssdler | 3 +- config/rootfiles/packages/qemu-kqemu | 2 - config/rootfiles/packages/samba | 31 +- config/rootfiles/packages/splix | 87 - config/rootfiles/packages/transmission | 74 +- config/rootfiles/packages/urlgrabber | 28 +- config/rootfiles/packages/videolan | 415 - config/rootfiles/packages/w_scan | 5 +- config/rpi-firmware/config.txt | 36 + config/syslinux/syslinux.cfg | 3 + config/u-boot/boot.scr | Bin 0 -> 290 bytes config/u-boot/boot.script | 4 + config/u-boot/convert_bootscript | 1 + config/uClibc/busybox.config | 643 - config/uClibc/codesets.txt | 2 - config/uClibc/locales.txt | 8 - config/uClibc/uClibc.config-i586 | 175 - config/udev/10-dvb.rules | 2 - config/udev/25-alsa.rules | 8 + config/udev/55-scsi-cdrom.rules | 2 - config/udev/99-codel.rules | 2 + config/udev/dvb.sh | 2 - config/udev/enable_codel | 57 + config/updxlrator/download | 17 +- config/w_scan/w_scan_start | 136 + config/wpa_supplicant/config | 4 +- doc/language_issues.de | 5 + doc/language_issues.en | 4 + doc/language_issues.es | 6 + doc/language_issues.fr | 6 + doc/language_issues.nl | 514 + doc/language_issues.pl | 6 + doc/language_issues.ru | 6 + doc/language_missings | 4 + html/cgi-bin/ids.cgi | 6 +- html/cgi-bin/media.cgi | 6 +- html/cgi-bin/ovpnmain.cgi | 3 +- html/cgi-bin/proxy.cgi | 40 +- html/cgi-bin/qos.cgi | 6 +- html/cgi-bin/services.cgi | 2 +- html/cgi-bin/vpnmain.cgi | 249 +- html/cgi-bin/wlanap.cgi | 78 +- langs/de/cgi-bin/de.pl | 301 +- langs/de/install/lang_de.c | 2 +- langs/en/cgi-bin/en.pl | 20 +- langs/en/install/lang_en.c | 2 +- langs/list | 1 + langs/nl/cgi-bin/nl.pl | 2271 + langs/nl/install/lang_nl.c | 590 + lfs/Config | 4 +- lfs/acpid | 84 + lfs/alsa | 39 +- lfs/apcupsd | 2 +- lfs/applejuice | 90 - lfs/asterisk | 12 +- lfs/autoconf | 10 +- lfs/automake | 10 +- lfs/bash | 16 +- lfs/binutils | 55 +- lfs/bluetooth | 6 +- lfs/bridge-utils | 5 +- lfs/cairo | 77 + lfs/capi4k-utils | 1 + lfs/ccache | 42 +- lfs/centerim | 84 - lfs/cifs-utils | 84 + lfs/cleanup-toolchain | 43 +- lfs/cmake | 2 +- lfs/collectd | 6 +- lfs/compat-wireless | 45 +- lfs/conntrack-tools | 77 + lfs/core-updates | 4 +- lfs/coreutils | 5 +- lfs/cpufrequtils | 2 +- lfs/cryptodev | 5 +- lfs/curl | 8 +- lfs/cyrus-imapd | 2 +- lfs/cyrus-sasl | 1 + lfs/dahdi | 144 - lfs/daq | 4 +- lfs/dbus | 1 + lfs/dejavu-fonts-ttf | 77 + lfs/dhcp | 10 +- lfs/directfb | 1 + lfs/dracut | 7 +- lfs/dvb-firmwares | 77 + lfs/e1000 | 18 +- lfs/e1000e | 22 +- lfs/e2fsprogs | 4 +- lfs/ebtables | 7 +- lfs/elinks | 8 +- lfs/fake-environ | 2 +- lfs/file | 6 +- lfs/flash-images | 86 +- lfs/fontconfig | 7 - lfs/fstrim | 78 + lfs/fw_ath9k_htc | 75 - lfs/gawk | 2 + lfs/gcc | 196 +- lfs/gettext | 19 +- lfs/git | 6 +- lfs/glib | 19 +- lfs/glibc | 214 +- lfs/gmp | 4 +- lfs/gmp-compat | 83 + lfs/gnupg | 4 +- lfs/gpgme | 84 + lfs/grep | 14 +- lfs/grub | 62 +- lfs/hddtemp | 76 - lfs/hdparm | 6 +- lfs/hostapd | 11 +- lfs/hplip | 6 +- lfs/hwdata | 11 +- lfs/igb | 22 +- lfs/imspector | 1 + lfs/inetutils | 1 + lfs/initrd | 3 + lfs/initscripts | 9 +- lfs/installer | 4 +- lfs/ipfireseeder | 84 - lfs/iproute2 | 15 +- lfs/iptables | 33 +- lfs/iptstate | 76 - lfs/kbd | 18 +- lfs/kqemu | 84 - lfs/kudzu | 92 - lfs/kvm-kmod | 5 +- lfs/lcr | 22 +- lfs/less | 4 +- lfs/libaal | 77 - lfs/libassuan | 84 + lfs/libffi | 79 + lfs/libgpg-error | 84 + lfs/libmad | 4 + lfs/libmnl | 77 + lfs/libnl | 1 + lfs/libogg | 10 +- lfs/libsafe | 78 - lfs/libsigc++ | 5 +- lfs/libsolv | 27 +- lfs/libtool | 12 +- lfs/libupnp | 4 +- lfs/libvorbis | 12 +- lfs/linux | 124 +- lfs/linux-firmware | 8 +- lfs/linux-libc-header | 105 - lfs/linux-xen | 4 +- lfs/linux2 | 252 + lfs/m4 | 4 +- lfs/mISDN | 31 +- lfs/mISDNuser | 11 +- lfs/madwifi | 93 - lfs/make | 6 +- lfs/man | 1 + lfs/mbr | 6 +- lfs/mc | 13 +- lfs/minidlna | 1 + lfs/miniupnpd | 10 +- lfs/misc-progs | 11 +- lfs/motion | 8 + lfs/mpd | 4 +- lfs/mpfr | 78 + lfs/nagios | 7 +- lfs/ncurses | 77 +- lfs/netpbm | 1 + lfs/newt | 15 +- lfs/nut | 2 +- lfs/openldap | 37 +- lfs/openssh | 4 +- lfs/openssl | 4 +- lfs/openvmtools | 3 +- lfs/pakfire3 | 88 + lfs/pakfire3-deps | 56 - lfs/pango | 77 + lfs/pciutils | 58 +- lfs/pcmciautils | 21 +- lfs/pcre | 17 +- lfs/pcre-compat | 79 + lfs/php | 4 + lfs/pixman | 77 + lfs/popt | 13 +- lfs/postfix | 3 + lfs/ppp | 6 +- lfs/pptp | 1 + lfs/pycurl | 86 + lfs/pygpgme | 82 + lfs/qemu | 6 +- lfs/qemu-kqemu | 88 - lfs/r8101 | 14 +- lfs/r8168 | 14 +- lfs/r8169 | 18 +- lfs/readline | 21 +- lfs/readline-compat | 86 + lfs/reiser4progs | 77 - lfs/reiserfsprogs | 12 +- lfs/rpi-firmware | 74 + lfs/rrdtool | 17 +- lfs/samba | 9 +- lfs/screen | 1 + lfs/sdl | 2 - lfs/sdparm | 6 +- lfs/sed | 8 +- lfs/slang | 14 +- lfs/smartmontools | 8 +- lfs/snort | 4 +- lfs/splix | 86 - lfs/squid | 4 +- lfs/stage2 | 10 +- lfs/streamripper | 2 +- lfs/strip | 24 +- lfs/strongswan | 30 +- lfs/sysfsutils | 13 +- lfs/syslinux | 10 +- lfs/sysvinit | 23 +- lfs/texinfo | 14 +- lfs/transmission | 8 +- lfs/tzdata | 38 +- lfs/u-boot | 17 +- lfs/udev | 80 +- lfs/urlgrabber | 5 +- lfs/usb-stick | 4 +- lfs/util-linux | 32 +- lfs/v4l-dvb | 42 +- lfs/vdr | 17 +- lfs/videolan | 104 - lfs/w_scan | 17 +- lfs/wget | 12 +- lfs/wpa_supplicant | 11 +- lfs/xen-image | 38 +- lfs/xfsprogs | 3 + lfs/xz | 17 +- lfs/zlib | 40 +- make.sh | 222 +- src/fake-environ/Makefile | 2 +- src/initscripts/init.d/acpid | 44 + src/initscripts/init.d/asterisk | 2 +- src/initscripts/init.d/cleanfs | 3 + src/initscripts/init.d/cpufreq | 4 +- src/initscripts/init.d/firewall | 2 + src/initscripts/init.d/firstsetup | 17 +- src/initscripts/init.d/fsresize | 25 +- src/initscripts/init.d/halt | 14 + src/initscripts/init.d/hostapd | 5 + src/initscripts/init.d/ipfireseeder | 64 - src/initscripts/init.d/lcr | 2 +- src/initscripts/init.d/leds | 117 +- src/initscripts/init.d/mountfs | 6 +- src/initscripts/init.d/network | 3 + src/initscripts/init.d/networking/dhcpcd.exe | 4 +- src/initscripts/init.d/networking/red | 4 +- .../init.d/networking/red.up/01-conntrack-cleanup | 25 + src/initscripts/init.d/networking/red.up/98-leds | 3 + src/initscripts/init.d/partresize | 16 +- src/initscripts/init.d/reboot | 7 +- src/initscripts/init.d/sendsignals | 4 +- src/initscripts/init.d/setclock | 20 +- src/initscripts/init.d/tmpfs | 4 - src/initscripts/init.d/transmission | 6 +- src/initscripts/sysconfig/rc.local | 5 - src/install+setup/install/Makefile | 4 +- src/install+setup/install/main.c | 83 +- src/install+setup/install/mountdest.sh | 229 +- src/install+setup/install/mountsource.sh | 29 +- src/install+setup/install/probehw.sh | 76 - src/install+setup/install/probenic.sh | 8 +- src/install+setup/libsmooth/Makefile | 2 +- src/install+setup/libsmooth/main.c | 1 + src/install+setup/libsmooth/netstuff.c | 11 +- src/install+setup/setup/main.c | 5 +- src/misc-progs/Makefile | 13 +- src/misc-progs/getiptstate.c | 24 - src/misc-progs/ipsecctrl.c | 213 +- src/misc-progs/rebuildhosts.c | 4 +- src/misc-progs/setportfw.c | 10 +- src/paks/applejuice/install.sh | 30 - src/paks/applejuice/uninstall.sh | 27 - src/paks/applejuice/update.sh | 26 - src/paks/elinks/install.sh | 34 + src/paks/elinks/uninstall.sh | 27 + src/paks/elinks/update.sh | 26 + src/paks/files | 2 +- src/paks/ipfireseeder/install.sh | 29 - src/paks/ipfireseeder/uninstall.sh | 42 - src/paks/ipfireseeder/update.sh | 26 - src/paks/linux-pae/install.sh | 13 +- src/paks/linux-pae/uninstall.sh | 9 +- src/paks/linux-pae/update.sh | 5 +- src/paks/linux-xen/install.sh | 4 +- src/patches/bash-3.1-fixes-8.patch | 723 - src/patches/bash-3.1-login.patch | 15 - src/patches/bash-3.2-ssh_source_bash.patch | 9 + src/patches/bash-4.0-paths-1.patch | 30 + src/patches/bash-4.0-profile-1.patch | 12 + src/patches/bash/bash32-001 | 47 + src/patches/bash/bash32-002 | 48 + src/patches/bash/bash32-003 | 147 + src/patches/bash/bash32-004 | 96 + src/patches/bash/bash32-005 | 223 + src/patches/bash/bash32-006 | 45 + src/patches/bash/bash32-007 | 55 + src/patches/bash/bash32-008 | 48 + src/patches/bash/bash32-009 | 61 + src/patches/bash/bash32-010 | 207 + src/patches/bash/bash32-011 | 138 + src/patches/bash/bash32-012 | 96 + src/patches/bash/bash32-013 | 65 + src/patches/bash/bash32-014 | 307 + src/patches/bash/bash32-015 | 95 + src/patches/bash/bash32-016 | 52 + src/patches/bash/bash32-017 | 85 + src/patches/bash/bash32-018 | 98 + src/patches/bash/bash32-019 | 343 + src/patches/bash/bash32-020 | 183 + src/patches/bash/bash32-021 | 72 + src/patches/bash/bash32-022 | 126 + src/patches/bash/bash32-023 | 51 + src/patches/bash/bash32-024 | 77 + src/patches/bash/bash32-025 | 79 + src/patches/bash/bash32-026 | 82 + src/patches/bash/bash32-027 | 85 + src/patches/bash/bash32-028 | 60 + src/patches/bash/bash32-029 | 52 + src/patches/bash/bash32-030 | 50 + src/patches/bash/bash32-031 | 62 + src/patches/bash/bash32-032 | 47 + src/patches/bash/bash32-033 | 88 + src/patches/bash/bash32-034 | 74 + src/patches/bash/bash32-035 | 159 + src/patches/bash/bash32-036 | 44 + src/patches/bash/bash32-037 | 110 + src/patches/bash/bash32-038 | 80 + src/patches/bash/bash32-039 | 175 + src/patches/bash/bash32-040 | 47 + src/patches/bash/bash32-041 | 154 + src/patches/bash/bash32-042 | 48 + src/patches/bash/bash32-043 | 62 + src/patches/bash/bash32-044 | 150 + src/patches/bash/bash32-045 | 50 + src/patches/bash/bash32-046 | 47 + src/patches/bash/bash32-047 | 65 + src/patches/bash/bash32-048 | 56 + src/patches/bash/bash32-049 | 64 + src/patches/bash/bash32-050 | 56 + src/patches/bash/bash32-051 | 46 + src/patches/binutils-2.18-configure-1.patch | 19 - src/patches/ccache-3.1.6-no_compiler_mtime.patch | 21 - src/patches/compat-wireless-3.0-libertas_uap.patch | 5101 --- ...at-wireless-3.5-build_ath5k_only_with_pci.patch | 16 + src/patches/compat-wireless-3.5-libertas_uap.patch | 5080 +++ ...ireless-3.6.8-remove_3.1_cpufreq_backport.patch | 48 + ...t-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch | 68 + src/patches/coreutils-5.96-futimes.patch | 56 + src/patches/cyrus-sasl-2.1.22-bad-elif.patch | 21 + src/patches/dbus-1.0.3-compile-fix-1.patch | 11 + src/patches/dhcp-3.1_linux3.patch | 11 + src/patches/directfb-1.1.1-fix-mknod.patch | 26 + src/patches/gcc-4.0.4-specs-1.patch | 336 - src/patches/gcc-4.1.2-arm-linux-soft-float.patch | 30 - .../gcc-4.1.2-fix_linker_version_detection.patch | 12 - src/patches/gcc-4.1.2-gcc_eh.patch | 24 - src/patches/gcc-4.1.2-specs-1.patch | 507 - src/patches/gcc-4.4.3-startfiles_fix-1.patch | 33 + src/patches/gcc-libstdc++-pic.patch | 45 - src/patches/gcc-sdk-libstdc++-includes.patch | 22 - src/patches/gcc-uclibc-conf.patch | 553 - src/patches/gcc-uclibc-locale.patch | 3237 -- src/patches/gcc/gcc44-build-id.patch | 52 + src/patches/gcc/gcc44-c++-builtin-redecl.patch | 102 + src/patches/gcc/gcc44-i386-libgomp.patch | 61 + src/patches/gcc/gcc44-libtool-no-rpath.patch | 27 + src/patches/gcc/gcc44-no-add-needed.patch | 52 + src/patches/gcc/gcc44-pr33763.patch | 153 + src/patches/gcc/gcc44-rh330771.patch | 34 + src/patches/gcc/gcc44-rh533181.patch | 153 + src/patches/gcc/gcc44-rh610785.patch | 74 + src/patches/gcc/gcc44-unwind-debug-hook.patch | 51 + ...libc-2.3.6-dont_use_origin_on_privil_exec.patch | 67 - src/patches/glibc-2.3.6-inotify-1.patch | 45 - src/patches/glibc-2.3.6-linux_types-1.patch | 33 - src/patches/glibc-arm-dont-use-swp.patch | 305 + src/patches/glibc-cfi-entry-not-closed.patch | 23 + .../glibc-ports-avoid-using-asm-procinfo.patch | 340 - .../glibc-remove-ctors-dtors-output-sections.patch | 150 + src/patches/glibc-resolv-stack_chk_fail.patch | 35 + .../glibc-test-installation.pl-libgcc_s.patch | 97 + .../glibc-test-installation.pl-nss_test1.patch | 31 + src/patches/glibc/glibc-aliasing.patch | 87 + src/patches/glibc/glibc-fedora.patch | 2106 + src/patches/glibc/glibc-getlogin-r.patch | 36 + src/patches/glibc/glibc-localedata.patch | 18 + src/patches/glibc/glibc-recvmmsg.patch | 182 + src/patches/glibc/glibc-rh580498.patch | 296 + src/patches/glibc/glibc-rh582738.patch | 13 + src/patches/glibc/glibc-rh587360.patch | 13 + src/patches/glibc/glibc-rh593396.patch | 42 + src/patches/glibc/glibc-rh593686.patch | 179 + src/patches/glibc/glibc-rh601686.patch | 4640 ++ src/patches/glibc/glibc-rh607010.patch | 26 + src/patches/glibc/glibc-rh607461.patch | 22 + src/patches/glibc/glibc-rh615090.patch | 21 + src/patches/glibc/glibc-rh615701.patch | 23 + src/patches/glibc/glibc-rh621959.patch | 120 + src/patches/glibc/glibc-rh623187.patch | 18 + src/patches/glibc/glibc-rh625893.patch | 79 + src/patches/glibc/glibc-rh630801.patch | 29 + src/patches/glibc/glibc-rh631011.patch | 17 + src/patches/glibc/glibc-rh641128.patch | 78 + src/patches/glibc/glibc-rh642584.patch | 41 + src/patches/glibc/glibc-rh643822.patch | 64 + src/patches/glibc/glibc-rh645672.patch | 215 + src/patches/glibc/glibc-rh646954.patch | 216 + src/patches/glibc/glibc-rh647448.patch | 58 + src/patches/glibc/glibc-rh652661.patch | 21 + src/patches/glibc/glibc-rh656014.patch | 45 + src/patches/glibc/glibc-rh656530.patch | 21 + src/patches/glibc/glibc-rh657572.patch | 141 + src/patches/glibc/glibc-rh661982.patch | 188 + src/patches/glibc/glibc-rh667974.patch | 160 + src/patches/glibc/glibc-rh676076.patch | 714 + src/patches/glibc/glibc-rh676591.patch | 352 + src/patches/glibc/glibc-rh681054.patch | 514 + src/patches/glibc/glibc-rh688720.patch | 1638 + src/patches/glibc/glibc-rh688980.patch | 20 + src/patches/glibc/glibc-rh689471.patch | 333 + src/patches/glibc/glibc-rh692177.patch | 137 + src/patches/glibc/glibc-rh692838.patch | 6165 +++ src/patches/glibc/glibc-rh694386.patch | 86 + src/patches/glibc/glibc-rh695595.patch | 17 + src/patches/glibc/glibc-rh695963.patch | 1284 + src/patches/glibc/glibc-rh696472.patch | 36 + src/patches/glibc/glibc-rh697421.patch | 10 + src/patches/glibc/glibc-rh699724.patch | 188 + src/patches/glibc/glibc-rh700507.patch | 26 + src/patches/glibc/glibc-rh703480.patch | 68 + src/patches/glibc/glibc-rh703481.patch | 875 + src/patches/glibc/glibc-rh705465.patch | 449 + src/patches/glibc/glibc-rh711927.patch | 503 + src/patches/glibc/glibc-rh711987.patch | 136 + src/patches/glibc/glibc-rh712248.patch | 69 + src/patches/glibc/glibc-rh713134.patch | 36 + src/patches/glibc/glibc-rh714823.patch | 126 + src/patches/glibc/glibc-rh718057.patch | 109 + src/patches/glibc/glibc-rh726517.patch | 173 + src/patches/glibc/glibc-rh730379.patch | 34 + src/patches/glibc/glibc-rh731042.patch | 51 + src/patches/glibc/glibc-rh736346.patch | 116 + src/patches/glibc/glibc-rh737778.patch | 122 + src/patches/glibc/glibc-rh738665.patch | 149 + src/patches/glibc/glibc-rh738763.patch | 17 + src/patches/glibc/glibc-rh739184.patch | 18 + src/patches/glibc/glibc-rh739971.patch | 44 + src/patches/glibc/glibc-rh740506-2.patch | 35 + src/patches/glibc/glibc-rh740506.patch | 132 + src/patches/glibc/glibc-rh749188.patch | 32 + src/patches/glibc/glibc-rh750531.patch | 122 + src/patches/glibc/glibc-rh751750.patch | 28 + src/patches/glibc/glibc-rh752122.patch | 260 + src/patches/glibc/glibc-rh757888.patch | 225 + src/patches/glibc/glibc-rh766513.patch | 14 + src/patches/glibc/glibc-rh767146.patch | 21 + src/patches/glibc/glibc-rh767693-2.patch | 79 + src/patches/glibc/glibc-rh767693.patch | 89 + src/patches/glibc/glibc-rh767746.patch | 14 + src/patches/glibc/glibc-rh771342.patch | 155 + src/patches/glibc/glibc-rh782585.patch | 329 + src/patches/glibc/glibc-rh784402.patch | 166 + src/patches/glibc/glibc-rh785984.patch | 20 + src/patches/glibc/glibc-rh788959-2.patch | 153 + src/patches/glibc/glibc-rh788959.patch | 130 + src/patches/glibc/glibc-rh789189.patch | 12 + src/patches/glibc/glibc-rh789209.patch | 12 + src/patches/glibc/glibc-rh789238-2.patch | 114 + src/patches/glibc/glibc-rh789238.patch | 119 + src/patches/glibc/glibc-rh794817-2.patch | 85 + src/patches/glibc/glibc-rh794817.patch | 239 + src/patches/glibc/glibc-rh795498.patch | 13 + src/patches/glibc/glibc-rh797094-1.patch | 657 + src/patches/glibc/glibc-rh797094-2.patch | 862 + src/patches/glibc/glibc-rh804630.patch | 23 + src/patches/glibc/glibc-rh804689.patch | 23 + src/patches/glibc/glibc-rh808337.patch | 21 + src/patches/glibc/glibc-rh808545.patch | 44 + src/patches/glibc/glibc-rh809602.patch | 47 + src/patches/glibc/glibc-rh833716.patch | 45265 +++++++++++++++++++ src/patches/glibc/glibc-rh837026.patch | 30 + src/patches/grep-2.5.1a-redhat_fixes-2.patch | 2109 - src/patches/grub-0.90-append.patch | 111 - src/patches/grub-0.90-symlinkmenulst.patch | 16 - src/patches/grub-0.91-splashimagehelp.patch | 28 - src/patches/grub-0.93-configfile.patch | 75 - src/patches/grub-0.93-endedit.patch | 77 - src/patches/grub-0.93-graphics-bootterm.patch | 39 - src/patches/grub-0.93-special-device-names.patch | 18 - src/patches/grub-0.94-i2o.patch | 45 - src/patches/grub-0.94-installcopyonly.patch | 85 - src/patches/grub-0.95-graphics.patch | 1283 - src/patches/grub-0.95-hiddenmenu-tweak.patch | 39 - src/patches/grub-0.95-md-mbr.patch | 11 - src/patches/grub-0.95-md-rework.patch | 183 - src/patches/grub-0.95-md.patch | 183 - src/patches/grub-0.95-moreraid.patch | 100 - src/patches/grub-0.95-nonmbr.patch | 14 - src/patches/grub-0.95-odirect.patch | 115 - src/patches/grub-0.95-recheck-bad.patch | 83 - src/patches/grub-0.95-splash-error-term.patch | 25 - src/patches/grub-0.95-staticcurses.patch | 14 - src/patches/grub-0.95-xpmjunk.patch | 55 - src/patches/grub-0.97-bz429187-cciss.patch | 75 - src/patches/grub-0.97-cmdline-size.patch | 45 - src/patches/grub-0.97-datadir.patch | 229 - src/patches/grub-0.97-disk_geometry-1.patch | 892 - src/patches/grub-0.97-dmraid-partition-names.patch | 10 - src/patches/grub-0.97-dmraid-recheck-bad.patch | 17 - src/patches/grub-0.97-dmraid.patch | 92 - src/patches/grub-0.97-install.in.patch | 34 - src/patches/grub-0.97-mactel-kbd.patch | 100 - src/patches/grub-0.97-mdadm-path.patch | 27 - src/patches/grub-0.97-mpath.patch | 18 - src/patches/grub-0.97-nx-multiinstall.patch | 60 - src/patches/grub-0.97-nxstack.patch | 615 - src/patches/grub-0.97-once.patch | 513 - src/patches/grub-0.97-prototypes.patch | 11 - src/patches/grub-0.97-stderr.patch | 102 - src/patches/grub-0.97_grub-install_virtio.patch | 52 - src/patches/grub-gentoo-14.patch | 16087 +++++++ src/patches/iptables-1.4.12-IMQ-test4.diff | 141 + .../iptables-1.4.14-ipp2p-0.8.2-ipfire.patch | 481 + src/patches/iptables-1.4.6-errorno_includes.patch | 170 - src/patches/iptables-1.4.6-imq_test1.patch | 126 - src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch | 481 - src/patches/kudzu-link-lintl.diff | 11 - src/patches/kudzu-usbnet.patch | 40 - ...6_remove_pvclock_scale_delta_redifinition.patch | 45 - ...b_remove_pvclock_scale_delta_redefinition.patch | 12 - src/patches/libmad-0.15.1b-cflags-O2.patch | 12 + src/patches/libmad-0.15.1b-cflags.patch | 146 + src/patches/libnl-1.1-ULONG_MAX.patch | 11 + src/patches/libsafe-alpha.diff | 232 - src/patches/libsafe-functioncaching.diff | 258 - src/patches/libsigc++-gcc43.patch | 85 + src/patches/linux-2.6-arm-asm-constraint.patch | 347 + .../linux-2.6.25.18-not_report_sysctl_1.23.patch | 14 - src/patches/linux-2.6.32-crypto-mv_cesa.patch | 647 + ...inux-2.6.32.11-option_add_vodafone_usbids.patch | 23 - .../linux-2.6.32.45-arm_kirkwood_setups.patch | 522 - .../linux-2.x-smsc95xx-add_mac_addr_param.patch | 149 + src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch | 1039 + src/patches/linux-3.1-imq.patch | 1603 + src/patches/linux-3.2-0001-panda-wlan-fix.patch | 12 + src/patches/linux-3.2-0002-panda-i2c.patch | 51 + src/patches/linux-3.2-imq.patch | 1603 + src/patches/linux-3.2-panda-reboot.patch | 29 + src/patches/linux-3.2.25-arm_kirkwood_setups.patch | 692 + .../linux-3.2.27-rpi_fix_dwc_common_build.patch | 38 + src/patches/linux-3.2.33-ledtrig-netdev-1.patch | 479 + src/patches/linux-3.2.33_ipg-fix-driver-name.patch | 15 + .../linux-libc-headers-2.6.12.0-inotify-3.patch | 115 - src/patches/mISDN_hfc-s_add_id.patch | 31 +- src/patches/miniupnpd-iptcrdr.patch | 16 - src/patches/ncurses-5.5-fixes-1.patch | 225 - src/patches/netfilter_layer7_2.22_kernel3.0.patch | 2160 + src/patches/netpbm-10.26.46-getline.patch | 202 + src/patches/openldap-gcc44-fixes.patch | 31 + src/patches/pakfire3-changes-for-ipfire2.diff | 35 + src/patches/pptp-1.7.2-compat.patch | 71 + .../python-pycurl-fix-do_curl_reset-refcount.patch | 24 + src/patches/python-pycurl-no-static-libs.patch | 12 + .../qemu-kqemu_change-default-kqemu-bios.patch | 12 - src/patches/r8169_add_missing_pciids.patch | 10 +- src/patches/readline-5.1-fixes-3.patch | 128 - src/patches/readline/readline52-001 | 30 + src/patches/readline/readline52-002 | 49 + src/patches/readline/readline52-003 | 37 + src/patches/readline/readline52-004 | 70 + src/patches/readline/readline52-005 | 328 + src/patches/readline/readline52-006 | 62 + src/patches/readline/readline52-007 | 65 + src/patches/readline/readline52-008 | 70 + src/patches/readline/readline52-009 | 45 + src/patches/readline/readline52-010 | 47 + src/patches/readline/readline52-011 | 32 + src/patches/readline/readline52-012 | 150 + src/patches/readline/readline52-013 | 135 + src/patches/readline/readline52-014 | 49 + src/patches/readline/readline62-001 | 46 + src/patches/readline/readline62-002 | 57 + src/patches/readline/readline62-003 | 76 + src/patches/readline/readline62-004 | 108 + src/patches/screen-4.0.3-stropts.patch | 48 + src/patches/slang-1.4.9-uclibc.patch | 12 - src/patches/texinfo-4.8-multibyte-1.patch | 44 - src/patches/texinfo-4.8-tempfile_fix-2.patch | 80 - src/patches/uClibc-gcc4-genwctype.patch | 11 - src/patches/udev-125-ext4_wo_journal.patch | 50 + src/patches/udev-125-netif_rename.patch | 47 - src/patches/udev-141_no_netif_rename.patch | 50 + .../udev-config-6.2_persistent-storage-fix.patch | 12 - .../udev-config-6.2_remove-lfs-usb-rule.patch | 11 - src/patches/v4l-dvb_bestunar_us638x.patch | 2810 ++ src/patches/v4l-dvb_fix_tua6034_pll.patch | 12 + src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch | 14 + .../v4l-dvb_rtl28xx_commented_usb_clear_halt.patch | 12 + .../v4l-dvb_usbv2_dont_report_pidfilter_fail.patch | 16 + src/patches/vdr-1.6.0-gcc44-fixes.patch | 62 + src/patches/vdr-plugin-epgsearch-gcc44.patch | 78 + src/patches/w_scan-ipfire.patch | 130 - src/scripts/makegraphs | 4 +- src/scripts/ovpn-ccd-convert | 1 + src/scripts/readhash | 2 +- src/scripts/scanhd | 2 +- src/scripts/vpn-watch | 83 - src/stripper | 57 + tools/make-functions | 60 +- 956 files changed, 154356 insertions(+), 45489 deletions(-) create mode 100644 config/acpid/power create mode 100644 config/acpid/power.sh create mode 100644 config/backup/includes/pakfire3 create mode 100644 config/bash/dot_bash_logout create mode 100644 config/bash/dot_bash_profile create mode 100644 config/bash/dot_bashrc create mode 100644 config/fstrim/trim create mode 100644 config/include/obsolete_videodev.h create mode 100644 config/kernel/kernel.config.armv5tel-ipfire-omap create mode 100644 config/kernel/kernel.config.armv5tel-ipfire-rpi delete mode 100644 config/kernel/kernel.config.armv5tel-ipfire-versatile delete mode 100644 config/madwifi/madwifi.conf create mode 100644 config/profile.d/colorls.sh delete mode 100644 config/profile.d/dircolors.sh create mode 100644 config/profile.d/glib2-locale.sh create mode 100644 config/profile.d/lang.sh create mode 100644 config/profile.d/term256.sh create mode 100644 config/rootfiles/common/armv5tel/dracut create mode 100644 config/rootfiles/common/armv5tel/installer create mode 100644 config/rootfiles/common/armv5tel/linux-headers create mode 100644 config/rootfiles/common/armv5tel/linux-omap create mode 100644 config/rootfiles/common/armv5tel/linux-rpi delete mode 100644 config/rootfiles/common/armv5tel/linux-versatile create mode 100644 config/rootfiles/common/armv5tel/rpi-firmware create mode 100644 config/rootfiles/common/armv5tel/u-boot delete mode 100644 config/rootfiles/common/armv5tel/uboot create mode 100644 config/rootfiles/common/cairo create mode 100644 config/rootfiles/common/conntrack-tools create mode 100644 config/rootfiles/common/dejavu-fonts-ttf create mode 100644 config/rootfiles/common/dvb-firmwares create mode 100644 config/rootfiles/common/fontconfig create mode 100644 config/rootfiles/common/fstrim delete mode 100644 config/rootfiles/common/fw_ath9k_htc create mode 100644 config/rootfiles/common/glib create mode 100644 config/rootfiles/common/gmp-compat delete mode 100644 config/rootfiles/common/hddtemp create mode 100644 config/rootfiles/common/i586/acpid rename config/rootfiles/common/{ => i586}/dracut (100%) delete mode 100644 config/rootfiles/common/i586/kqemu create mode 100644 config/rootfiles/common/i586/linux-headers delete mode 100644 config/rootfiles/common/i586/madwifi create mode 100644 config/rootfiles/common/i586/strongswan-padlock delete mode 100644 config/rootfiles/common/iptstate delete mode 100644 config/rootfiles/common/kudzu delete mode 100644 config/rootfiles/common/libaal create mode 100644 config/rootfiles/common/libffi create mode 100644 config/rootfiles/common/libmnl delete mode 100644 config/rootfiles/common/libsafe create mode 100644 config/rootfiles/common/libtool delete mode 100644 config/rootfiles/common/linux-libc-header create mode 100644 config/rootfiles/common/mpfr create mode 100644 config/rootfiles/common/pango create mode 100644 config/rootfiles/common/pcre-compat create mode 100644 config/rootfiles/common/pixman create mode 100644 config/rootfiles/common/readline-compat delete mode 100644 config/rootfiles/common/reiser4progs delete mode 100644 config/rootfiles/common/uClibc create mode 100644 config/rootfiles/core/66/exclude copy config/rootfiles/core/{61 => 66}/filelists/GeoIP (100%) create mode 120000 config/rootfiles/core/66/filelists/armv5tel/binutils create mode 120000 config/rootfiles/core/66/filelists/armv5tel/dracut create mode 120000 config/rootfiles/core/66/filelists/armv5tel/gcc create mode 120000 config/rootfiles/core/66/filelists/armv5tel/glibc create mode 120000 config/rootfiles/core/66/filelists/armv5tel/linux-kirkwood create mode 120000 config/rootfiles/core/66/filelists/armv5tel/linux-omap create mode 120000 config/rootfiles/core/66/filelists/armv5tel/linux-rpi create mode 120000 config/rootfiles/core/66/filelists/armv5tel/rpi-firmware create mode 120000 config/rootfiles/core/66/filelists/armv5tel/u-boot create mode 120000 config/rootfiles/core/66/filelists/armv5tel/util-linux create mode 120000 config/rootfiles/core/66/filelists/autoconf create mode 120000 config/rootfiles/core/66/filelists/automake create mode 120000 config/rootfiles/core/66/filelists/bash create mode 120000 config/rootfiles/core/66/filelists/bind create mode 120000 config/rootfiles/core/66/filelists/bridge-utils create mode 120000 config/rootfiles/core/66/filelists/cairo create mode 120000 config/rootfiles/core/66/filelists/capi4k-utils create mode 120000 config/rootfiles/core/66/filelists/cmake copy config/rootfiles/{oldcore/38 => core/66}/filelists/collectd (100%) copy config/rootfiles/{oldcore/28 => core/66}/filelists/compat-wireless (100%) create mode 120000 config/rootfiles/core/66/filelists/conntrack-tools create mode 120000 config/rootfiles/core/66/filelists/coreutils copy config/rootfiles/{oldcore/28 => core/66}/filelists/curl (100%) copy config/rootfiles/{oldcore/36 => core/66}/filelists/cyrus-sasl (100%) copy config/rootfiles/core/{64 => 66}/filelists/daq (100%) create mode 120000 config/rootfiles/core/66/filelists/dejavu-fonts-ttf copy config/rootfiles/core/{63 => 66}/filelists/dhcp (100%) create mode 120000 config/rootfiles/core/66/filelists/dvb-firmwares copy config/rootfiles/{oldcore/38 => core/66}/filelists/e2fsprogs (100%) create mode 120000 config/rootfiles/core/66/filelists/file create mode 100644 config/rootfiles/core/66/filelists/files create mode 120000 config/rootfiles/core/66/filelists/fontconfig create mode 120000 config/rootfiles/core/66/filelists/fstrim create mode 120000 config/rootfiles/core/66/filelists/gawk copy config/rootfiles/{oldcore/50 => core/66}/filelists/gettext (100%) create mode 120000 config/rootfiles/core/66/filelists/glib copy config/rootfiles/{oldcore/53 => core/66}/filelists/gmp (100%) create mode 120000 config/rootfiles/core/66/filelists/gmp-compat create mode 120000 config/rootfiles/core/66/filelists/gnupg create mode 120000 config/rootfiles/core/66/filelists/grep create mode 120000 config/rootfiles/core/66/filelists/hdparm create mode 100644 config/rootfiles/core/66/filelists/i586/acpi-init create mode 120000 config/rootfiles/core/66/filelists/i586/acpid create mode 120000 config/rootfiles/core/66/filelists/i586/binutils create mode 120000 config/rootfiles/core/66/filelists/i586/dracut copy config/rootfiles/{oldcore/53 => core/66}/filelists/i586/gcc (100%) copy config/rootfiles/{oldcore/53 => core/66}/filelists/i586/glibc (100%) create mode 120000 config/rootfiles/core/66/filelists/i586/grub create mode 120000 config/rootfiles/core/66/filelists/i586/linux create mode 120000 config/rootfiles/core/66/filelists/i586/strongswan-padlock create mode 120000 config/rootfiles/core/66/filelists/i586/util-linux copy config/rootfiles/core/{63 => 66}/filelists/inetutils (100%) create mode 120000 config/rootfiles/core/66/filelists/iproute2 copy config/rootfiles/{oldcore/28 => core/66}/filelists/iptables (100%) create mode 120000 config/rootfiles/core/66/filelists/kbd create mode 120000 config/rootfiles/core/66/filelists/less create mode 120000 config/rootfiles/core/66/filelists/libffi create mode 120000 config/rootfiles/core/66/filelists/libmnl copy config/rootfiles/{oldcore/28 => core/66}/filelists/libnl (100%) create mode 120000 config/rootfiles/core/66/filelists/libsigc++ create mode 120000 config/rootfiles/core/66/filelists/libtool create mode 120000 config/rootfiles/core/66/filelists/libupnp create mode 120000 config/rootfiles/core/66/filelists/linux-atm copy config/rootfiles/{oldcore/28 => core/66}/filelists/linux-firmware (100%) create mode 120000 config/rootfiles/core/66/filelists/m4 copy config/rootfiles/{oldcore/28 => core/66}/filelists/mISDNuser (100%) create mode 120000 config/rootfiles/core/66/filelists/man create mode 120000 config/rootfiles/core/66/filelists/misc-progs create mode 120000 config/rootfiles/core/66/filelists/mpfr copy config/rootfiles/{oldcore/34 => core/66}/filelists/ncurses (100%) create mode 120000 config/rootfiles/core/66/filelists/newt create mode 120000 config/rootfiles/core/66/filelists/openldap copy config/rootfiles/{oldcore/36 => core/66}/filelists/openssh (100%) copy config/rootfiles/{oldcore/28 => core/66}/filelists/openssl (100%) copy config/rootfiles/core/{61 => 66}/filelists/pam (100%) create mode 120000 config/rootfiles/core/66/filelists/pango create mode 120000 config/rootfiles/core/66/filelists/pciutils create mode 120000 config/rootfiles/core/66/filelists/pcmciautils copy config/rootfiles/{oldcore/38 => core/66}/filelists/pcre (100%) create mode 120000 config/rootfiles/core/66/filelists/pcre-compat create mode 120000 config/rootfiles/core/66/filelists/pixman create mode 120000 config/rootfiles/core/66/filelists/popt create mode 120000 config/rootfiles/core/66/filelists/pptp create mode 120000 config/rootfiles/core/66/filelists/readline create mode 120000 config/rootfiles/core/66/filelists/readline-compat copy config/rootfiles/{oldcore/38 => core/66}/filelists/reiserfsprogs (100%) copy config/rootfiles/{oldcore/38 => core/66}/filelists/rrdtool (100%) create mode 120000 config/rootfiles/core/66/filelists/screen create mode 120000 config/rootfiles/core/66/filelists/sdparm create mode 120000 config/rootfiles/core/66/filelists/sed create mode 120000 config/rootfiles/core/66/filelists/setup create mode 120000 config/rootfiles/core/66/filelists/shadow create mode 120000 config/rootfiles/core/66/filelists/slang copy config/rootfiles/{oldcore/34 => core/66}/filelists/smartmontools (100%) copy config/rootfiles/core/{64 => 66}/filelists/snort (100%) copy config/rootfiles/core/{61 => 66}/filelists/squid (100%) create mode 100644 config/rootfiles/core/66/filelists/stage2-partial copy config/rootfiles/core/{60 => 66}/filelists/strongswan (100%) create mode 120000 config/rootfiles/core/66/filelists/sysfsutils create mode 120000 config/rootfiles/core/66/filelists/sysvinit create mode 120000 config/rootfiles/core/66/filelists/texinfo copy config/rootfiles/{oldcore/54 => core/66}/filelists/tzdata (100%) copy config/rootfiles/{oldcore/28 => core/66}/filelists/udev (100%) create mode 120000 config/rootfiles/core/66/filelists/usbutils copy config/rootfiles/{oldcore/44 => core/66}/filelists/vim (100%) create mode 120000 config/rootfiles/core/66/filelists/wget copy config/rootfiles/{oldcore/28 => core/66}/filelists/wpa_supplicant (100%) copy config/rootfiles/{oldcore/38 => core/66}/filelists/xz (100%) copy config/rootfiles/{oldcore/38 => core/66}/filelists/zlib (100%) copy config/rootfiles/core/{60 => 66}/meta (100%) create mode 100644 config/rootfiles/core/66/update.sh create mode 120000 config/rootfiles/installer/findutils delete mode 120000 config/rootfiles/installer/kudzu delete mode 120000 config/rootfiles/installer/libsafe create mode 120000 config/rootfiles/installer/pcre rename config/rootfiles/{core => oldcore}/60/exclude (100%) rename config/rootfiles/{core => oldcore}/60/filelists/files (100%) rename config/rootfiles/{core => oldcore}/60/filelists/strongswan (100%) rename config/rootfiles/{core/61 => oldcore/60}/meta (100%) rename config/rootfiles/{core => oldcore}/60/update.sh (100%) rename config/rootfiles/{core => oldcore}/61/exclude (100%) rename config/rootfiles/{core/62 => oldcore/61}/filelists/GeoIP (100%) rename config/rootfiles/{core => oldcore}/61/filelists/Net-Telnet (100%) rename config/rootfiles/{core => oldcore}/61/filelists/files (100%) rename config/rootfiles/{core => oldcore}/61/filelists/fireinfo (100%) rename config/rootfiles/{core => oldcore}/61/filelists/logwatch (100%) rename config/rootfiles/{core => oldcore}/61/filelists/openvpn (100%) rename config/rootfiles/{core => oldcore}/61/filelists/pam (100%) rename config/rootfiles/{core => oldcore}/61/filelists/php (100%) rename config/rootfiles/{core => oldcore}/61/filelists/squid (100%) rename config/rootfiles/{core => oldcore}/61/filelists/usb_modeswitch_data (100%) rename config/rootfiles/{core/62 => oldcore/61}/meta (100%) rename config/rootfiles/{core => oldcore}/61/update.sh (100%) rename config/rootfiles/{core => oldcore}/62/exclude (100%) rename config/rootfiles/{core/63 => oldcore/62}/filelists/GeoIP (100%) rename config/rootfiles/{core => oldcore}/62/filelists/files (100%) rename config/rootfiles/{core => oldcore}/62/filelists/hwdata (100%) rename config/rootfiles/{core => oldcore}/62/filelists/php (100%) rename config/rootfiles/{core => oldcore}/62/filelists/usb_modeswitch (100%) rename config/rootfiles/{core => oldcore}/62/filelists/usb_modeswitch_data (100%) rename config/rootfiles/{core/63 => oldcore/62}/meta (100%) rename config/rootfiles/{core => oldcore}/62/update.sh (100%) rename config/rootfiles/{core => oldcore}/63/exclude (100%) rename config/rootfiles/{core/65 => oldcore/63}/filelists/GeoIP (100%) rename config/rootfiles/{core => oldcore}/63/filelists/apache2 (100%) rename config/rootfiles/{core => oldcore}/63/filelists/dhcp (100%) rename config/rootfiles/{core => oldcore}/63/filelists/files (100%) rename config/rootfiles/{core => oldcore}/63/filelists/fireinfo (100%) rename config/rootfiles/{core => oldcore}/63/filelists/inetutils (100%) rename config/rootfiles/{core/64 => oldcore/63}/meta (100%) rename config/rootfiles/{core => oldcore}/63/update.sh (100%) rename config/rootfiles/{core => oldcore}/64/exclude (100%) rename config/rootfiles/{core/65 => oldcore/64}/filelists/daq (100%) rename config/rootfiles/{core => oldcore}/64/filelists/files (100%) rename config/rootfiles/{core => oldcore}/64/filelists/snort (100%) rename config/rootfiles/{core/65 => oldcore/64}/meta (100%) rename config/rootfiles/{core => oldcore}/64/update.sh (100%) rename config/rootfiles/{core => oldcore}/65/exclude (100%) rename config/rootfiles/{core/61 => oldcore/65}/filelists/GeoIP (100%) rename config/rootfiles/{core/64 => oldcore/65}/filelists/daq (100%) rename config/rootfiles/{core => oldcore}/65/filelists/files (100%) rename config/rootfiles/{core/60 => oldcore/65}/meta (100%) rename config/rootfiles/{core => oldcore}/65/update.sh (100%) delete mode 100644 config/rootfiles/packages/applejuice delete mode 100644 config/rootfiles/packages/centerim create mode 100644 config/rootfiles/packages/cifs-utils delete mode 100644 config/rootfiles/packages/dahdi delete mode 100644 config/rootfiles/packages/directfb delete mode 100644 config/rootfiles/packages/fontconfig delete mode 100644 config/rootfiles/packages/glib create mode 100644 config/rootfiles/packages/gpgme delete mode 100644 config/rootfiles/packages/ipfireseeder create mode 100644 config/rootfiles/packages/libassuan create mode 100644 config/rootfiles/packages/libgpg-error delete mode 100644 config/rootfiles/packages/libtool create mode 100644 config/rootfiles/packages/pakfire3 delete mode 100644 config/rootfiles/packages/pakfire3-deps create mode 100644 config/rootfiles/packages/pycurl create mode 100644 config/rootfiles/packages/pygpgme delete mode 100644 config/rootfiles/packages/qemu-kqemu delete mode 100644 config/rootfiles/packages/splix delete mode 100644 config/rootfiles/packages/videolan create mode 100644 config/rpi-firmware/config.txt create mode 100755 config/u-boot/boot.scr create mode 100755 config/u-boot/boot.script create mode 100755 config/u-boot/convert_bootscript delete mode 100644 config/uClibc/busybox.config delete mode 100644 config/uClibc/codesets.txt delete mode 100644 config/uClibc/locales.txt delete mode 100644 config/uClibc/uClibc.config-i586 delete mode 100644 config/udev/10-dvb.rules create mode 100644 config/udev/25-alsa.rules delete mode 100644 config/udev/55-scsi-cdrom.rules create mode 100644 config/udev/99-codel.rules delete mode 100755 config/udev/dvb.sh create mode 100644 config/udev/enable_codel create mode 100755 config/w_scan/w_scan_start create mode 100644 doc/language_issues.nl mode change 100755 => 100644 html/cgi-bin/vpnmain.cgi create mode 100644 langs/nl/cgi-bin/nl.pl create mode 100644 langs/nl/install/lang_nl.c create mode 100644 lfs/acpid delete mode 100644 lfs/applejuice create mode 100644 lfs/cairo delete mode 100644 lfs/centerim create mode 100644 lfs/cifs-utils create mode 100644 lfs/conntrack-tools delete mode 100644 lfs/dahdi create mode 100644 lfs/dejavu-fonts-ttf create mode 100644 lfs/dvb-firmwares create mode 100644 lfs/fstrim delete mode 100644 lfs/fw_ath9k_htc create mode 100644 lfs/gmp-compat create mode 100644 lfs/gpgme delete mode 100644 lfs/hddtemp delete mode 100644 lfs/ipfireseeder delete mode 100644 lfs/iptstate delete mode 100644 lfs/kqemu delete mode 100644 lfs/kudzu delete mode 100644 lfs/libaal create mode 100644 lfs/libassuan create mode 100644 lfs/libffi create mode 100644 lfs/libgpg-error create mode 100644 lfs/libmnl delete mode 100644 lfs/libsafe delete mode 100644 lfs/linux-libc-header create mode 100644 lfs/linux2 delete mode 100644 lfs/madwifi create mode 100644 lfs/mpfr create mode 100644 lfs/pakfire3 delete mode 100644 lfs/pakfire3-deps create mode 100644 lfs/pango create mode 100644 lfs/pcre-compat create mode 100644 lfs/pixman create mode 100644 lfs/pycurl create mode 100644 lfs/pygpgme delete mode 100644 lfs/qemu-kqemu create mode 100644 lfs/readline-compat delete mode 100644 lfs/reiser4progs create mode 100644 lfs/rpi-firmware delete mode 100644 lfs/splix delete mode 100644 lfs/videolan create mode 100644 src/initscripts/init.d/acpid delete mode 100644 src/initscripts/init.d/ipfireseeder mode change 100755 => 100644 src/initscripts/init.d/minidlna mode change 100755 => 100644 src/initscripts/init.d/network-vlans create mode 100644 src/initscripts/init.d/networking/red.up/01-conntrack-cleanup create mode 100644 src/initscripts/init.d/networking/red.up/98-leds delete mode 100644 src/install+setup/install/probehw.sh delete mode 100644 src/misc-progs/getiptstate.c delete mode 100644 src/paks/applejuice/install.sh delete mode 100644 src/paks/applejuice/uninstall.sh delete mode 100644 src/paks/applejuice/update.sh create mode 100644 src/paks/elinks/install.sh create mode 100644 src/paks/elinks/uninstall.sh create mode 100644 src/paks/elinks/update.sh delete mode 100644 src/paks/ipfireseeder/install.sh delete mode 100644 src/paks/ipfireseeder/uninstall.sh delete mode 100644 src/paks/ipfireseeder/update.sh delete mode 100644 src/patches/bash-3.1-fixes-8.patch delete mode 100644 src/patches/bash-3.1-login.patch create mode 100644 src/patches/bash-3.2-ssh_source_bash.patch create mode 100644 src/patches/bash-4.0-paths-1.patch create mode 100644 src/patches/bash-4.0-profile-1.patch create mode 100644 src/patches/bash/bash32-001 create mode 100644 src/patches/bash/bash32-002 create mode 100644 src/patches/bash/bash32-003 create mode 100644 src/patches/bash/bash32-004 create mode 100644 src/patches/bash/bash32-005 create mode 100644 src/patches/bash/bash32-006 create mode 100644 src/patches/bash/bash32-007 create mode 100644 src/patches/bash/bash32-008 create mode 100644 src/patches/bash/bash32-009 create mode 100644 src/patches/bash/bash32-010 create mode 100644 src/patches/bash/bash32-011 create mode 100644 src/patches/bash/bash32-012 create mode 100644 src/patches/bash/bash32-013 create mode 100644 src/patches/bash/bash32-014 create mode 100644 src/patches/bash/bash32-015 create mode 100644 src/patches/bash/bash32-016 create mode 100644 src/patches/bash/bash32-017 create mode 100644 src/patches/bash/bash32-018 create mode 100644 src/patches/bash/bash32-019 create mode 100644 src/patches/bash/bash32-020 create mode 100644 src/patches/bash/bash32-021 create mode 100644 src/patches/bash/bash32-022 create mode 100644 src/patches/bash/bash32-023 create mode 100644 src/patches/bash/bash32-024 create mode 100644 src/patches/bash/bash32-025 create mode 100644 src/patches/bash/bash32-026 create mode 100644 src/patches/bash/bash32-027 create mode 100644 src/patches/bash/bash32-028 create mode 100644 src/patches/bash/bash32-029 create mode 100644 src/patches/bash/bash32-030 create mode 100644 src/patches/bash/bash32-031 create mode 100644 src/patches/bash/bash32-032 create mode 100644 src/patches/bash/bash32-033 create mode 100644 src/patches/bash/bash32-034 create mode 100644 src/patches/bash/bash32-035 create mode 100644 src/patches/bash/bash32-036 create mode 100644 src/patches/bash/bash32-037 create mode 100644 src/patches/bash/bash32-038 create mode 100644 src/patches/bash/bash32-039 create mode 100644 src/patches/bash/bash32-040 create mode 100644 src/patches/bash/bash32-041 create mode 100644 src/patches/bash/bash32-042 create mode 100644 src/patches/bash/bash32-043 create mode 100644 src/patches/bash/bash32-044 create mode 100644 src/patches/bash/bash32-045 create mode 100644 src/patches/bash/bash32-046 create mode 100644 src/patches/bash/bash32-047 create mode 100644 src/patches/bash/bash32-048 create mode 100644 src/patches/bash/bash32-049 create mode 100644 src/patches/bash/bash32-050 create mode 100644 src/patches/bash/bash32-051 delete mode 100644 src/patches/binutils-2.18-configure-1.patch delete mode 100644 src/patches/ccache-3.1.6-no_compiler_mtime.patch delete mode 100644 src/patches/compat-wireless-3.0-libertas_uap.patch create mode 100644 src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch create mode 100644 src/patches/compat-wireless-3.5-libertas_uap.patch create mode 100644 src/patches/compat-wireless-3.6.8-remove_3.1_cpufreq_backport.patch create mode 100644 src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch create mode 100644 src/patches/coreutils-5.96-futimes.patch create mode 100644 src/patches/cyrus-sasl-2.1.22-bad-elif.patch create mode 100644 src/patches/dbus-1.0.3-compile-fix-1.patch create mode 100644 src/patches/dhcp-3.1_linux3.patch create mode 100644 src/patches/directfb-1.1.1-fix-mknod.patch delete mode 100644 src/patches/gcc-4.0.4-specs-1.patch delete mode 100644 src/patches/gcc-4.1.2-arm-linux-soft-float.patch delete mode 100644 src/patches/gcc-4.1.2-fix_linker_version_detection.patch delete mode 100644 src/patches/gcc-4.1.2-gcc_eh.patch delete mode 100644 src/patches/gcc-4.1.2-specs-1.patch create mode 100644 src/patches/gcc-4.4.3-startfiles_fix-1.patch delete mode 100644 src/patches/gcc-libstdc++-pic.patch delete mode 100644 src/patches/gcc-sdk-libstdc++-includes.patch delete mode 100644 src/patches/gcc-uclibc-conf.patch delete mode 100644 src/patches/gcc-uclibc-locale.patch create mode 100644 src/patches/gcc/gcc44-build-id.patch create mode 100644 src/patches/gcc/gcc44-c++-builtin-redecl.patch create mode 100644 src/patches/gcc/gcc44-i386-libgomp.patch create mode 100644 src/patches/gcc/gcc44-libtool-no-rpath.patch create mode 100644 src/patches/gcc/gcc44-no-add-needed.patch create mode 100644 src/patches/gcc/gcc44-pr33763.patch create mode 100644 src/patches/gcc/gcc44-rh330771.patch create mode 100644 src/patches/gcc/gcc44-rh533181.patch create mode 100644 src/patches/gcc/gcc44-rh610785.patch create mode 100644 src/patches/gcc/gcc44-unwind-debug-hook.patch delete mode 100644 src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch delete mode 100644 src/patches/glibc-2.3.6-inotify-1.patch delete mode 100644 src/patches/glibc-2.3.6-linux_types-1.patch create mode 100644 src/patches/glibc-arm-dont-use-swp.patch create mode 100644 src/patches/glibc-cfi-entry-not-closed.patch delete mode 100644 src/patches/glibc-ports-avoid-using-asm-procinfo.patch create mode 100644 src/patches/glibc-remove-ctors-dtors-output-sections.patch create mode 100644 src/patches/glibc-resolv-stack_chk_fail.patch create mode 100644 src/patches/glibc-test-installation.pl-libgcc_s.patch create mode 100644 src/patches/glibc-test-installation.pl-nss_test1.patch create mode 100644 src/patches/glibc/glibc-aliasing.patch create mode 100644 src/patches/glibc/glibc-fedora.patch create mode 100644 src/patches/glibc/glibc-getlogin-r.patch create mode 100644 src/patches/glibc/glibc-localedata.patch create mode 100644 src/patches/glibc/glibc-recvmmsg.patch create mode 100644 src/patches/glibc/glibc-rh580498.patch create mode 100644 src/patches/glibc/glibc-rh582738.patch create mode 100644 src/patches/glibc/glibc-rh587360.patch create mode 100644 src/patches/glibc/glibc-rh593396.patch create mode 100644 src/patches/glibc/glibc-rh593686.patch create mode 100644 src/patches/glibc/glibc-rh601686.patch create mode 100644 src/patches/glibc/glibc-rh607010.patch create mode 100644 src/patches/glibc/glibc-rh607461.patch create mode 100644 src/patches/glibc/glibc-rh615090.patch create mode 100644 src/patches/glibc/glibc-rh615701.patch create mode 100644 src/patches/glibc/glibc-rh621959.patch create mode 100644 src/patches/glibc/glibc-rh623187.patch create mode 100644 src/patches/glibc/glibc-rh625893.patch create mode 100644 src/patches/glibc/glibc-rh630801.patch create mode 100644 src/patches/glibc/glibc-rh631011.patch create mode 100644 src/patches/glibc/glibc-rh641128.patch create mode 100644 src/patches/glibc/glibc-rh642584.patch create mode 100644 src/patches/glibc/glibc-rh643822.patch create mode 100644 src/patches/glibc/glibc-rh645672.patch create mode 100644 src/patches/glibc/glibc-rh646954.patch create mode 100644 src/patches/glibc/glibc-rh647448.patch create mode 100644 src/patches/glibc/glibc-rh652661.patch create mode 100644 src/patches/glibc/glibc-rh656014.patch create mode 100644 src/patches/glibc/glibc-rh656530.patch create mode 100644 src/patches/glibc/glibc-rh657572.patch create mode 100644 src/patches/glibc/glibc-rh661982.patch create mode 100644 src/patches/glibc/glibc-rh667974.patch create mode 100644 src/patches/glibc/glibc-rh676076.patch create mode 100644 src/patches/glibc/glibc-rh676591.patch create mode 100644 src/patches/glibc/glibc-rh681054.patch create mode 100644 src/patches/glibc/glibc-rh688720.patch create mode 100644 src/patches/glibc/glibc-rh688980.patch create mode 100644 src/patches/glibc/glibc-rh689471.patch create mode 100644 src/patches/glibc/glibc-rh692177.patch create mode 100644 src/patches/glibc/glibc-rh692838.patch create mode 100644 src/patches/glibc/glibc-rh694386.patch create mode 100644 src/patches/glibc/glibc-rh695595.patch create mode 100644 src/patches/glibc/glibc-rh695963.patch create mode 100644 src/patches/glibc/glibc-rh696472.patch create mode 100644 src/patches/glibc/glibc-rh697421.patch create mode 100644 src/patches/glibc/glibc-rh699724.patch create mode 100644 src/patches/glibc/glibc-rh700507.patch create mode 100644 src/patches/glibc/glibc-rh703480.patch create mode 100644 src/patches/glibc/glibc-rh703481.patch create mode 100644 src/patches/glibc/glibc-rh705465.patch create mode 100644 src/patches/glibc/glibc-rh711927.patch create mode 100644 src/patches/glibc/glibc-rh711987.patch create mode 100644 src/patches/glibc/glibc-rh712248.patch create mode 100644 src/patches/glibc/glibc-rh713134.patch create mode 100644 src/patches/glibc/glibc-rh714823.patch create mode 100644 src/patches/glibc/glibc-rh718057.patch create mode 100644 src/patches/glibc/glibc-rh726517.patch create mode 100644 src/patches/glibc/glibc-rh730379.patch create mode 100644 src/patches/glibc/glibc-rh731042.patch create mode 100644 src/patches/glibc/glibc-rh736346.patch create mode 100644 src/patches/glibc/glibc-rh737778.patch create mode 100644 src/patches/glibc/glibc-rh738665.patch create mode 100644 src/patches/glibc/glibc-rh738763.patch create mode 100644 src/patches/glibc/glibc-rh739184.patch create mode 100644 src/patches/glibc/glibc-rh739971.patch create mode 100644 src/patches/glibc/glibc-rh740506-2.patch create mode 100644 src/patches/glibc/glibc-rh740506.patch create mode 100644 src/patches/glibc/glibc-rh749188.patch create mode 100644 src/patches/glibc/glibc-rh750531.patch create mode 100644 src/patches/glibc/glibc-rh751750.patch create mode 100644 src/patches/glibc/glibc-rh752122.patch create mode 100644 src/patches/glibc/glibc-rh757888.patch create mode 100644 src/patches/glibc/glibc-rh766513.patch create mode 100644 src/patches/glibc/glibc-rh767146.patch create mode 100644 src/patches/glibc/glibc-rh767693-2.patch create mode 100644 src/patches/glibc/glibc-rh767693.patch create mode 100644 src/patches/glibc/glibc-rh767746.patch create mode 100644 src/patches/glibc/glibc-rh771342.patch create mode 100644 src/patches/glibc/glibc-rh782585.patch create mode 100644 src/patches/glibc/glibc-rh784402.patch create mode 100644 src/patches/glibc/glibc-rh785984.patch create mode 100644 src/patches/glibc/glibc-rh788959-2.patch create mode 100644 src/patches/glibc/glibc-rh788959.patch create mode 100644 src/patches/glibc/glibc-rh789189.patch create mode 100644 src/patches/glibc/glibc-rh789209.patch create mode 100644 src/patches/glibc/glibc-rh789238-2.patch create mode 100644 src/patches/glibc/glibc-rh789238.patch create mode 100644 src/patches/glibc/glibc-rh794817-2.patch create mode 100644 src/patches/glibc/glibc-rh794817.patch create mode 100644 src/patches/glibc/glibc-rh795498.patch create mode 100644 src/patches/glibc/glibc-rh797094-1.patch create mode 100644 src/patches/glibc/glibc-rh797094-2.patch create mode 100644 src/patches/glibc/glibc-rh804630.patch create mode 100644 src/patches/glibc/glibc-rh804689.patch create mode 100644 src/patches/glibc/glibc-rh808337.patch create mode 100644 src/patches/glibc/glibc-rh808545.patch create mode 100644 src/patches/glibc/glibc-rh809602.patch create mode 100644 src/patches/glibc/glibc-rh833716.patch create mode 100644 src/patches/glibc/glibc-rh837026.patch delete mode 100644 src/patches/grep-2.5.1a-redhat_fixes-2.patch delete mode 100644 src/patches/grub-0.90-append.patch delete mode 100644 src/patches/grub-0.90-symlinkmenulst.patch delete mode 100644 src/patches/grub-0.91-splashimagehelp.patch delete mode 100644 src/patches/grub-0.93-configfile.patch delete mode 100644 src/patches/grub-0.93-endedit.patch delete mode 100644 src/patches/grub-0.93-graphics-bootterm.patch delete mode 100644 src/patches/grub-0.93-special-device-names.patch delete mode 100644 src/patches/grub-0.94-i2o.patch delete mode 100644 src/patches/grub-0.94-installcopyonly.patch delete mode 100644 src/patches/grub-0.95-graphics.patch delete mode 100644 src/patches/grub-0.95-hiddenmenu-tweak.patch delete mode 100644 src/patches/grub-0.95-md-mbr.patch delete mode 100644 src/patches/grub-0.95-md-rework.patch delete mode 100644 src/patches/grub-0.95-md.patch delete mode 100644 src/patches/grub-0.95-moreraid.patch delete mode 100644 src/patches/grub-0.95-nonmbr.patch delete mode 100644 src/patches/grub-0.95-odirect.patch delete mode 100644 src/patches/grub-0.95-recheck-bad.patch delete mode 100644 src/patches/grub-0.95-splash-error-term.patch delete mode 100644 src/patches/grub-0.95-staticcurses.patch delete mode 100644 src/patches/grub-0.95-xpmjunk.patch delete mode 100644 src/patches/grub-0.97-bz429187-cciss.patch delete mode 100644 src/patches/grub-0.97-cmdline-size.patch delete mode 100644 src/patches/grub-0.97-datadir.patch delete mode 100644 src/patches/grub-0.97-disk_geometry-1.patch delete mode 100644 src/patches/grub-0.97-dmraid-partition-names.patch delete mode 100644 src/patches/grub-0.97-dmraid-recheck-bad.patch delete mode 100644 src/patches/grub-0.97-dmraid.patch delete mode 100644 src/patches/grub-0.97-install.in.patch delete mode 100644 src/patches/grub-0.97-mactel-kbd.patch delete mode 100644 src/patches/grub-0.97-mdadm-path.patch delete mode 100644 src/patches/grub-0.97-mpath.patch delete mode 100644 src/patches/grub-0.97-nx-multiinstall.patch delete mode 100644 src/patches/grub-0.97-nxstack.patch delete mode 100644 src/patches/grub-0.97-once.patch delete mode 100644 src/patches/grub-0.97-prototypes.patch delete mode 100644 src/patches/grub-0.97-stderr.patch delete mode 100644 src/patches/grub-0.97_grub-install_virtio.patch create mode 100644 src/patches/grub-gentoo-14.patch create mode 100644 src/patches/iptables-1.4.12-IMQ-test4.diff create mode 100644 src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch delete mode 100644 src/patches/iptables-1.4.6-errorno_includes.patch delete mode 100644 src/patches/iptables-1.4.6-imq_test1.patch delete mode 100644 src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch delete mode 100644 src/patches/kudzu-link-lintl.diff delete mode 100644 src/patches/kudzu-usbnet.patch delete mode 100644 src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch delete mode 100644 src/patches/kvm-kmod-3.0b_remove_pvclock_scale_delta_redefinition.patch create mode 100644 src/patches/libmad-0.15.1b-cflags-O2.patch create mode 100644 src/patches/libmad-0.15.1b-cflags.patch create mode 100644 src/patches/libnl-1.1-ULONG_MAX.patch delete mode 100644 src/patches/libsafe-alpha.diff delete mode 100644 src/patches/libsafe-functioncaching.diff create mode 100644 src/patches/libsigc++-gcc43.patch create mode 100644 src/patches/linux-2.6-arm-asm-constraint.patch delete mode 100644 src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch create mode 100644 src/patches/linux-2.6.32-crypto-mv_cesa.patch delete mode 100644 src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch delete mode 100644 src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch create mode 100644 src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch create mode 100644 src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch create mode 100644 src/patches/linux-3.1-imq.patch create mode 100644 src/patches/linux-3.2-0001-panda-wlan-fix.patch create mode 100644 src/patches/linux-3.2-0002-panda-i2c.patch create mode 100644 src/patches/linux-3.2-imq.patch create mode 100644 src/patches/linux-3.2-panda-reboot.patch create mode 100644 src/patches/linux-3.2.25-arm_kirkwood_setups.patch create mode 100644 src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch create mode 100644 src/patches/linux-3.2.33-ledtrig-netdev-1.patch create mode 100644 src/patches/linux-3.2.33_ipg-fix-driver-name.patch delete mode 100644 src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch delete mode 100644 src/patches/miniupnpd-iptcrdr.patch delete mode 100644 src/patches/ncurses-5.5-fixes-1.patch create mode 100644 src/patches/netfilter_layer7_2.22_kernel3.0.patch create mode 100644 src/patches/netpbm-10.26.46-getline.patch create mode 100644 src/patches/openldap-gcc44-fixes.patch create mode 100644 src/patches/pakfire3-changes-for-ipfire2.diff create mode 100644 src/patches/pptp-1.7.2-compat.patch create mode 100644 src/patches/python-pycurl-fix-do_curl_reset-refcount.patch create mode 100644 src/patches/python-pycurl-no-static-libs.patch delete mode 100644 src/patches/qemu-kqemu_change-default-kqemu-bios.patch delete mode 100644 src/patches/readline-5.1-fixes-3.patch create mode 100644 src/patches/readline/readline52-001 create mode 100644 src/patches/readline/readline52-002 create mode 100644 src/patches/readline/readline52-003 create mode 100644 src/patches/readline/readline52-004 create mode 100644 src/patches/readline/readline52-005 create mode 100644 src/patches/readline/readline52-006 create mode 100644 src/patches/readline/readline52-007 create mode 100644 src/patches/readline/readline52-008 create mode 100644 src/patches/readline/readline52-009 create mode 100644 src/patches/readline/readline52-010 create mode 100644 src/patches/readline/readline52-011 create mode 100644 src/patches/readline/readline52-012 create mode 100644 src/patches/readline/readline52-013 create mode 100644 src/patches/readline/readline52-014 create mode 100644 src/patches/readline/readline62-001 create mode 100644 src/patches/readline/readline62-002 create mode 100644 src/patches/readline/readline62-003 create mode 100644 src/patches/readline/readline62-004 create mode 100644 src/patches/screen-4.0.3-stropts.patch delete mode 100644 src/patches/slang-1.4.9-uclibc.patch delete mode 100644 src/patches/texinfo-4.8-multibyte-1.patch delete mode 100644 src/patches/texinfo-4.8-tempfile_fix-2.patch delete mode 100644 src/patches/uClibc-gcc4-genwctype.patch create mode 100644 src/patches/udev-125-ext4_wo_journal.patch delete mode 100644 src/patches/udev-125-netif_rename.patch create mode 100644 src/patches/udev-141_no_netif_rename.patch delete mode 100644 src/patches/udev-config-6.2_persistent-storage-fix.patch delete mode 100644 src/patches/udev-config-6.2_remove-lfs-usb-rule.patch create mode 100644 src/patches/v4l-dvb_bestunar_us638x.patch create mode 100644 src/patches/v4l-dvb_fix_tua6034_pll.patch create mode 100644 src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch create mode 100644 src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch create mode 100644 src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch create mode 100644 src/patches/vdr-1.6.0-gcc44-fixes.patch create mode 100644 src/patches/vdr-plugin-epgsearch-gcc44.patch delete mode 100644 src/patches/w_scan-ipfire.patch delete mode 100755 src/scripts/vpn-watch create mode 100755 src/stripper
Difference in files: diff --git a/config/acpid/power b/config/acpid/power new file mode 100644 index 0000000..7406317 --- /dev/null +++ b/config/acpid/power @@ -0,0 +1,4 @@ +# ACPID config to power down machine if powerbutton is pressed + +event=button/power.* +action=/etc/acpi/actions/power.sh diff --git a/config/acpid/power.sh b/config/acpid/power.sh new file mode 100644 index 0000000..839a318 --- /dev/null +++ b/config/acpid/power.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# Shutdown the system immediately +shutdown -h now diff --git a/config/asterisk/asterisk.makeopts b/config/asterisk/asterisk.makeopts index 6fa4c11..60a311b 100644 --- a/config/asterisk/asterisk.makeopts +++ b/config/asterisk/asterisk.makeopts @@ -1,26 +1,31 @@ -MENUSELECT_ADDONS=format_mp3 -MENUSELECT_APPS=app_fax app_jack app_osplookup +MENUSELECT_ADDONS=format_mp3 +MENUSELECT_APPS=app_flash app_meetme app_page app_dahdiras app_fax app_jack app_osplookup app_dahdibarge MENUSELECT_BRIDGES= MENUSELECT_CDR=cdr_adaptive_odbc cdr_odbc cdr_pgsql cdr_radius cdr_tds cdr_sqlite MENUSELECT_CEL=cel_odbc cel_pgsql cel_radius cel_tds -MENUSELECT_CHANNELS=chan_console chan_gtalk chan_jingle chan_misdn chan_nbs chan_vpb chan_h323 -MENUSELECT_CODECS=codec_ilbc codec_resample codec_speex +MENUSELECT_CHANNELS=chan_dahdi chan_console chan_gtalk chan_jingle chan_misdn chan_nbs chan_vpb chan_h323 +MENUSELECT_CODECS=codec_dahdi codec_resample codec_speex MENUSELECT_FORMATS= MENUSELECT_FUNCS=func_odbc func_speex MENUSELECT_PBX=pbx_lua -MENUSELECT_RES=res_calendar_caldav res_calendar_ews res_calendar_exchange res_calendar_icalendar res_config_odbc res_http_post res_odbc res_srtp res_timing_timerfd res_ais res_config_pgsql res_config_sqlite res_jabber res_timing_kqueue +MENUSELECT_RES=res_calendar_caldav res_calendar_ews res_calendar_exchange res_calendar_icalendar res_config_odbc res_http_post res_odbc res_srtp res_timing_dahdi res_ais res_config_pgsql res_config_sqlite res_jabber res_timing_kqueue MENUSELECT_TESTS=test_acl test_amihooks test_aoc test_app test_ast_format_str_reduce test_astobj2 test_config test_db test_devicestate test_dlinklists test_event test_expr test_func_file test_gosub test_heap test_linkedlists test_locale test_logger test_netsock2 test_pbx test_poll test_sched test_security_events test_skel test_stringfields test_strings test_substitution test_time test_utils MENUSELECT_CFLAGS=LOADABLE_MODULES -MENUSELECT_OPTS_app_voicemail= -MENUSELECT_UTILS= +MENUSELECT_OPTS_app_voicemail=FILE_STORAGE +MENUSELECT_UTILS=astcanary aelparse astman check_expr check_expr2 conf2ael hashtest hashtest2 muted refcounter smsq stereorize streamplayer MENUSELECT_AGIS= MENUSELECT_EMBED= MENUSELECT_CORE_SOUNDS=CORE-SOUNDS-EN-GSM MENUSELECT_MOH=MOH-OPSOUND-GSM MENUSELECT_EXTRA_SOUNDS=EXTRA-SOUNDS-EN-GSM -MENUSELECT_BUILD_DEPS=chan_local app_voicemail app_meetme res_monitor res_agi res_adsi res_smdi res_crypto res_pktccops res_ael_share res_fax G711_NEW_ALGORITHM +MENUSELECT_BUILD_DEPS=chan_local app_voicemail res_monitor res_agi res_adsi res_smdi res_crypto res_pktccops res_ael_share res_fax G711_NEW_ALGORITHM +MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_flash +MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_meetme +MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_page +MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_dahdiras MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_jack MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_osplookup +MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_dahdibarge MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_adaptive_odbc MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_odbc MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_pgsql @@ -31,6 +36,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_odbc MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_pgsql MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_radius MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_tds +MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_dahdi MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_console MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_gtalk MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_jingle @@ -38,6 +44,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_misdn MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_nbs MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_vpb MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_h323 +MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_dahdi MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_resample MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_speex MENUSELECT_DEPSFAILED=MENUSELECT_FUNCS=func_odbc @@ -51,7 +58,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_odbc MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_http_post MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_odbc MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_srtp -MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_timing_timerfd +MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_timing_dahdi MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_ais MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_pgsql MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_sqlite diff --git a/config/backup/backup.pl b/config/backup/backup.pl index d2d6816..f9b8302 100644 --- a/config/backup/backup.pl +++ b/config/backup/backup.pl @@ -62,6 +62,8 @@ elsif ($ARGV[0] eq 'exclude') { } elsif ($ARGV[0] eq 'restore') { system("cd / && tar -xvz -p -f /tmp/restore.ipf"); + #Here some converter scripts to correct old Backups (before core 65) + system("/usr/sbin/ovpn-ccd-convert"); } elsif ($ARGV[0] eq 'restoreaddon') { if ( -e "/tmp/$ARGV[1]" ){system("mv /tmp/$ARGV[1] /var/ipfire/backup/addons/backup/$ARGV[1]");} diff --git a/config/backup/includes/lcr b/config/backup/includes/lcr index 71f4cac..618f4c7 100644 --- a/config/backup/includes/lcr +++ b/config/backup/includes/lcr @@ -3,3 +3,4 @@ /var/ipfire/lcr/interface.conf /var/ipfire/lcr/options.conf /var/ipfire/lcr/routing.conf +/var/log/lcr diff --git a/config/backup/includes/pakfire3 b/config/backup/includes/pakfire3 new file mode 100644 index 0000000..404e92c --- /dev/null +++ b/config/backup/includes/pakfire3 @@ -0,0 +1 @@ +/etc/pakfire diff --git a/config/bash/dot_bash_logout b/config/bash/dot_bash_logout new file mode 100644 index 0000000..d56620d --- /dev/null +++ b/config/bash/dot_bash_logout @@ -0,0 +1,10 @@ +# Begin ~/.bash_logout + +# Personal items to perform on logout. + +# Clear console to not leak any information. +clear + +echo "Bye bye." + +# End ~/.bash_logout diff --git a/config/bash/dot_bash_profile b/config/bash/dot_bash_profile new file mode 100644 index 0000000..3dc099a --- /dev/null +++ b/config/bash/dot_bash_profile @@ -0,0 +1,12 @@ +# .bash_profile + +# Get the aliases and functions +if [ -f ~/.bashrc ]; then + . ~/.bashrc +fi + +# User specific environment and startup programs + +PATH=$PATH:$HOME/bin + +export PATH diff --git a/config/bash/dot_bashrc b/config/bash/dot_bashrc new file mode 100644 index 0000000..90b96b4 --- /dev/null +++ b/config/bash/dot_bashrc @@ -0,0 +1,18 @@ +# .bashrc + +# User specific aliases and functions + +alias rm='rm -i' +alias cp='cp -i' +alias mv='mv -i' + +# Source global definitions +if [ -f /etc/bashrc ]; then + . /etc/bashrc +fi + +# Automatically logout only console users after 10 minutes. +export TMOUT=0 +if [ -z "${SSH_TTY}" ] && [ -z "${STY}" ]; then + export TMOUT=600 +fi diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index c14f990..f94cdbf 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -401,7 +401,6 @@ sub validipandmask
sub checksubnets { - my %ccdconfhash=(); my @ccdconf=(); my $ccdname=$_[0]; @@ -409,20 +408,16 @@ sub checksubnets my $errormessage; my ($ip,$cidr)=split(///,$ccdnet); $cidr=&iporsubtocidr($cidr); - - #get OVPN-Subnet (dynamic range) my %ovpnconf=(); &readhash("${General::swroot}/ovpn/settings", %ovpnconf); my ($ovpnip,$ovpncidr)= split (///,$ovpnconf{'DOVPN_SUBNET'}); $ovpncidr=&iporsubtocidr($ovpncidr); - #check if we try to use same network as ovpn server if ("$ip/$cidr" eq "$ovpnip/$ovpncidr") { $errormessage=$errormessage.$Lang::tr{'ccd err isovpnnet'}."<br>"; return $errormessage; } - #check if we use a network-name/subnet that already exists &readhasharray("${General::swroot}/ovpn/ccd.conf", %ccdconfhash); foreach my $key (keys %ccdconfhash) { @@ -438,33 +433,22 @@ sub checksubnets $errormessage=$errormessage.$Lang::tr{'ccd err issubnet'}."<br>"; return $errormessage; } - } - #check if we use a name which is already used by ovpn - - - - - #check if we use a ipsec right network which is already defined my %ipsecconf=(); &General::readhasharray("${General::swroot}/vpn/config", %ipsecconf); foreach my $key (keys %ipsecconf){ if ($ipsecconf{$key}[11] ne ''){ - #$errormessage="DRIN!"; - #return $errormessage; - my ($ipsecip,$ipsecsub) = split (///, $ipsecconf{$key}[11]); $ipsecsub=&iporsubtodec($ipsecsub); - - if ( &IpInSubnet ($ip,$ipsecip,$ipsecsub) ){ - $errormessage=$Lang::tr{'ccd err isipsecnet'}." Name: $ipsecconf{$key}[2]"; - return $errormessage; + if($ipsecconf{$key}[1] ne $ccdname){ + if ( &IpInSubnet ($ip,$ipsecip,$ipsecsub) ){ + $errormessage=$Lang::tr{'ccd err isipsecnet'}." Name: $ipsecconf{$key}[1]"; + return $errormessage; + } } } } - - #check if we use one of ipfire's networks (green,orange,blue) my %ownnet=(); &readhash("${General::swroot}/ethernet/settings", %ownnet); @@ -472,9 +456,6 @@ sub checksubnets if (($ownnet{'ORANGE_NETADDRESS'} ne '' && $ownnet{'ORANGE_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ownnet{'ORANGE_NETADDRESS'},$ip,&iporsubtodec($cidr))){ $errormessage=$Lang::tr{'ccd err orange'};return $errormessage;} if (($ownnet{'BLUE_NETADDRESS'} ne '' && $ownnet{'BLUE_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ownnet{'BLUE_NETADDRESS'},$ip,&iporsubtodec($cidr))){ $errormessage=$Lang::tr{'ccd err blue'};return $errormessage;} if (($ownnet{'RED_NETADDRESS'} ne '' && $ownnet{'RED_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ownnet{'RED_NETADDRESS'},$ip,&iporsubtodec($cidr))){ $errormessage=$Lang::tr{'ccd err red'};return $errormessage;} - - - }
diff --git a/config/collectd/collectd.conf b/config/collectd/collectd.conf index 939dd4b..67d9e19 100644 --- a/config/collectd/collectd.conf +++ b/config/collectd/collectd.conf @@ -68,7 +68,7 @@ include "/etc/collectd.precache" Process "nmbd" Process "squid" Process "squidguard" - Process "pluto" + Process "charon" Process "snort" Process "openvpn" Process "qemu" diff --git a/config/etc/bashrc b/config/etc/bashrc index e35209f..901f5d5 100644 --- a/config/etc/bashrc +++ b/config/etc/bashrc @@ -1,46 +1,89 @@ -# Begin /etc/bashrc -# Written for Beyond Linux From Scratch -# by James Robertson jameswrobertson@earthlink.net -# updated by Bruce Dubbs bdubbs@linuxfromscratch.org +# /etc/bashrc
-# Make sure that the terminal is set up properly for each shell +# System wide functions and aliases +# Environment stuff goes in /etc/profile
-if [ -f /etc/profile.d/tinker-term.sh ]; then - source /etc/profile.d/tinker-term.sh -fi - -# System wide aliases and functions. - -# System wide environment variables and startup programs should go into -# /etc/profile. Personal environment variables and startup programs -# should go into ~/.bash_profile. Personal aliases and functions should -# go into ~/.bashrc - -# Provides a colored /bin/ls command. Used in conjunction with code in -# /etc/profile. +# It's NOT a good idea to change this file unless you know what you +# are doing. It's much better to create a custom.sh shell script in +# /etc/profile.d/ to make custom changes to your environment, as this +# will prevent the need for merging in future updates.
-alias ls='ls --color=auto' -alias ll='ls -la' -alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' - -# Make the shell a little bit more interactive -# to prevent the deletion of some files -alias mv='mv -i' -alias rm='rm -i' -alias cp='cp -i' - -# Midnight Commander isn't compatible to UTF8. -# So we use it in ACSII-Mode. +# are we an interactive shell? +if [ "$PS1" ]; then + if [ -z "$PROMPT_COMMAND" ]; then + case $TERM in + xterm*) + if [ -e /etc/sysconfig/bash-prompt-xterm ]; then + PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm + else + PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' + fi + ;; + screen) + if [ -e /etc/sysconfig/bash-prompt-screen ]; then + PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen + else + PROMPT_COMMAND='printf "\033]0;%s@%s:%s\033\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' + fi + ;; + *) + [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default + ;; + esac + fi + # Turn on parallel history + shopt -s histappend + history -a + # Turn on checkwinsize + shopt -s checkwinsize + [ "$PS1" = "\s-\v\$ " ] && PS1="[\u@\h \W]\$ " + # You might want to have e.g. tty in prompt (e.g. more virtual machines) + # and console windows + # If you want to do so, just add e.g. + # if [ "$PS1" ]; then + # PS1="[\u@\h:\l \W]\$ " + # fi + # to your custom modification shell script in /etc/profile.d/ directory +fi
-alias mc='mc -a' +if ! shopt -q login_shell ; then # We're not a login shell + # Need to redefine pathmunge, it get's undefined at the end of /etc/profile + pathmunge () { + case ":${PATH}:" in + *:"$1":*) + ;; + *) + if [ "$2" = "after" ] ; then + PATH=$PATH:$1 + else + PATH=$1:$PATH + fi + esac + }
-# Provides prompt for non-login shells, specifically shells started -# in the X environment. [Review the LFS archive thread titled -# PS1 Environment Variable for a great case study behind this script -# addendum.] + # By default, we want umask to get set. This sets it for non-login shell. + # Current threshold for system reserved uid/gids is 200 + # You could check uidgid reservation validity in + # /usr/share/doc/setup-*/uidgid file + if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then + umask 002 + else + umask 022 + fi
-#export PS1="\033[0m[\033[1;33m\u\033[1;37m@\033[1;32m]\h \033[1;31m\w\033[0m]\$ " -export PS1="[\u@\h \w]\$ " -#export PS1='\u@\h:\w$ ' + # Only display echos from profile.d scripts if we are no login shell + # and interactive - otherwise just process them to set envvars + for i in /etc/profile.d/*.sh; do + if [ -r "$i" ]; then + if [ "$PS1" ]; then + . "$i" + else + . "$i" >/dev/null + fi + fi + done
-# End /etc/bashrc + unset i + unset -f pathmunge +fi +# vim:ts=4:sw=4 diff --git a/config/etc/group b/config/etc/group index 3b155fa..46e4b80 100644 --- a/config/etc/group +++ b/config/etc/group @@ -14,7 +14,7 @@ dialout:x:16: floppy:x:19: tape:x:20: utmp:x:22: -squid:x:23: +squid:x:23:nobody ntp:x:38: dip:x:40: mysql:x:41: diff --git a/config/etc/inputrc b/config/etc/inputrc index 7a7908c..883686c 100644 --- a/config/etc/inputrc +++ b/config/etc/inputrc @@ -1,42 +1,42 @@ -# Begin /etc/inputrc +# do not bell on tab-completion +#set bell-style none
-# Allow the command prompt to wrap to the next line -set horizontal-scroll-mode Off +set meta-flag on +set input-meta on +set convert-meta off +set output-meta on
-# Enable 8bit input -set meta-flag On -set input-meta On +# Completed names which are symbolic links to +# directories have a slash appended. +set mark-symlinked-directories on
-# Turns off 8th bit stripping -set convert-meta Off +$if mode=emacs
-# Keep the 8th bit for display -set output-meta On - -# none, visible or audible -set bell-style none - -# All of the following map the escape sequence of the -# value contained inside the 1st argument to the -# readline specific functions - -"\eOd": backward-word -"\eOc": forward-word - -# for linux console +# for linux console and RH/Debian xterm "\e[1~": beginning-of-line "\e[4~": end-of-line -"\e[5~": beginning-of-history -"\e[6~": end-of-history +# commented out keymappings for pgup/pgdown to reach begin/end of history +#"\e[5~": beginning-of-history +#"\e[6~": end-of-history +"\e[5~": history-search-backward +"\e[6~": history-search-forward "\e[3~": delete-char "\e[2~": quoted-insert +"\e[5C": forward-word +"\e[5D": backward-word +"\e[1;5C": forward-word +"\e[1;5D": backward-word
-# for xterm +# for rxvt +"\e[8~": end-of-line +"\eOc": forward-word +"\eOd": backward-word + +# for non RH/Debian xterm, can't hurt for RH/DEbian xterm "\eOH": beginning-of-line "\eOF": end-of-line
-# for Konsole +# for freebsd console "\e[H": beginning-of-line "\e[F": end-of-line - -# End /etc/inputrc +$endif diff --git a/config/etc/modprobe.d/cfg80211 b/config/etc/modprobe.d/cfg80211 index 9e04ea6..e72bedd 100644 --- a/config/etc/modprobe.d/cfg80211 +++ b/config/etc/modprobe.d/cfg80211 @@ -1,2 +1 @@ -#options cfg80211 ieee80211_regdom=DE blacklist ieee80211 diff --git a/config/etc/profile b/config/etc/profile index 3c29219..2d66685 100644 --- a/config/etc/profile +++ b/config/etc/profile @@ -1,64 +1,78 @@ -# Begin /etc/profile -# Written for Beyond Linux From Scratch -# by James Robertson jameswrobertson@earthlink.net -# modifications by Dagmar d'Surreal rivyqntzne@pbzpnfg.arg +# /etc/profile
-# System wide environment variables and startup programs. +# System wide environment and startup programs, for login setup +# Functions and aliases go in /etc/bashrc
-# System wide aliases and functions should go in /etc/bashrc. Personal -# environment variables and startup programs should go into -# ~/.bash_profile. Personal aliases and functions should go into -# ~/.bashrc. +# It's NOT a good idea to change this file unless you know what you +# are doing. It's much better to create a custom.sh shell script in +# /etc/profile.d/ to make custom changes to your environment, as this +# will prevent the need for merging in future updates.
-# Functions to help us manage paths. Second argument is the name of the -# path variable to be modified (default: PATH) -pathremove () { - local IFS=':' - local NEWPATH - local DIR - local PATHVARIABLE=${2:-PATH} - for DIR in ${!PATHVARIABLE} ; do - if [ "$DIR" != "$1" ] ; then - NEWPATH=${NEWPATH:+$NEWPATH:}$DIR - fi - done - export $PATHVARIABLE="$NEWPATH" +pathmunge () { + case ":${PATH}:" in + *:"$1":*) + ;; + *) + if [ "$2" = "after" ] ; then + PATH=$PATH:$1 + else + PATH=$1:$PATH + fi + esac }
-pathprepend () { - pathremove $1 $2 - local PATHVARIABLE=${2:-PATH} - export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}" -} - -pathappend () { - pathremove $1 $2 - local PATHVARIABLE=${2:-PATH} - export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1" -}
+if [ -x /usr/bin/id ]; then + if [ -z "$EUID" ]; then + # ksh workaround + EUID=`id -u` + UID=`id -ru` + fi + USER="`id -un`" + LOGNAME=$USER + MAIL="/var/spool/mail/$USER" +fi
-# Set the initial path -export PATH=/bin:/usr/bin +# Path manipulation +if [ "$EUID" = "0" ]; then + pathmunge /sbin + pathmunge /usr/sbin + pathmunge /usr/local/sbin +else + pathmunge /usr/local/sbin after + pathmunge /usr/sbin after + pathmunge /sbin after +fi
-if [ $EUID -eq 0 ] ; then - pathappend /sbin:/usr/sbin - unset HISTFILE +HOSTNAME=`/bin/hostname 2>/dev/null` +HISTSIZE=1000 +if [ "$HISTCONTROL" = "ignorespace" ] ; then + export HISTCONTROL=ignoreboth +else + export HISTCONTROL=ignoredups fi
-# Setup some environment variables. -export HISTSIZE=1000 -export HISTIGNORE="&:[bf]g:exit" -export PS1="[\u@\h \w]\$ " -#export PS1='\u@\h:\w$ ' +export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL + +# By default, we want umask to get set. This sets it for login shell +# Current threshold for system reserved uid/gids is 200 +# You could check uidgid reservation validity in +# /usr/share/doc/setup-*/uidgid file +if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then + umask 002 +else + umask 022 +fi
-for script in /etc/profile.d/*.sh ; do - if [ -r $script ] ; then - . $script +for i in /etc/profile.d/*.sh ; do + if [ -r "$i" ]; then + if [ "${-#*i}" != "$-" ]; then + . "$i" + else + . "$i" >/dev/null 2>&1 fi + fi done
-# Now to clean up -unset pathremove pathprepend pathappend - -# End /etc/profile +unset i +unset pathmunge diff --git a/config/etc/securetty b/config/etc/securetty index 9a6a9fd..3a69d0b 100644 --- a/config/etc/securetty +++ b/config/etc/securetty @@ -5,6 +5,7 @@ tty4 tty5 tty6 ttyAMA0 +ttyO2 ttyS0 ttyS1 ttyS2 diff --git a/config/etc/sysctl.conf b/config/etc/sysctl.conf index 105feaa..df3ef5f 100644 --- a/config/etc/sysctl.conf +++ b/config/etc/sysctl.conf @@ -23,3 +23,8 @@ net.ipv4.conf.all.log_martians = 1 kernel.printk = 1 4 1 7 vm.swappiness=0 vm.mmap_min_addr = 4096 +vm.min_free_kbytes = 8192 + +# Disable IPv6 by default. +net.ipv6.conf.all.disable_ipv6 = 1 +net.ipv6.conf.default.disable_ipv6 = 1 diff --git a/config/fstrim/trim b/config/fstrim/trim new file mode 100644 index 0000000..6f61a63 --- /dev/null +++ b/config/fstrim/trim @@ -0,0 +1,8 @@ +#!/bin/bash +# +# Script to trim free space on solid state drives. +# +for i in / /boot /var; do + fstrim $i 2>&1 >/dev/null +done + diff --git a/config/grub/grub.conf b/config/grub/grub.conf index 553b10d..2199bf1 100644 --- a/config/grub/grub.conf +++ b/config/grub/grub.conf @@ -14,28 +14,8 @@ title IPFire kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 MOUNT initrd /ipfirerd-KVER.img savedefault 0 -title IPFire (vesafb 640x480) - root (hd0,0) - kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=785 MOUNT - initrd /ipfirerd-KVER.img - savedefault 1 -title IPFire (vesafb 800x600) - root (hd0,0) - kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=788 MOUNT - initrd /ipfirerd-KVER.img - savedefault 2 title IPFire (vesafb 1024x768) root (hd0,0) kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=791 MOUNT initrd /ipfirerd-KVER.img - savedefault 3 -title IPFire (acpi disabled) - root (hd0,0) - kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 acpi=off MOUNT - initrd /ipfirerd-KVER.img - savedefault 4 -title IPFire (single Processor) - root (hd0,0) - kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 nosmp MOUNT - initrd /ipfirerd-KVER.img - savedefault 5 + savedefault 1 diff --git a/config/hostapd/config b/config/hostapd/config index 88dca15..6158e2c 100644 --- a/config/hostapd/config +++ b/config/hostapd/config @@ -16,8 +16,8 @@ CONFIG_DRIVER_HOSTAP=y #CONFIG_DRIVER_WIRED=y
# Driver interface for madwifi driver -CONFIG_DRIVER_MADWIFI=y -CFLAGS += -I../../madwifi # change to the madwifi source directory +#CONFIG_DRIVER_MADWIFI=y +#CFLAGS += -I../../madwifi # change to the madwifi source directory
# Driver interface for Prism54 driver CONFIG_DRIVER_PRISM54=y diff --git a/config/hostapd/hostapd.conf b/config/hostapd/hostapd.conf index 5e67dce..e1f493f 100644 --- a/config/hostapd/hostapd.conf +++ b/config/hostapd/hostapd.conf @@ -1,4 +1,4 @@ -driver=madwifi +driver=nl80211 ######################### basic hostapd configuration ########################## # interface=blue0 diff --git a/config/include/obsolete_videodev.h b/config/include/obsolete_videodev.h new file mode 100644 index 0000000..c51a5f9 --- /dev/null +++ b/config/include/obsolete_videodev.h @@ -0,0 +1,320 @@ +/* + * Video for Linux version 1 - OBSOLETE + * + * Header file for v4l1 drivers and applications, for + * Linux kernels 2.2.x or 2.4.x. + * + * Provides header for legacy drivers and applications + * + * See http://linuxtv.org for more info + * + */ +#ifndef __LINUX_VIDEODEV_H +#define __LINUX_VIDEODEV_H + +#include <linux/types.h> +#include <linux/ioctl.h> +#include <linux/videodev2.h> + + +#define VID_TYPE_CAPTURE 1 /* Can capture */ +#define VID_TYPE_TUNER 2 /* Can tune */ +#define VID_TYPE_TELETEXT 4 /* Does teletext */ +#define VID_TYPE_OVERLAY 8 /* Overlay onto frame buffer */ +#define VID_TYPE_CHROMAKEY 16 /* Overlay by chromakey */ +#define VID_TYPE_CLIPPING 32 /* Can clip */ +#define VID_TYPE_FRAMERAM 64 /* Uses the frame buffer memory */ +#define VID_TYPE_SCALES 128 /* Scalable */ +#define VID_TYPE_MONOCHROME 256 /* Monochrome only */ +#define VID_TYPE_SUBCAPTURE 512 /* Can capture subareas of the image */ +#define VID_TYPE_MPEG_DECODER 1024 /* Can decode MPEG streams */ +#define VID_TYPE_MPEG_ENCODER 2048 /* Can encode MPEG streams */ +#define VID_TYPE_MJPEG_DECODER 4096 /* Can decode MJPEG streams */ +#define VID_TYPE_MJPEG_ENCODER 8192 /* Can encode MJPEG streams */ + +struct video_capability +{ + char name[32]; + int type; + int channels; /* Num channels */ + int audios; /* Num audio devices */ + int maxwidth; /* Supported width */ + int maxheight; /* And height */ + int minwidth; /* Supported width */ + int minheight; /* And height */ +}; + + +struct video_channel +{ + int channel; + char name[32]; + int tuners; + __u32 flags; +#define VIDEO_VC_TUNER 1 /* Channel has a tuner */ +#define VIDEO_VC_AUDIO 2 /* Channel has audio */ + __u16 type; +#define VIDEO_TYPE_TV 1 +#define VIDEO_TYPE_CAMERA 2 + __u16 norm; /* Norm set by channel */ +}; + +struct video_tuner +{ + int tuner; + char name[32]; + unsigned long rangelow, rangehigh; /* Tuner range */ + __u32 flags; +#define VIDEO_TUNER_PAL 1 +#define VIDEO_TUNER_NTSC 2 +#define VIDEO_TUNER_SECAM 4 +#define VIDEO_TUNER_LOW 8 /* Uses KHz not MHz */ +#define VIDEO_TUNER_NORM 16 /* Tuner can set norm */ +#define VIDEO_TUNER_STEREO_ON 128 /* Tuner is seeing stereo */ +#define VIDEO_TUNER_RDS_ON 256 /* Tuner is seeing an RDS datastream */ +#define VIDEO_TUNER_MBS_ON 512 /* Tuner is seeing an MBS datastream */ + __u16 mode; /* PAL/NTSC/SECAM/OTHER */ +#define VIDEO_MODE_PAL 0 +#define VIDEO_MODE_NTSC 1 +#define VIDEO_MODE_SECAM 2 +#define VIDEO_MODE_AUTO 3 + __u16 signal; /* Signal strength 16bit scale */ +}; + +struct video_picture +{ + __u16 brightness; + __u16 hue; + __u16 colour; + __u16 contrast; + __u16 whiteness; /* Black and white only */ + __u16 depth; /* Capture depth */ + __u16 palette; /* Palette in use */ +#define VIDEO_PALETTE_GREY 1 /* Linear greyscale */ +#define VIDEO_PALETTE_HI240 2 /* High 240 cube (BT848) */ +#define VIDEO_PALETTE_RGB565 3 /* 565 16 bit RGB */ +#define VIDEO_PALETTE_RGB24 4 /* 24bit RGB */ +#define VIDEO_PALETTE_RGB32 5 /* 32bit RGB */ +#define VIDEO_PALETTE_RGB555 6 /* 555 15bit RGB */ +#define VIDEO_PALETTE_YUV422 7 /* YUV422 capture */ +#define VIDEO_PALETTE_YUYV 8 +#define VIDEO_PALETTE_UYVY 9 /* The great thing about standards is ... */ +#define VIDEO_PALETTE_YUV420 10 +#define VIDEO_PALETTE_YUV411 11 /* YUV411 capture */ +#define VIDEO_PALETTE_RAW 12 /* RAW capture (BT848) */ +#define VIDEO_PALETTE_YUV422P 13 /* YUV 4:2:2 Planar */ +#define VIDEO_PALETTE_YUV411P 14 /* YUV 4:1:1 Planar */ +#define VIDEO_PALETTE_YUV420P 15 /* YUV 4:2:0 Planar */ +#define VIDEO_PALETTE_YUV410P 16 /* YUV 4:1:0 Planar */ +#define VIDEO_PALETTE_PLANAR 13 /* start of planar entries */ +#define VIDEO_PALETTE_COMPONENT 7 /* start of component entries */ +}; + +struct video_audio +{ + int audio; /* Audio channel */ + __u16 volume; /* If settable */ + __u16 bass, treble; + __u32 flags; +#define VIDEO_AUDIO_MUTE 1 +#define VIDEO_AUDIO_MUTABLE 2 +#define VIDEO_AUDIO_VOLUME 4 +#define VIDEO_AUDIO_BASS 8 +#define VIDEO_AUDIO_TREBLE 16 +#define VIDEO_AUDIO_BALANCE 32 + char name[16]; +#define VIDEO_SOUND_MONO 1 +#define VIDEO_SOUND_STEREO 2 +#define VIDEO_SOUND_LANG1 4 +#define VIDEO_SOUND_LANG2 8 + __u16 mode; + __u16 balance; /* Stereo balance */ + __u16 step; /* Step actual volume uses */ +}; + +struct video_clip +{ + __s32 x,y; + __s32 width, height; + struct video_clip *next; /* For user use/driver use only */ +}; + +struct video_window +{ + __u32 x,y; /* Position of window */ + __u32 width,height; /* Its size */ + __u32 chromakey; + __u32 flags; + struct video_clip *clips; /* Set only */ + int clipcount; +#define VIDEO_WINDOW_INTERLACE 1 +#define VIDEO_WINDOW_CHROMAKEY 16 /* Overlay by chromakey */ +#define VIDEO_CLIP_BITMAP -1 +/* bitmap is 1024x625, a '1' bit represents a clipped pixel */ +#define VIDEO_CLIPMAP_SIZE (128 * 625) +}; + +struct video_capture +{ + __u32 x,y; /* Offsets into image */ + __u32 width, height; /* Area to capture */ + __u16 decimation; /* Decimation divider */ + __u16 flags; /* Flags for capture */ +#define VIDEO_CAPTURE_ODD 0 /* Temporal */ +#define VIDEO_CAPTURE_EVEN 1 +}; + +struct video_buffer +{ + void *base; + int height,width; + int depth; + int bytesperline; +}; + +struct video_mmap +{ + unsigned int frame; /* Frame (0 - n) for double buffer */ + int height,width; + unsigned int format; /* should be VIDEO_PALETTE_* */ +}; + +struct video_key +{ + __u8 key[8]; + __u32 flags; +}; + +struct video_mbuf +{ + int size; /* Total memory to map */ + int frames; /* Frames */ + int offsets[VIDEO_MAX_FRAME]; +}; + +#define VIDEO_NO_UNIT (-1) + +struct video_unit +{ + int video; /* Video minor */ + int vbi; /* VBI minor */ + int radio; /* Radio minor */ + int audio; /* Audio minor */ + int teletext; /* Teletext minor */ +}; + +struct vbi_format { + __u32 sampling_rate; /* in Hz */ + __u32 samples_per_line; + __u32 sample_format; /* VIDEO_PALETTE_RAW only (1 byte) */ + __s32 start[2]; /* starting line for each frame */ + __u32 count[2]; /* count of lines for each frame */ + __u32 flags; +#define VBI_UNSYNC 1 /* can distingues between top/bottom field */ +#define VBI_INTERLACED 2 /* lines are interlaced */ +}; + +/* video_info is biased towards hardware mpeg encode/decode */ +/* but it could apply generically to any hardware compressor/decompressor */ +struct video_info +{ + __u32 frame_count; /* frames output since decode/encode began */ + __u32 h_size; /* current unscaled horizontal size */ + __u32 v_size; /* current unscaled veritcal size */ + __u32 smpte_timecode; /* current SMPTE timecode (for current GOP) */ + __u32 picture_type; /* current picture type */ + __u32 temporal_reference; /* current temporal reference */ + __u8 user_data[256]; /* user data last found in compressed stream */ + /* user_data[0] contains user data flags, user_data[1] has count */ +}; + +/* generic structure for setting playback modes */ +struct video_play_mode +{ + int mode; + int p1; + int p2; +}; + +/* for loading microcode / fpga programming */ +struct video_code +{ + char loadwhat[16]; /* name or tag of file being passed */ + int datasize; + __u8 *data; +}; + +#define VIDIOCGCAP _IOR('v',1,struct video_capability) /* Get capabilities */ +#define VIDIOCGCHAN _IOWR('v',2,struct video_channel) /* Get channel info (sources) */ +#define VIDIOCSCHAN _IOW('v',3,struct video_channel) /* Set channel */ +#define VIDIOCGTUNER _IOWR('v',4,struct video_tuner) /* Get tuner abilities */ +#define VIDIOCSTUNER _IOW('v',5,struct video_tuner) /* Tune the tuner for the current channel */ +#define VIDIOCGPICT _IOR('v',6,struct video_picture) /* Get picture properties */ +#define VIDIOCSPICT _IOW('v',7,struct video_picture) /* Set picture properties */ +#define VIDIOCCAPTURE _IOW('v',8,int) /* Start, end capture */ +#define VIDIOCGWIN _IOR('v',9, struct video_window) /* Get the video overlay window */ +#define VIDIOCSWIN _IOW('v',10, struct video_window) /* Set the video overlay window - passes clip list for hardware smarts , chromakey etc */ +#define VIDIOCGFBUF _IOR('v',11, struct video_buffer) /* Get frame buffer */ +#define VIDIOCSFBUF _IOW('v',12, struct video_buffer) /* Set frame buffer - root only */ +#define VIDIOCKEY _IOR('v',13, struct video_key) /* Video key event - to dev 255 is to all - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) */ +#define VIDIOCGFREQ _IOR('v',14, unsigned long) /* Set tuner */ +#define VIDIOCSFREQ _IOW('v',15, unsigned long) /* Set tuner */ +#define VIDIOCGAUDIO _IOR('v',16, struct video_audio) /* Get audio info */ +#define VIDIOCSAUDIO _IOW('v',17, struct video_audio) /* Audio source, mute etc */ +#define VIDIOCSYNC _IOW('v',18, int) /* Sync with mmap grabbing */ +#define VIDIOCMCAPTURE _IOW('v',19, struct video_mmap) /* Grab frames */ +#define VIDIOCGMBUF _IOR('v',20, struct video_mbuf) /* Memory map buffer info */ +#define VIDIOCGUNIT _IOR('v',21, struct video_unit) /* Get attached units */ +#define VIDIOCGCAPTURE _IOR('v',22, struct video_capture) /* Get subcapture */ +#define VIDIOCSCAPTURE _IOW('v',23, struct video_capture) /* Set subcapture */ +#define VIDIOCSPLAYMODE _IOW('v',24, struct video_play_mode) /* Set output video mode/feature */ +#define VIDIOCSWRITEMODE _IOW('v',25, int) /* Set write mode */ +#define VIDIOCGPLAYINFO _IOR('v',26, struct video_info) /* Get current playback info from hardware */ +#define VIDIOCSMICROCODE _IOW('v',27, struct video_code) /* Load microcode into hardware */ +#define VIDIOCGVBIFMT _IOR('v',28, struct vbi_format) /* Get VBI information */ +#define VIDIOCSVBIFMT _IOW('v',29, struct vbi_format) /* Set VBI information */ + + +#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */ + +/* VIDIOCSWRITEMODE */ +#define VID_WRITE_MPEG_AUD 0 +#define VID_WRITE_MPEG_VID 1 +#define VID_WRITE_OSD 2 +#define VID_WRITE_TTX 3 +#define VID_WRITE_CC 4 +#define VID_WRITE_MJPEG 5 + +/* VIDIOCSPLAYMODE */ +#define VID_PLAY_VID_OUT_MODE 0 + /* p1: = VIDEO_MODE_PAL, VIDEO_MODE_NTSC, etc ... */ +#define VID_PLAY_GENLOCK 1 + /* p1: 0 = OFF, 1 = ON */ + /* p2: GENLOCK FINE DELAY value */ +#define VID_PLAY_NORMAL 2 +#define VID_PLAY_PAUSE 3 +#define VID_PLAY_SINGLE_FRAME 4 +#define VID_PLAY_FAST_FORWARD 5 +#define VID_PLAY_SLOW_MOTION 6 +#define VID_PLAY_IMMEDIATE_NORMAL 7 +#define VID_PLAY_SWITCH_CHANNELS 8 +#define VID_PLAY_FREEZE_FRAME 9 +#define VID_PLAY_STILL_MODE 10 +#define VID_PLAY_MASTER_MODE 11 + /* p1: see below */ +#define VID_PLAY_MASTER_NONE 1 +#define VID_PLAY_MASTER_VIDEO 2 +#define VID_PLAY_MASTER_AUDIO 3 +#define VID_PLAY_ACTIVE_SCANLINES 12 + /* p1 = first active; p2 = last active */ +#define VID_PLAY_RESET 13 +#define VID_PLAY_END_MARK 14 + + +#endif /* __LINUX_VIDEODEV_H */ + +/* + * Local variables: + * c-basic-offset: 8 + * End: + */ diff --git a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood index 29c6514..59f7ded 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood +++ b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood @@ -1,14 +1,15 @@ # -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.45 -# Sat Oct 15 08:52:52 2011 +# Automatically generated file; DO NOT EDIT. +# Linux/arm 3.2.35 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_SCHED_CLOCK=y CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_TIME=y +# CONFIG_ARCH_USES_GETTIMEOFFSET is not set CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_HARDIRQS=y +CONFIG_KTIME_SCALAR=y +CONFIG_HAVE_PROC_CPU=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y @@ -16,12 +17,17 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y +CONFIG_NEED_DMA_MAP_STATE=y CONFIG_VECTORS_BASE=0xffff0000 +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_PHYS_OFFSET=0x0 +CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y
# # General setup @@ -29,8 +35,16 @@ CONFIG_CONSTRUCTORS=y CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +# CONFIG_KERNEL_GZIP is not set +CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y @@ -38,44 +52,56 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_FHANDLE is not set # CONFIG_TASKSTATS is not set CONFIG_AUDIT=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_SPARSE_IRQ=y
# # RCU Subsystem # -CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set +CONFIG_TINY_RCU=y +# CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set -CONFIG_RCU_FANOUT=32 -# CONFIG_RCU_FANOUT_EXACT is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=19 # CONFIG_CGROUPS is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EMBEDDED is not set +# CONFIG_EXPERT is not set CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y @@ -88,27 +114,33 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y
# # Kernel Performance Events And Counters # +CONFIG_PERF_EVENTS=y +# CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y -# CONFIG_SLOB is not set # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_DMA_API_DEBUG=y
# # GCOV-based kernel profiling # -CONFIG_SLOW_WORK=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -121,71 +153,113 @@ CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_BLOCK=y CONFIG_LBDAF=y -# CONFIG_BLK_DEV_BSG is not set +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set
# # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" -CONFIG_FREEZER=y +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +# CONFIG_MUTEX_SPIN_ON_OWNER is not set +# CONFIG_FREEZER is not set
# # System Type # CONFIG_MMU=y -# CONFIG_ARCH_AAEC2000 is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set # CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CNS3XXX is not set # CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_PRIMA2 is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_STMP3XXX is not set +# CONFIG_ARCH_MXS is not set # CONFIG_ARCH_NETX is not set # CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_NOMADIK is not set # CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IOP33X is not set # CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_DOVE is not set CONFIG_ARCH_KIRKWOOD=y -# CONFIG_ARCH_LOKI is not set +# CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_MV78XX0 is not set # CONFIG_ARCH_ORION5X is not set # CONFIG_ARCH_MMP is not set # CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_NS9XXX is not set # CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_PICOXCELL is not set # CONFIG_ARCH_PNX4008 is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_SHMOBILE is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set # CONFIG_ARCH_S3C2410 is not set # CONFIG_ARCH_S3C64XX is not set -# CONFIG_ARCH_S5PC1XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_TCC_926 is not set # CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_NOMADIK is not set # CONFIG_ARCH_DAVINCI is not set # CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_BCMRING is not set +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_VT8500 is not set +# CONFIG_ARCH_ZYNQ is not set +CONFIG_GPIO_PCA953X=m +CONFIG_KEYBOARD_GPIO_POLLED=m
# # Marvell Kirkwood Implementations @@ -195,17 +269,34 @@ CONFIG_MACH_RD88F6192_NAS=y CONFIG_MACH_RD88F6281=y CONFIG_MACH_MV88F6281GTW_GE=y CONFIG_MACH_SHEEVAPLUG=y -CONFIG_MACH_DREAMPLUG=y +CONFIG_MACH_ESATA_SHEEVAPLUG=y CONFIG_MACH_GURUPLUG=y +CONFIG_MACH_DREAMPLUG=y CONFIG_MACH_TS219=y +CONFIG_MACH_TS41X=y +CONFIG_MACH_DOCKSTAR=y +CONFIG_MACH_OPENRD=y CONFIG_MACH_OPENRD_BASE=y +CONFIG_MACH_OPENRD_CLIENT=y +CONFIG_MACH_OPENRD_ULTIMATE=y +CONFIG_MACH_NETSPACE_V2=y +CONFIG_MACH_INETSPACE_V2=y +CONFIG_MACH_NETSPACE_MAX_V2=y +CONFIG_MACH_D2NET_V2=y +CONFIG_MACH_NET2BIG_V2=y +CONFIG_MACH_NET5BIG_V2=y +CONFIG_MACH_T5325=y +CONFIG_MACH_ICONNECT=y CONFIG_MACH_NAS6210=y + +# +# System MMU +# CONFIG_PLAT_ORION=y
# # Processor Type # -CONFIG_CPU_32=y CONFIG_CPU_FEROCEON=y # CONFIG_CPU_FEROCEON_OLD_ID is not set CONFIG_CPU_32v5=y @@ -216,6 +307,7 @@ CONFIG_CPU_COPY_FEROCEON=y CONFIG_CPU_TLB_FEROCEON=y CONFIG_CPU_CP15=y CONFIG_CPU_CP15_MMU=y +CONFIG_CPU_USE_DOMAINS=y
# # Processor Features @@ -234,15 +326,15 @@ CONFIG_ARM_L1_CACHE_SHIFT=5 CONFIG_PCI=y CONFIG_PCI_SYSCALL=y # CONFIG_ARCH_SUPPORTS_MSI is not set -CONFIG_PCI_LEGACY=y # CONFIG_PCI_DEBUG is not set CONFIG_PCI_STUB=m +CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y +CONFIG_PCI_PRI=y +# CONFIG_PCI_PASID is not set CONFIG_PCCARD=m -# CONFIG_PCMCIA_DEBUG is not set CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y CONFIG_CARDBUS=y
# @@ -256,7 +348,7 @@ CONFIG_YENTA_ENE_TUNE=y CONFIG_YENTA_TOSHIBA=y CONFIG_PD6729=m CONFIG_I82092=m -CONFIG_PCCARD_NONSTATIC=m +CONFIG_PCCARD_NONSTATIC=y
# # Kernel Features @@ -277,34 +369,44 @@ CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y CONFIG_HIGHMEM=y +# CONFIG_HIGHPTE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4096 +CONFIG_SPLIT_PTLOCK_CPUS=999999 +# CONFIG_COMPACTION is not set # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_NEED_PER_CPU_KM=y +# CONFIG_CLEANCACHE is not set +CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_ALIGNMENT_TRAP=y CONFIG_UACCESS_WITH_MEMCPY=y +CONFIG_SECCOMP=y +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set
# # Boot options # +CONFIG_USE_OF=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_ARM_APPENDED_DTB is not set CONFIG_CMDLINE="" # CONFIG_XIP_KERNEL is not set # CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_AUTO_ZRELADDR=y
# # CPU Power Management @@ -334,21 +436,18 @@ CONFIG_HAVE_AOUT=y # # Power management options # +CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y # CONFIG_APM_EMULATION is not set -CONFIG_PM_RUNTIME=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_CPU_PM=y +# CONFIG_ARM_CPU_SUSPEND is not set CONFIG_NET=y
# # Networking options # CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m @@ -361,17 +460,18 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE_STATS is not set CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_ARPD=y @@ -400,15 +500,10 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -# CONFIG_DEFAULT_BIC is not set -# CONFIG_DEFAULT_CUBIC is not set -# CONFIG_DEFAULT_HTCP is not set -# CONFIG_DEFAULT_VEGAS is not set -# CONFIG_DEFAULT_WESTWOOD is not set CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" # CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m +CONFIG_IPV6=y # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set @@ -423,12 +518,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_NETWORK_SECMARK is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -441,9 +538,10 @@ CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m -CONFIG_NF_CT_ACCT=y CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -452,7 +550,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m @@ -460,10 +560,24 @@ CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_TPROXY=m CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m @@ -471,28 +585,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m @@ -501,7 +625,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y CONFIG_NETFILTER_XT_MATCH_SCTP=m CONFIG_NETFILTER_XT_MATCH_SOCKET=m CONFIG_NETFILTER_XT_MATCH_STATE=m @@ -512,7 +635,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_MATCH_OSF=m +# CONFIG_IP_SET is not set CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -523,8 +646,10 @@ CONFIG_IP_VS_TAB_BITS=12 # # CONFIG_IP_VS_PROTO_TCP is not set # CONFIG_IP_VS_PROTO_UDP is not set +# CONFIG_IP_VS_PROTO_AH_ESP is not set # CONFIG_IP_VS_PROTO_ESP is not set # CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set
# # IPVS scheduler @@ -543,6 +668,7 @@ CONFIG_IP_VS_TAB_BITS=12 # # IPVS application helper # +# CONFIG_IP_VS_NFCT is not set
# # IP: Netfilter Configuration @@ -552,7 +678,6 @@ CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_TTL=m @@ -590,6 +715,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # +CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m @@ -639,9 +765,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m CONFIG_STP=m CONFIG_GARP=m CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y @@ -664,6 +795,7 @@ CONFIG_LLC=m # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m CONFIG_NET_SCHED=y
# @@ -676,6 +808,7 @@ CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_MULTIQ=m CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m @@ -683,6 +816,9 @@ CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_INGRESS=m
# @@ -692,7 +828,6 @@ CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y @@ -715,11 +850,15 @@ CONFIG_NET_ACT_MIRRED=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m -# CONFIG_NET_ACT_SIMP is not set +CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set
# # Network testing @@ -770,8 +909,8 @@ CONFIG_SIGMATEL_FIR=m CONFIG_VLSI_FIR=m CONFIG_MCS_FIR=m CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -788,6 +927,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m @@ -799,19 +939,25 @@ CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m CONFIG_AF_RXRPC=m # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=m CONFIG_FIB_RULES=y CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_DEFAULT_PS is not set -CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m @@ -821,9 +967,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y -# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_DEBUG_MENU is not set @@ -831,7 +977,13 @@ CONFIG_MAC80211_LEDS=y CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m # CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set
# # Device Drivers @@ -850,14 +1002,14 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m CONFIG_CONNECTOR=m CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set CONFIG_MTD_TESTS=m -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=m CONFIG_MTD_AR7_PARTS=m
# @@ -872,7 +1024,9 @@ CONFIG_MTD_BLOCK=m # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set +CONFIG_SM_FTL=m # CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set
# # RAM/ROM/Flash chip drivers @@ -917,12 +1071,18 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_NAND_ECC_SMC is not set CONFIG_MTD_NAND=m # CONFIG_MTD_NAND_VERIFY_WRITE is not set -# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set # CONFIG_MTD_NAND_MUSEUM_IDS is not set +# CONFIG_MTD_NAND_DENALI is not set # CONFIG_MTD_NAND_GPIO is not set CONFIG_MTD_NAND_IDS=m +# CONFIG_MTD_NAND_RICOH is not set # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_CAFE is not set # CONFIG_MTD_NAND_NANDSIM is not set @@ -936,19 +1096,29 @@ CONFIG_MTD_NAND_ORION=m # CONFIG_MTD_LPDDR=m CONFIG_MTD_QINFO_PROBE=m - -# -# UBI - Unsorted block images -# CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_RESERVE=1 # CONFIG_MTD_UBI_GLUEBI is not set - -# -# UBI debugging options -# # CONFIG_MTD_UBI_DEBUG is not set +CONFIG_DTC=y +CONFIG_OF=y + +# +# Device Tree and Open Firmware support +# +CONFIG_PROC_DEVICETREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_DEVICE=y +CONFIG_OF_GPIO=y +CONFIG_OF_I2C=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y CONFIG_PARPORT=m # CONFIG_PARPORT_PC is not set # CONFIG_PARPORT_GSC is not set @@ -956,14 +1126,18 @@ CONFIG_PARPORT_AX88796=m CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_BLK_DEV=y -# CONFIG_BLK_CPQ_DA is not set -# CONFIG_BLK_CPQ_CISS_DA is not set -# CONFIG_BLK_DEV_DAC960 is not set +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_CPQ_CISS_DA=m +# CONFIG_CISS_SCSI_TAPE is not set +CONFIG_BLK_DEV_DAC960=m # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y @@ -974,15 +1148,30 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_ATA_OVER_ETH=m CONFIG_MG_DISK=m CONFIG_MG_DISK_RES=0 +CONFIG_BLK_DEV_RBD=m +CONFIG_SENSORS_LIS3LV02D=m CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set # CONFIG_PHANTOM is not set +# CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m CONFIG_ENCLOSURE_SERVICES=m CONFIG_HP_ILO=m +CONFIG_APDS9802ALS=m CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_BMP085=m +CONFIG_PCH_PHUB=m +CONFIG_USB_SWITCH_FSA9480=m CONFIG_C2PORT=m
# @@ -995,13 +1184,28 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWMC3200TOP_DEBUGFS is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +CONFIG_SENSORS_LIS3_I2C=m + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set
# # SCSI device support # -CONFIG_RAID_ATTRS=y +CONFIG_SCSI_MOD=m +CONFIG_RAID_ATTRS=m CONFIG_SCSI=m CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set @@ -1035,15 +1239,19 @@ CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS_DEBUG=y CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_CXGB4_ISCSI=m CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BNX2X_FCOE=m CONFIG_BE2ISCSI=m CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_HPSA=m CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m # CONFIG_SCSI_ACARD is not set CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=m @@ -1065,6 +1273,8 @@ CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m CONFIG_SCSI_MVSAS_DEBUG=y +# CONFIG_SCSI_MVSAS_TASKLET is not set +CONFIG_SCSI_MVUMI=m CONFIG_SCSI_DPT_I2O=m # CONFIG_SCSI_ADVANSYS is not set CONFIG_SCSI_ARCMSR=m @@ -1103,6 +1313,7 @@ CONFIG_SCSI_DC390T=m # CONFIG_SCSI_NSP32 is not set # CONFIG_SCSI_DEBUG is not set CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y @@ -1116,71 +1327,105 @@ CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=m CONFIG_SCSI_DH_ALUA=m -# CONFIG_SCSI_OSD_INITIATOR is not set +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +# CONFIG_SCSI_OSD_DEBUG is not set CONFIG_ATA=m # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_INIC162X=m +CONFIG_SATA_ACARD_AHCI=m CONFIG_SATA_SIL24=m CONFIG_ATA_SFF=y -CONFIG_SATA_SVW=m + +# +# SFF controllers with custom DMA interface +# +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SX4=m +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# CONFIG_ATA_PIIX=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m CONFIG_SATA_PROMISE=m -CONFIG_SATA_SX4=m CONFIG_SATA_SIL=m CONFIG_SATA_SIS=m +CONFIG_SATA_SVW=m CONFIG_SATA_ULI=m CONFIG_SATA_VIA=m CONFIG_SATA_VITESSE=m -CONFIG_SATA_INIC162X=m + +# +# PATA SFF controllers with BMDMA +# CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m +CONFIG_PATA_ARASAN_CF=m CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATP867X=m CONFIG_PATA_ATIIXP=m -CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m +CONFIG_PATA_CS5536=m CONFIG_PATA_CYPRESS=m CONFIG_PATA_EFAR=m -CONFIG_ATA_GENERIC=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_IT821X=m CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m -CONFIG_PATA_TRIFLEX=m CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_OLDPIIX=m CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OPTI=m +CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m CONFIG_PATA_RADISYS=m CONFIG_PATA_RDC=m -CONFIG_PATA_RZ1000=m CONFIG_PATA_SC1200=m +CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_PDC2027X=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m +CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_TRIFLEX=m CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m -CONFIG_PATA_SCH=m + +# +# PIO-only SFF controllers +# +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_RZ1000=m + +# +# Generic fallback / legacy drivers +# +CONFIG_ATA_GENERIC=m +CONFIG_PATA_LEGACY=m CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m @@ -1188,15 +1433,19 @@ CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m -CONFIG_MD_RAID6_PQ=m -CONFIG_ASYNC_RAID6_TEST=m CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set CONFIG_DM_MIRROR=m +CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m @@ -1204,6 +1453,8 @@ CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +# CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m @@ -1215,26 +1466,17 @@ CONFIG_FUSION_CTL=m # # IEEE 1394 (FireWire) support # - -# -# You can enable one or both FireWire driver stacks. -# - -# -# See the help texts for more information. -# CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m -# CONFIG_IEEE1394 is not set +# CONFIG_FIREWIRE_NOSY is not set # CONFIG_I2O is not set CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m +CONFIG_NET_CORE=y CONFIG_BONDING=m -CONFIG_MACVLAN=m +CONFIG_DUMMY=m CONFIG_EQUALIZER=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set @@ -1242,48 +1484,104 @@ CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m # CONFIG_ARCNET is not set -CONFIG_PHYLIB=y +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +CONFIG_ATM_ENI_DEBUG=y +CONFIG_ATM_ENI_TUNE_BURST=y +CONFIG_ATM_ENI_BURST_TX_16W=y +CONFIG_ATM_ENI_BURST_TX_8W=y +CONFIG_ATM_ENI_BURST_TX_4W=y +CONFIG_ATM_ENI_BURST_TX_2W=y +CONFIG_ATM_ENI_BURST_RX_16W=y +CONFIG_ATM_ENI_BURST_RX_8W=y +CONFIG_ATM_ENI_BURST_RX_4W=y +CONFIG_ATM_ENI_BURST_RX_2W=y +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_NICSTAR=m +CONFIG_ATM_NICSTAR_USE_SUNI=y +CONFIG_ATM_NICSTAR_USE_IDT77105=y +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_USE_TASKLET=y +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +# CONFIG_ATM_HE is not set +CONFIG_ATM_SOLOS=m
# -# MII PHY device drivers +# CAIF transport drivers # -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -# CONFIG_FIXED_PHY is not set -CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m -CONFIG_NET_ETHERNET=y -CONFIG_MII=m -CONFIG_AX88796=m -CONFIG_AX88796_93CX6=y -CONFIG_HAPPYMEAL=m -# CONFIG_SUNGEM is not set -CONFIG_CASSINI=m +CONFIG_ETHERNET=y +CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m CONFIG_VORTEX=m CONFIG_TYPHOON=m -CONFIG_SMC91X=m +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_NET_VENDOR_AMD=y +CONFIG_AMD8111_ETH=m +CONFIG_PCNET32=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_BNX2=m +CONFIG_CNIC=m +CONFIG_TIGON3=m +CONFIG_BNX2X=m +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_BNA=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4VF=m +CONFIG_NET_VENDOR_CISCO=y +CONFIG_ENIC=m CONFIG_DM9000=m -CONFIG_DM9000_DEBUGLEVEL=4 # CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set -CONFIG_ETHOC=m -CONFIG_SMC911X=m -CONFIG_SMSC911X=m CONFIG_DNET=m +CONFIG_NET_VENDOR_DEC=y CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 @@ -1296,141 +1594,164 @@ CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_DL2K=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_BE2NET=m +CONFIG_NET_VENDOR_EXAR=y +CONFIG_S2IO=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_NET_VENDOR_FARADAY=y +# CONFIG_FTMAC100 is not set +# CONFIG_FTGMAC100 is not set +CONFIG_NET_VENDOR_FUJITSU=y +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -CONFIG_ADAPTEC_STARFIRE=m -CONFIG_B44=m -CONFIG_FORCEDETH=m -# CONFIG_FORCEDETH_NAPI is not set +CONFIG_NET_VENDOR_INTEL=y CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IGB=m +CONFIG_IGBVF=m +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_NET_VENDOR_I825XX=y +CONFIG_IP1000=m +CONFIG_JME=m +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MV643XX_ETH=m +CONFIG_SKGE=m +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=m +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_KSZ884X_PCI=m +CONFIG_NET_VENDOR_MYRI=y +CONFIG_MYRI10GE=m CONFIG_FEALNX=m +CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=m +CONFIG_NS83820=m +CONFIG_NET_VENDOR_8390=y +CONFIG_PCMCIA_AXNET=m +CONFIG_AX88796=m +CONFIG_AX88796_93CX6=y CONFIG_NE2K_PCI=m +CONFIG_PCMCIA_PCNET=m +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_FORCEDETH=m +CONFIG_NET_VENDOR_OKI=y +CONFIG_PCH_GBE=m +CONFIG_ETHOC=m +CONFIG_NET_PACKET_ENGINE=y +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLGE=m +CONFIG_NETXEN_NIC=m +CONFIG_NET_VENDOR_REALTEK=y CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set CONFIG_8139TOO_TUNE_TWISTER=y CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=m +CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m +CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m +CONFIG_SIS190=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m +CONFIG_SMC911X=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_SMSC9420=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set +CONFIG_NET_VENDOR_SUN=y +CONFIG_HAPPYMEAL=m +# CONFIG_SUNGEM is not set +CONFIG_CASSINI=m +CONFIG_NIU=m +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_TEHUTI=m +CONFIG_NET_VENDOR_TI=y CONFIG_TLAN=m -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y -CONFIG_SC92031=m -CONFIG_NET_POCKET=y -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_ATL2=m -CONFIG_NETDEV_1000=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -CONFIG_E1000E=m -CONFIG_IP1000=m -CONFIG_IGB=m -CONFIG_IGBVF=m -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -CONFIG_R8169_VLAN=y -CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m -CONFIG_CNIC=m -CONFIG_MV643XX_ETH=m -CONFIG_QLA3XXX=m -CONFIG_ATL1=m -CONFIG_ATL1E=m -CONFIG_ATL1C=m -CONFIG_JME=m -CONFIG_NETDEV_10000=y -CONFIG_MDIO=m -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T3_DEPENDS=y -CONFIG_CHELSIO_T3=m -CONFIG_ENIC=m -CONFIG_IXGBE=m -CONFIG_IXGB=m -CONFIG_S2IO=m -CONFIG_VXGE=m -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_MYRI10GE=m -CONFIG_NETXEN_NIC=m -CONFIG_NIU=m -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_TEHUTI=m -CONFIG_BNX2X=m -CONFIG_QLGE=m -CONFIG_SFC=m -CONFIG_SFC_MTD=y -CONFIG_BE2NET=m -# CONFIG_TR is not set -CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m -# CONFIG_PRISM54 is not set -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_P54_COMMON is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set -# CONFIG_RT2X00 is not set -# CONFIG_HERMES is not set -# CONFIG_WL12XX is not set -# CONFIG_IWM is not set +CONFIG_NET_VENDOR_XIRCOM=y +CONFIG_PCMCIA_XIRC2PS=m +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PHYLIB=y
# -# Enable WiMAX (Networking options) to see the WiMAX drivers +# MII PHY device drivers # +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m +# CONFIG_FIXED_PHY is not set +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +# CONFIG_TR is not set
# # USB Network Adapters @@ -1443,7 +1764,9 @@ CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m CONFIG_USB_NET_GL620A=m CONFIG_USB_NET_NET1080=m @@ -1458,17 +1781,62 @@ CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m +# CONFIG_USB_IPHETH is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +CONFIG_PCMCIA_RAYCS=m +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AT76C50X_USB=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_RTL8180 is not set +# CONFIG_RTL8187 is not set +# CONFIG_ADM8211 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_MWL8K is not set +# CONFIG_ATH_COMMON is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMFMAC is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWLWIFI is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_HERMES is not set +# CONFIG_P54_COMMON is not set +# CONFIG_RT2X00 is not set +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +# CONFIG_RTL8192CU is not set +# CONFIG_WL1251 is not set +# CONFIG_WL12XX_MENU is not set +# CONFIG_ZD1211RW is not set +# CONFIG_MWIFIEX is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# CONFIG_WAN=y CONFIG_LANMEDIA=m CONFIG_HDLC=m @@ -1491,87 +1859,9 @@ CONFIG_DSCC4_PCISYNC=y CONFIG_DSCC4_PCI_RST=y CONFIG_DLCI=m CONFIG_DLCI_MAX=8 -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_ATM_LANAI=m -CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set -CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y -CONFIG_ATM_IDT77252=m -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 -# CONFIG_ATM_HE is not set -CONFIG_ATM_SOLOS=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NET_FC is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_VMXNET3=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y CONFIG_ISDN_MPP=y @@ -1649,16 +1939,11 @@ CONFIG_HISAX_FRITZ_PCIPNP=m # # Active cards # -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_ISDN_HDLC=m CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_CAPI_TRACE=y CONFIG_ISDN_CAPI_MIDDLEWARE=y CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIFS_BOOL=y -CONFIG_ISDN_CAPI_CAPIFS=m CONFIG_ISDN_CAPI_CAPIDRV=m
# @@ -1679,10 +1964,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m CONFIG_ISDN_DIVAS_USERIDI=m CONFIG_ISDN_DIVAS_MAINT=m CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_CAPI=y +# CONFIG_GIGASET_I4L is not set +# CONFIG_GIGASET_DUMMYLL is not set CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m # CONFIG_GIGASET_DEBUG is not set +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_MISDN_AVMFRITZ=m +CONFIG_MISDN_SPEEDFAX=m +CONFIG_MISDN_INFINEON=m +CONFIG_MISDN_W6692=m +CONFIG_MISDN_NETJET=m +CONFIG_MISDN_IPAC=m +CONFIG_MISDN_ISAR=m +CONFIG_ISDN_HDLC=m # CONFIG_PHONE is not set
# @@ -1691,6 +1999,7 @@ CONFIG_GIGASET_M101=m CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m
# # Userland interfaces @@ -1700,7 +2009,7 @@ CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVDEV is not set # CONFIG_INPUT_EVBUG is not set
# @@ -1708,13 +2017,18 @@ CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m CONFIG_KEYBOARD_ATKBD=y -CONFIG_QT2160=m +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m CONFIG_KEYBOARD_LKKBD=m CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_TCA6416=m CONFIG_KEYBOARD_MATRIX=m CONFIG_KEYBOARD_LM8323=m CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m CONFIG_KEYBOARD_NEWTON=m CONFIG_KEYBOARD_OPENCORES=m CONFIG_KEYBOARD_STOWAWAY=m @@ -1725,16 +2039,24 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_88PM860X_ONKEY=m +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m # CONFIG_INPUT_UINPUT is not set CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_PCF8574=m CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -CONFIG_INPUT_WM831X_ON=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set
# # Hardware I/O ports @@ -1745,6 +2067,8 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_PS2MULT=m # CONFIG_GAMEPORT is not set
# @@ -1755,9 +2079,14 @@ CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_DEVKMEM=y +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set # CONFIG_SERIAL_NONSTANDARD is not set CONFIG_NOZOMI=m +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y
# # Serial drivers @@ -1773,19 +2102,28 @@ CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DW=m
# # Non-8250 serial port support # +CONFIG_SERIAL_MFD_HSU=m +CONFIG_SERIAL_UARTLITE=m CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_PCH_UART=m +CONFIG_SERIAL_XILINX_PS_UART=m CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m +# CONFIG_HVC_DCC is not set CONFIG_IPMI_HANDLER=m CONFIG_IPMI_PANIC_EVENT=y # CONFIG_IPMI_PANIC_STRING is not set @@ -1809,11 +2147,21 @@ CONFIG_IPWIRELESS=m # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set CONFIG_DEVPORT=y -CONFIG_I2C=m +# CONFIG_RAMOOPS is not set +CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCA=m
@@ -1842,39 +2190,34 @@ CONFIG_I2C_VIAPRO=m # # I2C system bus drivers (mostly embedded / system-on-chip) # +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PCI=m CONFIG_I2C_GPIO=m -CONFIG_I2C_MV64XXX=m +CONFIG_I2C_INTEL_MID=m +CONFIG_I2C_MV64XXX=y CONFIG_I2C_OCORES=m +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m +CONFIG_I2C_XILINX=m +CONFIG_I2C_EG20T=m
# # External I2C/SMBus adapter drivers # +CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -# CONFIG_I2C_TAOS_EVM is not set +CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_TINY_USB=m
# -# Graphics adapter I2C/DDC channel drivers -# -CONFIG_I2C_VOODOO3=m - -# # Other I2C/SMBus bus drivers # -CONFIG_I2C_PCA_PLATFORM=m CONFIG_I2C_STUB=m - -# -# Miscellaneous I2C Chip support -# -CONFIG_DS1682=m -CONFIG_SENSORS_TSL2550=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set # CONFIG_SPI is not set
# @@ -1882,36 +2225,69 @@ CONFIG_SENSORS_TSL2550=m # CONFIG_PPS=m # CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m +CONFIG_DP83640_PHY=m CONFIG_ARCH_REQUIRE_GPIOLIB=y CONFIG_GPIOLIB=y # CONFIG_DEBUG_GPIO is not set -# CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_MAX730X=m
# -# Memory mapped GPIO expanders: +# Memory mapped GPIO drivers: # +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_VX855=m
# # I2C GPIO expanders: # +CONFIG_GPIO_MAX7300=m CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_WM831X=m +# CONFIG_GPIO_SX150X is not set +CONFIG_GPIO_ADP5588=m
# # PCI GPIO expanders: # # CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_LANGWELL is not set +CONFIG_GPIO_ML_IOH=m +# CONFIG_GPIO_TIMBERDALE is not set +CONFIG_GPIO_RDC321X=m
# # SPI GPIO expanders: # +CONFIG_GPIO_MCP23S08=m
# # AC97 GPIO expanders: # +# CONFIG_GPIO_UCB1400 is not set + +# +# MODULbus GPIO expanders: +# +CONFIG_GPIO_JANZ_TTL=m CONFIG_W1=m CONFIG_W1_CON=y
@@ -1921,6 +2297,7 @@ CONFIG_W1_CON=y CONFIG_W1_MASTER_MATROX=m CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS1WM=m CONFIG_W1_MASTER_GPIO=m
# @@ -1928,21 +2305,29 @@ CONFIG_W1_MASTER_GPIO=m # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set -CONFIG_WM831X_POWER=m -CONFIG_WM8350_POWER=m +# CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set -CONFIG_BATTERY_DS2782=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_MAX17040=m -CONFIG_CHARGER_PCF50633=m +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_GPIO is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -1958,11 +2343,13 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7473=m CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m @@ -1971,10 +2358,14 @@ CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m @@ -1985,22 +2376,52 @@ CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_VIA686A=m @@ -2010,23 +2431,23 @@ CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m CONFIG_THERMAL=y CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set
# # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_WATCHDOG=m CONFIG_ORION_WATCHDOG=m +CONFIG_MAX63XX_WATCHDOG=m CONFIG_ALIM7101_WDT=m
# @@ -2056,80 +2477,151 @@ CONFIG_SSB_SDIOHOST=y # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +CONFIG_BCMA=m +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +# CONFIG_BCMA_HOST_PCI is not set +# CONFIG_BCMA_DEBUG is not set
# # Multifunction device drivers # -CONFIG_MFD_CORE=m +CONFIG_MFD_CORE=y +CONFIG_MFD_88PM860X=y CONFIG_MFD_SM501=m # CONFIG_MFD_SM501_GPIO is not set # CONFIG_MFD_ASIC3 is not set # CONFIG_HTC_EGPIO is not set CONFIG_HTC_PASIC3=m -# CONFIG_UCB1400_CORE is not set +# CONFIG_HTC_I2CPLD is not set +CONFIG_UCB1400_CORE=m +CONFIG_TPS6105X=m CONFIG_TPS65010=m +CONFIG_TPS6507X=m +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TMIO is not set # CONFIG_MFD_TC6393XB is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=m -CONFIG_MFD_WM8350=m -CONFIG_MFD_WM8350_I2C=m +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set CONFIG_MFD_PCF50633=m CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m -CONFIG_AB3100_CORE=m -CONFIG_AB3100_OTP=m -# CONFIG_REGULATOR is not set +# CONFIG_ABX500_CORE is not set +CONFIG_MFD_TIMBERDALE=m +CONFIG_LPC_SCH=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_JANZ_CMODIO=m +CONFIG_MFD_VX855=m +CONFIG_MFD_WL1273_CORE=m +# CONFIG_MFD_AAT2870_CORE is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +CONFIG_REGULATOR_GPIO=m +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_WM8400 is not set +# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_88PM8607 is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_AD5398 is not set CONFIG_MEDIA_SUPPORT=m
# # Multimedia core support # +CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m -# CONFIG_VIDEO_ALLOW_V4L1 is not set -CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y CONFIG_VIDEO_MEDIA=m
# # Multimedia drivers # -# CONFIG_MEDIA_ATTACH is not set +CONFIG_RC_CORE=m +CONFIG_LIRC=m +CONFIG_RC_MAP=m +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_RC5_SZ_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_LIRC_CODEC is not set +# CONFIG_RC_ATI_REMOTE is not set +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m # CONFIG_MEDIA_TUNER_CUSTOMISE is not set CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m
# -# Encoders/decoders and other helper chips +# Encoders, decoders, sensors and other helper chips #
# -# Audio decoders +# Audio decoders, processors and mixers # # CONFIG_VIDEO_TVAUDIO is not set # CONFIG_VIDEO_TDA7432 is not set # CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TDA9875 is not set # CONFIG_VIDEO_TEA6415C is not set # CONFIG_VIDEO_TEA6420 is not set # CONFIG_VIDEO_MSP3400 is not set # CONFIG_VIDEO_CS5345 is not set # CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_TLV320AIC23B is not set # CONFIG_VIDEO_WM8775 is not set # CONFIG_VIDEO_WM8739 is not set @@ -2148,19 +2640,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_BT856 is not set # CONFIG_VIDEO_BT866 is not set # CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_TCM825X is not set # CONFIG_VIDEO_SAA7110 is not set # CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_SAA7191 is not set # CONFIG_VIDEO_TVP514X is not set # CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set # CONFIG_VIDEO_VPX3220 is not set
# # Video and audio decoders # +# CONFIG_VIDEO_SAA717X is not set # CONFIG_VIDEO_CX25840 is not set
# @@ -2175,24 +2666,54 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_SAA7185 is not set # CONFIG_VIDEO_ADV7170 is not set # CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_THS7303 is not set # CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_S5K6AA is not set + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set
# # Video improvement chips # # CONFIG_VIDEO_UPD64031A is not set # CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_VIDEO_BWQCAM is not set +# CONFIG_VIDEO_CQCAM is not set +# CONFIG_VIDEO_W9966 is not set +# CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_ZORAN is not set # CONFIG_VIDEO_SAA7134 is not set +# CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_TIMBERDALE is not set # CONFIG_VIDEO_CX88 is not set # CONFIG_VIDEO_CX23885 is not set +# CONFIG_VIDEO_CX25821 is not set # CONFIG_VIDEO_AU0828 is not set # CONFIG_VIDEO_IVTV is not set # CONFIG_VIDEO_CX18 is not set @@ -2206,25 +2727,34 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_HDPVR is not set # CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_TLG2300 is not set # CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_TM6000 is not set # CONFIG_VIDEO_USBVISION is not set # CONFIG_USB_ET61X251 is not set # CONFIG_USB_SN9C102 is not set -# CONFIG_USB_ZC0301 is not set -# CONFIG_USB_PWC_INPUT_EVDEV is not set +# CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set # CONFIG_USB_STKWEBCAM is not set # CONFIG_USB_S2255 is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MAESTRO is not set # CONFIG_I2C_SI4713 is not set # CONFIG_RADIO_SI4713 is not set # CONFIG_USB_DSBR is not set # CONFIG_RADIO_SI470X is not set # CONFIG_USB_MR800 is not set # CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_TIMBERDALE is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +# CONFIG_RADIO_WL128X is not set CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set CONFIG_DVB_CAPTURE_DRIVERS=y @@ -2264,28 +2794,91 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # CONFIG_DVB_DM1105 is not set
# +# Supported FireWire (IEEE 1394) Adapters +# +# CONFIG_DVB_FIREDTV is not set + +# # Supported Earthsoft PT1 Adapters # # CONFIG_DVB_PT1 is not set
# +# Supported Mantis Adapters +# +# CONFIG_MANTIS_CORE is not set + +# +# Supported nGene Adapters +# +# CONFIG_DVB_NGENE is not set + +# +# Supported ddbridge ('Octopus') Adapters +# +# CONFIG_DVB_DDBRIDGE is not set + +# # Supported DVB Frontends # # CONFIG_DVB_FE_CUSTOMISE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set + +# +# Multistandard (satellite) frontends +# + +# +# Multistandard (cable + terrestrial) frontends +# + +# +# DVB-S (satellite) frontends +# + +# +# DVB-T (terrestrial) frontends +# + +# +# DVB-C (cable) frontends +# + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# + +# +# ISDB-T (terrestrial) frontends +# + +# +# Digital terrestrial only tuners/PLL +# + +# +# SEC control devices for DVB-S +# + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set
# # Graphics support # CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 CONFIG_DRM=m +CONFIG_DRM_TTM=m CONFIG_DRM_TDFX=m CONFIG_DRM_R128=m # CONFIG_DRM_RADEON is not set CONFIG_DRM_MGA=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m +CONFIG_DRM_VMWGFX=m +CONFIG_STUB_POULSBO=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y @@ -2301,6 +2894,7 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m +# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=m # CONFIG_FB_MACMODES is not set @@ -2315,6 +2909,7 @@ CONFIG_FB_CIRRUS=m CONFIG_FB_PM2=m CONFIG_FB_PM2_FIFO_DISCONNECT=y CONFIG_FB_CYBER2000=m +CONFIG_FB_CYBER2000_DDC=y CONFIG_FB_ASILIANT=y # CONFIG_FB_IMSTT is not set CONFIG_FB_UVESA=m @@ -2345,11 +2940,11 @@ CONFIG_FB_ATY_CT=y CONFIG_FB_ATY_GX=y CONFIG_FB_ATY_BACKLIGHT=y CONFIG_FB_S3=m +CONFIG_FB_S3_DDC=y # CONFIG_FB_SAVAGE is not set CONFIG_FB_SIS=m CONFIG_FB_SIS_300=y CONFIG_FB_SIS_315=y -CONFIG_FB_VIA=m CONFIG_FB_NEOMAGIC=m CONFIG_FB_KYRO=m CONFIG_FB_3DFX=m @@ -2364,17 +2959,21 @@ CONFIG_FB_PM3=m CONFIG_FB_TMIO=m CONFIG_FB_TMIO_ACCELL=y CONFIG_FB_SM501=m +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set CONFIG_FB_METRONOME=m # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_ILI9320 is not set CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_WM831X=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_88PM860X=m +CONFIG_BACKLIGHT_PCF50633=m
# # Display device support @@ -2388,10 +2987,9 @@ CONFIG_DISPLAY_SUPPORT=m # # Console display driver support # -# CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y @@ -2416,8 +3014,9 @@ CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y -# CONFIG_SND_HRTIMER is not set -# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set @@ -2434,13 +3033,16 @@ CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y CONFIG_SND_DUMMY=m +CONFIG_SND_ALOOP=m CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m CONFIG_SND_MTS64=m CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m -# CONFIG_SND_AC97_POWER_SAVE is not set +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_TEA575X=m CONFIG_SND_PCI=y CONFIG_SND_AD1889=m CONFIG_SND_ALS300=m @@ -2483,38 +3085,44 @@ CONFIG_SND_ENS1370=m CONFIG_SND_ENS1371=m CONFIG_SND_ES1938=m CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y CONFIG_SND_FM801=m -# CONFIG_SND_FM801_TEA575X_BOOL is not set +CONFIG_SND_FM801_TEA575X_BOOL=y CONFIG_SND_HDA_INTEL=m -# CONFIG_SND_HDA_HWDEP is not set -# CONFIG_SND_HDA_INPUT_BEEP is not set -# CONFIG_SND_HDA_INPUT_JACK is not set -# CONFIG_SND_HDA_PATCH_LOADER is not set +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_JACK=y +CONFIG_SND_HDA_PATCH_LOADER=y CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y -CONFIG_SND_HDA_CODEC_ATIHDMI=y -CONFIG_SND_HDA_CODEC_NVHDMI=y -CONFIG_SND_HDA_CODEC_INTELHDMI=y -CONFIG_SND_HDA_ELD=y +CONFIG_SND_HDA_CODEC_HDMI=y CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y -# CONFIG_SND_HDA_POWER_SAVE is not set +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m -CONFIG_SND_HIFIER=m CONFIG_SND_ICE1712=m CONFIG_SND_ICE1724=m CONFIG_SND_INTEL8X0=m CONFIG_SND_INTEL8X0M=m CONFIG_SND_KORG1212=m +CONFIG_SND_LOLA=m CONFIG_SND_LX6464ES=m CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MIXART=m CONFIG_SND_NM256=m CONFIG_SND_PCXHR=m @@ -2532,49 +3140,27 @@ CONFIG_SND_YMFPCI=m CONFIG_SND_ARM=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m CONFIG_SND_USB_CAIAQ=m -# CONFIG_SND_USB_CAIAQ_INPUT is not set +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_FIREWIRE=y +CONFIG_SND_FIREWIRE_LIB=m +CONFIG_SND_FIREWIRE_SPEAKERS=m +CONFIG_SND_ISIGHT=m CONFIG_SND_PCMCIA=y CONFIG_SND_VXPOCKET=m CONFIG_SND_PDAUDIOCF=m CONFIG_SND_SOC=m +CONFIG_SND_SOC_CACHE_LZO=y +CONFIG_SND_KIRKWOOD_SOC=m +CONFIG_SND_KIRKWOOD_SOC_I2S=m +CONFIG_SND_KIRKWOOD_SOC_OPENRD=m +CONFIG_SND_KIRKWOOD_SOC_T5325=m CONFIG_SND_SOC_I2C_AND_SPI=m -CONFIG_SND_SOC_ALL_CODECS=m -CONFIG_SND_SOC_WM_HUBS=m -CONFIG_SND_SOC_AD73311=m -CONFIG_SND_SOC_AK4535=m -CONFIG_SND_SOC_AK4642=m -CONFIG_SND_SOC_CS4270=m -CONFIG_SND_SOC_L3=m -CONFIG_SND_SOC_PCM3008=m -CONFIG_SND_SOC_SPDIF=m -CONFIG_SND_SOC_SSM2602=m -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_UDA134X=m -CONFIG_SND_SOC_UDA1380=m -CONFIG_SND_SOC_WM8350=m -CONFIG_SND_SOC_WM8400=m -CONFIG_SND_SOC_WM8510=m -CONFIG_SND_SOC_WM8523=m -CONFIG_SND_SOC_WM8580=m -CONFIG_SND_SOC_WM8728=m -CONFIG_SND_SOC_WM8731=m -CONFIG_SND_SOC_WM8750=m -CONFIG_SND_SOC_WM8753=m -CONFIG_SND_SOC_WM8776=m -CONFIG_SND_SOC_WM8900=m -CONFIG_SND_SOC_WM8903=m -CONFIG_SND_SOC_WM8940=m -CONFIG_SND_SOC_WM8960=m -CONFIG_SND_SOC_WM8961=m -CONFIG_SND_SOC_WM8971=m -CONFIG_SND_SOC_WM8974=m -CONFIG_SND_SOC_WM8988=m -CONFIG_SND_SOC_WM8990=m -CONFIG_SND_SOC_WM8993=m -CONFIG_SND_SOC_WM9081=m -CONFIG_SND_SOC_MAX9877=m +# CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_ALC5623=m +CONFIG_SND_SOC_CS42L51=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y @@ -2592,45 +3178,82 @@ CONFIG_USB_HIDDEV=y # Special HID drivers # CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +# CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m +CONFIG_HID_PRODIKEYS=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m -CONFIG_DRAGONRISE_FF=y +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +CONFIG_HID_ELECOM=m CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +# CONFIG_HOLTEK_FF is not set +CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m CONFIG_HID_LOGITECH=m -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +CONFIG_HID_MAGICMOUSE=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m -CONFIG_PANTHERLORD_FF=y +# CONFIG_PANTHERLORD_FF is not set CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_COMMON=m +CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_KOVAPLUS=m +CONFIG_HID_ROCCAT_PYRA=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m -CONFIG_GREENASIA_FF=y +# CONFIG_GREENASIA_FF is not set CONFIG_HID_SMARTJOYPLUS=m -CONFIG_SMARTJOYPLUS_FF=y +# CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TOPSEED=m CONFIG_HID_THRUSTMASTER=m -CONFIG_THRUSTMASTER_FF=y +# CONFIG_THRUSTMASTER_FF is not set CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_WIIMOTE=m CONFIG_HID_ZEROPLUS=m -CONFIG_ZEROPLUS_FF=y +# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_ZYDACRON=m CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=m +CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
@@ -2642,6 +3265,8 @@ CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_DYNAMIC_MINORS=y CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_MON is not set CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m @@ -2653,32 +3278,27 @@ CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=m # CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y -# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m # CONFIG_USB_ISP1760_HCD is not set -# CONFIG_USB_ISP1362_HCD is not set -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_OHCI_HCD_SSB=y +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=m +CONFIG_USB_UHCI_HCD=y CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_HCD_ISO is not set # CONFIG_USB_SL811_CS is not set CONFIG_USB_R8A66597_HCD=m CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m
# -# Enable Host or Gadget support to see Inventra options -# -# CONFIG_USB_MUSB_HDRC is not set - -# # USB Device Class drivers # CONFIG_USB_ACM=m @@ -2695,7 +3315,9 @@ CONFIG_USB_TMC=m # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m CONFIG_USB_STORAGE_USBAT=m @@ -2706,6 +3328,8 @@ CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m # CONFIG_USB_LIBUSUAL is not set
# @@ -2731,12 +3355,12 @@ CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m @@ -2746,11 +3370,13 @@ CONFIG_USB_SERIAL_IUU=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_MOS7720=m +# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_HP4X=m @@ -2762,9 +3388,13 @@ CONFIG_USB_SERIAL_SYMBOL=m CONFIG_USB_SERIAL_TI=m # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_SERIAL_DEBUG is not set
# @@ -2777,7 +3407,6 @@ CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m -CONFIG_USB_BERRY_CHARGE=m CONFIG_USB_LED=m CONFIG_USB_CYPRESS_CY7C63=m CONFIG_USB_CYTHERM=m @@ -2791,7 +3420,7 @@ CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set CONFIG_USB_ISIGHTFW=m -CONFIG_USB_VST=m +CONFIG_USB_YUREX=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m @@ -2804,21 +3433,22 @@ CONFIG_USB_XUSBATM=m # CONFIG_USB_OTG_UTILS=y CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_ULPI is not set CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m -CONFIG_UWB_WLP=m CONFIG_UWB_I1480U=m -CONFIG_UWB_I1480U_WLP=m CONFIG_MMC=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set
# # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m CONFIG_MMC_TEST=m @@ -2828,15 +3458,17 @@ CONFIG_MMC_TEST=m # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_RICOH_MMC=m +# CONFIG_MMC_RICOH_MMC is not set CONFIG_MMC_SDHCI_PLTFM=m -# CONFIG_MMC_AT91 is not set -# CONFIG_MMC_ATMELMCI is not set CONFIG_MMC_TIFM_SD=m CONFIG_MMC_MVSDIO=m CONFIG_MMC_SDRICOH_CS=m CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_DW=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set
@@ -2851,30 +3483,37 @@ CONFIG_MSPRO_BLOCK=m # CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m +CONFIG_LEDS_CLASS=y
# # LED drivers # +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_LM3530=m CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_GPIO=m -CONFIG_LEDS_GPIO_PLATFORM=y CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m +CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_NS2=y +CONFIG_LEDS_NETXBIG=y +CONFIG_LEDS_TRIGGERS=y
# # LED Triggers # -CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m CONFIG_LEDS_TRIGGER_GPIO=m -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
# # iptables trigger is under Netfilter config (LED target) @@ -2883,7 +3522,10 @@ CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=m +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set
# # RTC interfaces @@ -2892,26 +3534,32 @@ CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_DRV_TEST=m +# CONFIG_RTC_DRV_TEST is not set
# # I2C RTC drivers # +CONFIG_RTC_DRV_88PM860X=y CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m -# CONFIG_RTC_DRV_M41T80_WDT is not set +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_S35390A=m CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m
# # SPI RTC drivers @@ -2929,119 +3577,120 @@ CONFIG_RTC_DRV_STK17TA8=m CONFIG_RTC_DRV_M48T86=m CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_AB3100=m
# # on-CPU RTC drivers # -CONFIG_RTC_DRV_MV=m +CONFIG_RTC_DRV_MV=y CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set
# # DMA Devices # +CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y CONFIG_MV_XOR=y +# CONFIG_TIMB_DMA is not set CONFIG_DMA_ENGINE=y
# # DMA Clients # # CONFIG_NET_DMA is not set -# CONFIG_ASYNC_TX_DMA is not set +CONFIG_ASYNC_TX_DMA=y CONFIG_DMATEST=m # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m CONFIG_UIO_CIF=m CONFIG_UIO_PDRV=m CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_SMX=m CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_NETX=m
# -# TI VLYNQ +# Virtio drivers # +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set CONFIG_ET131X=m -# CONFIG_ET131X_DEBUG is not set -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_USB_IP_COMMON is not set +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set # CONFIG_ECHO is not set -# CONFIG_POCH is not set -# CONFIG_OTUS is not set -# CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set -# CONFIG_ALTERA_PCIE_CHDMA is not set -# CONFIG_RTL8187SE is not set -# CONFIG_RTL8192SU is not set +# CONFIG_R8187SE is not set +# CONFIG_RTL8192U is not set # CONFIG_RTL8192E is not set +# CONFIG_R8712U is not set +# CONFIG_RTS_PSTOR is not set +# CONFIG_RTS5139 is not set # CONFIG_TRANZPORT is not set - -# -# Android -# - -# -# Qualcomm MSM Camera And Video -# - -# -# Camera Sensor Selection -# -# CONFIG_INPUT_GPIO is not set -# CONFIG_DST is not set # CONFIG_POHMELFS is not set -# CONFIG_B3DFG is not set CONFIG_IDE_PHISON=m -# CONFIG_PLAN9AUTH is not set # CONFIG_LINE6_USB is not set +# CONFIG_DRM_NOUVEAU is not set # CONFIG_USB_SERIAL_QUATECH2 is not set # CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_FB_UDL is not set # CONFIG_VME_BUS is not set +# CONFIG_DX_SEP is not set +# CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_WLAGS49_H2 is not set +# CONFIG_WLAGS49_H25 is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_CRYSTALHD is not set +# CONFIG_CXT1E1 is not set +# CONFIG_FB_XGI is not set +# CONFIG_SBE_2T3E3 is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set
# -# RAR Register Driver +# Speakup console speech # -# CONFIG_RAR_REGISTER is not set -# CONFIG_IIO is not set +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_STAGING_MEDIA is not set + +# +# Hardware Spinlock drivers +# +CONFIG_CLKSRC_MMIO=y +CONFIG_IOMMU_SUPPORT=y +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_PM_DEVFREQ is not set
# # File systems # -CONFIG_EXT2_FS=m -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=m -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=m +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -CONFIG_JBD2=m -CONFIG_FS_MBCACHE=m -CONFIG_REISER4_FS=m -# CONFIG_REISER4_DEBUG is not set +CONFIG_JBD2=y +CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set CONFIG_REISERFS_PROC_INFO=y @@ -3053,29 +3702,29 @@ CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y # CONFIG_JFS_DEBUG is not set CONFIG_JFS_STATISTICS=y -CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_RT is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=m CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y -CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=m CONFIG_QFMT_V1=m CONFIG_QFMT_V2=m CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_CUSE=m @@ -3120,6 +3769,7 @@ CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set CONFIG_MISC_FILESYSTEMS=y @@ -3147,6 +3797,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_JFFS2_CMODE_FAVOURLZO is not set # CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set @@ -3155,8 +3806,12 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +# CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m CONFIG_NFS_V3=y @@ -3164,6 +3819,9 @@ CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y # CONFIG_NFS_V4_1 is not set # CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y @@ -3171,15 +3829,12 @@ CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS2=y @@ -3189,7 +3844,8 @@ CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_ACL=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set @@ -3204,7 +3860,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_ATARI_PARTITION is not set # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set +CONFIG_BSD_DISKLABEL=y # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set @@ -3256,12 +3912,12 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y -# CONFIG_DLM is not set
# # Kernel hacking # # CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 @@ -3270,12 +3926,13 @@ CONFIG_STRIP_ASM_SYMS=y # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y @@ -3291,9 +3948,11 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y @@ -3302,41 +3961,54 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set # CONFIG_SYSCTL_SYSCALL_CHECK is not set -# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_PAGEALLOC is not set CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_STRICT_DEVMEM is not set # CONFIG_ARM_UNWIND is not set # CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_ERRORS is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_LL is not set +CONFIG_DEBUG_LL=y +CONFIG_DEBUG_LL_UART_NONE=y +# CONFIG_DEBUG_ICEDCC is not set +CONFIG_EARLY_PRINTK=y
# # Security options # CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set # CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m @@ -3348,7 +4020,6 @@ CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=m @@ -3359,9 +4030,12 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=m CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m # CONFIG_CRYPTO_NULL is not set CONFIG_CRYPTO_WORKQUEUE=y @@ -3399,7 +4073,7 @@ CONFIG_CRYPTO_VMAC=m # CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_GHASH=m -# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m @@ -3419,6 +4093,7 @@ CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m @@ -3443,8 +4118,11 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m CONFIG_CRYPTO_HW=y -# CONFIG_CRYPTO_DEV_MV_CESA is not set +CONFIG_CRYPTO_DEV_MV_CESA=m CONFIG_CRYPTO_DEV_HIFN_795X=m CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y # CONFIG_BINARY_PRINTF is not set @@ -3452,23 +4130,35 @@ CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y # # Library routines # +CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +CONFIG_CRC16=y CONFIG_CRC_T10DIF=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -3478,3 +4168,6 @@ CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_NLATTR=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_AVERAGE=y +CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.armv5tel-ipfire-omap b/config/kernel/kernel.config.armv5tel-ipfire-omap new file mode 100644 index 0000000..a517782 --- /dev/null +++ b/config/kernel/kernel.config.armv5tel-ipfire-omap @@ -0,0 +1,3577 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm 3.2.35 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_HAVE_PWM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_SCHED_CLOCK=y +CONFIG_GENERIC_GPIO=y +# CONFIG_ARCH_USES_GETTIMEOFFSET is not set +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_KTIME_SCALAR=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_GENERIC_BUG=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +# CONFIG_KERNEL_GZIP is not set +CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_FHANDLE is not set +# CONFIG_TASKSTATS is not set +CONFIG_AUDIT=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_SPARSE_IRQ=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_PREEMPT_RCU is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_FANOUT_EXACT is not set +CONFIG_RCU_FAST_NO_HZ=y +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=19 +# CONFIG_CGROUPS is not set +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_EXPERT=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +# CONFIG_PROFILING is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y + +# +# GCOV-based kernel profiling +# +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +# CONFIG_BLK_DEV_INTEGRITY is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_PADATA=y +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CNS3XXX is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_PRIMA2 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_MXS is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_LPC32XX is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_PICOXCELL is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_SHMOBILE is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_TCC_926 is not set +# CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_NOMADIK is not set +# CONFIG_ARCH_DAVINCI is not set +CONFIG_ARCH_OMAP=y +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_VT8500 is not set +# CONFIG_ARCH_ZYNQ is not set +CONFIG_GPIO_PCA953X=m +CONFIG_KEYBOARD_GPIO_POLLED=m + +# +# TI OMAP Common Features +# +CONFIG_ARCH_OMAP_OTG=y +# CONFIG_ARCH_OMAP1 is not set +CONFIG_ARCH_OMAP2PLUS=y + +# +# OMAP Feature Selections +# +CONFIG_OMAP_DEBUG_DEVICES=y +CONFIG_OMAP_DEBUG_LEDS=y +# CONFIG_OMAP_SMARTREFLEX is not set +CONFIG_OMAP_RESET_CLOCKS=y +CONFIG_OMAP_MUX=y +# CONFIG_OMAP_MUX_DEBUG is not set +CONFIG_OMAP_MUX_WARNINGS=y +CONFIG_OMAP_MCBSP=y +# CONFIG_OMAP_MBOX_FWK is not set +CONFIG_OMAP_32K_TIMER=y +# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set +CONFIG_OMAP_32K_TIMER_HZ=128 +CONFIG_OMAP_DM_TIMER=y +CONFIG_OMAP_PM_NOOP=y +CONFIG_MACH_OMAP_GENERIC=y + +# +# TI OMAP2/3/4 Specific Features +# +CONFIG_ARCH_OMAP2PLUS_TYPICAL=y +CONFIG_ARCH_OMAP2=y +CONFIG_ARCH_OMAP3=y +CONFIG_ARCH_OMAP4=y + +# +# OMAP Core Type +# +CONFIG_SOC_OMAP2420=y +CONFIG_SOC_OMAP2430=y +CONFIG_SOC_OMAP3430=y +CONFIG_SOC_OMAPTI816X=y +CONFIG_OMAP_PACKAGE_ZAF=y +CONFIG_OMAP_PACKAGE_ZAC=y +CONFIG_OMAP_PACKAGE_CBB=y +CONFIG_OMAP_PACKAGE_CUS=y +CONFIG_OMAP_PACKAGE_CBP=y +CONFIG_OMAP_PACKAGE_CBL=y +CONFIG_OMAP_PACKAGE_CBS=y + +# +# OMAP Board Type +# +CONFIG_MACH_OMAP_H4=y +CONFIG_MACH_OMAP_APOLLON=y +CONFIG_MACH_OMAP_2430SDP=y +CONFIG_MACH_OMAP3_BEAGLE=y +CONFIG_MACH_DEVKIT8000=y +CONFIG_MACH_OMAP_LDP=y +CONFIG_MACH_OMAP3530_LV_SOM=y +CONFIG_MACH_OMAP3_TORPEDO=y +CONFIG_MACH_OVERO=y +CONFIG_MACH_OMAP3EVM=y +CONFIG_MACH_OMAP3517EVM=y +# CONFIG_MACH_CRANEBOARD is not set +CONFIG_MACH_OMAP3_PANDORA=y +CONFIG_MACH_OMAP3_TOUCHBOOK=y +CONFIG_MACH_OMAP_3430SDP=y +# CONFIG_MACH_NOKIA_N8X0 is not set +CONFIG_MACH_NOKIA_RM680=y +CONFIG_MACH_NOKIA_RX51=y +CONFIG_MACH_OMAP_ZOOM2=y +CONFIG_MACH_OMAP_ZOOM3=y +CONFIG_MACH_CM_T35=y +CONFIG_MACH_CM_T3517=y +CONFIG_MACH_CM_T3730=y +CONFIG_MACH_IGEP0020=y +CONFIG_MACH_IGEP0030=y +CONFIG_MACH_SBC3530=y +CONFIG_MACH_OMAP_3630SDP=y +CONFIG_MACH_TI8168EVM=y +CONFIG_MACH_OMAP_4430SDP=y +CONFIG_MACH_OMAP4_PANDA=y +# CONFIG_OMAP3_EMU is not set +# CONFIG_OMAP3_SDRC_AC_TIMING is not set + +# +# System MMU +# + +# +# Processor Type +# +CONFIG_CPU_V6=y +CONFIG_CPU_V7=y +CONFIG_CPU_32v6=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV6=y +CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_PABRT_V6=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_CACHE_V6=y +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V6=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y +CONFIG_CPU_USE_DOMAINS=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_ARM_THUMBEE is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_CACHE_L2X0=y +CONFIG_ARM_L1_CACHE_SHIFT=5 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +# CONFIG_ARM_ERRATA_326103 is not set +CONFIG_ARM_ERRATA_411920=y +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_458693=y +CONFIG_ARM_ERRATA_460075=y +# CONFIG_ARM_ERRATA_742230 is not set +CONFIG_ARM_ERRATA_742231=y +CONFIG_PL310_ERRATA_588369=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_PL310_ERRATA_727915=y +CONFIG_ARM_ERRATA_743622=y +# CONFIG_ARM_ERRATA_751472 is not set +CONFIG_ARM_ERRATA_754322=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_PL310_ERRATA_769419=y +CONFIG_ARM_GIC=y + +# +# Bus support +# +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_ARM_CPU_TOPOLOGY=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_HAVE_ARM_SCU=y +CONFIG_HAVE_ARM_TWD=y +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_NR_CPUS=8 +CONFIG_HOTPLUG_CPU=y +CONFIG_LOCAL_TIMERS=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_HZ=128 +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_CLEANCACHE is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y +CONFIG_UACCESS_WITH_MEMCPY=y +CONFIG_SECCOMP=y +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set + +# +# Boot options +# +CONFIG_USE_OF=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_ARM_APPENDED_DTB is not set +CONFIG_CMDLINE="" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +# CONFIG_AUTO_ZRELADDR is not set + +# +# CPU Power Management +# + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_NEON=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_HAVE_AOUT=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +# CONFIG_APM_EMULATION is not set +CONFIG_ARCH_HAS_OPP=y +CONFIG_PM_OPP=y +CONFIG_PM_CLK=y +CONFIG_CPU_PM=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_MIGRATE=y +CONFIG_XFRM_STATISTICS=y +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +CONFIG_NET_KEY_MIGRATE=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_ARPD=y +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_LRO=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_DEFAULT_RENO=y +CONFIG_DEFAULT_TCP_CONG="reno" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +# CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_MULTIPLE_TABLES=y +# CONFIG_IPV6_SUBTREES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_IMQ=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_LAYER7=m +# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +# CONFIG_IP_SET is not set +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +# CONFIG_IP_VS_PROTO_TCP is not set +# CONFIG_IP_VS_PROTO_UDP is not set +# CONFIG_IP_VS_PROTO_AH_ESP is not set +# CONFIG_IP_VS_PROTO_ESP is not set +# CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set + +# +# IPVS scheduler +# +# CONFIG_IP_VS_RR is not set +# CONFIG_IP_VS_WRR is not set +# CONFIG_IP_VS_LC is not set +# CONFIG_IP_VS_WLC is not set +# CONFIG_IP_VS_LBLC is not set +# CONFIG_IP_VS_LBLCR is not set +# CONFIG_IP_VS_DH is not set +# CONFIG_IP_VS_SH is not set +# CONFIG_IP_VS_SED is not set +# CONFIG_IP_VS_NQ is not set + +# +# IPVS application helper +# +# CONFIG_IP_VS_NFCT is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_MATCH_IPP2P=m + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV6=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_RAW=m +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_NFLOG=m +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +CONFIG_ATM_CLIP_NO_ICMP=y +# CONFIG_ATM_LANE is not set +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_NET_DSA=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_DECNET is not set +CONFIG_LLC=m +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_PHONET is not set +CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_INGRESS=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +CONFIG_CLS_U32_PERF=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_CLS_IND=y +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +# CONFIG_DONGLE is not set +CONFIG_KINGSUN_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KS959_DONGLE=m + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_MCS_FIR=m +CONFIG_BT=m +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_REG_DEBUG is not set +# CONFIG_CFG80211_DEFAULT_PS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUG_MENU is not set +# CONFIG_WIMAX is not set +CONFIG_RFKILL=m +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m +CONFIG_RFKILL_GPIO=m +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +# CONFIG_DEVTMPFS is not set +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_FW_LOADER=y +# CONFIG_FIRMWARE_IN_KERNEL is not set +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m +CONFIG_CONNECTOR=m +CONFIG_MTD=m +CONFIG_MTD_TESTS=m +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_AR7_PARTS=m + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +CONFIG_SM_FTL=m +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND is not set +# CONFIG_MTD_ONENAND is not set + +# +# LPDDR flash memory drivers +# +CONFIG_MTD_LPDDR=m +CONFIG_MTD_QINFO_PROBE=m +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +# CONFIG_MTD_UBI_GLUEBI is not set +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_DTC=y +CONFIG_OF=y + +# +# Device Tree and Open Firmware support +# +CONFIG_PROC_DEVICETREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_DEVICE=y +CONFIG_OF_GPIO=y +CONFIG_OF_I2C=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y +CONFIG_PARPORT=m +# CONFIG_PARPORT_PC is not set +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_OSD=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=8 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_MG_DISK=m +CONFIG_MG_DISK_RES=0 +CONFIG_BLK_DEV_RBD=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set +# CONFIG_ATMEL_PWM is not set +CONFIG_ICS932S401=m +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_APDS9802ALS=m +CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_BMP085=m +CONFIG_USB_SWITCH_FSA9480=m +CONFIG_C2PORT=m + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EEPROM_93CX6=m +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWMC3200TOP_DEBUGFS is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +CONFIG_SENSORS_LIS3_I2C=m + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=m +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=m +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=m +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +# CONFIG_SCSI_DEBUG is not set +CONFIG_SCSI_DH=m +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_ATA=m +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +CONFIG_SATA_MV=m + +# +# PATA SFF controllers with BMDMA +# +CONFIG_PATA_ARASAN_CF=m + +# +# PIO-only SFF controllers +# +CONFIG_PATA_PLATFORM=m +CONFIG_PATA_OF_PLATFORM=m + +# +# Generic fallback / legacy drivers +# +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +# CONFIG_MULTICORE_RAID456 is not set +CONFIG_MD_MULTIPATH=m +# CONFIG_MD_FAULTY is not set +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set +CONFIG_DM_MIRROR=m +CONFIG_DM_RAID=m +CONFIG_DM_LOG_USERSPACE=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_DELAY=m +CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +# CONFIG_TARGET_CORE is not set +CONFIG_NETDEVICES=y +CONFIG_NET_CORE=y +CONFIG_BONDING=m +CONFIG_DUMMY=m +CONFIG_EQUALIZER=m +CONFIG_IMQ=m +# CONFIG_IMQ_BEHAVIOR_AA is not set +CONFIG_IMQ_BEHAVIOR_AB=y +# CONFIG_IMQ_BEHAVIOR_BA is not set +# CONFIG_IMQ_BEHAVIOR_BB is not set +CONFIG_IMQ_NUM_DEVS=2 +CONFIG_MII=m +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m + +# +# CAIF transport drivers +# +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_DM9000=m +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set +CONFIG_DNET=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_NET_VENDOR_FARADAY=y +# CONFIG_FTMAC100 is not set +# CONFIG_FTGMAC100 is not set +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NET_VENDOR_8390=y +CONFIG_AX88796=m +CONFIG_AX88796_93CX6=y +CONFIG_ETHOC=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_SMC911X=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set +CONFIG_NET_VENDOR_TI=y +# CONFIG_TI_DAVINCI_EMAC is not set +# CONFIG_TI_DAVINCI_MDIO is not set +# CONFIG_TI_DAVINCI_CPDMA is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m +# CONFIG_FIXED_PHY is not set +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_HSO=m +CONFIG_USB_NET_INT51X1=m +# CONFIG_USB_IPHETH is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_AT76C50X_USB=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_RTL8187 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_ATH_COMMON is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMFMAC is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_P54_COMMON is not set +# CONFIG_RT2X00 is not set +# CONFIG_RTL8192CU is not set +# CONFIG_WL1251 is not set +# CONFIG_WL12XX_MENU is not set +# CONFIG_ZD1211RW is not set +# CONFIG_MWIFIEX is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +CONFIG_WAN=y +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m + +# +# X.25/LAPB support is disabled +# +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_ISDN=y +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y + +# +# ISDN feature submodules +# +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +# CONFIG_HISAX_NO_SENDCOMPLETE is not set +# CONFIG_HISAX_NO_LLC is not set +# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_3=y +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_NICCY=y +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_DEBUG=y + +# +# HiSax PCMCIA card service modules +# + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m + +# +# Active cards +# +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_CAPI=y +# CONFIG_GIGASET_I4L is not set +# CONFIG_GIGASET_DUMMYLL is not set +CONFIG_GIGASET_BASE=m +CONFIG_GIGASET_M105=m +CONFIG_GIGASET_M101=m +# CONFIG_GIGASET_DEBUG is not set +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCUSB=m +CONFIG_ISDN_HDLC=m +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_MATRIX=m +CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_OPENCORES=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_OMAP=m +CONFIG_KEYBOARD_OMAP4=m +CONFIG_KEYBOARD_TWL4030=m +CONFIG_KEYBOARD_XTKBD=m +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_TWL6040_VIBRA=m +# CONFIG_INPUT_UINPUT is not set +CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_PARKBD is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_PS2MULT=m +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DW=m + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_OMAP=y +CONFIG_SERIAL_OMAP_CONSOLE=y +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_XILINX_PS_UART=m +# CONFIG_TTY_PRINTK is not set +CONFIG_PRINTER=m +# CONFIG_LP_CONSOLE is not set +CONFIG_PPDEV=m +# CONFIG_HVC_DCC is not set +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_PANIC_EVENT=y +# CONFIG_IPMI_PANIC_STRING is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_OMAP=m +CONFIG_NVRAM=m +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_RAMOOPS is not set +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +CONFIG_I2C_GPIO=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_OMAP=y +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_XILINX=m + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_DIOLAN_U2C=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_STUB=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_SPI is not set + +# +# PPS support +# +CONFIG_PPS=m +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m +CONFIG_DP83640_PHY=m +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIOLIB=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_MAX730X=m + +# +# Memory mapped GPIO drivers: +# +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_IT8761E=m + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCF857X=m +# CONFIG_GPIO_SX150X is not set +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_ADP5588=m + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +CONFIG_GPIO_MCP23S08=m + +# +# AC97 GPIO expanders: +# + +# +# MODULbus GPIO expanders: +# +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS1WM=m +CONFIG_W1_MASTER_GPIO=m +CONFIG_HDQ_MASTER_OMAP=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2423=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2760 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +CONFIG_CHARGER_TWL4030=m +CONFIG_CHARGER_GPIO=m +CONFIG_HWMON=m +CONFIG_HWMON_VID=m +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_LINEAGE=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m +CONFIG_SENSORS_SMM665=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_TWL4030_MADC=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_DW_WATCHDOG=m +CONFIG_MPCORE_WATCHDOG=m +CONFIG_OMAP_WATCHDOG=m +CONFIG_TWL4030_WATCHDOG=m +CONFIG_MAX63XX_WATCHDOG=m + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +CONFIG_SSB=m +CONFIG_SSB_SDIOHOST_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +# CONFIG_SSB_SILENT is not set +# CONFIG_SSB_DEBUG is not set +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +CONFIG_BCMA=m +# CONFIG_BCMA_DEBUG is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_88PM860X is not set +CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_HTC_EGPIO is not set +CONFIG_HTC_PASIC3=m +# CONFIG_HTC_I2CPLD is not set +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +CONFIG_MENELAUS=y +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_MADC=m +CONFIG_TWL4030_POWER=y +CONFIG_MFD_TWL4030_AUDIO=y +CONFIG_TWL6030_PWM=m +CONFIG_TWL6040_CORE=y +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +CONFIG_MFD_WM8400=m +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +CONFIG_MFD_PCF50633=m +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +# CONFIG_ABX500_CORE is not set +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_OMAP_USB_HOST=y +# CONFIG_MFD_AAT2870_CORE is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=y +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +CONFIG_REGULATOR_GPIO=m +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +CONFIG_REGULATOR_TWL4030=y +# CONFIG_REGULATOR_WM8400 is not set +# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_AD5398 is not set +CONFIG_MEDIA_SUPPORT=m + +# +# Multimedia core support +# +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y +CONFIG_VIDEO_MEDIA=m + +# +# Multimedia drivers +# +CONFIG_RC_CORE=m +CONFIG_LIRC=m +CONFIG_RC_MAP=m +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_RC5_SZ_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_LIRC_CODEC is not set +# CONFIG_RC_ATI_REMOTE is not set +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_TUNER=m +# CONFIG_MEDIA_TUNER_CUSTOMISE is not set +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m + +# +# Encoders, decoders, sensors and other helper chips +# + +# +# Audio decoders, processors and mixers +# +# CONFIG_VIDEO_TVAUDIO is not set +# CONFIG_VIDEO_TDA7432 is not set +# CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TEA6415C is not set +# CONFIG_VIDEO_TEA6420 is not set +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_CS5345 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_WM8775 is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_VP27SMPX is not set + +# +# RDS decoders +# +# CONFIG_VIDEO_SAA6588 is not set + +# +# Video decoders +# +# CONFIG_VIDEO_ADV7180 is not set +# CONFIG_VIDEO_BT819 is not set +# CONFIG_VIDEO_BT856 is not set +# CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_SAA7110 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_SAA7191 is not set +# CONFIG_VIDEO_TVP514X is not set +# CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set +# CONFIG_VIDEO_VPX3220 is not set + +# +# Video and audio decoders +# +# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_CX25840 is not set + +# +# MPEG video encoders +# +# CONFIG_VIDEO_CX2341X is not set + +# +# Video encoders +# +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_S5K6AA is not set + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set + +# +# Video improvement chips +# +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set +# CONFIG_VIDEO_VIVI is not set +# CONFIG_VIDEO_VPFE_CAPTURE is not set +# CONFIG_VIDEO_OMAP2_VOUT is not set +# CONFIG_VIDEO_BWQCAM is not set +# CONFIG_VIDEO_CQCAM is not set +# CONFIG_VIDEO_W9966 is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_TIMBERDALE is not set +# CONFIG_VIDEO_AU0828 is not set +# CONFIG_SOC_CAMERA is not set +# CONFIG_VIDEO_OMAP2 is not set +# CONFIG_V4L_USB_DRIVERS is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set +CONFIG_RADIO_ADAPTERS=y +# CONFIG_I2C_SI4713 is not set +# CONFIG_RADIO_SI4713 is not set +# CONFIG_USB_DSBR is not set +# CONFIG_RADIO_SI470X is not set +# CONFIG_USB_MR800 is not set +# CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +CONFIG_RADIO_WL128X=m +CONFIG_DVB_MAX_ADAPTERS=8 +# CONFIG_DVB_DYNAMIC_MINORS is not set +CONFIG_DVB_CAPTURE_DRIVERS=y +# CONFIG_TTPCI_EEPROM is not set + +# +# Supported USB Adapters +# +# CONFIG_DVB_USB is not set +# CONFIG_SMS_SIANO_MDTV is not set + +# +# Supported FlexCopII (B2C2) Adapters +# +# CONFIG_DVB_B2C2_FLEXCOP is not set + +# +# Supported DVB Frontends +# +# CONFIG_DVB_FE_CUSTOMISE is not set + +# +# Multistandard (satellite) frontends +# + +# +# Multistandard (cable + terrestrial) frontends +# + +# +# DVB-S (satellite) frontends +# + +# +# DVB-T (terrestrial) frontends +# + +# +# DVB-C (cable) frontends +# + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# + +# +# ISDB-T (terrestrial) frontends +# + +# +# Digital terrestrial only tuners/PLL +# + +# +# SEC control devices for DVB-S +# + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set + +# +# Graphics support +# +CONFIG_DRM=m +# CONFIG_VGASTATE is not set +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=m +# CONFIG_FB_WMT_GE_ROPS is not set +CONFIG_FB_DEFERRED_IO=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +CONFIG_FB_UVESA=m +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +CONFIG_FB_SM501=m +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_METRONOME=m +# CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set +CONFIG_OMAP2_VRAM=y +CONFIG_OMAP2_VRFB=y +CONFIG_OMAP2_DSS=y +CONFIG_OMAP2_VRAM_SIZE=32 +CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y +# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set +CONFIG_OMAP2_DSS_DPI=y +# CONFIG_OMAP2_DSS_RFBI is not set +# CONFIG_OMAP2_DSS_VENC is not set +CONFIG_OMAP4_DSS_HDMI=y +# CONFIG_OMAP2_DSS_SDI is not set +CONFIG_OMAP2_DSS_DSI=y +# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0 +CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y +CONFIG_FB_OMAP2=y +CONFIG_FB_OMAP2_DEBUG_SUPPORT=y +CONFIG_FB_OMAP2_NUM_FBS=3 + +# +# OMAP2/3 Display Device Drivers +# +CONFIG_PANEL_GENERIC_DPI=y +CONFIG_PANEL_DVI=y +CONFIG_PANEL_SHARP_LS037V7DW01=y +# CONFIG_PANEL_PICODLP is not set +CONFIG_PANEL_TAAL=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_PLATFORM=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GENERIC=y +CONFIG_BACKLIGHT_PWM=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_PCF50633=m + +# +# Display device support +# +CONFIG_DISPLAY_SUPPORT=y + +# +# Display hardware drivers +# + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_SOUND=m +CONFIG_SOUND_OSS_CORE=y +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y +# CONFIG_SND_SUPPORT_OLD_API is not set +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_RAWMIDI_SEQ=m +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_MPU401_UART=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_ALOOP=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_ARM=y +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_SOC=m +CONFIG_SND_SOC_CACHE_LZO=y +CONFIG_SND_OMAP_SOC=m +CONFIG_SND_OMAP_SOC_MCBSP=m +CONFIG_SND_OMAP_SOC_MCPDM=m +CONFIG_SND_OMAP_SOC_RX51=m +CONFIG_SND_OMAP_SOC_OVERO=m +CONFIG_SND_OMAP_SOC_OMAP3EVM=m +CONFIG_SND_OMAP_SOC_AM3517EVM=m +CONFIG_SND_OMAP_SOC_SDP3430=m +CONFIG_SND_OMAP_SOC_SDP4430=m +# CONFIG_SND_OMAP_SOC_OMAP4_HDMI is not set +CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m +CONFIG_SND_OMAP_SOC_ZOOM2=m +CONFIG_SND_OMAP_SOC_IGEP0020=m +CONFIG_SND_SOC_I2C_AND_SPI=m +# CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_TLV320AIC23=m +CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_SOC_TWL6040=m +CONFIG_SND_SOC_TPA6130A2=m +# CONFIG_SOUND_PRIME is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HIDRAW is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_HID_PID is not set +CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +# CONFIG_HID_ACRUX_FF is not set +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +CONFIG_HID_ELECOM=m +CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +# CONFIG_HOLTEK_FF is not set +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m +CONFIG_HID_GYRATION=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m +CONFIG_HID_LOGITECH=m +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +# CONFIG_PANTHERLORD_FF is not set +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_COMMON=m +CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_KOVAPLUS=m +CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_GREENASIA=m +# CONFIG_GREENASIA_FF is not set +CONFIG_HID_SMARTJOYPLUS=m +# CONFIG_SMARTJOYPLUS_FF is not set +CONFIG_HID_TOPSEED=m +CONFIG_HID_THRUSTMASTER=m +# CONFIG_THRUSTMASTER_FF is not set +CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_WIIMOTE=m +CONFIG_HID_ZEROPLUS=m +# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_ZYDACRON=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +# CONFIG_USB_ARCH_HAS_XHCI is not set +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_SUSPEND=y +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set +# CONFIG_USB_MON is not set +# CONFIG_USB_WUSB is not set +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_HCD_OMAP=y +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_ISP116X_HCD=m +# CONFIG_USB_ISP1760_HCD is not set +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_OMAP1=y +CONFIG_USB_OHCI_HCD_OMAP3=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_U132_HCD=m +CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_HCD_ISO is not set +CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_HWA_HCD is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB port drivers +# +CONFIG_USB_USS720=m +CONFIG_USB_SERIAL=m +CONFIG_USB_EZUSB=y +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +# CONFIG_USB_SERIAL_CYBERJACK is not set +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_OPTION=m +# CONFIG_USB_SERIAL_OMNINET is not set +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_SSU100=m +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +# CONFIG_USB_ADUTUX is not set +CONFIG_USB_SEVSEG=m +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +CONFIG_USB_LCD=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +# CONFIG_USB_IDMOUSE is not set +CONFIG_USB_FTDI_ELAN=m +# CONFIG_USB_APPLEDISPLAY is not set +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SISUSBVGA_CON=y +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +CONFIG_USB_IOWARRIOR=m +# CONFIG_USB_TEST is not set +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_YUREX=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m +# CONFIG_USB_GADGET is not set + +# +# OTG and related infrastructure +# +CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=m +# CONFIG_ISP1301_OMAP is not set +# CONFIG_USB_ULPI is not set +CONFIG_TWL4030_USB=m +CONFIG_TWL6030_USB=m +# CONFIG_NOP_USB_XCEIV is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=m +CONFIG_MMC_TEST=m + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +# CONFIG_MMC_SDHCI_PXAV3 is not set +# CONFIG_MMC_SDHCI_PXAV2 is not set +CONFIG_MMC_OMAP=y +CONFIG_MMC_OMAP_HS=y +CONFIG_MMC_DW=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +# +# MemoryStick drivers +# +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m + +# +# MemoryStick Host Controller Drivers +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_LM3530=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m +CONFIG_LEDS_PCA955X=m +# CONFIG_LEDS_PWM is not set +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_LT3593=m +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_TRIGGERS=y + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m + +# +# iptables trigger is under Netfilter config (LED target) +# +CONFIG_LEDS_TRIGGER_NETDEV=m +# CONFIG_ACCESSIBILITY is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=y +CONFIG_RTC_DRV_TWL92330=y +CONFIG_RTC_DRV_TWL4030=y +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m +CONFIG_RTC_DRV_BQ4802=y +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_PCF50633=m + +# +# on-CPU RTC drivers +# +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_DW_DMAC=m +CONFIG_TIMB_DMA=m +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +CONFIG_ASYNC_TX_DMA=y +CONFIG_DMATEST=m +# CONFIG_AUXDISPLAY is not set +CONFIG_UIO=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m + +# +# Virtio drivers +# +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set +CONFIG_STAGING=y +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set +# CONFIG_W35UND is not set +# CONFIG_PRISM2_USB is not set +# CONFIG_ECHO is not set +# CONFIG_ASUS_OLED is not set +# CONFIG_PANEL is not set +# CONFIG_R8712U is not set +# CONFIG_RTS5139 is not set +# CONFIG_TRANZPORT is not set +# CONFIG_POHMELFS is not set +# CONFIG_LINE6_USB is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set +# CONFIG_VT6656 is not set +# CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_TIDSPBRIDGE is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_STAGING_MEDIA is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HWSPINLOCK=m + +# +# Hardware Spinlock drivers +# +CONFIG_HWSPINLOCK_OMAP=m +CONFIG_CLKSRC_MMIO=y +CONFIG_IOMMU_SUPPORT=y +# CONFIG_OMAP_IOMMU is not set +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_PM_DEVFREQ is not set + +# +# File systems +# +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_PROC_INFO=y +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_STATISTICS=y +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +# CONFIG_XFS_RT is not set +# CONFIG_XFS_DEBUG is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=m +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=m +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_CUSE=m + +# +# Caches +# +CONFIG_FSCACHE=m +# CONFIG_FSCACHE_STATS is not set +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +# CONFIG_MSDOS_FS is not set +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=850 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_XATTR=y +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +CONFIG_ECRYPT_FS=m +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set +# CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set +# CONFIG_CRAMFS is not set +# CONFIG_SQUASHFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +# CONFIG_EXOFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +# CONFIG_NFS_V4_1 is not set +# CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_CEPH_FS is not set +CONFIG_CIFS=m +CONFIG_CIFS_STATS=y +CONFIG_CIFS_STATS2=y +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_UPCALL is not set +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_DFS_UPCALL is not set +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_ACL=y +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="cp850" +# CONFIG_NLS_CODEPAGE_437 is not set +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +CONFIG_NLS_CODEPAGE_850=y +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_STRIP_ASM_SYMS=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +CONFIG_TIMER_STATS=y +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_SYSCTL_SYSCALL_CHECK is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_STRICT_DEVMEM is not set +# CONFIG_ARM_UNWIND is not set +# CONFIG_DEBUG_USER is not set +CONFIG_DEBUG_LL=y +CONFIG_DEBUG_LL_UART_NONE=y +# CONFIG_DEBUG_ICEDCC is not set +CONFIG_EARLY_PRINTK=y + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_GF128MUL=m +# CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_PCRYPT=m +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_AUTHENC=m +# CONFIG_CRYPTO_TEST is not set + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_SEQIV=m + +# +# Block modes +# +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XTS=m + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_VMAC=m + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_WP512=m + +# +# Ciphers +# +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_ZLIB=m +CONFIG_CRYPTO_LZO=m + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_OMAP_SHAM=m +CONFIG_CRYPTO_DEV_OMAP_AES=m +# CONFIG_BINARY_PRINTF is not set + +# +# Library routines +# +CONFIG_RAID6_PQ=m +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_CRC8=m +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CPU_RMAP=y +CONFIG_NLATTR=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_AVERAGE=y +CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.armv5tel-ipfire-rpi b/config/kernel/kernel.config.armv5tel-ipfire-rpi new file mode 100644 index 0000000..a149d03 --- /dev/null +++ b/config/kernel/kernel.config.armv5tel-ipfire-rpi @@ -0,0 +1,3407 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm 3.2.35 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_SCHED_CLOCK=y +CONFIG_GENERIC_GPIO=y +# CONFIG_ARCH_USES_GETTIMEOFFSET is not set +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_KTIME_SCALAR=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_FIQ=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_NEED_MACH_MEMORY_H=y +CONFIG_GENERIC_BUG=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +# CONFIG_KERNEL_GZIP is not set +CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_FHANDLE is not set +# CONFIG_TASKSTATS is not set +CONFIG_AUDIT=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_IRQ_DOMAIN=y +CONFIG_SPARSE_IRQ=y + +# +# RCU Subsystem +# +CONFIG_TINY_RCU=y +# CONFIG_PREEMPT_RCU is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=19 +# CONFIG_CGROUPS is not set +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +# CONFIG_EXPERT is not set +CONFIG_UID16=y +# CONFIG_SYSCTL_SYSCALL is not set +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_PROFILING is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y + +# +# GCOV-based kernel profiling +# +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_BLOCK=y +CONFIG_LBDAF=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +# CONFIG_BLK_DEV_INTEGRITY is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +# CONFIG_MUTEX_SPIN_ON_OWNER is not set +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CNS3XXX is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_PRIMA2 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_MXS is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_LPC32XX is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_PICOXCELL is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_SHMOBILE is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_TCC_926 is not set +# CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_NOMADIK is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_PLAT_SPEAR is not set +CONFIG_ARCH_BCM2708=y +# CONFIG_ARCH_VT8500 is not set +# CONFIG_ARCH_ZYNQ is not set +CONFIG_GPIO_PCA953X=m +CONFIG_KEYBOARD_GPIO_POLLED=m + +# +# System MMU +# + +# +# Broadcom BCM2708 Implementations +# +CONFIG_MACH_BCM2708=y +CONFIG_BCM2708_GPIO=y +CONFIG_BCM2708_VCMEM=y +# CONFIG_BCM2708_NOL2CACHE is not set +CONFIG_BCM2708_DMAER=m + +# +# Processor Type +# +CONFIG_CPU_V6=y +CONFIG_CPU_32v6=y +CONFIG_CPU_ABRT_EV6=y +CONFIG_CPU_PABRT_V6=y +CONFIG_CPU_CACHE_V6=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V6=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y +CONFIG_CPU_USE_DOMAINS=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_ARM_L1_CACHE_SHIFT=5 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_CPU_HAS_PMU=y +# CONFIG_ARM_ERRATA_326103 is not set +CONFIG_ARM_ERRATA_411920=y +# CONFIG_ARM_ERRATA_364296 is not set +CONFIG_PL330=y + +# +# Bus support +# +CONFIG_ARM_AMBA=y +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_HZ=100 +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +# CONFIG_HIGHMEM is not set +CONFIG_HW_PERF_EVENTS=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_VIRT_TO_BUS=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_NEED_PER_CPU_KM=y +# CONFIG_CLEANCACHE is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_ALIGNMENT_TRAP=y +CONFIG_UACCESS_WITH_MEMCPY=y +CONFIG_SECCOMP=y +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set + +# +# Boot options +# +CONFIG_USE_OF=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_ARM_APPENDED_DTB is not set +CONFIG_CMDLINE="dwc_otg.lpm_enable=0 console=ttyAMA0,115200 root=/dev/mmcblk0p3 rootwait" +CONFIG_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_CMDLINE_EXTEND is not set +# CONFIG_CMDLINE_FORCE is not set +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +# CONFIG_AUTO_ZRELADDR is not set + +# +# CPU Power Management +# + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_STAT=m +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y + +# +# ARM CPU frequency scaling drivers +# +CONFIG_ARM_BCM2835_CPUFREQ=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_VFP=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_HAVE_AOUT=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_PM_SLEEP=y +CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +# CONFIG_APM_EMULATION is not set +CONFIG_PM_CLK=y +CONFIG_CPU_PM=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_MIGRATE=y +CONFIG_XFRM_STATISTICS=y +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +CONFIG_NET_KEY_MIGRATE=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_ARPD=y +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_LRO=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_DEFAULT_RENO=y +CONFIG_DEFAULT_TCP_CONG="reno" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +# CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_MULTIPLE_TABLES=y +# CONFIG_IPV6_SUBTREES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_IMQ=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_LAYER7=m +# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +# CONFIG_IP_SET is not set +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +# CONFIG_IP_VS_PROTO_TCP is not set +# CONFIG_IP_VS_PROTO_UDP is not set +# CONFIG_IP_VS_PROTO_AH_ESP is not set +# CONFIG_IP_VS_PROTO_ESP is not set +# CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set + +# +# IPVS scheduler +# +# CONFIG_IP_VS_RR is not set +# CONFIG_IP_VS_WRR is not set +# CONFIG_IP_VS_LC is not set +# CONFIG_IP_VS_WLC is not set +# CONFIG_IP_VS_LBLC is not set +# CONFIG_IP_VS_LBLCR is not set +# CONFIG_IP_VS_DH is not set +# CONFIG_IP_VS_SH is not set +# CONFIG_IP_VS_SED is not set +# CONFIG_IP_VS_NQ is not set + +# +# IPVS application helper +# +# CONFIG_IP_VS_NFCT is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_MATCH_IPP2P=m + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV6=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_RAW=m +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_NFLOG=m +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +CONFIG_ATM_CLIP_NO_ICMP=y +# CONFIG_ATM_LANE is not set +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_NET_DSA=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_DECNET is not set +CONFIG_LLC=m +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_PHONET is not set +CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_INGRESS=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +CONFIG_CLS_U32_PERF=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_CLS_IND=y +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +# CONFIG_DONGLE is not set +CONFIG_KINGSUN_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KS959_DONGLE=m + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_MCS_FIR=m +CONFIG_BT=m +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_REG_DEBUG is not set +# CONFIG_CFG80211_DEFAULT_PS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUG_MENU is not set +# CONFIG_WIMAX is not set +CONFIG_RFKILL=m +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m +CONFIG_RFKILL_GPIO=m +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +# CONFIG_DEVTMPFS is not set +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_FW_LOADER=y +# CONFIG_FIRMWARE_IN_KERNEL is not set +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m +CONFIG_CONNECTOR=m +CONFIG_MTD=m +CONFIG_MTD_TESTS=m +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_AR7_PARTS=m + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +CONFIG_SM_FTL=m +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +# CONFIG_MTD_NAND_GPIO is not set +CONFIG_MTD_NAND_IDS=m +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_NANDSIM is not set +CONFIG_MTD_NAND_PLATFORM=m +# CONFIG_MTD_ALAUDA is not set +# CONFIG_MTD_ONENAND is not set + +# +# LPDDR flash memory drivers +# +CONFIG_MTD_LPDDR=m +CONFIG_MTD_QINFO_PROBE=m +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +# CONFIG_MTD_UBI_GLUEBI is not set +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_DTC=y +CONFIG_OF=y + +# +# Device Tree and Open Firmware support +# +CONFIG_PROC_DEVICETREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_DEVICE=y +CONFIG_OF_GPIO=y +CONFIG_OF_I2C=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y +CONFIG_PARPORT=m +# CONFIG_PARPORT_PC is not set +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_OSD=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=8 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_MG_DISK=m +CONFIG_MG_DISK_RES=0 +CONFIG_BLK_DEV_RBD=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set +# CONFIG_ATMEL_PWM is not set +CONFIG_ICS932S401=m +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_APDS9802ALS=m +CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_BMP085=m +CONFIG_USB_SWITCH_FSA9480=m +CONFIG_C2PORT=m + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EEPROM_93CX6=m +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWMC3200TOP_DEBUGFS is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +CONFIG_SENSORS_LIS3_I2C=m + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set +CONFIG_BCM2708_VCHIQ=y + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +# CONFIG_SCSI_DEBUG is not set +CONFIG_SCSI_DH=m +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_ATA=m +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +CONFIG_SATA_MV=m + +# +# PATA SFF controllers with BMDMA +# +CONFIG_PATA_ARASAN_CF=m + +# +# PIO-only SFF controllers +# + +# +# Generic fallback / legacy drivers +# +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_MULTIPATH=m +# CONFIG_MD_FAULTY is not set +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set +CONFIG_DM_MIRROR=m +CONFIG_DM_RAID=m +CONFIG_DM_LOG_USERSPACE=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_DELAY=m +CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +# CONFIG_TARGET_CORE is not set +CONFIG_NETDEVICES=y +CONFIG_NET_CORE=y +CONFIG_BONDING=m +CONFIG_DUMMY=m +CONFIG_EQUALIZER=m +CONFIG_IMQ=m +# CONFIG_IMQ_BEHAVIOR_AA is not set +CONFIG_IMQ_BEHAVIOR_AB=y +# CONFIG_IMQ_BEHAVIOR_BA is not set +# CONFIG_IMQ_BEHAVIOR_BB is not set +CONFIG_IMQ_NUM_DEVS=2 +CONFIG_MII=m +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m + +# +# CAIF transport drivers +# +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_DM9000=m +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set +CONFIG_DNET=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_NET_VENDOR_FARADAY=y +# CONFIG_FTMAC100 is not set +# CONFIG_FTGMAC100 is not set +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NET_VENDOR_8390=y +CONFIG_AX88796=m +CONFIG_AX88796_93CX6=y +CONFIG_ETHOC=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_SMC911X=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m +# CONFIG_FIXED_PHY is not set +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_HSO=m +CONFIG_USB_NET_INT51X1=m +# CONFIG_USB_IPHETH is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_AT76C50X_USB=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_RTL8187 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_ATH_COMMON is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMFMAC is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_P54_COMMON is not set +# CONFIG_RT2X00 is not set +# CONFIG_WL1251 is not set +# CONFIG_WL12XX_MENU is not set +# CONFIG_ZD1211RW is not set +# CONFIG_MWIFIEX is not set +# CONFIG_RTL8192CU is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +CONFIG_WAN=y +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m + +# +# X.25/LAPB support is disabled +# +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_ISDN=y +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y + +# +# ISDN feature submodules +# +# CONFIG_ISDN_DRV_LOOP is not set +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +# CONFIG_HISAX_NO_SENDCOMPLETE is not set +# CONFIG_HISAX_NO_LLC is not set +# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_3=y +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_NICCY=y +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_DEBUG=y + +# +# HiSax PCMCIA card service modules +# + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m + +# +# Active cards +# +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_CAPI=y +# CONFIG_GIGASET_I4L is not set +# CONFIG_GIGASET_DUMMYLL is not set +CONFIG_GIGASET_BASE=m +CONFIG_GIGASET_M105=m +CONFIG_GIGASET_M101=m +# CONFIG_GIGASET_DEBUG is not set +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCUSB=m +CONFIG_ISDN_HDLC=m +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_MATRIX=m +CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_OPENCORES=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_88PM860X_ONKEY=m +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +# CONFIG_INPUT_UINPUT is not set +CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_PARKBD is not set +CONFIG_SERIO_AMBAKMI=m +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_PS2MULT=m +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DW=m + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_AMBA_PL010=y +CONFIG_SERIAL_AMBA_PL010_CONSOLE=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_PRINTER=m +# CONFIG_LP_CONSOLE is not set +CONFIG_PPDEV=m +# CONFIG_HVC_DCC is not set +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_PANIC_EVENT=y +# CONFIG_IPMI_PANIC_STRING is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_NVRAM=m +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_RAMOOPS is not set +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_BCM2708=m +CONFIG_I2C_BCM2708_BAUDRATE=100000 +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_GPIO=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_XILINX=m + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_DIOLAN_U2C=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_STUB=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_SPI is not set + +# +# PPS support +# +CONFIG_PPS=m +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m +CONFIG_DP83640_PHY=m +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIOLIB=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_MAX730X=m + +# +# Memory mapped GPIO drivers: +# +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_PL061=y + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCF857X=m +# CONFIG_GPIO_SX150X is not set +CONFIG_GPIO_ADP5588=m + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +CONFIG_GPIO_MCP23S08=m + +# +# AC97 GPIO expanders: +# +# CONFIG_GPIO_UCB1400 is not set + +# +# MODULbus GPIO expanders: +# +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS1WM=m +CONFIG_W1_MASTER_GPIO=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2423=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2760 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_GPIO is not set +CONFIG_HWMON=m +CONFIG_HWMON_VID=m +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_LINEAGE=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m +CONFIG_SENSORS_SMM665=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_THERMAL=y +CONFIG_THERMAL_BCM2835=y +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_ARM_SP805_WATCHDOG=m +CONFIG_DW_WATCHDOG=m +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_BCM2708_WDT=m + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +CONFIG_SSB=m +CONFIG_SSB_SDIOHOST_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +# CONFIG_SSB_DEBUG is not set +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +CONFIG_BCMA=m +# CONFIG_BCMA_DEBUG is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +CONFIG_MFD_88PM860X=y +CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_HTC_EGPIO is not set +CONFIG_HTC_PASIC3=m +# CONFIG_HTC_I2CPLD is not set +CONFIG_UCB1400_CORE=m +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +CONFIG_MFD_WM8400=m +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +CONFIG_MFD_PCF50633=m +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +# CONFIG_ABX500_CORE is not set +CONFIG_MFD_WL1273_CORE=m +# CONFIG_MFD_AAT2870_CORE is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +CONFIG_REGULATOR_GPIO=m +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_WM8400 is not set +# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_88PM8607 is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_AD5398 is not set +CONFIG_MEDIA_SUPPORT=m + +# +# Multimedia core support +# +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y +CONFIG_VIDEO_MEDIA=m + +# +# Multimedia drivers +# +CONFIG_RC_CORE=m +CONFIG_LIRC=m +CONFIG_RC_MAP=m +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_RC5_SZ_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_LIRC_CODEC is not set +# CONFIG_RC_ATI_REMOTE is not set +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_TUNER=m +# CONFIG_MEDIA_TUNER_CUSTOMISE is not set +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m + +# +# Encoders, decoders, sensors and other helper chips +# + +# +# Audio decoders, processors and mixers +# +# CONFIG_VIDEO_TVAUDIO is not set +# CONFIG_VIDEO_TDA7432 is not set +# CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TEA6415C is not set +# CONFIG_VIDEO_TEA6420 is not set +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_CS5345 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_WM8775 is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_VP27SMPX is not set + +# +# RDS decoders +# +# CONFIG_VIDEO_SAA6588 is not set + +# +# Video decoders +# +# CONFIG_VIDEO_ADV7180 is not set +# CONFIG_VIDEO_BT819 is not set +# CONFIG_VIDEO_BT856 is not set +# CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_SAA7110 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_SAA7191 is not set +# CONFIG_VIDEO_TVP514X is not set +# CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set +# CONFIG_VIDEO_VPX3220 is not set + +# +# Video and audio decoders +# +# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_CX25840 is not set + +# +# MPEG video encoders +# +# CONFIG_VIDEO_CX2341X is not set + +# +# Video encoders +# +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_S5K6AA is not set + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set + +# +# Video improvement chips +# +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set +# CONFIG_VIDEO_VIVI is not set +# CONFIG_VIDEO_BWQCAM is not set +# CONFIG_VIDEO_CQCAM is not set +# CONFIG_VIDEO_W9966 is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_TIMBERDALE is not set +# CONFIG_VIDEO_AU0828 is not set +# CONFIG_SOC_CAMERA is not set +CONFIG_V4L_USB_DRIVERS=y +# CONFIG_USB_VIDEO_CLASS is not set +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +# CONFIG_USB_GSPCA is not set +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_HDPVR is not set +# CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_TLG2300 is not set +# CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_TM6000 is not set +# CONFIG_VIDEO_USBVISION is not set +# CONFIG_USB_ET61X251 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_PWC is not set +# CONFIG_USB_ZR364XX is not set +# CONFIG_USB_STKWEBCAM is not set +# CONFIG_USB_S2255 is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set +CONFIG_RADIO_ADAPTERS=y +# CONFIG_I2C_SI4713 is not set +# CONFIG_RADIO_SI4713 is not set +# CONFIG_USB_DSBR is not set +# CONFIG_RADIO_SI470X is not set +# CONFIG_USB_MR800 is not set +# CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +# CONFIG_RADIO_WL128X is not set +CONFIG_DVB_MAX_ADAPTERS=8 +# CONFIG_DVB_DYNAMIC_MINORS is not set +CONFIG_DVB_CAPTURE_DRIVERS=y +# CONFIG_TTPCI_EEPROM is not set + +# +# Supported USB Adapters +# +# CONFIG_DVB_USB is not set +# CONFIG_SMS_SIANO_MDTV is not set + +# +# Supported FlexCopII (B2C2) Adapters +# +# CONFIG_DVB_B2C2_FLEXCOP is not set + +# +# Supported DVB Frontends +# +# CONFIG_DVB_FE_CUSTOMISE is not set + +# +# Multistandard (satellite) frontends +# + +# +# Multistandard (cable + terrestrial) frontends +# + +# +# DVB-S (satellite) frontends +# + +# +# DVB-T (terrestrial) frontends +# + +# +# DVB-C (cable) frontends +# + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# + +# +# ISDB-T (terrestrial) frontends +# + +# +# Digital terrestrial only tuners/PLL +# + +# +# SEC control devices for DVB-S +# + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set + +# +# Graphics support +# +CONFIG_DRM=m +# CONFIG_VGASTATE is not set +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=m +# CONFIG_FB_WMT_GE_ROPS is not set +CONFIG_FB_DEFERRED_IO=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +CONFIG_FB_BCM2708=y +CONFIG_FB_ARMCLCD=y +CONFIG_FB_UVESA=m +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +CONFIG_FB_SM501=m +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_METRONOME=m +# CONFIG_FB_BROADSHEET is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_PLATFORM=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_88PM860X=m +CONFIG_BACKLIGHT_PCF50633=m + +# +# Display device support +# +CONFIG_DISPLAY_SUPPORT=y + +# +# Display hardware drivers +# + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_SOUND=m +CONFIG_SOUND_OSS_CORE=y +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y +# CONFIG_SND_SUPPORT_OLD_API is not set +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y +CONFIG_SND_RAWMIDI_SEQ=m +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_MPU401_UART=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_ALOOP=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_ARM=y +CONFIG_SND_ARMAACI=m +CONFIG_SND_BCM2835=m +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_SOC=m +CONFIG_SND_SOC_CACHE_LZO=y +CONFIG_SND_SOC_I2C_AND_SPI=m +# CONFIG_SND_SOC_ALL_CODECS is not set +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HIDRAW is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_HID_PID is not set +CONFIG_USB_HIDDEV=y + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +# CONFIG_HID_ACRUX_FF is not set +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +CONFIG_HID_ELECOM=m +CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +# CONFIG_HOLTEK_FF is not set +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m +CONFIG_HID_GYRATION=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m +CONFIG_HID_LOGITECH=m +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +# CONFIG_PANTHERLORD_FF is not set +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_COMMON=m +CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_KOVAPLUS=m +CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_GREENASIA=m +# CONFIG_GREENASIA_FF is not set +CONFIG_HID_SMARTJOYPLUS=m +# CONFIG_SMARTJOYPLUS_FF is not set +CONFIG_HID_TOPSEED=m +CONFIG_HID_THRUSTMASTER=m +# CONFIG_THRUSTMASTER_FF is not set +CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_WIIMOTE=m +CONFIG_HID_ZEROPLUS=m +# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_ZYDACRON=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB_ARCH_HAS_XHCI is not set +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_SUSPEND=y +# CONFIG_USB_OTG is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set +# CONFIG_USB_MON is not set +# CONFIG_USB_WUSB is not set +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_ISP116X_HCD=m +# CONFIG_USB_ISP1760_HCD is not set +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_U132_HCD=m +CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_HCD_ISO is not set +CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_HWA_HCD is not set +CONFIG_USB_DWCOTG=y + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB port drivers +# +CONFIG_USB_USS720=m +CONFIG_USB_SERIAL=m +CONFIG_USB_EZUSB=y +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +# CONFIG_USB_SERIAL_CYBERJACK is not set +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_OPTION=m +# CONFIG_USB_SERIAL_OMNINET is not set +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_SSU100=m +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +# CONFIG_USB_ADUTUX is not set +CONFIG_USB_SEVSEG=m +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +CONFIG_USB_LCD=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +# CONFIG_USB_IDMOUSE is not set +CONFIG_USB_FTDI_ELAN=m +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +CONFIG_USB_IOWARRIOR=m +# CONFIG_USB_TEST is not set +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_YUREX=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m +# CONFIG_USB_GADGET is not set + +# +# OTG and related infrastructure +# +CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_ULPI is not set +CONFIG_NOP_USB_XCEIV=m +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=m +CONFIG_MMC_TEST=m + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_ARMMMCI=m +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_PXAV2=m +CONFIG_MMC_SDHCI_BCM2708=y +CONFIG_MMC_SDHCI_BCM2708_DMA=y +# CONFIG_MMC_BCM2708 is not set +CONFIG_MMC_DW=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +# +# MemoryStick drivers +# +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m + +# +# MemoryStick Host Controller Drivers +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_LM3530=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_LT3593=m +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_TRIGGERS=y + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y + +# +# iptables trigger is under Netfilter config (LED target) +# +CONFIG_LEDS_TRIGGER_NETDEV=m +# CONFIG_ACCESSIBILITY is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_88PM860X=y +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_PCF50633=m + +# +# on-CPU RTC drivers +# +CONFIG_RTC_DRV_PL030=m +CONFIG_RTC_DRV_PL031=m +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_AMBA_PL08X=y +CONFIG_DW_DMAC=y +# CONFIG_TIMB_DMA is not set +CONFIG_PL330_DMA=y +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +CONFIG_ASYNC_TX_DMA=y +CONFIG_DMATEST=m +# CONFIG_AUXDISPLAY is not set +CONFIG_UIO=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m + +# +# Virtio drivers +# +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set +CONFIG_STAGING=y +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set +# CONFIG_W35UND is not set +# CONFIG_PRISM2_USB is not set +# CONFIG_ECHO is not set +# CONFIG_ASUS_OLED is not set +# CONFIG_PANEL is not set +# CONFIG_R8712U is not set +# CONFIG_RTS5139 is not set +# CONFIG_TRANZPORT is not set +# CONFIG_POHMELFS is not set +# CONFIG_LINE6_USB is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set +# CONFIG_VT6656 is not set +# CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_STAGING_MEDIA is not set +CONFIG_CLKDEV_LOOKUP=y + +# +# Hardware Spinlock drivers +# +CONFIG_IOMMU_SUPPORT=y +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_PM_DEVFREQ is not set + +# +# File systems +# +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_PROC_INFO=y +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_STATISTICS=y +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +# CONFIG_XFS_RT is not set +# CONFIG_XFS_DEBUG is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=m +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=m +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_CUSE=m + +# +# Caches +# +CONFIG_FSCACHE=m +# CONFIG_FSCACHE_STATS is not set +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +# CONFIG_MSDOS_FS is not set +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=850 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_XATTR=y +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +CONFIG_ECRYPT_FS=m +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set +# CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set +# CONFIG_CRAMFS is not set +# CONFIG_SQUASHFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +# CONFIG_EXOFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +# CONFIG_NFS_V4_1 is not set +# CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_CEPH_FS is not set +CONFIG_CIFS=m +CONFIG_CIFS_STATS=y +CONFIG_CIFS_STATS2=y +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_UPCALL is not set +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_DFS_UPCALL is not set +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_ACL=y +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="cp850" +# CONFIG_NLS_CODEPAGE_437 is not set +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +CONFIG_NLS_CODEPAGE_850=y +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_STRIP_ASM_SYMS=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +CONFIG_TIMER_STATS=y +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_LATENCYTOP is not set +# CONFIG_SYSCTL_SYSCALL_CHECK is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_STRICT_DEVMEM is not set +# CONFIG_ARM_UNWIND is not set +# CONFIG_DEBUG_USER is not set +CONFIG_DEBUG_LL=y +CONFIG_DEBUG_LL_UART_NONE=y +# CONFIG_DEBUG_ICEDCC is not set +# CONFIG_DEBUG_BCM2708_UART0 is not set +CONFIG_EARLY_PRINTK=y +# CONFIG_OC_ETM is not set + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_GF128MUL=m +# CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_AUTHENC=m +# CONFIG_CRYPTO_TEST is not set + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_SEQIV=m + +# +# Block modes +# +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XTS=m + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_VMAC=m + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_WP512=m + +# +# Ciphers +# +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_ZLIB=m +CONFIG_CRYPTO_LZO=m + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_HW=y +# CONFIG_BINARY_PRINTF is not set + +# +# Library routines +# +CONFIG_RAID6_PQ=m +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_CRC8=m +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_NLATTR=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_AVERAGE=y +CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.armv5tel-ipfire-versatile b/config/kernel/kernel.config.armv5tel-ipfire-versatile deleted file mode 100644 index 6bdf4c5..0000000 --- a/config/kernel/kernel.config.armv5tel-ipfire-versatile +++ /dev/null @@ -1,3464 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.45 -# Sat Oct 15 16:59:52 2011 -# -CONFIG_ARM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_TIME=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_HARDIRQS=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_VECTORS_BASE=0xffff0000 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set -CONFIG_SWAP=y -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -CONFIG_POSIX_MQUEUE=y -CONFIG_POSIX_MQUEUE_SYSCTL=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_TASKSTATS is not set -CONFIG_AUDIT=y - -# -# RCU Subsystem -# -CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set -CONFIG_RCU_FANOUT=32 -# CONFIG_RCU_FANOUT_EXACT is not set -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=19 -# CONFIG_CGROUPS is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -# CONFIG_PID_NS is not set -# CONFIG_NET_NS is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=y -CONFIG_RD_LZMA=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -# CONFIG_EMBEDDED is not set -CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_AIO=y - -# -# Kernel Performance Events And Counters -# -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_PCI_QUIRKS=y -CONFIG_SLUB_DEBUG=y -# CONFIG_COMPAT_BRK is not set -# CONFIG_SLAB is not set -CONFIG_SLUB=y -# CONFIG_SLOB is not set -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_CLK=y - -# -# GCOV-based kernel profiling -# -CONFIG_SLOW_WORK=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_BLOCK=y -CONFIG_LBDAF=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set -# CONFIG_DEFAULT_DEADLINE is not set -CONFIG_DEFAULT_CFQ=y -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="cfq" -CONFIG_FREEZER=y - -# -# System Type -# -CONFIG_MMU=y -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_REALVIEW is not set -CONFIG_ARCH_VERSATILE=y -# CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_GEMINI is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_EP93XX is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_STMP3XXX is not set -# CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_NOMADIK is not set -# CONFIG_ARCH_IOP13XX is not set -# CONFIG_ARCH_IOP32X is not set -# CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_LOKI is not set -# CONFIG_ARCH_MV78XX0 is not set -# CONFIG_ARCH_ORION5X is not set -# CONFIG_ARCH_MMP is not set -# CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_NS9XXX is not set -# CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_PNX4008 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_MSM is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_S3C64XX is not set -# CONFIG_ARCH_S5PC1XX is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_U300 is not set -# CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_BCMRING is not set - -# -# Versatile platform type -# -CONFIG_ARCH_VERSATILE_PB=y -CONFIG_MACH_VERSATILE_AB=y - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_ARM926T=y -CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5TJ=y -CONFIG_CPU_PABRT_LEGACY=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_V4WB=y -CONFIG_CPU_TLB_V4WBI=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y - -# -# Processor Features -# -CONFIG_ARM_THUMB=y -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_WRITETHROUGH is not set -# CONFIG_CPU_CACHE_ROUND_ROBIN is not set -CONFIG_ARM_L1_CACHE_SHIFT=5 -CONFIG_ARM_VIC=y -CONFIG_ARM_VIC_NR=2 -CONFIG_ICST307=y -CONFIG_COMMON_CLKDEV=y - -# -# Bus support -# -CONFIG_ARM_AMBA=y -CONFIG_PCI=y -CONFIG_PCI_SYSCALL=y -# CONFIG_ARCH_SUPPORTS_MSI is not set -CONFIG_PCI_LEGACY=y -# CONFIG_PCI_DEBUG is not set -CONFIG_PCI_STUB=m -CONFIG_PCI_IOV=y -CONFIG_PCCARD=m -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=m -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -CONFIG_YENTA=m -CONFIG_YENTA_O2=y -CONFIG_YENTA_RICOH=y -CONFIG_YENTA_TI=y -CONFIG_YENTA_ENE_TUNE=y -CONFIG_YENTA_TOSHIBA=y -CONFIG_PD6729=m -CONFIG_I82092=m -CONFIG_PCCARD_NONSTATIC=m - -# -# Kernel Features -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_VMSPLIT_3G=y -# CONFIG_VMSPLIT_2G is not set -# CONFIG_VMSPLIT_1G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PREEMPT is not set -CONFIG_HZ=100 -CONFIG_AEABI=y -# CONFIG_OABI_COMPAT is not set -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -CONFIG_HIGHMEM=y -# CONFIG_HIGHPTE is not set -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set -CONFIG_FLATMEM=y -CONFIG_FLAT_NODE_MEM_MAP=y -CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4096 -# CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_ZONE_DMA_FLAG=0 -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y -CONFIG_KSM=y -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -# CONFIG_LEDS is not set -CONFIG_ALIGNMENT_TRAP=y -CONFIG_UACCESS_WITH_MEMCPY=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="" -# CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set - -# -# CPU Power Management -# -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_IDLE_GOV_MENU=y - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -# CONFIG_VFP is not set - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set - -# -# Power management options -# -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -# CONFIG_APM_EMULATION is not set -CONFIG_PM_RUNTIME=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_NET=y - -# -# Networking options -# -CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y -CONFIG_UNIX=y -CONFIG_XFRM=y -CONFIG_XFRM_USER=m -# CONFIG_XFRM_SUB_POLICY is not set -CONFIG_XFRM_MIGRATE=y -CONFIG_XFRM_STATISTICS=y -CONFIG_XFRM_IPCOMP=m -CONFIG_NET_KEY=m -CONFIG_NET_KEY_MIGRATE=y -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -# CONFIG_IP_PNP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE=m -CONFIG_NET_IPGRE_BROADCAST=y -CONFIG_IP_MROUTE=y -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_ARPD=y -CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_XFRM_TUNNEL=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y -CONFIG_INET_LRO=y -CONFIG_INET_DIAG=m -CONFIG_INET_TCP_DIAG=m -CONFIG_TCP_CONG_ADVANCED=y -CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m -CONFIG_TCP_CONG_WESTWOOD=m -CONFIG_TCP_CONG_HTCP=m -CONFIG_TCP_CONG_HSTCP=m -CONFIG_TCP_CONG_HYBLA=m -CONFIG_TCP_CONG_VEGAS=m -CONFIG_TCP_CONG_SCALABLE=m -CONFIG_TCP_CONG_LP=m -CONFIG_TCP_CONG_VENO=m -CONFIG_TCP_CONG_YEAH=m -CONFIG_TCP_CONG_ILLINOIS=m -# CONFIG_DEFAULT_BIC is not set -# CONFIG_DEFAULT_CUBIC is not set -# CONFIG_DEFAULT_HTCP is not set -# CONFIG_DEFAULT_VEGAS is not set -# CONFIG_DEFAULT_WESTWOOD is not set -CONFIG_DEFAULT_RENO=y -CONFIG_DEFAULT_TCP_CONG="reno" -# CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m -# CONFIG_IPV6_PRIVACY is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_IPV6_MIP6=m -CONFIG_INET6_XFRM_TUNNEL=m -CONFIG_INET6_TUNNEL=m -CONFIG_INET6_XFRM_MODE_TRANSPORT=m -CONFIG_INET6_XFRM_MODE_TUNNEL=m -CONFIG_INET6_XFRM_MODE_BEET=m -CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m -CONFIG_IPV6_SIT=m -CONFIG_IPV6_NDISC_NODETYPE=y -CONFIG_IPV6_TUNNEL=m -CONFIG_IPV6_MULTIPLE_TABLES=y -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_NETWORK_SECMARK is not set -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set -CONFIG_NETFILTER_ADVANCED=y -CONFIG_BRIDGE_NETFILTER=y - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK=m -CONFIG_NF_CT_ACCT=y -CONFIG_NF_CONNTRACK_MARK=y -CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CT_PROTO_DCCP=m -CONFIG_NF_CT_PROTO_GRE=m -CONFIG_NF_CT_PROTO_SCTP=m -CONFIG_NF_CT_PROTO_UDPLITE=m -CONFIG_NF_CONNTRACK_AMANDA=m -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_PPTP=m -CONFIG_NF_CONNTRACK_SANE=m -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_TFTP=m -CONFIG_NF_CT_NETLINK=m -CONFIG_NETFILTER_TPROXY=m -CONFIG_NETFILTER_XTABLES=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -CONFIG_NETFILTER_XT_TARGET_DSCP=m -CONFIG_NETFILTER_XT_TARGET_HL=m -CONFIG_NETFILTER_XT_TARGET_LED=m -CONFIG_NETFILTER_XT_TARGET_IMQ=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFLOG=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_TARGET_RATEEST=m -CONFIG_NETFILTER_XT_TARGET_TPROXY=m -CONFIG_NETFILTER_XT_TARGET_TRACE=m -CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m -CONFIG_NETFILTER_XT_MATCH_CLUSTER=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_DSCP=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_HL=m -CONFIG_NETFILTER_XT_MATCH_IPRANGE=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_OWNER=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_RATEEST=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_SOCKET=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_LAYER7=m -# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -CONFIG_NETFILTER_XT_MATCH_TIME=m -CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_MATCH_OSF=m -CONFIG_IP_VS=m -CONFIG_IP_VS_IPV6=y -# CONFIG_IP_VS_DEBUG is not set -CONFIG_IP_VS_TAB_BITS=12 - -# -# IPVS transport protocol load balancing support -# -# CONFIG_IP_VS_PROTO_TCP is not set -# CONFIG_IP_VS_PROTO_UDP is not set -# CONFIG_IP_VS_PROTO_ESP is not set -# CONFIG_IP_VS_PROTO_AH is not set - -# -# IPVS scheduler -# -# CONFIG_IP_VS_RR is not set -# CONFIG_IP_VS_WRR is not set -# CONFIG_IP_VS_LC is not set -# CONFIG_IP_VS_WLC is not set -# CONFIG_IP_VS_LBLC is not set -# CONFIG_IP_VS_LBLCR is not set -# CONFIG_IP_VS_DH is not set -# CONFIG_IP_VS_SH is not set -# CONFIG_IP_VS_SED is not set -# CONFIG_IP_VS_NQ is not set - -# -# IPVS application helper -# - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=m -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -CONFIG_IP_NF_QUEUE=m -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_DCCP=m -CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_AMANDA=m -CONFIG_NF_NAT_PPTP=m -CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m -CONFIG_IP_NF_MATCH_IPP2P=m - -# -# IPv6: Netfilter Configuration -# -CONFIG_NF_CONNTRACK_IPV6=m -CONFIG_IP6_NF_QUEUE=m -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_MH=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_RAW=m -CONFIG_BRIDGE_NF_EBTABLES=m -CONFIG_BRIDGE_EBT_BROUTE=m -CONFIG_BRIDGE_EBT_T_FILTER=m -CONFIG_BRIDGE_EBT_T_NAT=m -CONFIG_BRIDGE_EBT_802_3=m -CONFIG_BRIDGE_EBT_AMONG=m -CONFIG_BRIDGE_EBT_ARP=m -CONFIG_BRIDGE_EBT_IP=m -CONFIG_BRIDGE_EBT_IP6=m -CONFIG_BRIDGE_EBT_LIMIT=m -CONFIG_BRIDGE_EBT_MARK=m -CONFIG_BRIDGE_EBT_PKTTYPE=m -CONFIG_BRIDGE_EBT_STP=m -CONFIG_BRIDGE_EBT_VLAN=m -CONFIG_BRIDGE_EBT_ARPREPLY=m -CONFIG_BRIDGE_EBT_DNAT=m -CONFIG_BRIDGE_EBT_MARK_T=m -CONFIG_BRIDGE_EBT_REDIRECT=m -CONFIG_BRIDGE_EBT_SNAT=m -CONFIG_BRIDGE_EBT_LOG=m -CONFIG_BRIDGE_EBT_ULOG=m -CONFIG_BRIDGE_EBT_NFLOG=m -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -CONFIG_ATM=m -CONFIG_ATM_CLIP=m -CONFIG_ATM_CLIP_NO_ICMP=y -# CONFIG_ATM_LANE is not set -CONFIG_ATM_BR2684=m -# CONFIG_ATM_BR2684_IPFILTER is not set -CONFIG_STP=m -CONFIG_GARP=m -CONFIG_BRIDGE=m -CONFIG_NET_DSA=y -CONFIG_NET_DSA_TAG_DSA=y -CONFIG_NET_DSA_TAG_EDSA=y -CONFIG_NET_DSA_TAG_TRAILER=y -CONFIG_NET_DSA_MV88E6XXX=y -CONFIG_NET_DSA_MV88E6060=y -CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y -CONFIG_NET_DSA_MV88E6131=y -CONFIG_NET_DSA_MV88E6123_61_65=y -CONFIG_VLAN_8021Q=m -CONFIG_VLAN_8021Q_GVRP=y -# CONFIG_DECNET is not set -CONFIG_LLC=m -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_PHONET is not set -CONFIG_IEEE802154=m -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_ATM=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_MULTIQ=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_DRR=m -CONFIG_NET_SCH_INGRESS=m - -# -# Classification -# -CONFIG_NET_CLS=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -CONFIG_CLS_U32_PERF=y -CONFIG_CLS_U32_MARK=y -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -CONFIG_NET_CLS_FLOW=m -CONFIG_NET_EMATCH=y -CONFIG_NET_EMATCH_STACK=32 -CONFIG_NET_EMATCH_CMP=m -CONFIG_NET_EMATCH_NBYTE=m -CONFIG_NET_EMATCH_U32=m -CONFIG_NET_EMATCH_META=m -CONFIG_NET_EMATCH_TEXT=m -CONFIG_NET_CLS_ACT=y -CONFIG_NET_ACT_POLICE=m -CONFIG_NET_ACT_GACT=m -CONFIG_GACT_PROB=y -CONFIG_NET_ACT_MIRRED=m -CONFIG_NET_ACT_IPT=m -CONFIG_NET_ACT_NAT=m -CONFIG_NET_ACT_PEDIT=m -# CONFIG_NET_ACT_SIMP is not set -CONFIG_NET_ACT_SKBEDIT=m -CONFIG_NET_CLS_IND=y -CONFIG_NET_SCH_FIFO=y -# CONFIG_DCB is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -CONFIG_IRDA=m - -# -# IrDA protocols -# -CONFIG_IRLAN=m -CONFIG_IRNET=m -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set - -# -# IrDA options -# -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set - -# -# Infrared-port device drivers -# - -# -# SIR device drivers -# -CONFIG_IRTTY_SIR=m - -# -# Dongle support -# -# CONFIG_DONGLE is not set -CONFIG_KINGSUN_DONGLE=m -CONFIG_KSDAZZLE_DONGLE=m -CONFIG_KS959_DONGLE=m - -# -# FIR device drivers -# -CONFIG_USB_IRDA=m -CONFIG_SIGMATEL_FIR=m -# CONFIG_TOSHIBA_FIR is not set -CONFIG_VLSI_FIR=m -CONFIG_MCS_FIR=m -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_CMTP=m -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIBTUSB=m -CONFIG_BT_HCIBTSDIO=m -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_LL=y -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBTUART=m -CONFIG_BT_HCIVHCI=m -CONFIG_BT_MRVL=m -CONFIG_BT_MRVL_SDIO=m -CONFIG_AF_RXRPC=m -# CONFIG_AF_RXRPC_DEBUG is not set -CONFIG_RXKAD=m -CONFIG_FIB_RULES=y -CONFIG_WIRELESS=y -CONFIG_CFG80211=m -# CONFIG_NL80211_TESTMODE is not set -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -# CONFIG_CFG80211_REG_DEBUG is not set -# CONFIG_CFG80211_DEFAULT_PS is not set -CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y -CONFIG_WIRELESS_EXT_SYSFS=y -CONFIG_LIB80211=m -CONFIG_LIB80211_CRYPT_WEP=m -CONFIG_LIB80211_CRYPT_CCMP=m -CONFIG_LIB80211_CRYPT_TKIP=m -# CONFIG_LIB80211_DEBUG is not set -CONFIG_MAC80211=m -CONFIG_MAC80211_HAS_RC=y -CONFIG_MAC80211_RC_MINSTREL=y -# CONFIG_MAC80211_RC_DEFAULT_PID is not set -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel" -CONFIG_MAC80211_MESH=y -CONFIG_MAC80211_LEDS=y -# CONFIG_MAC80211_DEBUG_MENU is not set -# CONFIG_WIMAX is not set -CONFIG_RFKILL=m -CONFIG_RFKILL_LEDS=y -CONFIG_RFKILL_INPUT=y -# CONFIG_NET_9P is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_DEVTMPFS is not set -# CONFIG_STANDALONE is not set -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -CONFIG_FW_LOADER=y -# CONFIG_FIRMWARE_IN_KERNEL is not set -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_SYS_HYPERVISOR is not set -CONFIG_CONNECTOR=m -CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_TESTS=m -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_AFS_PARTS is not set -CONFIG_MTD_AR7_PARTS=m - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLKDEVS=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -# CONFIG_MTD_OOPS is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_PHYSMAP=m -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -CONFIG_MTD_LPDDR=m -CONFIG_MTD_QINFO_PROBE=m - -# -# UBI - Unsorted block images -# -CONFIG_MTD_UBI=m -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MTD_UBI_BEB_RESERVE=1 -# CONFIG_MTD_UBI_GLUEBI is not set - -# -# UBI debugging options -# -# CONFIG_MTD_UBI_DEBUG is not set -CONFIG_PARPORT=m -# CONFIG_PARPORT_PC is not set -# CONFIG_PARPORT_GSC is not set -CONFIG_PARPORT_AX88796=m -CONFIG_PARPORT_1284=y -CONFIG_PARPORT_NOT_PC=y -CONFIG_BLK_DEV=y -# CONFIG_BLK_CPQ_DA is not set -# CONFIG_BLK_CPQ_CISS_DA is not set -# CONFIG_BLK_DEV_DAC960 is not set -# CONFIG_BLK_DEV_UMEM is not set -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_CRYPTOLOOP=m -CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_SX8=m -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=8 -CONFIG_BLK_DEV_RAM_SIZE=16384 -# CONFIG_BLK_DEV_XIP is not set -# CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m -CONFIG_MG_DISK=m -CONFIG_MG_DISK_RES=0 -CONFIG_MISC_DEVICES=y -# CONFIG_PHANTOM is not set -# CONFIG_SGI_IOC4 is not set -CONFIG_TIFM_CORE=m -CONFIG_TIFM_7XX1=m -CONFIG_ICS932S401=m -CONFIG_ENCLOSURE_SERVICES=m -CONFIG_HP_ILO=m -CONFIG_ISL29003=m -CONFIG_C2PORT=m - -# -# EEPROM support -# -CONFIG_EEPROM_AT24=m -CONFIG_EEPROM_LEGACY=m -CONFIG_EEPROM_MAX6875=m -CONFIG_EEPROM_93CX6=m -CONFIG_CB710_CORE=m -# CONFIG_CB710_DEBUG is not set -CONFIG_CB710_DEBUG_ASSUMPTIONS=y -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set - -# -# SCSI device support -# -CONFIG_RAID_ATTRS=y -CONFIG_SCSI=m -CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set -CONFIG_SCSI_NETLINK=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=m -CONFIG_BLK_DEV_SR_VENDOR=y -CONFIG_CHR_DEV_SG=m -CONFIG_CHR_DEV_SCH=m -CONFIG_SCSI_ENCLOSURE=m -CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m - -# -# SCSI Transports -# -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_FC_ATTRS=m -CONFIG_SCSI_ISCSI_ATTRS=m -CONFIG_SCSI_SAS_ATTRS=m -CONFIG_SCSI_SAS_LIBSAS=m -CONFIG_SCSI_SAS_ATA=y -CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS_DEBUG=y -CONFIG_SCSI_SRP_ATTRS=m -CONFIG_SCSI_LOWLEVEL=y -CONFIG_ISCSI_TCP=m -CONFIG_SCSI_CXGB3_ISCSI=m -CONFIG_SCSI_BNX2_ISCSI=m -CONFIG_BE2ISCSI=m -CONFIG_BLK_DEV_3W_XXXX_RAID=m -CONFIG_SCSI_3W_9XXX=m -# CONFIG_SCSI_ACARD is not set -CONFIG_SCSI_AACRAID=m -CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set -CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set -# CONFIG_SCSI_AIC7XXX_OLD is not set -CONFIG_SCSI_AIC79XX=m -CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set -# CONFIG_AIC79XX_DEBUG_ENABLE is not set -CONFIG_AIC79XX_DEBUG_MASK=0 -# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set -CONFIG_SCSI_AIC94XX=m -# CONFIG_AIC94XX_DEBUG is not set -CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_DEBUG=y -CONFIG_SCSI_DPT_I2O=m -# CONFIG_SCSI_ADVANSYS is not set -CONFIG_SCSI_ARCMSR=m -CONFIG_MEGARAID_NEWGEN=y -CONFIG_MEGARAID_MM=m -CONFIG_MEGARAID_MAILBOX=m -CONFIG_MEGARAID_LEGACY=m -CONFIG_MEGARAID_SAS=m -CONFIG_SCSI_MPT2SAS=m -CONFIG_SCSI_MPT2SAS_MAX_SGE=128 -# CONFIG_SCSI_MPT2SAS_LOGGING is not set -CONFIG_SCSI_HPTIOP=m -CONFIG_LIBFC=m -CONFIG_LIBFCOE=m -CONFIG_FCOE=m -CONFIG_SCSI_DMX3191D=m -CONFIG_SCSI_FUTURE_DOMAIN=m -CONFIG_SCSI_IPS=m -CONFIG_SCSI_INITIO=m -CONFIG_SCSI_INIA100=m -CONFIG_SCSI_STEX=m -CONFIG_SCSI_SYM53C8XX_2=m -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -CONFIG_SCSI_SYM53C8XX_MMIO=y -CONFIG_SCSI_IPR=m -CONFIG_SCSI_IPR_TRACE=y -CONFIG_SCSI_IPR_DUMP=y -CONFIG_SCSI_QLOGIC_1280=m -CONFIG_SCSI_QLA_FC=m -CONFIG_SCSI_QLA_ISCSI=m -CONFIG_SCSI_LPFC=m -CONFIG_SCSI_DC395x=m -CONFIG_SCSI_DC390T=m -# CONFIG_SCSI_NSP32 is not set -# CONFIG_SCSI_DEBUG is not set -CONFIG_SCSI_PMCRAID=m -# CONFIG_SCSI_SRP is not set -CONFIG_SCSI_BFA_FC=m -CONFIG_SCSI_LOWLEVEL_PCMCIA=y -CONFIG_PCMCIA_AHA152X=m -CONFIG_PCMCIA_FDOMAIN=m -CONFIG_PCMCIA_NINJA_SCSI=m -CONFIG_PCMCIA_QLOGIC=m -CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=m -CONFIG_SCSI_DH_RDAC=m -CONFIG_SCSI_DH_HP_SW=m -CONFIG_SCSI_DH_EMC=m -CONFIG_SCSI_DH_ALUA=m -# CONFIG_SCSI_OSD_INITIATOR is not set -CONFIG_ATA=m -# CONFIG_ATA_NONSTANDARD is not set -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_SATA_PMP=y -CONFIG_SATA_AHCI=m -CONFIG_SATA_SIL24=m -CONFIG_ATA_SFF=y -CONFIG_SATA_SVW=m -CONFIG_ATA_PIIX=m -CONFIG_SATA_MV=m -CONFIG_SATA_NV=m -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_PROMISE=m -CONFIG_SATA_SX4=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m -CONFIG_SATA_INIC162X=m -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATP867X=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -CONFIG_ATA_GENERIC=m -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_IT821X=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_JMICRON=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OPTI=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_RADISYS=m -CONFIG_PATA_RDC=m -CONFIG_PATA_RZ1000=m -CONFIG_PATA_SC1200=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m -CONFIG_PATA_SCH=m -CONFIG_MD=y -CONFIG_BLK_DEV_MD=m -CONFIG_MD_LINEAR=m -CONFIG_MD_RAID0=m -CONFIG_MD_RAID1=m -CONFIG_MD_RAID10=m -CONFIG_MD_RAID456=m -CONFIG_MD_RAID6_PQ=m -CONFIG_ASYNC_RAID6_TEST=m -CONFIG_MD_MULTIPATH=m -# CONFIG_MD_FAULTY is not set -CONFIG_BLK_DEV_DM=m -# CONFIG_DM_DEBUG is not set -CONFIG_DM_CRYPT=m -CONFIG_DM_SNAPSHOT=m -CONFIG_DM_MIRROR=m -CONFIG_DM_LOG_USERSPACE=m -CONFIG_DM_ZERO=m -CONFIG_DM_MULTIPATH=m -CONFIG_DM_MULTIPATH_QL=m -CONFIG_DM_MULTIPATH_ST=m -CONFIG_DM_DELAY=m -CONFIG_DM_UEVENT=y -CONFIG_FUSION=y -CONFIG_FUSION_SPI=m -CONFIG_FUSION_FC=m -CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 -CONFIG_FUSION_CTL=m -# CONFIG_FUSION_LOGGING is not set - -# -# IEEE 1394 (FireWire) support -# - -# -# You can enable one or both FireWire driver stacks. -# - -# -# See the help texts for more information. -# -CONFIG_FIREWIRE=m -CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_OHCI_DEBUG=y -CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m -# CONFIG_IEEE1394 is not set -# CONFIG_I2O is not set -CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m -CONFIG_BONDING=m -CONFIG_MACVLAN=m -CONFIG_EQUALIZER=m -CONFIG_IMQ=m -# CONFIG_IMQ_BEHAVIOR_AA is not set -CONFIG_IMQ_BEHAVIOR_AB=y -# CONFIG_IMQ_BEHAVIOR_BA is not set -# CONFIG_IMQ_BEHAVIOR_BB is not set -CONFIG_IMQ_NUM_DEVS=2 -CONFIG_TUN=m -CONFIG_VETH=m -# CONFIG_ARCNET is not set -CONFIG_PHYLIB=y - -# -# MII PHY device drivers -# -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -# CONFIG_FIXED_PHY is not set -CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m -CONFIG_NET_ETHERNET=y -CONFIG_MII=m -CONFIG_AX88796=m -# CONFIG_AX88796_93CX6 is not set -CONFIG_HAPPYMEAL=m -# CONFIG_SUNGEM is not set -CONFIG_CASSINI=m -CONFIG_NET_VENDOR_3COM=y -CONFIG_VORTEX=m -CONFIG_TYPHOON=m -CONFIG_SMC91X=m -CONFIG_DM9000=m -CONFIG_DM9000_DEBUGLEVEL=4 -# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set -CONFIG_ETHOC=m -CONFIG_SMC911X=m -CONFIG_SMSC911X=m -CONFIG_DNET=m -CONFIG_NET_TULIP=y -CONFIG_DE2104X=m -CONFIG_DE2104X_DSL=0 -CONFIG_TULIP=m -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set -CONFIG_DE4X5=m -CONFIG_WINBOND_840=m -CONFIG_DM9102=m -CONFIG_ULI526X=m -CONFIG_PCMCIA_XIRCOM=m -CONFIG_HP100=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -CONFIG_ADAPTEC_STARFIRE=m -CONFIG_B44=m -CONFIG_FORCEDETH=m -# CONFIG_FORCEDETH_NAPI is not set -CONFIG_E100=m -CONFIG_FEALNX=m -CONFIG_NATSEMI=m -CONFIG_NE2K_PCI=m -CONFIG_8139CP=m -CONFIG_8139TOO=m -# CONFIG_8139TOO_PIO is not set -CONFIG_8139TOO_TUNE_TWISTER=y -CONFIG_8139TOO_8129=y -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_R6040=m -CONFIG_SIS900=m -CONFIG_EPIC100=m -CONFIG_SMSC9420=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set -CONFIG_TLAN=m -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m -CONFIG_VIA_RHINE=m -CONFIG_VIA_RHINE_MMIO=y -CONFIG_SC92031=m -CONFIG_NET_POCKET=y -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_ATL2=m -CONFIG_NETDEV_1000=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -CONFIG_E1000E=m -CONFIG_IP1000=m -CONFIG_IGB=m -CONFIG_IGBVF=m -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -CONFIG_R8169_VLAN=y -CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m -CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m -CONFIG_CNIC=m -CONFIG_QLA3XXX=m -CONFIG_ATL1=m -CONFIG_ATL1E=m -CONFIG_ATL1C=m -CONFIG_JME=m -CONFIG_NETDEV_10000=y -CONFIG_MDIO=m -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T3_DEPENDS=y -CONFIG_CHELSIO_T3=m -CONFIG_ENIC=m -CONFIG_IXGBE=m -CONFIG_IXGB=m -CONFIG_S2IO=m -CONFIG_VXGE=m -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_MYRI10GE=m -CONFIG_NETXEN_NIC=m -CONFIG_NIU=m -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_TEHUTI=m -CONFIG_BNX2X=m -CONFIG_QLGE=m -CONFIG_SFC=m -CONFIG_SFC_MTD=y -CONFIG_BE2NET=m -# CONFIG_TR is not set -CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m -# CONFIG_PRISM54 is not set -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_P54_COMMON is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set -# CONFIG_RT2X00 is not set -# CONFIG_HERMES is not set -# CONFIG_WL12XX is not set -# CONFIG_IWM is not set - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -# - -# -# USB Network Adapters -# -CONFIG_USB_CATC=m -CONFIG_USB_KAWETH=m -CONFIG_USB_PEGASUS=m -CONFIG_USB_RTL8150=m -CONFIG_USB_USBNET=m -CONFIG_USB_NET_AX8817X=m -CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_CDC_EEM=m -CONFIG_USB_NET_DM9601=m -CONFIG_USB_NET_SMSC95XX=m -CONFIG_USB_NET_GL620A=m -CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y -CONFIG_USB_KC2190=y -CONFIG_USB_NET_ZAURUS=m -CONFIG_USB_HSO=m -CONFIG_USB_NET_INT51X1=m -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m -CONFIG_WAN=y -CONFIG_LANMEDIA=m -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_ATM_LANAI=m -CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set -CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y -CONFIG_ATM_IDT77252=m -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 -# CONFIG_ATM_HE is not set -CONFIG_ATM_SOLOS=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NET_FC is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_ISDN=y -CONFIG_ISDN_I4L=m -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m -CONFIG_ISDN_PPP=y -CONFIG_ISDN_PPP_VJ=y -CONFIG_ISDN_MPP=y -CONFIG_IPPP_FILTER=y -CONFIG_ISDN_PPP_BSDCOMP=m -CONFIG_ISDN_AUDIO=y -CONFIG_ISDN_TTY_FAX=y - -# -# ISDN feature submodules -# -# CONFIG_ISDN_DRV_LOOP is not set -CONFIG_ISDN_DIVERSION=m - -# -# ISDN4Linux hardware drivers -# - -# -# Passive cards -# -CONFIG_ISDN_DRV_HISAX=m - -# -# D-channel protocol features -# -CONFIG_HISAX_EURO=y -CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set -CONFIG_HISAX_1TR6=y -CONFIG_HISAX_NI1=y -CONFIG_HISAX_MAX_CARDS=8 - -# -# HiSax supported cards -# -CONFIG_HISAX_16_3=y -CONFIG_HISAX_TELESPCI=y -CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_FRITZPCI=y -CONFIG_HISAX_AVM_A1_PCMCIA=y -CONFIG_HISAX_ELSA=y -CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_NETJET=y -CONFIG_HISAX_NETJET_U=y -CONFIG_HISAX_NICCY=y -CONFIG_HISAX_BKM_A4T=y -CONFIG_HISAX_SCT_QUADRO=y -CONFIG_HISAX_GAZEL=y -CONFIG_HISAX_HFC_PCI=y -CONFIG_HISAX_W6692=y -CONFIG_HISAX_HFC_SX=y -CONFIG_HISAX_ENTERNOW_PCI=y -CONFIG_HISAX_DEBUG=y - -# -# HiSax PCMCIA card service modules -# -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_TELES_CS=m - -# -# HiSax sub driver modules -# -CONFIG_HISAX_ST5481=m -CONFIG_HISAX_HFCUSB=m -CONFIG_HISAX_HFC4S8S=m -CONFIG_HISAX_FRITZ_PCIPNP=m - -# -# Active cards -# -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_ISDN_HDLC=m -CONFIG_ISDN_CAPI=m -CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y -CONFIG_CAPI_TRACE=y -CONFIG_ISDN_CAPI_MIDDLEWARE=y -CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIFS_BOOL=y -CONFIG_ISDN_CAPI_CAPIFS=m -CONFIG_ISDN_CAPI_CAPIDRV=m - -# -# CAPI hardware drivers -# -CONFIG_CAPI_AVM=y -CONFIG_ISDN_DRV_AVMB1_B1PCI=m -CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m -CONFIG_ISDN_DRV_AVMB1_T1PCI=m -CONFIG_ISDN_DRV_AVMB1_C4=m -CONFIG_CAPI_EICON=y -CONFIG_ISDN_DIVAS=m -CONFIG_ISDN_DIVAS_BRIPCI=y -CONFIG_ISDN_DIVAS_PRIPCI=y -CONFIG_ISDN_DIVAS_DIVACAPI=m -CONFIG_ISDN_DIVAS_USERIDI=m -CONFIG_ISDN_DIVAS_MAINT=m -CONFIG_ISDN_DRV_GIGASET=m -CONFIG_GIGASET_BASE=m -CONFIG_GIGASET_M105=m -CONFIG_GIGASET_M101=m -# CONFIG_GIGASET_DEBUG is not set -# CONFIG_PHONE is not set - -# -# Input device support -# -CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=m -CONFIG_INPUT_POLLDEV=m - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -CONFIG_KEYBOARD_ADP5588=m -CONFIG_KEYBOARD_ATKBD=y -CONFIG_QT2160=m -CONFIG_KEYBOARD_LKKBD=m -CONFIG_KEYBOARD_GPIO=m -CONFIG_KEYBOARD_MATRIX=m -CONFIG_KEYBOARD_LM8323=m -CONFIG_KEYBOARD_MAX7359=m -CONFIG_KEYBOARD_NEWTON=m -CONFIG_KEYBOARD_OPENCORES=m -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_SUNKBD=m -CONFIG_KEYBOARD_XTKBD=m -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -CONFIG_INPUT_MISC=y -CONFIG_INPUT_ATI_REMOTE=m -CONFIG_INPUT_ATI_REMOTE2=m -CONFIG_INPUT_KEYSPAN_REMOTE=m -CONFIG_INPUT_POWERMATE=m -CONFIG_INPUT_YEALINK=m -CONFIG_INPUT_CM109=m -# CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -CONFIG_INPUT_WM831X_ON=m - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_PARKBD is not set -CONFIG_SERIO_AMBAKMI=y -# CONFIG_SERIO_PCIPS2 is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_DEVKMEM=y -# CONFIG_SERIAL_NONSTANDARD is not set -CONFIG_NOZOMI=m - -# -# Serial drivers -# -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_CS=m -CONFIG_SERIAL_8250_NR_UARTS=4 -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_MANY_PORTS=y -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y -CONFIG_SERIAL_8250_RSA=y - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set -CONFIG_PRINTER=m -# CONFIG_LP_CONSOLE is not set -CONFIG_PPDEV=m -CONFIG_IPMI_HANDLER=m -CONFIG_IPMI_PANIC_EVENT=y -# CONFIG_IPMI_PANIC_STRING is not set -CONFIG_IPMI_DEVICE_INTERFACE=m -CONFIG_IPMI_SI=m -CONFIG_IPMI_WATCHDOG=m -CONFIG_IPMI_POWEROFF=m -CONFIG_HW_RANDOM=m -CONFIG_HW_RANDOM_TIMERIOMEM=m -CONFIG_NVRAM=m -# CONFIG_R3964 is not set -# CONFIG_APPLICOM is not set - -# -# PCMCIA character devices -# -CONFIG_SYNCLINK_CS=m -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -CONFIG_IPWIRELESS=m -# CONFIG_RAW_DRIVER is not set -# CONFIG_TCG_TPM is not set -CONFIG_DEVPORT=y -CONFIG_I2C=m -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y -CONFIG_I2C_CHARDEV=m -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_ALGOBIT=m -CONFIG_I2C_ALGOPCA=m - -# -# I2C Hardware Bus support -# - -# -# PC SMBus host controller drivers -# -CONFIG_I2C_ALI1535=m -CONFIG_I2C_ALI1563=m -CONFIG_I2C_ALI15X3=m -CONFIG_I2C_AMD756=m -CONFIG_I2C_AMD8111=m -CONFIG_I2C_I801=m -CONFIG_I2C_ISCH=m -CONFIG_I2C_PIIX4=m -CONFIG_I2C_NFORCE2=m -CONFIG_I2C_SIS5595=m -CONFIG_I2C_SIS630=m -CONFIG_I2C_SIS96X=m -CONFIG_I2C_VIA=m -CONFIG_I2C_VIAPRO=m - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -CONFIG_I2C_DESIGNWARE=m -CONFIG_I2C_GPIO=m -CONFIG_I2C_OCORES=m -CONFIG_I2C_SIMTEC=m -CONFIG_I2C_VERSATILE=m - -# -# External I2C/SMBus adapter drivers -# -CONFIG_I2C_PARPORT=m -CONFIG_I2C_PARPORT_LIGHT=m -# CONFIG_I2C_TAOS_EVM is not set -CONFIG_I2C_TINY_USB=m - -# -# Graphics adapter I2C/DDC channel drivers -# -CONFIG_I2C_VOODOO3=m - -# -# Other I2C/SMBus bus drivers -# -CONFIG_I2C_PCA_PLATFORM=m -CONFIG_I2C_STUB=m - -# -# Miscellaneous I2C Chip support -# -CONFIG_DS1682=m -CONFIG_SENSORS_TSL2550=m -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set -# CONFIG_SPI is not set - -# -# PPS support -# -CONFIG_PPS=m -# CONFIG_PPS_DEBUG is not set -CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -CONFIG_GPIOLIB=y -# CONFIG_DEBUG_GPIO is not set -# CONFIG_GPIO_SYSFS is not set - -# -# Memory mapped GPIO expanders: -# -# CONFIG_GPIO_PL061 is not set - -# -# I2C GPIO expanders: -# -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m -CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_WM831X=m - -# -# PCI GPIO expanders: -# -# CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_LANGWELL is not set - -# -# SPI GPIO expanders: -# - -# -# AC97 GPIO expanders: -# -CONFIG_W1=m -CONFIG_W1_CON=y - -# -# 1-wire Bus Masters -# -CONFIG_W1_MASTER_MATROX=m -CONFIG_W1_MASTER_DS2490=m -CONFIG_W1_MASTER_DS2482=m -CONFIG_W1_MASTER_DS1WM=m -CONFIG_W1_MASTER_GPIO=m - -# -# 1-wire Slaves -# -CONFIG_W1_SLAVE_THERM=m -CONFIG_W1_SLAVE_SMEM=m -CONFIG_W1_SLAVE_DS2431=m -CONFIG_W1_SLAVE_DS2433=m -CONFIG_W1_SLAVE_DS2433_CRC=y -CONFIG_W1_SLAVE_DS2760=m -CONFIG_W1_SLAVE_BQ27000=m -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_PDA_POWER is not set -CONFIG_WM831X_POWER=m -CONFIG_WM8350_POWER=m -# CONFIG_BATTERY_DS2760 is not set -CONFIG_BATTERY_DS2782=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_MAX17040=m -CONFIG_CHARGER_PCF50633=m -CONFIG_HWMON=m -CONFIG_HWMON_VID=m -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Native drivers -# -CONFIG_SENSORS_AD7414=m -CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADM1021=m -CONFIG_SENSORS_ADM1025=m -CONFIG_SENSORS_ADM1026=m -CONFIG_SENSORS_ADM1029=m -CONFIG_SENSORS_ADM1031=m -CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADT7462=m -CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7473=m -CONFIG_SENSORS_ADT7475=m -CONFIG_SENSORS_ATXP1=m -CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_I5K_AMB=m -CONFIG_SENSORS_F71805F=m -CONFIG_SENSORS_F71882FG=m -CONFIG_SENSORS_F75375S=m -CONFIG_SENSORS_G760A=m -CONFIG_SENSORS_GL518SM=m -CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_IBMAEM=m -CONFIG_SENSORS_IBMPEX=m -CONFIG_SENSORS_IT87=m -CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM77=m -CONFIG_SENSORS_LM78=m -CONFIG_SENSORS_LM80=m -CONFIG_SENSORS_LM83=m -CONFIG_SENSORS_LM85=m -CONFIG_SENSORS_LM87=m -CONFIG_SENSORS_LM90=m -CONFIG_SENSORS_LM92=m -CONFIG_SENSORS_LM93=m -CONFIG_SENSORS_LTC4215=m -CONFIG_SENSORS_LTC4245=m -CONFIG_SENSORS_LM95241=m -CONFIG_SENSORS_MAX1619=m -CONFIG_SENSORS_MAX6650=m -CONFIG_SENSORS_PC87360=m -CONFIG_SENSORS_PC87427=m -CONFIG_SENSORS_PCF8591=m -CONFIG_SENSORS_SHT15=m -CONFIG_SENSORS_SIS5595=m -CONFIG_SENSORS_DME1737=m -CONFIG_SENSORS_SMSC47M1=m -CONFIG_SENSORS_SMSC47M192=m -CONFIG_SENSORS_SMSC47B397=m -CONFIG_SENSORS_ADS7828=m -CONFIG_SENSORS_THMC50=m -CONFIG_SENSORS_TMP401=m -CONFIG_SENSORS_TMP421=m -CONFIG_SENSORS_VIA686A=m -CONFIG_SENSORS_VT1211=m -CONFIG_SENSORS_VT8231=m -CONFIG_SENSORS_W83781D=m -CONFIG_SENSORS_W83791D=m -CONFIG_SENSORS_W83792D=m -CONFIG_SENSORS_W83793=m -CONFIG_SENSORS_W83L785TS=m -CONFIG_SENSORS_W83L786NG=m -CONFIG_SENSORS_W83627HF=m -CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m -CONFIG_THERMAL=y -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_WATCHDOG=m -CONFIG_ALIM7101_WDT=m - -# -# PCI-based Watchdog Cards -# -CONFIG_PCIPCWATCHDOG=m -CONFIG_WDTPCI=m - -# -# USB-based Watchdog Cards -# -CONFIG_USBPCWATCHDOG=m -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -CONFIG_SSB=m -CONFIG_SSB_SPROM=y -CONFIG_SSB_PCIHOST_POSSIBLE=y -CONFIG_SSB_PCIHOST=y -# CONFIG_SSB_B43_PCI_BRIDGE is not set -CONFIG_SSB_PCMCIAHOST_POSSIBLE=y -CONFIG_SSB_PCMCIAHOST=y -CONFIG_SSB_SDIOHOST_POSSIBLE=y -CONFIG_SSB_SDIOHOST=y -# CONFIG_SSB_DEBUG is not set -CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y -CONFIG_SSB_DRIVER_PCICORE=y - -# -# Multifunction device drivers -# -CONFIG_MFD_CORE=m -CONFIG_MFD_SM501=m -# CONFIG_MFD_SM501_GPIO is not set -# CONFIG_MFD_ASIC3 is not set -# CONFIG_HTC_EGPIO is not set -CONFIG_HTC_PASIC3=m -# CONFIG_UCB1400_CORE is not set -CONFIG_TPS65010=m -# CONFIG_MFD_TMIO is not set -# CONFIG_MFD_T7L66XB is not set -# CONFIG_MFD_TC6387XB is not set -# CONFIG_MFD_TC6393XB is not set -CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=m -CONFIG_MFD_WM8350=m -CONFIG_MFD_WM8350_I2C=m -CONFIG_MFD_PCF50633=m -CONFIG_PCF50633_ADC=m -CONFIG_PCF50633_GPIO=m -CONFIG_AB3100_CORE=m -CONFIG_AB3100_OTP=m -# CONFIG_REGULATOR is not set -CONFIG_MEDIA_SUPPORT=m - -# -# Multimedia core support -# -CONFIG_VIDEO_DEV=m -CONFIG_VIDEO_V4L2_COMMON=m -# CONFIG_VIDEO_ALLOW_V4L1 is not set -CONFIG_VIDEO_V4L1_COMPAT=y -CONFIG_DVB_CORE=m -CONFIG_VIDEO_MEDIA=m - -# -# Multimedia drivers -# -# CONFIG_MEDIA_ATTACH is not set -CONFIG_MEDIA_TUNER=m -# CONFIG_MEDIA_TUNER_CUSTOMISE is not set -CONFIG_MEDIA_TUNER_SIMPLE=m -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m -CONFIG_MEDIA_TUNER_MT20XX=m -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_MC44S803=m -CONFIG_VIDEO_V4L2=m -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set - -# -# Encoders/decoders and other helper chips -# - -# -# Audio decoders -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TDA9875 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_TCM825X is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_ADV7343 is not set - -# -# Video improvement chips -# -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_CX23885 is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_IVTV is not set -# CONFIG_VIDEO_CX18 is not set -# CONFIG_VIDEO_SAA7164 is not set -# CONFIG_VIDEO_CAFE_CCIC is not set -# CONFIG_SOC_CAMERA is not set -CONFIG_V4L_USB_DRIVERS=y -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_GSPCA is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_ZC0301 is not set -# CONFIG_USB_PWC_INPUT_EVDEV is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_GEMTEK_PCI is not set -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MAESTRO is not set -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y - -# -# Supported SAA7146 based PCI Adapters -# -# CONFIG_TTPCI_EEPROM is not set -# CONFIG_DVB_AV7110 is not set -# CONFIG_DVB_BUDGET_CORE is not set - -# -# Supported USB Adapters -# -# CONFIG_DVB_USB is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set -# CONFIG_SMS_SIANO_MDTV is not set - -# -# Supported FlexCopII (B2C2) Adapters -# -# CONFIG_DVB_B2C2_FLEXCOP is not set - -# -# Supported BT878 Adapters -# - -# -# Supported Pluto2 Adapters -# -# CONFIG_DVB_PLUTO2 is not set - -# -# Supported SDMC DM1105 Adapters -# -# CONFIG_DVB_DM1105 is not set - -# -# Supported Earthsoft PT1 Adapters -# -# CONFIG_DVB_PT1 is not set - -# -# Supported DVB Frontends -# -# CONFIG_DVB_FE_CUSTOMISE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set - -# -# Graphics support -# -CONFIG_VGA_ARB=y -CONFIG_DRM=m -CONFIG_DRM_TDFX=m -CONFIG_DRM_R128=m -# CONFIG_DRM_RADEON is not set -CONFIG_DRM_MGA=m -CONFIG_DRM_VIA=m -CONFIG_DRM_SAVAGE=m -CONFIG_VGASTATE=m -CONFIG_VIDEO_OUTPUT_CONTROL=m -CONFIG_FB=y -CONFIG_FIRMWARE_EDID=y -CONFIG_FB_DDC=m -# CONFIG_FB_BOOT_VESA_SUPPORT is not set -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -CONFIG_FB_SYS_FILLRECT=m -CONFIG_FB_SYS_COPYAREA=m -CONFIG_FB_SYS_IMAGEBLIT=m -# CONFIG_FB_FOREIGN_ENDIAN is not set -CONFIG_FB_SYS_FOPS=m -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_SVGALIB=m -# CONFIG_FB_MACMODES is not set -CONFIG_FB_BACKLIGHT=y -CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y - -# -# Frame buffer hardware drivers -# -CONFIG_FB_CIRRUS=m -CONFIG_FB_PM2=m -CONFIG_FB_PM2_FIFO_DISCONNECT=y -CONFIG_FB_ARMCLCD=m -CONFIG_FB_CYBER2000=m -CONFIG_FB_ASILIANT=y -# CONFIG_FB_IMSTT is not set -CONFIG_FB_UVESA=m -# CONFIG_FB_S1D13XXX is not set -CONFIG_FB_NVIDIA=m -CONFIG_FB_NVIDIA_I2C=y -# CONFIG_FB_NVIDIA_DEBUG is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y -CONFIG_FB_RIVA=m -CONFIG_FB_RIVA_I2C=y -# CONFIG_FB_RIVA_DEBUG is not set -CONFIG_FB_RIVA_BACKLIGHT=y -CONFIG_FB_MATROX=m -CONFIG_FB_MATROX_MILLENIUM=y -CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=m -CONFIG_FB_MATROX_MAVEN=m -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -CONFIG_FB_ATY128=m -CONFIG_FB_ATY128_BACKLIGHT=y -CONFIG_FB_ATY=m -CONFIG_FB_ATY_CT=y -# CONFIG_FB_ATY_GENERIC_LCD is not set -CONFIG_FB_ATY_GX=y -CONFIG_FB_ATY_BACKLIGHT=y -CONFIG_FB_S3=m -# CONFIG_FB_SAVAGE is not set -CONFIG_FB_SIS=m -CONFIG_FB_SIS_300=y -CONFIG_FB_SIS_315=y -CONFIG_FB_VIA=m -CONFIG_FB_NEOMAGIC=m -CONFIG_FB_KYRO=m -CONFIG_FB_3DFX=m -CONFIG_FB_3DFX_ACCEL=y -CONFIG_FB_3DFX_I2C=y -CONFIG_FB_VOODOO1=m -CONFIG_FB_VT8623=m -CONFIG_FB_TRIDENT=m -CONFIG_FB_ARK=m -CONFIG_FB_PM3=m -# CONFIG_FB_CARMINE is not set -CONFIG_FB_TMIO=m -CONFIG_FB_TMIO_ACCELL=y -CONFIG_FB_SM501=m -# CONFIG_FB_VIRTUAL is not set -CONFIG_FB_METRONOME=m -# CONFIG_FB_MB862XX is not set -# CONFIG_FB_BROADSHEET is not set -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_ILI9320 is not set -CONFIG_LCD_PLATFORM=m -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_WM831X=m - -# -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# - -# -# Console display driver support -# -CONFIG_DUMMY_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y -CONFIG_FONT_8x16=y -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_SOUND=m -CONFIG_SOUND_OSS_CORE=y -CONFIG_SOUND_OSS_CORE_PRECLAIM=y -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -CONFIG_SND_HWDEP=m -CONFIG_SND_RAWMIDI=m -CONFIG_SND_JACK=y -CONFIG_SND_SEQUENCER=m -CONFIG_SND_SEQ_DUMMY=m -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -CONFIG_SND_SEQUENCER_OSS=y -# CONFIG_SND_HRTIMER is not set -# CONFIG_SND_DYNAMIC_MINORS is not set -# CONFIG_SND_SUPPORT_OLD_API is not set -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set -CONFIG_SND_VMASTER=y -CONFIG_SND_RAWMIDI_SEQ=m -CONFIG_SND_OPL3_LIB_SEQ=m -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -CONFIG_SND_EMU10K1_SEQ=m -CONFIG_SND_MPU401_UART=m -CONFIG_SND_OPL3_LIB=m -CONFIG_SND_VX_LIB=m -CONFIG_SND_AC97_CODEC=m -CONFIG_SND_DRIVERS=y -CONFIG_SND_DUMMY=m -CONFIG_SND_VIRMIDI=m -CONFIG_SND_MTPAV=m -CONFIG_SND_MTS64=m -CONFIG_SND_SERIAL_U16550=m -CONFIG_SND_MPU401=m -CONFIG_SND_PORTMAN2X4=m -# CONFIG_SND_AC97_POWER_SAVE is not set -CONFIG_SND_PCI=y -CONFIG_SND_AD1889=m -CONFIG_SND_ALS300=m -# CONFIG_SND_ALI5451 is not set -CONFIG_SND_ATIIXP=m -CONFIG_SND_ATIIXP_MODEM=m -CONFIG_SND_AU8810=m -CONFIG_SND_AU8820=m -CONFIG_SND_AU8830=m -CONFIG_SND_AW2=m -CONFIG_SND_AZT3328=m -CONFIG_SND_BT87X=m -# CONFIG_SND_BT87X_OVERCLOCK is not set -CONFIG_SND_CA0106=m -CONFIG_SND_CMIPCI=m -CONFIG_SND_OXYGEN_LIB=m -CONFIG_SND_OXYGEN=m -CONFIG_SND_CS4281=m -CONFIG_SND_CS46XX=m -CONFIG_SND_CS46XX_NEW_DSP=y -CONFIG_SND_CS5535AUDIO=m -CONFIG_SND_CTXFI=m -CONFIG_SND_DARLA20=m -CONFIG_SND_GINA20=m -CONFIG_SND_LAYLA20=m -CONFIG_SND_DARLA24=m -CONFIG_SND_GINA24=m -CONFIG_SND_LAYLA24=m -CONFIG_SND_MONA=m -CONFIG_SND_MIA=m -CONFIG_SND_ECHO3G=m -CONFIG_SND_INDIGO=m -CONFIG_SND_INDIGOIO=m -CONFIG_SND_INDIGODJ=m -CONFIG_SND_INDIGOIOX=m -CONFIG_SND_INDIGODJX=m -CONFIG_SND_EMU10K1=m -CONFIG_SND_EMU10K1X=m -CONFIG_SND_ENS1370=m -CONFIG_SND_ENS1371=m -CONFIG_SND_ES1938=m -CONFIG_SND_ES1968=m -CONFIG_SND_FM801=m -# CONFIG_SND_FM801_TEA575X_BOOL is not set -CONFIG_SND_HDA_INTEL=m -# CONFIG_SND_HDA_HWDEP is not set -# CONFIG_SND_HDA_INPUT_BEEP is not set -# CONFIG_SND_HDA_INPUT_JACK is not set -# CONFIG_SND_HDA_PATCH_LOADER is not set -CONFIG_SND_HDA_CODEC_REALTEK=y -CONFIG_SND_HDA_CODEC_ANALOG=y -CONFIG_SND_HDA_CODEC_SIGMATEL=y -CONFIG_SND_HDA_CODEC_VIA=y -CONFIG_SND_HDA_CODEC_ATIHDMI=y -CONFIG_SND_HDA_CODEC_NVHDMI=y -CONFIG_SND_HDA_CODEC_INTELHDMI=y -CONFIG_SND_HDA_ELD=y -CONFIG_SND_HDA_CODEC_CIRRUS=y -CONFIG_SND_HDA_CODEC_CONEXANT=y -CONFIG_SND_HDA_CODEC_CA0110=y -CONFIG_SND_HDA_CODEC_CMEDIA=y -CONFIG_SND_HDA_CODEC_SI3054=y -CONFIG_SND_HDA_GENERIC=y -# CONFIG_SND_HDA_POWER_SAVE is not set -CONFIG_SND_HDSP=m -CONFIG_SND_HDSPM=m -CONFIG_SND_HIFIER=m -CONFIG_SND_ICE1712=m -CONFIG_SND_ICE1724=m -CONFIG_SND_INTEL8X0=m -CONFIG_SND_INTEL8X0M=m -CONFIG_SND_KORG1212=m -CONFIG_SND_LX6464ES=m -CONFIG_SND_MAESTRO3=m -CONFIG_SND_MIXART=m -CONFIG_SND_NM256=m -CONFIG_SND_PCXHR=m -CONFIG_SND_RIPTIDE=m -CONFIG_SND_RME32=m -CONFIG_SND_RME96=m -CONFIG_SND_RME9652=m -CONFIG_SND_SONICVIBES=m -CONFIG_SND_TRIDENT=m -CONFIG_SND_VIA82XX=m -CONFIG_SND_VIA82XX_MODEM=m -CONFIG_SND_VIRTUOSO=m -CONFIG_SND_VX222=m -CONFIG_SND_YMFPCI=m -CONFIG_SND_ARM=y -CONFIG_SND_ARMAACI=m -CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=m -CONFIG_SND_USB_CAIAQ=m -# CONFIG_SND_USB_CAIAQ_INPUT is not set -CONFIG_SND_PCMCIA=y -CONFIG_SND_VXPOCKET=m -CONFIG_SND_PDAUDIOCF=m -CONFIG_SND_SOC=m -CONFIG_SND_SOC_I2C_AND_SPI=m -CONFIG_SND_SOC_ALL_CODECS=m -CONFIG_SND_SOC_WM_HUBS=m -CONFIG_SND_SOC_AD73311=m -CONFIG_SND_SOC_AK4535=m -CONFIG_SND_SOC_AK4642=m -CONFIG_SND_SOC_CS4270=m -CONFIG_SND_SOC_L3=m -CONFIG_SND_SOC_PCM3008=m -CONFIG_SND_SOC_SPDIF=m -CONFIG_SND_SOC_SSM2602=m -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_UDA134X=m -CONFIG_SND_SOC_UDA1380=m -CONFIG_SND_SOC_WM8350=m -CONFIG_SND_SOC_WM8400=m -CONFIG_SND_SOC_WM8510=m -CONFIG_SND_SOC_WM8523=m -CONFIG_SND_SOC_WM8580=m -CONFIG_SND_SOC_WM8728=m -CONFIG_SND_SOC_WM8731=m -CONFIG_SND_SOC_WM8750=m -CONFIG_SND_SOC_WM8753=m -CONFIG_SND_SOC_WM8776=m -CONFIG_SND_SOC_WM8900=m -CONFIG_SND_SOC_WM8903=m -CONFIG_SND_SOC_WM8940=m -CONFIG_SND_SOC_WM8960=m -CONFIG_SND_SOC_WM8961=m -CONFIG_SND_SOC_WM8971=m -CONFIG_SND_SOC_WM8974=m -CONFIG_SND_SOC_WM8988=m -CONFIG_SND_SOC_WM8990=m -CONFIG_SND_SOC_WM8993=m -CONFIG_SND_SOC_WM9081=m -CONFIG_SND_SOC_MAX9877=m -# CONFIG_SOUND_PRIME is not set -CONFIG_AC97_BUS=m -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set - -# -# USB Input Devices -# -CONFIG_USB_HID=m -# CONFIG_HID_PID is not set -CONFIG_USB_HIDDEV=y - -# -# Special HID drivers -# -CONFIG_HID_A4TECH=m -CONFIG_HID_APPLE=m -CONFIG_HID_BELKIN=m -CONFIG_HID_CHERRY=m -CONFIG_HID_CHICONY=m -CONFIG_HID_CYPRESS=m -CONFIG_HID_DRAGONRISE=m -CONFIG_DRAGONRISE_FF=y -CONFIG_HID_EZKEY=m -CONFIG_HID_KYE=m -CONFIG_HID_GYRATION=m -CONFIG_HID_TWINHAN=m -CONFIG_HID_KENSINGTON=m -CONFIG_HID_LOGITECH=m -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y -CONFIG_HID_MICROSOFT=m -CONFIG_HID_MONTEREY=m -CONFIG_HID_NTRIG=m -CONFIG_HID_PANTHERLORD=m -CONFIG_PANTHERLORD_FF=y -CONFIG_HID_PETALYNX=m -CONFIG_HID_SAMSUNG=m -CONFIG_HID_SONY=m -CONFIG_HID_SUNPLUS=m -CONFIG_HID_GREENASIA=m -CONFIG_GREENASIA_FF=y -CONFIG_HID_SMARTJOYPLUS=m -CONFIG_SMARTJOYPLUS_FF=y -CONFIG_HID_TOPSEED=m -CONFIG_HID_THRUSTMASTER=m -CONFIG_THRUSTMASTER_FF=y -CONFIG_HID_WACOM=m -CONFIG_HID_ZEROPLUS=m -CONFIG_ZEROPLUS_FF=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=m -# CONFIG_USB_DEBUG is not set -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEVICEFS=y -CONFIG_USB_DEVICE_CLASS=y -CONFIG_USB_DYNAMIC_MINORS=y -CONFIG_USB_SUSPEND=y -# CONFIG_USB_OTG is not set -# CONFIG_USB_MON is not set -CONFIG_USB_WUSB=m -CONFIG_USB_WUSB_CBAF=m -# CONFIG_USB_WUSB_CBAF_DEBUG is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=m -# CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=m -CONFIG_USB_EHCI_ROOT_HUB_TT=y -# CONFIG_USB_EHCI_TT_NEWSCHED is not set -CONFIG_USB_OXU210HP_HCD=m -CONFIG_USB_ISP116X_HCD=m -# CONFIG_USB_ISP1760_HCD is not set -# CONFIG_USB_ISP1362_HCD is not set -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_OHCI_HCD_SSB=y -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=m -CONFIG_USB_U132_HCD=m -CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_CS is not set -CONFIG_USB_R8A66597_HCD=m -CONFIG_USB_WHCI_HCD=m -CONFIG_USB_HWA_HCD=m - -# -# Enable Host or Gadget support to see Inventra options -# -# CONFIG_USB_MUSB_HDRC is not set - -# -# USB Device Class drivers -# -CONFIG_USB_ACM=m -CONFIG_USB_PRINTER=m -CONFIG_USB_WDM=m -CONFIG_USB_TMC=m - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=m -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -CONFIG_USB_STORAGE_FREECOM=m -CONFIG_USB_STORAGE_ISD200=m -CONFIG_USB_STORAGE_USBAT=m -CONFIG_USB_STORAGE_SDDR09=m -CONFIG_USB_STORAGE_SDDR55=m -CONFIG_USB_STORAGE_JUMPSHOT=m -CONFIG_USB_STORAGE_ALAUDA=m -CONFIG_USB_STORAGE_ONETOUCH=m -CONFIG_USB_STORAGE_KARMA=m -CONFIG_USB_STORAGE_CYPRESS_ATACB=m -# CONFIG_USB_LIBUSUAL is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set - -# -# USB port drivers -# -CONFIG_USB_USS720=m -CONFIG_USB_SERIAL=m -CONFIG_USB_EZUSB=y -CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_ARK3116=m -CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_CH341=m -CONFIG_USB_SERIAL_WHITEHEAT=m -CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP210X=m -CONFIG_USB_SERIAL_CYPRESS_M8=m -CONFIG_USB_SERIAL_EMPEG=m -CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set -CONFIG_USB_SERIAL_EDGEPORT=m -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -CONFIG_USB_SERIAL_GARMIN=m -CONFIG_USB_SERIAL_IPW=m -CONFIG_USB_SERIAL_IUU=m -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -CONFIG_USB_SERIAL_MCT_U232=m -CONFIG_USB_SERIAL_MOS7720=m -CONFIG_USB_SERIAL_MOS7840=m -CONFIG_USB_SERIAL_MOTOROLA=m -# CONFIG_USB_SERIAL_NAVMAN is not set -CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_OTI6858=m -CONFIG_USB_SERIAL_QUALCOMM=m -CONFIG_USB_SERIAL_SPCP8X5=m -CONFIG_USB_SERIAL_HP4X=m -CONFIG_USB_SERIAL_SAFE=m -# CONFIG_USB_SERIAL_SAFE_PADDED is not set -CONFIG_USB_SERIAL_SIEMENS_MPI=m -CONFIG_USB_SERIAL_SIERRAWIRELESS=m -CONFIG_USB_SERIAL_SYMBOL=m -CONFIG_USB_SERIAL_TI=m -# CONFIG_USB_SERIAL_CYBERJACK is not set -CONFIG_USB_SERIAL_XIRCOM=m -CONFIG_USB_SERIAL_OPTION=m -# CONFIG_USB_SERIAL_OMNINET is not set -CONFIG_USB_SERIAL_OPTICON=m -# CONFIG_USB_SERIAL_DEBUG is not set - -# -# USB Miscellaneous drivers -# -CONFIG_USB_EMI62=m -CONFIG_USB_EMI26=m -# CONFIG_USB_ADUTUX is not set -CONFIG_USB_SEVSEG=m -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -CONFIG_USB_LCD=m -CONFIG_USB_BERRY_CHARGE=m -CONFIG_USB_LED=m -CONFIG_USB_CYPRESS_CY7C63=m -CONFIG_USB_CYTHERM=m -# CONFIG_USB_IDMOUSE is not set -CONFIG_USB_FTDI_ELAN=m -# CONFIG_USB_APPLEDISPLAY is not set -CONFIG_USB_SISUSBVGA=m -CONFIG_USB_SISUSBVGA_CON=y -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -CONFIG_USB_IOWARRIOR=m -# CONFIG_USB_TEST is not set -CONFIG_USB_ISIGHTFW=m -CONFIG_USB_VST=m -CONFIG_USB_ATM=m -CONFIG_USB_SPEEDTOUCH=m -CONFIG_USB_CXACRU=m -CONFIG_USB_UEAGLEATM=m -CONFIG_USB_XUSBATM=m -# CONFIG_USB_GADGET is not set - -# -# OTG and related infrastructure -# -CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m -CONFIG_NOP_USB_XCEIV=m -CONFIG_UWB=m -CONFIG_UWB_HWA=m -CONFIG_UWB_WHCI=m -CONFIG_UWB_WLP=m -CONFIG_UWB_I1480U=m -CONFIG_UWB_I1480U_WLP=m -CONFIG_MMC=m -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_UNSAFE_RESUME is not set - -# -# MMC/SD/SDIO Card Drivers -# -CONFIG_MMC_BLOCK=m -CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_SDIO_UART=m -CONFIG_MMC_TEST=m - -# -# MMC/SD/SDIO Host Controller Drivers -# -CONFIG_MMC_ARMMMCI=m -CONFIG_MMC_SDHCI=m -CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_RICOH_MMC=m -CONFIG_MMC_SDHCI_PLTFM=m -# CONFIG_MMC_AT91 is not set -# CONFIG_MMC_ATMELMCI is not set -CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_SDRICOH_CS=m -CONFIG_MMC_CB710=m -CONFIG_MMC_VIA_SDMMC=m -CONFIG_MEMSTICK=m -# CONFIG_MEMSTICK_DEBUG is not set - -# -# MemoryStick drivers -# -# CONFIG_MEMSTICK_UNSAFE_RESUME is not set -CONFIG_MSPRO_BLOCK=m - -# -# MemoryStick Host Controller Drivers -# -CONFIG_MEMSTICK_TIFM_MS=m -CONFIG_MEMSTICK_JMICRON_38X=m -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m - -# -# LED drivers -# -CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_GPIO=m -CONFIG_LEDS_GPIO_PLATFORM=y -CONFIG_LEDS_LP3944=m -CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m -CONFIG_LEDS_BD2802=m - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_LEDS_TRIGGER_BACKLIGHT=m -CONFIG_LEDS_TRIGGER_GPIO=m -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m - -# -# iptables trigger is under Netfilter config (LED target) -# -CONFIG_LEDS_TRIGGER_NETDEV=m -# CONFIG_ACCESSIBILITY is not set -# CONFIG_INFINIBAND is not set -CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=m - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_DRV_TEST=m - -# -# I2C RTC drivers -# -CONFIG_RTC_DRV_DS1307=m -CONFIG_RTC_DRV_DS1374=m -CONFIG_RTC_DRV_DS1672=m -CONFIG_RTC_DRV_MAX6900=m -CONFIG_RTC_DRV_RS5C372=m -CONFIG_RTC_DRV_ISL1208=m -CONFIG_RTC_DRV_X1205=m -CONFIG_RTC_DRV_PCF8563=m -CONFIG_RTC_DRV_PCF8583=m -CONFIG_RTC_DRV_M41T80=m -# CONFIG_RTC_DRV_M41T80_WDT is not set -CONFIG_RTC_DRV_S35390A=m -CONFIG_RTC_DRV_FM3130=m -CONFIG_RTC_DRV_RX8581=m -CONFIG_RTC_DRV_RX8025=m - -# -# SPI RTC drivers -# - -# -# Platform RTC drivers -# -CONFIG_RTC_DRV_CMOS=m -CONFIG_RTC_DRV_DS1286=m -CONFIG_RTC_DRV_DS1511=m -CONFIG_RTC_DRV_DS1553=m -CONFIG_RTC_DRV_DS1742=m -CONFIG_RTC_DRV_STK17TA8=m -CONFIG_RTC_DRV_M48T86=m -CONFIG_RTC_DRV_M48T35=m -CONFIG_RTC_DRV_M48T59=m -CONFIG_RTC_DRV_BQ4802=m -CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m -CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_AB3100=m - -# -# on-CPU RTC drivers -# -CONFIG_RTC_DRV_PL030=m -CONFIG_RTC_DRV_PL031=m -CONFIG_DMADEVICES=y - -# -# DMA Devices -# -# CONFIG_AUXDISPLAY is not set -CONFIG_UIO=m -CONFIG_UIO_CIF=m -CONFIG_UIO_PDRV=m -CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_SMX=m -CONFIG_UIO_AEC=m -CONFIG_UIO_SERCOS3=m -CONFIG_UIO_PCI_GENERIC=m - -# -# TI VLYNQ -# -CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set -CONFIG_ET131X=m -# CONFIG_ET131X_DEBUG is not set -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_USB_IP_COMMON is not set -# CONFIG_W35UND is not set -# CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set -# CONFIG_POCH is not set -# CONFIG_OTUS is not set -# CONFIG_COMEDI is not set -# CONFIG_ASUS_OLED is not set -# CONFIG_PANEL is not set -# CONFIG_ALTERA_PCIE_CHDMA is not set -# CONFIG_RTL8187SE is not set -# CONFIG_RTL8192SU is not set -# CONFIG_RTL8192E is not set -# CONFIG_TRANZPORT is not set - -# -# Android -# - -# -# Qualcomm MSM Camera And Video -# - -# -# Camera Sensor Selection -# -# CONFIG_INPUT_GPIO is not set -# CONFIG_DST is not set -# CONFIG_POHMELFS is not set -# CONFIG_B3DFG is not set -CONFIG_IDE_PHISON=m -# CONFIG_PLAN9AUTH is not set -# CONFIG_LINE6_USB is not set -# CONFIG_USB_SERIAL_QUATECH2 is not set -# CONFIG_USB_SERIAL_QUATECH_USB2 is not set -# CONFIG_VT6655 is not set -# CONFIG_VT6656 is not set -# CONFIG_FB_UDL is not set -# CONFIG_VME_BUS is not set - -# -# RAR Register Driver -# -# CONFIG_RAR_REGISTER is not set -# CONFIG_IIO is not set - -# -# File systems -# -CONFIG_EXT2_FS=m -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=m -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=m -CONFIG_EXT4_FS_XATTR=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -CONFIG_JBD2=m -CONFIG_FS_MBCACHE=m -CONFIG_REISER4_FS=m -# CONFIG_REISER4_DEBUG is not set -CONFIG_REISERFS_FS=m -# CONFIG_REISERFS_CHECK is not set -CONFIG_REISERFS_PROC_INFO=y -CONFIG_REISERFS_FS_XATTR=y -CONFIG_REISERFS_FS_POSIX_ACL=y -CONFIG_REISERFS_FS_SECURITY=y -CONFIG_JFS_FS=m -CONFIG_JFS_POSIX_ACL=y -CONFIG_JFS_SECURITY=y -# CONFIG_JFS_DEBUG is not set -CONFIG_JFS_STATISTICS=y -CONFIG_FS_POSIX_ACL=y -CONFIG_XFS_FS=m -CONFIG_XFS_QUOTA=y -CONFIG_XFS_POSIX_ACL=y -# CONFIG_XFS_RT is not set -# CONFIG_XFS_DEBUG is not set -# CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_NILFS2_FS is not set -CONFIG_FILE_LOCKING=y -CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=y -CONFIG_INOTIFY=y -CONFIG_INOTIFY_USER=y -CONFIG_QUOTA=y -CONFIG_QUOTA_NETLINK_INTERFACE=y -CONFIG_PRINT_QUOTA_WARNING=y -CONFIG_QUOTA_TREE=m -CONFIG_QFMT_V1=m -CONFIG_QFMT_V2=m -CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=m -CONFIG_AUTOFS4_FS=m -CONFIG_FUSE_FS=m -CONFIG_CUSE=m - -# -# Caches -# -CONFIG_FSCACHE=m -# CONFIG_FSCACHE_STATS is not set -# CONFIG_FSCACHE_HISTOGRAM is not set -# CONFIG_FSCACHE_DEBUG is not set -# CONFIG_FSCACHE_OBJECT_LIST is not set -CONFIG_CACHEFILES=m -# CONFIG_CACHEFILES_DEBUG is not set -# CONFIG_CACHEFILES_HISTOGRAM is not set - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=m -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -CONFIG_UDF_FS=m -CONFIG_UDF_NLS=y - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=m -# CONFIG_MSDOS_FS is not set -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=850 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set -# CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set -CONFIG_MISC_FILESYSTEMS=y -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -CONFIG_ECRYPT_FS=m -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -CONFIG_JFFS2_FS=m -CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -# CONFIG_JFFS2_SUMMARY is not set -# CONFIG_JFFS2_FS_XATTR is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_RUBIN=y -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -# CONFIG_UBIFS_FS is not set -# CONFIG_CRAMFS is not set -# CONFIG_SQUASHFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_OMFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y -CONFIG_NFS_FS=m -CONFIG_NFS_V3=y -CONFIG_NFS_V3_ACL=y -CONFIG_NFS_V4=y -# CONFIG_NFS_V4_1 is not set -# CONFIG_NFS_FSCACHE is not set -CONFIG_NFSD=m -CONFIG_NFSD_V2_ACL=y -CONFIG_NFSD_V3=y -CONFIG_NFSD_V3_ACL=y -CONFIG_NFSD_V4=y -CONFIG_LOCKD=m -CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m -CONFIG_NFS_ACL_SUPPORT=m -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=m -CONFIG_SUNRPC_GSS=m -CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set -CONFIG_CIFS=m -CONFIG_CIFS_STATS=y -CONFIG_CIFS_STATS2=y -# CONFIG_CIFS_WEAK_PW_HASH is not set -# CONFIG_CIFS_UPCALL is not set -CONFIG_CIFS_XATTR=y -CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_EXPERIMENTAL is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="cp850" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y -# CONFIG_DLM is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -# CONFIG_ENABLE_WARN_DEPRECATED is not set -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_STRIP_ASM_SYMS=y -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 -CONFIG_DETECT_HUNG_TASK=y -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 -CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set -CONFIG_TIMER_STATS=y -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_RT_MUTEX_TESTER is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_HIGHMEM is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_WRITECOUNT is not set -CONFIG_DEBUG_MEMORY_INIT=y -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_CREDENTIALS is not set -CONFIG_FRAME_POINTER=y -# CONFIG_BOOT_PRINTK_DELAY is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -# CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_SYSCTL_SYSCALL_CHECK is not set -# CONFIG_PAGE_POISONING is not set -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set -# CONFIG_ARM_UNWIND is not set -# CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_ERRORS is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_LL is not set - -# -# Security options -# -CONFIG_KEYS=y -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set -CONFIG_XOR_BLOCKS=m -CONFIG_ASYNC_CORE=m -CONFIG_ASYNC_MEMCPY=m -CONFIG_ASYNC_XOR=m -CONFIG_ASYNC_PQ=m -CONFIG_ASYNC_RAID6_RECOV=m -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_FIPS=y -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=m -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_BLKCIPHER=m -CONFIG_CRYPTO_BLKCIPHER2=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=m -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_GF128MUL=m -# CONFIG_CRYPTO_NULL is not set -CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_CRYPTO_CRYPTD=m -CONFIG_CRYPTO_AUTHENC=m -# CONFIG_CRYPTO_TEST is not set - -# -# Authenticated Encryption with Associated Data -# -CONFIG_CRYPTO_CCM=m -CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_SEQIV=m - -# -# Block modes -# -CONFIG_CRYPTO_CBC=m -CONFIG_CRYPTO_CTR=m -CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_PCBC=m -CONFIG_CRYPTO_XTS=m - -# -# Hash modes -# -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_XCBC=m -CONFIG_CRYPTO_VMAC=m - -# -# Digest -# -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_GHASH=m -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=m -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_RMD128=m -CONFIG_CRYPTO_RMD160=m -CONFIG_CRYPTO_RMD256=m -CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_WP512=m - -# -# Ciphers -# -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_CAMELLIA=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_DES=m -CONFIG_CRYPTO_FCRYPT=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_SALSA20=m -CONFIG_CRYPTO_SEED=m -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_TWOFISH_COMMON=m - -# -# Compression -# -CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_ZLIB=m -CONFIG_CRYPTO_LZO=m - -# -# Random Number Generation -# -CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_DEV_HIFN_795X=m -CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y -# CONFIG_BINARY_PRINTF is not set - -# -# Library routines -# -CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_LAST_BIT=y -CONFIG_CRC_CCITT=m -CONFIG_CRC16=m -CONFIG_CRC_T10DIF=m -CONFIG_CRC_ITU_T=m -CONFIG_CRC32=y -CONFIG_CRC7=m -CONFIG_LIBCRC32C=m -CONFIG_AUDIT_GENERIC=y -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m -CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=y -CONFIG_DECOMPRESS_LZMA=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_DMA=y -CONFIG_CHECK_SIGNATURE=y -CONFIG_NLATTR=y diff --git a/config/kernel/kernel.config.i586-ipfire b/config/kernel/kernel.config.i586-ipfire index 2c08a1b..51f3413 100644 --- a/config/kernel/kernel.config.i586-ipfire +++ b/config/kernel/kernel.config.i586-ipfire @@ -1,15 +1,14 @@ # -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.41-ipfire -# Tue May 31 14:26:02 2011 +# Automatically generated file; DO NOT EDIT. +# Linux/i386 3.2.35 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y # CONFIG_X86_64 is not set CONFIG_X86=y +CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y @@ -19,10 +18,13 @@ CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_ZONE_DMA=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_GPIO=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y @@ -35,7 +37,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set @@ -44,34 +45,34 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_HAVE_INTEL_TXT=y -CONFIG_GENERIC_HARDIRQS=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y -CONFIG_X86_TRAMPOLINE=y -CONFIG_X86_32_LAZY_GS=y +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y
# # General setup # CONFIG_EXPERIMENTAL=y -CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y @@ -79,52 +80,73 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_TASKSTATS is not set +# CONFIG_FHANDLE is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +# CONFIG_TASK_XACCT is not set CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y
# # RCU Subsystem # CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set +# CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=32 # CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_RCU_FAST_NO_HZ is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=17 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # CONFIG_CGROUPS is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EMBEDDED is not set +# CONFIG_EXPERT is not set CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y +CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -133,35 +155,46 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y +# CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y
# # Kernel Performance Events And Counters # -# CONFIG_PERF_EVENTS is not set +CONFIG_PERF_EVENTS=y # CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y -# CONFIG_SLOB is not set # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
# # GCOV-based kernel profiling # -CONFIG_SLOW_WORK=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -175,22 +208,51 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y -# CONFIG_BLK_DEV_BSG is not set +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set
# # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_PADATA=y +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_FREEZER=y
# @@ -200,19 +262,20 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_SMP=y -CONFIG_SPARSE_IRQ=y CONFIG_X86_MPPARSE=y # CONFIG_X86_BIGSMP is not set CONFIG_X86_EXTENDED_PLATFORM=y -# CONFIG_X86_ELAN is not set -# CONFIG_X86_MRST is not set +# CONFIG_X86_WANT_INTEL_MID is not set # CONFIG_X86_RDC321X is not set # CONFIG_X86_32_NON_STANDARD is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +# CONFIG_X86_32_IRIS is not set CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_PARAVIRT_GUEST=y -CONFIG_VMI=y +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +# CONFIG_XEN_PRIVILEGED_GUEST is not set CONFIG_KVM_CLOCK=y CONFIG_KVM_GUEST=y CONFIG_LGUEST_GUEST=y @@ -220,6 +283,7 @@ CONFIG_PARAVIRT=y CONFIG_PARAVIRT_SPINLOCKS=y CONFIG_PARAVIRT_CLOCK=y # CONFIG_PARAVIRT_DEBUG is not set +CONFIG_NO_BOOTMEM=y # CONFIG_MEMTEST is not set # CONFIG_M386 is not set # CONFIG_M486 is not set @@ -238,21 +302,20 @@ CONFIG_M586TSC=y # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP3D is not set +# CONFIG_MELAN is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set # CONFIG_MVIAC7 is not set -# CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set -# CONFIG_GENERIC_CPU is not set CONFIG_X86_GENERIC=y -CONFIG_X86_CPU=y -CONFIG_X86_L1_CACHE_BYTES=64 -CONFIG_X86_INTERNODE_CACHE_BYTES=64 +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_CMPXCHG=y -CONFIG_X86_L1_CACHE_SHIFT=5 +CONFIG_CMPXCHG_LOCAL=y +CONFIG_CMPXCHG_DOUBLE=y +CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y CONFIG_X86_PPRO_FENCE=y CONFIG_X86_F00F_BUG=y @@ -274,7 +337,6 @@ CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y # CONFIG_IOMMU_HELPER is not set -CONFIG_IOMMU_API=y CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y @@ -308,40 +370,44 @@ CONFIG_HIGHMEM4G=y CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ILLEGAL_POINTER_VALUE=0 CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y +CONFIG_HAVE_MEMBLOCK=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y # CONFIG_MEMORY_FAILURE is not set +# CONFIG_TRANSPARENT_HUGEPAGE is not set +# CONFIG_CLEANCACHE is not set # CONFIG_HIGHPTE is not set # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set -CONFIG_X86_RESERVE_LOW_64K=y +CONFIG_X86_RESERVE_LOW=64 CONFIG_MATH_EMULATION=y CONFIG_MTRR=y # CONFIG_MTRR_SANITIZER is not set -# CONFIG_X86_PAT is not set +CONFIG_X86_PAT=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_RANDOM=y # CONFIG_EFI is not set CONFIG_SECCOMP=y -# CONFIG_CC_STACKPROTECTOR is not set +CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set CONFIG_HZ_300=y @@ -361,20 +427,19 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management and ACPI options # -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS is not set CONFIG_ACPI_PROCFS_POWER=y -CONFIG_ACPI_POWER_METER=m -CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_EC_DEBUGFS=m CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m @@ -383,6 +448,7 @@ CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=m CONFIG_ACPI_DOCK=y CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m CONFIG_ACPI_THERMAL=m @@ -394,6 +460,8 @@ CONFIG_ACPI_PCI_SLOT=m CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m CONFIG_ACPI_SBS=m +# CONFIG_ACPI_HED is not set +# CONFIG_ACPI_APEI is not set # CONFIG_SFI is not set CONFIG_X86_APM_BOOT=y CONFIG_APM=m @@ -408,11 +476,9 @@ CONFIG_APM_CPU_IDLE=y # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y -# CONFIG_CPU_FREQ_DEBUG is not set CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set @@ -423,8 +489,9 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
# -# CPUFreq processor drivers +# x86 CPU frequency scaling drivers # +CONFIG_X86_PCC_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_POWERNOW_K6=m CONFIG_X86_POWERNOW_K7=m @@ -449,6 +516,7 @@ CONFIG_X86_SPEEDSTEP_LIB=m CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_INTEL_IDLE=y
# # Bus options (PCI etc.) @@ -457,28 +525,30 @@ CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set -# CONFIG_PCI_GOOLPC is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y -CONFIG_DMAR=y -CONFIG_DMAR_DEFAULT_ON=y -CONFIG_DMAR_FLOPPY_WA=y +# CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y CONFIG_PCIEAER=y # CONFIG_PCIE_ECRC is not set # CONFIG_PCIEAER_INJECT is not set CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set +CONFIG_PCIE_PME=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y -CONFIG_PCI_LEGACY=y # CONFIG_PCI_DEBUG is not set CONFIG_PCI_STUB=m CONFIG_HT_IRQ=y +CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +CONFIG_PCI_IOAPIC=y +CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y CONFIG_EISA=y @@ -492,12 +562,11 @@ CONFIG_MCA_LEGACY=y CONFIG_SCx200=m CONFIG_SCx200HR_TIMER=m # CONFIG_OLPC is not set -CONFIG_K8_NB=y +CONFIG_ALIX=y +CONFIG_AMD_NB=y CONFIG_PCCARD=m -# CONFIG_PCMCIA_DEBUG is not set CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y CONFIG_CARDBUS=y
# @@ -514,8 +583,9 @@ CONFIG_I82092=m CONFIG_I82365=m CONFIG_TCIC=m CONFIG_PCMCIA_PROBE=y -CONFIG_PCCARD_NONSTATIC=m +CONFIG_PCCARD_NONSTATIC=y # CONFIG_HOTPLUG_PCI is not set +# CONFIG_RAPIDIO is not set
# # Executable file formats / Emulations @@ -526,13 +596,13 @@ CONFIG_HAVE_AOUT=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set CONFIG_HAVE_ATOMIC_IOMAP=y +CONFIG_HAVE_TEXT_POKE_SMP=y CONFIG_NET=y
# # Networking options # CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m @@ -545,17 +615,18 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE_STATS is not set CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_ARPD=y @@ -584,15 +655,10 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -# CONFIG_DEFAULT_BIC is not set -# CONFIG_DEFAULT_CUBIC is not set -# CONFIG_DEFAULT_HTCP is not set -# CONFIG_DEFAULT_VEGAS is not set -# CONFIG_DEFAULT_WESTWOOD is not set CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" # CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m +CONFIG_IPV6=y # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set @@ -607,12 +673,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_NETWORK_SECMARK is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -625,9 +693,10 @@ CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m -CONFIG_NF_CT_ACCT=y CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -636,7 +705,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m @@ -644,10 +715,24 @@ CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_TPROXY=m CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m @@ -655,28 +740,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m @@ -685,7 +780,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y CONFIG_NETFILTER_XT_MATCH_SCTP=m CONFIG_NETFILTER_XT_MATCH_SOCKET=m CONFIG_NETFILTER_XT_MATCH_STATE=m @@ -696,7 +790,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_MATCH_OSF=m +# CONFIG_IP_SET is not set CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -707,8 +801,10 @@ CONFIG_IP_VS_TAB_BITS=12 # # CONFIG_IP_VS_PROTO_TCP is not set # CONFIG_IP_VS_PROTO_UDP is not set +# CONFIG_IP_VS_PROTO_AH_ESP is not set # CONFIG_IP_VS_PROTO_ESP is not set # CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set
# # IPVS scheduler @@ -727,6 +823,7 @@ CONFIG_IP_VS_TAB_BITS=12 # # IPVS application helper # +# CONFIG_IP_VS_NFCT is not set
# # IP: Netfilter Configuration @@ -736,7 +833,6 @@ CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_TTL=m @@ -774,6 +870,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # +CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m @@ -823,9 +920,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m CONFIG_STP=m CONFIG_GARP=m CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y @@ -848,6 +950,7 @@ CONFIG_LLC=m # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m CONFIG_NET_SCHED=y
# @@ -860,6 +963,7 @@ CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_MULTIQ=m CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m @@ -867,6 +971,9 @@ CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_INGRESS=m
# @@ -876,7 +983,6 @@ CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y @@ -899,11 +1005,18 @@ CONFIG_NET_ACT_MIRRED=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m -# CONFIG_NET_ACT_SIMP is not set +CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y
# # Network testing @@ -959,8 +1072,8 @@ CONFIG_VLSI_FIR=m CONFIG_VIA_FIR=m CONFIG_MCS_FIR=m CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -977,6 +1090,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m @@ -988,19 +1102,25 @@ CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m CONFIG_AF_RXRPC=m # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=m CONFIG_FIB_RULES=y CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_DEFAULT_PS is not set -CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m @@ -1010,9 +1130,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y -# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_DEBUG_MENU is not set @@ -1020,7 +1140,13 @@ CONFIG_MAC80211_LEDS=y CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m # CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set
# # Device Drivers @@ -1039,12 +1165,11 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m CONFIG_CONNECTOR=m CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set CONFIG_MTD_TESTS=m -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set CONFIG_MTD_AR7_PARTS=m
@@ -1060,7 +1185,9 @@ CONFIG_MTD_BLOCK=m # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set +CONFIG_SM_FTL=m # CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set
# # RAM/ROM/Flash chip drivers @@ -1106,6 +1233,9 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_NAND_ECC_SMC is not set # CONFIG_MTD_NAND is not set # CONFIG_MTD_ONENAND is not set
@@ -1114,18 +1244,10 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_LPDDR=m CONFIG_MTD_QINFO_PROBE=m - -# -# UBI - Unsorted block images -# CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_RESERVE=1 # CONFIG_MTD_UBI_GLUEBI is not set - -# -# UBI debugging options -# # CONFIG_MTD_UBI_DEBUG is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m @@ -1158,7 +1280,9 @@ CONFIG_BLK_DEV_DAC960=m # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_SX8=m @@ -1171,16 +1295,35 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_ATA_OVER_ETH=m CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_RBD=m +CONFIG_SENSORS_LIS3LV02D=m CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set # CONFIG_IBM_ASM is not set # CONFIG_PHANTOM is not set +# CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m CONFIG_ENCLOSURE_SERVICES=m +CONFIG_CS5535_MFGPT=m +CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 +CONFIG_CS5535_CLOCK_EVENT_SRC=m CONFIG_HP_ILO=m +CONFIG_APDS9802ALS=m CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_VMWARE_BALLOON=m +CONFIG_BMP085=m +CONFIG_PCH_PHUB=m +CONFIG_USB_SWITCH_FSA9480=m CONFIG_C2PORT=m CONFIG_C2PORT_DURAMAR_2150=m
@@ -1194,13 +1337,28 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWMC3200TOP_DEBUGFS is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +CONFIG_SENSORS_LIS3_I2C=m + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set
# # SCSI device support # -CONFIG_RAID_ATTRS=y +CONFIG_SCSI_MOD=m +CONFIG_RAID_ATTRS=m CONFIG_SCSI=m CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set @@ -1234,15 +1392,19 @@ CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS_DEBUG=y CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_CXGB4_ISCSI=m CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BNX2X_FCOE=m CONFIG_BE2ISCSI=m CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_HPSA=m CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m CONFIG_SCSI_7000FASST=m CONFIG_SCSI_ACARD=m CONFIG_SCSI_AHA152X=m @@ -1268,11 +1430,12 @@ CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m CONFIG_SCSI_MVSAS_DEBUG=y +# CONFIG_SCSI_MVSAS_TASKLET is not set +CONFIG_SCSI_MVUMI=m CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ADVANSYS=m CONFIG_SCSI_IN2000=m CONFIG_SCSI_ARCMSR=m -# CONFIG_SCSI_ARCMSR_AER is not set CONFIG_MEGARAID_NEWGEN=y CONFIG_MEGARAID_MM=m CONFIG_MEGARAID_MAILBOX=m @@ -1284,6 +1447,7 @@ CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_HPTIOP=m CONFIG_SCSI_BUSLOGIC=m CONFIG_SCSI_FLASHPOINT=y +CONFIG_VMWARE_PVSCSI=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m @@ -1297,6 +1461,7 @@ CONFIG_SCSI_EATA_MAX_TAGS=16 CONFIG_SCSI_FUTURE_DOMAIN=m CONFIG_SCSI_FD_MCS=m CONFIG_SCSI_GDTH=m +CONFIG_SCSI_ISCI=m CONFIG_SCSI_GENERIC_NCR5380=m CONFIG_SCSI_GENERIC_NCR5380_MMIO=m CONFIG_SCSI_GENERIC_NCR53C400=y @@ -1344,6 +1509,7 @@ CONFIG_SCSI_ULTRASTOR=m CONFIG_SCSI_NSP32=m # CONFIG_SCSI_DEBUG is not set CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y @@ -1366,30 +1532,48 @@ CONFIG_ATA=m CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_INIC162X=m +CONFIG_SATA_ACARD_AHCI=m CONFIG_SATA_SIL24=m CONFIG_ATA_SFF=y -CONFIG_SATA_SVW=m + +# +# SFF controllers with custom DMA interface +# +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SX4=m +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# CONFIG_ATA_PIIX=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m CONFIG_SATA_PROMISE=m -CONFIG_SATA_SX4=m CONFIG_SATA_SIL=m CONFIG_SATA_SIS=m +CONFIG_SATA_SVW=m CONFIG_SATA_ULI=m CONFIG_SATA_VIA=m CONFIG_SATA_VITESSE=m -CONFIG_SATA_INIC162X=m -CONFIG_PATA_ACPI=m + +# +# PATA SFF controllers with BMDMA +# CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m +CONFIG_PATA_ARASAN_CF=m CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATP867X=m CONFIG_PATA_ATIIXP=m -CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m @@ -1397,42 +1581,53 @@ CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m CONFIG_PATA_CYPRESS=m CONFIG_PATA_EFAR=m -CONFIG_ATA_GENERIC=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_ISAPNP=m -CONFIG_PATA_IT821X=m CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m -CONFIG_PATA_LEGACY=m -CONFIG_PATA_TRIFLEX=m CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_OLDPIIX=m CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OPTI=m +CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_QDI=m CONFIG_PATA_RADISYS=m CONFIG_PATA_RDC=m -CONFIG_PATA_RZ1000=m CONFIG_PATA_SC1200=m +CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_PDC2027X=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m +CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_TRIFLEX=m CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m + +# +# PIO-only SFF controllers +# +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_ISAPNP=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_QDI=m +CONFIG_PATA_RZ1000=m CONFIG_PATA_WINBOND_VLB=m -CONFIG_PATA_SCH=m + +# +# Generic fallback / legacy drivers +# +CONFIG_PATA_ACPI=m +CONFIG_ATA_GENERIC=m +CONFIG_PATA_LEGACY=m CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m @@ -1441,15 +1636,19 @@ CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m # CONFIG_MULTICORE_RAID456 is not set -CONFIG_MD_RAID6_PQ=m -CONFIG_ASYNC_RAID6_TEST=m CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set CONFIG_DM_MIRROR=m +CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m @@ -1457,6 +1656,8 @@ CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +# CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m @@ -1468,27 +1669,18 @@ CONFIG_FUSION_CTL=m # # IEEE 1394 (FireWire) support # - -# -# You can enable one or both FireWire driver stacks. -# - -# -# See the help texts for more information. -# CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m -# CONFIG_IEEE1394 is not set +# CONFIG_FIREWIRE_NOSY is not set # CONFIG_I2O is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m +CONFIG_NET_CORE=y CONFIG_BONDING=m -CONFIG_MACVLAN=m +CONFIG_DUMMY=m CONFIG_EQUALIZER=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set @@ -1496,58 +1688,114 @@ CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m -CONFIG_NET_SB1000=m +CONFIG_VIRTIO_NET=m +CONFIG_SUNGEM_PHY=m # CONFIG_ARCNET is not set -CONFIG_PHYLIB=y +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +CONFIG_ATM_ENI_DEBUG=y +CONFIG_ATM_ENI_TUNE_BURST=y +CONFIG_ATM_ENI_BURST_TX_16W=y +CONFIG_ATM_ENI_BURST_TX_8W=y +CONFIG_ATM_ENI_BURST_TX_4W=y +CONFIG_ATM_ENI_BURST_TX_2W=y +CONFIG_ATM_ENI_BURST_RX_16W=y +CONFIG_ATM_ENI_BURST_RX_8W=y +CONFIG_ATM_ENI_BURST_RX_4W=y +CONFIG_ATM_ENI_BURST_RX_2W=y +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_NICSTAR=m +CONFIG_ATM_NICSTAR_USE_SUNI=y +CONFIG_ATM_NICSTAR_USE_IDT77105=y +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_USE_TASKLET=y +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_SOLOS=m
# -# MII PHY device drivers +# CAIF transport drivers # -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -# CONFIG_FIXED_PHY is not set -CONFIG_MDIO_BITBANG=m -CONFIG_NET_ETHERNET=y -CONFIG_MII=m -CONFIG_HAPPYMEAL=m -CONFIG_SUNGEM=m -CONFIG_CASSINI=m +CONFIG_ETHERNET=y +CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y CONFIG_EL1=m -CONFIG_EL2=m -CONFIG_ELPLUS=m -CONFIG_EL16=m CONFIG_EL3=m CONFIG_3C515=m -CONFIG_ELMC=m -CONFIG_ELMC_II=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m CONFIG_VORTEX=m CONFIG_TYPHOON=m +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_NET_VENDOR_AMD=y +CONFIG_AMD8111_ETH=m CONFIG_LANCE=m -CONFIG_NET_VENDOR_SMC=y -CONFIG_WD80x3=m -CONFIG_ULTRAMCA=m -CONFIG_ULTRA=m -CONFIG_ULTRA32=m -CONFIG_SMC9194=m -CONFIG_ETHOC=m -CONFIG_NET_VENDOR_RACAL=y -CONFIG_NI52=m +CONFIG_PCNET32=m +CONFIG_DEPCA=m +CONFIG_PCMCIA_NMCLAN=m CONFIG_NI65=m +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_BNX2=m +CONFIG_CNIC=m +CONFIG_TIGON3=m +CONFIG_BNX2X=m +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_BNA=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4VF=m +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_CS89x0=m +CONFIG_NET_VENDOR_CISCO=y +CONFIG_ENIC=m CONFIG_DNET=m +CONFIG_NET_VENDOR_DEC=y +CONFIG_EWRK3=m CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 @@ -1560,170 +1808,197 @@ CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_DL2K=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_BE2NET=m +CONFIG_NET_VENDOR_EXAR=y +CONFIG_S2IO=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_NET_VENDOR_FUJITSU=y CONFIG_AT1700=m -CONFIG_DEPCA=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_ETH16I=m +CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m -CONFIG_NET_ISA=y -CONFIG_E2100=m -CONFIG_EWRK3=m +CONFIG_NET_VENDOR_IBM=y +# CONFIG_IBM_EMAC_ZMII is not set +# CONFIG_IBM_EMAC_RGMII is not set +# CONFIG_IBM_EMAC_TAH is not set +# CONFIG_IBM_EMAC_EMAC4 is not set +# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IGB=m +CONFIG_IGB_DCA=y +CONFIG_IGBVF=m +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGBEVF=m +CONFIG_NET_VENDOR_I825XX=y +CONFIG_ELPLUS=m +CONFIG_EL16=m +CONFIG_ELMC=m +CONFIG_ELMC_II=m +CONFIG_APRICOT=m CONFIG_EEXPRESS=m CONFIG_EEXPRESS_PRO=m -CONFIG_HPLAN_PLUS=m -CONFIG_HPLAN=m CONFIG_LP486E=m -CONFIG_ETH16I=m -CONFIG_NE2000=m +CONFIG_NI52=m CONFIG_ZNET=m -CONFIG_SEEQ8005=m -CONFIG_NE2_MCA=m +CONFIG_IP1000=m +CONFIG_JME=m +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_SKGE=m +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=m +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_KSZ884X_PCI=m +CONFIG_NET_VENDOR_MYRI=y +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_FEALNX=m +CONFIG_NET_VENDOR_NATSEMI=y CONFIG_IBMLANA=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NATSEMI=m +CONFIG_NS83820=m +CONFIG_NET_VENDOR_8390=y +CONFIG_EL2=m CONFIG_AC3200=m -CONFIG_APRICOT=m -CONFIG_B44=m -CONFIG_B44_PCI_AUTOSELECT=y -CONFIG_B44_PCICORE_AUTOSELECT=y -CONFIG_B44_PCI=y -CONFIG_FORCEDETH=m -# CONFIG_FORCEDETH_NAPI is not set -CONFIG_CS89x0=m -CONFIG_E100=m +CONFIG_PCMCIA_AXNET=m +CONFIG_E2100=m +CONFIG_ES3210=m +CONFIG_HPLAN_PLUS=m +CONFIG_HPLAN=m CONFIG_LNE390=m -CONFIG_FEALNX=m -CONFIG_NATSEMI=m +CONFIG_NE2000=m +CONFIG_NE2_MCA=m CONFIG_NE2K_PCI=m CONFIG_NE3210=m -CONFIG_ES3210=m +CONFIG_PCMCIA_PCNET=m +CONFIG_ULTRAMCA=m +CONFIG_ULTRA=m +CONFIG_ULTRA32=m +CONFIG_WD80x3=m +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_FORCEDETH=m +CONFIG_NET_VENDOR_OKI=y +CONFIG_PCH_GBE=m +CONFIG_ETHOC=m +CONFIG_NET_PACKET_ENGINE=y +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLGE=m +CONFIG_NETXEN_NIC=m +CONFIG_NET_VENDOR_RACAL=y +CONFIG_NET_VENDOR_REALTEK=y +CONFIG_ATP=m CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set CONFIG_8139TOO_TUNE_TWISTER=y CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=m +CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m +CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m +CONFIG_SIS190=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC9194=m +CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m CONFIG_SMSC9420=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set +CONFIG_NET_VENDOR_SUN=y +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NIU=m +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_TEHUTI=m +CONFIG_NET_VENDOR_TI=y CONFIG_TLAN=m -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y -CONFIG_SC92031=m -CONFIG_NET_POCKET=y -CONFIG_ATP=m -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_ATL2=m -CONFIG_NETDEV_1000=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -CONFIG_E1000E=m -CONFIG_IP1000=m -CONFIG_IGB=m -CONFIG_IGB_DCA=y -CONFIG_IGBVF=m -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -CONFIG_R8169_VLAN=y -CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m -CONFIG_CNIC=m -CONFIG_QLA3XXX=m -CONFIG_ATL1=m -CONFIG_ATL1E=m -CONFIG_ATL1C=m -CONFIG_JME=m -CONFIG_NETDEV_10000=y -CONFIG_MDIO=m -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T3_DEPENDS=y -CONFIG_CHELSIO_T3=m -CONFIG_ENIC=m -CONFIG_IXGBE=m -CONFIG_IXGBE_DCA=y -CONFIG_IXGB=m -CONFIG_S2IO=m -CONFIG_VXGE=m -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_MYRI10GE=m -CONFIG_MYRI10GE_DCA=y -CONFIG_NETXEN_NIC=m -CONFIG_NIU=m -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_TEHUTI=m -CONFIG_BNX2X=m -CONFIG_QLGE=m -CONFIG_SFC=m -CONFIG_SFC_MTD=y -CONFIG_BE2NET=m -# CONFIG_TR is not set -CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_AIRO=m -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m -# CONFIG_PRISM54 is not set -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_P54_COMMON is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set -# CONFIG_RT2X00 is not set -# CONFIG_HERMES is not set -# CONFIG_WL12XX is not set -# CONFIG_IWM is not set +CONFIG_NET_VENDOR_XIRCOM=y +CONFIG_PCMCIA_XIRC2PS=m +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_NET_SB1000=m +CONFIG_PHYLIB=y
# -# Enable WiMAX (Networking options) to see the WiMAX drivers +# MII PHY device drivers # +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m +# CONFIG_FIXED_PHY is not set +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +# CONFIG_TR is not set
# # USB Network Adapters @@ -1736,7 +2011,9 @@ CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m CONFIG_USB_NET_GL620A=m CONFIG_USB_NET_NET1080=m @@ -1751,131 +2028,96 @@ CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m -CONFIG_WAN=y -CONFIG_HOSTESS_SV11=m -CONFIG_COSA=m -CONFIG_LANMEDIA=m -CONFIG_SEALEVEL_4021=m -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_N2=m -CONFIG_C101=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_SDLA=m -CONFIG_SBNI=m -CONFIG_SBNI_MULTILINE=y -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_ATM_LANAI=m -CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set -CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y -CONFIG_ATM_IDT77252=m -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 -CONFIG_ATM_HE=m -CONFIG_ATM_HE_USE_SUNI=y -CONFIG_ATM_SOLOS=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NET_FC is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_VIRTIO_NET=m -CONFIG_VMXNET3=m -CONFIG_ISDN=y -CONFIG_ISDN_I4L=m -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m +# CONFIG_USB_IPHETH is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +CONFIG_PCMCIA_RAYCS=m +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_AIRO=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AT76C50X_USB=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_RTL8180 is not set +# CONFIG_RTL8187 is not set +# CONFIG_ADM8211 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_MWL8K is not set +# CONFIG_ATH_COMMON is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMFMAC is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWLWIFI is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_HERMES is not set +# CONFIG_P54_COMMON is not set +# CONFIG_RT2X00 is not set +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +# CONFIG_RTL8192CU is not set +# CONFIG_WL1251 is not set +# CONFIG_WL12XX_MENU is not set +# CONFIG_ZD1211RW is not set +# CONFIG_MWIFIEX is not set
# -# mISDN hardware drivers +# Enable WiMAX (Networking options) to see the WiMAX drivers # -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m +CONFIG_WAN=y +CONFIG_HOSTESS_SV11=m +CONFIG_COSA=m +CONFIG_LANMEDIA=m +CONFIG_SEALEVEL_4021=m +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m + +# +# X.25/LAPB support is disabled +# +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +# CONFIG_WANXL_BUILD_FIRMWARE is not set +CONFIG_PC300TOO=m +CONFIG_N2=m +CONFIG_C101=m +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_SDLA=m +CONFIG_SBNI=m +CONFIG_SBNI_MULTILINE=y +CONFIG_VMXNET3=m +CONFIG_ISDN=y +CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y CONFIG_ISDN_MPP=y @@ -1966,16 +2208,11 @@ CONFIG_ISDN_DRV_ICN=m CONFIG_ISDN_DRV_PCBIT=m CONFIG_ISDN_DRV_SC=m CONFIG_ISDN_DRV_ACT2000=m -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_ISDN_HDLC=m CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_CAPI_TRACE=y CONFIG_ISDN_CAPI_MIDDLEWARE=y CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIFS_BOOL=y -CONFIG_ISDN_CAPI_CAPIFS=m CONFIG_ISDN_CAPI_CAPIDRV=m
# @@ -1998,10 +2235,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m CONFIG_ISDN_DIVAS_USERIDI=m CONFIG_ISDN_DIVAS_MAINT=m CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_CAPI=y +# CONFIG_GIGASET_I4L is not set +# CONFIG_GIGASET_DUMMYLL is not set CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m # CONFIG_GIGASET_DEBUG is not set +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_MISDN_AVMFRITZ=m +CONFIG_MISDN_SPEEDFAX=m +CONFIG_MISDN_INFINEON=m +CONFIG_MISDN_W6692=m +CONFIG_MISDN_NETJET=m +CONFIG_MISDN_IPAC=m +CONFIG_MISDN_ISAR=m +CONFIG_ISDN_HDLC=m # CONFIG_PHONE is not set
# @@ -2010,6 +2270,7 @@ CONFIG_GIGASET_M101=m CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m
# # Userland interfaces @@ -2027,11 +2288,19 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m CONFIG_KEYBOARD_ATKBD=y -CONFIG_QT2160=m +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_GPIO_POLLED=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_MATRIX=m CONFIG_KEYBOARD_LM8323=m CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m CONFIG_KEYBOARD_NEWTON=m CONFIG_KEYBOARD_OPENCORES=m CONFIG_KEYBOARD_STOWAWAY=m @@ -2042,20 +2311,27 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_BMA150=m CONFIG_INPUT_PCSPKR=m +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_APANEL=m # CONFIG_INPUT_WISTRON_BTNS is not set # CONFIG_INPUT_ATLAS_BTNS is not set -CONFIG_INPUT_ATI_REMOTE=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m # CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_WINBOND_CIR=m CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_WM831X_ON=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set
# # Hardware I/O ports @@ -2068,6 +2344,8 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_PS2MULT=m # CONFIG_GAMEPORT is not set
# @@ -2076,11 +2354,17 @@ CONFIG_SERIO_LIBPS2=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_DEVKMEM=y +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set # CONFIG_SERIAL_NONSTANDARD is not set CONFIG_NOZOMI=m +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y
# # Serial drivers @@ -2108,12 +2392,18 @@ CONFIG_SERIAL_8250_RSA=y # # Non-8250 serial port support # +CONFIG_SERIAL_MFD_HSU=m +CONFIG_SERIAL_UARTLITE=m CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_PCH_UART=m +CONFIG_SERIAL_XILINX_PS_UART=m CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m @@ -2150,7 +2440,6 @@ CONFIG_MWAVE=m CONFIG_SCx200_GPIO=m CONFIG_PC8736x_GPIO=m CONFIG_NSC_GPIO=m -CONFIG_CS5535_GPIO=m # CONFIG_RAW_DRIVER is not set CONFIG_HPET=y CONFIG_HPET_MMAP=y @@ -2158,11 +2447,21 @@ CONFIG_HANGCHECK_TIMER=m # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y +# CONFIG_RAMOOPS is not set CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCA=m
@@ -2198,40 +2497,36 @@ CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PCI=m +CONFIG_I2C_GPIO=m +CONFIG_I2C_INTEL_MID=m CONFIG_I2C_OCORES=m +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m +CONFIG_I2C_XILINX=m +CONFIG_I2C_EG20T=m
# # External I2C/SMBus adapter drivers # +CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -# CONFIG_I2C_TAOS_EVM is not set +CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_TINY_USB=m
# -# Graphics adapter I2C/DDC channel drivers -# -CONFIG_I2C_VOODOO3=m - -# # Other I2C/SMBus bus drivers # CONFIG_I2C_PCA_ISA=m -CONFIG_I2C_PCA_PLATFORM=m CONFIG_I2C_STUB=m # CONFIG_SCx200_I2C is not set CONFIG_SCx200_ACB=m - -# -# Miscellaneous I2C Chip support -# -CONFIG_DS1682=m -CONFIG_SENSORS_TSL2550=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set # CONFIG_SPI is not set
# @@ -2239,8 +2534,73 @@ CONFIG_SENSORS_TSL2550=m # CONFIG_PPS=m # CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m +CONFIG_DP83640_PHY=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -# CONFIG_GPIOLIB is not set +CONFIG_GPIOLIB=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_MAX730X=m + +# +# Memory mapped GPIO drivers: +# +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_SCH=m +CONFIG_GPIO_VX855=m + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_ADP5588=m + +# +# PCI GPIO expanders: +# +CONFIG_GPIO_CS5535=m +# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_LANGWELL is not set +CONFIG_GPIO_PCH=m +CONFIG_GPIO_ML_IOH=m +# CONFIG_GPIO_TIMBERDALE is not set +CONFIG_GPIO_RDC321X=m + +# +# SPI GPIO expanders: +# +CONFIG_GPIO_MCP23S08=m + +# +# AC97 GPIO expanders: +# +# CONFIG_GPIO_UCB1400 is not set + +# +# MODULbus GPIO expanders: +# +CONFIG_GPIO_JANZ_TTL=m CONFIG_W1=m CONFIG_W1_CON=y
@@ -2250,27 +2610,37 @@ CONFIG_W1_CON=y CONFIG_W1_MASTER_MATROX=m CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS1WM=m +CONFIG_W1_MASTER_GPIO=m
# # 1-wire Slaves # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set -CONFIG_WM831X_POWER=m -CONFIG_WM8350_POWER=m +# CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set -CONFIG_BATTERY_DS2782=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_MAX17040=m -CONFIG_CHARGER_PCF50633=m +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_GPIO is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -2288,13 +2658,17 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7473=m CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_FAM15H_POWER=m CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m @@ -2304,11 +2678,15 @@ CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m @@ -2319,23 +2697,55 @@ CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m @@ -2343,34 +2753,35 @@ CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m -CONFIG_SENSORS_HDAPS=m CONFIG_SENSORS_APPLESMC=m
# # ACPI drivers # +CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m -CONFIG_SENSORS_LIS3LV02D=m CONFIG_THERMAL=y CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set
# # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_WATCHDOG=m CONFIG_ACQUIRE_WDT=m CONFIG_ADVANTECH_WDT=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_F71808E_WDT=m +CONFIG_SP5100_TCO=m +CONFIG_GEODE_WDT=m CONFIG_SC520_WDT=m CONFIG_SBC_FITPC2_WATCHDOG=m CONFIG_EUROTECH_WDT=m @@ -2383,9 +2794,11 @@ CONFIG_ITCO_WDT=m CONFIG_IT8712F_WDT=m CONFIG_IT87_WDT=m CONFIG_HP_WATCHDOG=m +CONFIG_HPWDT_NMI_DECODING=y CONFIG_SC1200_WDT=m CONFIG_SCx200_WDT=m CONFIG_PC87413_WDT=m +CONFIG_NV_TCO=m CONFIG_60XX_WDT=m CONFIG_SBC8360_WDT=m CONFIG_SBC7240_WDT=m @@ -2434,74 +2847,136 @@ CONFIG_SSB_SDIOHOST=y # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +CONFIG_BCMA=m +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +# CONFIG_BCMA_HOST_PCI is not set +# CONFIG_BCMA_DEBUG is not set
# # Multifunction device drivers # CONFIG_MFD_CORE=m CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set CONFIG_HTC_PASIC3=m +CONFIG_UCB1400_CORE=m +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m # CONFIG_MFD_TMIO is not set CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=m -CONFIG_MFD_WM8350=m -CONFIG_MFD_WM8350_I2C=m CONFIG_MFD_PCF50633=m CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m -CONFIG_AB3100_CORE=m -CONFIG_AB3100_OTP=m -# CONFIG_REGULATOR is not set +# CONFIG_ABX500_CORE is not set +CONFIG_MFD_CS5535=m +CONFIG_MFD_TIMBERDALE=m +CONFIG_LPC_SCH=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_JANZ_CMODIO=m +CONFIG_MFD_VX855=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +CONFIG_REGULATOR_GPIO=m +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_WM8400 is not set +# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_AD5398 is not set CONFIG_MEDIA_SUPPORT=m
# # Multimedia core support # +CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m -# CONFIG_VIDEO_ALLOW_V4L1 is not set -CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y CONFIG_VIDEO_MEDIA=m
# # Multimedia drivers # -# CONFIG_MEDIA_ATTACH is not set +CONFIG_RC_CORE=m +CONFIG_LIRC=m +CONFIG_RC_MAP=m +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_RC5_SZ_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_LIRC_CODEC is not set +# CONFIG_RC_ATI_REMOTE is not set +# CONFIG_IR_ENE is not set +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_ITE_CIR is not set +# CONFIG_IR_FINTEK is not set +# CONFIG_IR_NUVOTON is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_IR_WINBOND_CIR is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m # CONFIG_MEDIA_TUNER_CUSTOMISE is not set CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m
# -# Encoders/decoders and other helper chips +# Encoders, decoders, sensors and other helper chips #
# -# Audio decoders +# Audio decoders, processors and mixers # # CONFIG_VIDEO_TVAUDIO is not set # CONFIG_VIDEO_TDA7432 is not set # CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TDA9875 is not set # CONFIG_VIDEO_TEA6415C is not set # CONFIG_VIDEO_TEA6420 is not set # CONFIG_VIDEO_MSP3400 is not set # CONFIG_VIDEO_CS5345 is not set # CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_TLV320AIC23B is not set # CONFIG_VIDEO_WM8775 is not set # CONFIG_VIDEO_WM8739 is not set @@ -2520,19 +2995,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_BT856 is not set # CONFIG_VIDEO_BT866 is not set # CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_TCM825X is not set # CONFIG_VIDEO_SAA7110 is not set # CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_SAA7191 is not set # CONFIG_VIDEO_TVP514X is not set # CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set # CONFIG_VIDEO_VPX3220 is not set
# # Video and audio decoders # +# CONFIG_VIDEO_SAA717X is not set # CONFIG_VIDEO_CX25840 is not set
# @@ -2547,29 +3021,62 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_SAA7185 is not set # CONFIG_VIDEO_ADV7170 is not set # CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_THS7303 is not set # CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_S5K6AA is not set + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set
# # Video improvement chips # # CONFIG_VIDEO_UPD64031A is not set # CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_VIDEO_PMS is not set +# CONFIG_VIDEO_BWQCAM is not set +# CONFIG_VIDEO_CQCAM is not set +# CONFIG_VIDEO_W9966 is not set +# CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_ZORAN is not set +# CONFIG_VIDEO_MEYE is not set # CONFIG_VIDEO_SAA7134 is not set +# CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_TIMBERDALE is not set # CONFIG_VIDEO_CX88 is not set # CONFIG_VIDEO_CX23885 is not set +# CONFIG_VIDEO_CX25821 is not set # CONFIG_VIDEO_AU0828 is not set # CONFIG_VIDEO_IVTV is not set # CONFIG_VIDEO_CX18 is not set # CONFIG_VIDEO_SAA7164 is not set # CONFIG_VIDEO_CAFE_CCIC is not set +# CONFIG_VIDEO_VIA_CAMERA is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y # CONFIG_USB_VIDEO_CLASS is not set @@ -2578,24 +3085,25 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_HDPVR is not set # CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_TLG2300 is not set # CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_TM6000 is not set # CONFIG_VIDEO_USBVISION is not set # CONFIG_USB_ET61X251 is not set # CONFIG_USB_SN9C102 is not set -# CONFIG_USB_ZC0301 is not set -# CONFIG_USB_PWC_INPUT_EVDEV is not set +# CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set # CONFIG_USB_STKWEBCAM is not set # CONFIG_USB_S2255 is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_CADET is not set # CONFIG_RADIO_RTRACK is not set # CONFIG_RADIO_RTRACK2 is not set # CONFIG_RADIO_AZTECH is not set # CONFIG_RADIO_GEMTEK is not set -# CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MAESTRO is not set +# CONFIG_RADIO_MIROPCM20 is not set # CONFIG_RADIO_SF16FMI is not set # CONFIG_RADIO_SF16FMR2 is not set # CONFIG_RADIO_TERRATEC is not set @@ -2608,6 +3116,15 @@ CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_SI470X is not set # CONFIG_USB_MR800 is not set # CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_TIMBERDALE is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +# CONFIG_RADIO_WL128X is not set CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set CONFIG_DVB_CAPTURE_DRIVERS=y @@ -2647,16 +3164,75 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # CONFIG_DVB_DM1105 is not set
# +# Supported FireWire (IEEE 1394) Adapters +# +# CONFIG_DVB_FIREDTV is not set + +# # Supported Earthsoft PT1 Adapters # # CONFIG_DVB_PT1 is not set
# +# Supported Mantis Adapters +# +# CONFIG_MANTIS_CORE is not set + +# +# Supported nGene Adapters +# +# CONFIG_DVB_NGENE is not set + +# +# Supported ddbridge ('Octopus') Adapters +# +# CONFIG_DVB_DDBRIDGE is not set + +# # Supported DVB Frontends # # CONFIG_DVB_FE_CUSTOMISE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set + +# +# Multistandard (satellite) frontends +# + +# +# Multistandard (cable + terrestrial) frontends +# + +# +# DVB-S (satellite) frontends +# + +# +# DVB-T (terrestrial) frontends +# + +# +# DVB-C (cable) frontends +# + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# + +# +# ISDB-T (terrestrial) frontends +# + +# +# Digital terrestrial only tuners/PLL +# + +# +# SEC control devices for DVB-S +# + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set
# # Graphics support @@ -2673,20 +3249,24 @@ CONFIG_AGP_SWORKS=m CONFIG_AGP_VIA=m CONFIG_AGP_EFFICEON=m CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_VGA_SWITCHEROO is not set CONFIG_DRM=m CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_TTM=m CONFIG_DRM_TDFX=m CONFIG_DRM_R128=m CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_KMS=y CONFIG_DRM_I810=m -CONFIG_DRM_I830=m CONFIG_DRM_I915=m CONFIG_DRM_I915_KMS=y CONFIG_DRM_MGA=m CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m +CONFIG_DRM_VMWGFX=m +CONFIG_STUB_POULSBO=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y @@ -2702,6 +3282,7 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m +# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=m # CONFIG_FB_MACMODES is not set @@ -2716,6 +3297,7 @@ CONFIG_FB_CIRRUS=m CONFIG_FB_PM2=m CONFIG_FB_PM2_FIFO_DISCONNECT=y CONFIG_FB_CYBER2000=m +CONFIG_FB_CYBER2000_DDC=y # CONFIG_FB_ARC is not set CONFIG_FB_ASILIANT=y # CONFIG_FB_IMSTT is not set @@ -2756,6 +3338,7 @@ CONFIG_FB_ATY_CT=y CONFIG_FB_ATY_GX=y CONFIG_FB_ATY_BACKLIGHT=y CONFIG_FB_S3=m +CONFIG_FB_S3_DDC=y CONFIG_FB_SAVAGE=m CONFIG_FB_SAVAGE_I2C=y CONFIG_FB_SAVAGE_ACCEL=y @@ -2763,6 +3346,8 @@ CONFIG_FB_SIS=m CONFIG_FB_SIS_300=y CONFIG_FB_SIS_315=y CONFIG_FB_VIA=m +# CONFIG_FB_VIA_DIRECT_PROCFS is not set +# CONFIG_FB_VIA_X_COMPATIBILITY is not set CONFIG_FB_NEOMAGIC=m CONFIG_FB_KYRO=m CONFIG_FB_3DFX=m @@ -2781,21 +3366,24 @@ CONFIG_FB_GEODE_GX1=m CONFIG_FB_TMIO=m CONFIG_FB_TMIO_ACCELL=y CONFIG_FB_SM501=m +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set CONFIG_FB_METRONOME=m # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_ILI9320 is not set CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=m CONFIG_BACKLIGHT_PROGEAR=m CONFIG_BACKLIGHT_CARILLO_RANCH=m -CONFIG_BACKLIGHT_MBP_NVIDIA=m +CONFIG_BACKLIGHT_APPLE=m CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_WM831X=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_PCF50633=m
# # Display device support @@ -2814,7 +3402,7 @@ CONFIG_VGA_CONSOLE=y # CONFIG_MDA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y @@ -2829,6 +3417,9 @@ CONFIG_SOUND_OSS_CORE_PRECLAIM=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_OSSEMUL=y @@ -2836,137 +3427,191 @@ CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y -# CONFIG_SND_HRTIMER is not set -# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y -# CONFIG_SND_RAWMIDI_SEQ is not set -# CONFIG_SND_OPL3_LIB_SEQ is not set -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_RAWMIDI_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_OPL4_LIB_SEQ=m +CONFIG_SND_SBAWE_SEQ=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL4_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y # CONFIG_SND_PCSP is not set CONFIG_SND_DUMMY=m -# CONFIG_SND_VIRMIDI is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_MTS64 is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set -# CONFIG_SND_PORTMAN2X4 is not set +CONFIG_SND_ALOOP=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_WSS_LIB=m +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SB8_DSP=m +CONFIG_SND_SB16_DSP=m CONFIG_SND_ISA=y -# CONFIG_SND_ADLIB is not set -# CONFIG_SND_AD1816A is not set -# CONFIG_SND_AD1848 is not set -# CONFIG_SND_ALS100 is not set -# CONFIG_SND_AZT2320 is not set -# CONFIG_SND_CMI8330 is not set -# CONFIG_SND_CS4231 is not set -# CONFIG_SND_CS4236 is not set -# CONFIG_SND_DT019X is not set -# CONFIG_SND_ES968 is not set -# CONFIG_SND_ES1688 is not set -# CONFIG_SND_ES18XX is not set -# CONFIG_SND_SC6000 is not set -# CONFIG_SND_GUSCLASSIC is not set -# CONFIG_SND_GUSEXTREME is not set -# CONFIG_SND_GUSMAX is not set -# CONFIG_SND_INTERWAVE is not set -# CONFIG_SND_INTERWAVE_STB is not set -# CONFIG_SND_OPL3SA2 is not set -# CONFIG_SND_OPTI92X_AD1848 is not set -# CONFIG_SND_OPTI92X_CS4231 is not set -# CONFIG_SND_OPTI93X is not set -# CONFIG_SND_MIRO is not set -# CONFIG_SND_SB8 is not set -# CONFIG_SND_SB16 is not set -# CONFIG_SND_SBAWE is not set -# CONFIG_SND_SGALAXY is not set -# CONFIG_SND_SSCAPE is not set -# CONFIG_SND_WAVEFRONT is not set -# CONFIG_SND_MSND_PINNACLE is not set -# CONFIG_SND_MSND_CLASSIC is not set +CONFIG_SND_ADLIB=m +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_ALS100=m +CONFIG_SND_AZT1605=m +CONFIG_SND_AZT2316=m +CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4236=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_SC6000=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_JAZZ16=m +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_MIRO=m +CONFIG_SND_SB8=m +CONFIG_SND_SB16=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SSCAPE=m +CONFIG_SND_WAVEFRONT=m +CONFIG_SND_MSND_PINNACLE=m +CONFIG_SND_MSND_CLASSIC=m +CONFIG_SND_TEA575X=m CONFIG_SND_PCI=y -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALS4000 is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AW2 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_OXYGEN is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_CS5530 is not set -# CONFIG_SND_CS5535AUDIO is not set -# CONFIG_SND_CTXFI is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_INDIGOIOX is not set -# CONFIG_SND_INDIGODJX is not set -# CONFIG_SND_EMU10K1 is not set -# CONFIG_SND_EMU10K1X is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDA_INTEL is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_HIFIER is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_LX6464ES is not set -# CONFIG_SND_MAESTRO3 is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SIS7019 is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VIRTUOSO is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ASIHPI=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INDIGODJX=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_JACK=y +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_HDMI=y +CONFIG_SND_HDA_CODEC_CIRRUS=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_LOLA=m +CONFIG_SND_LX6464ES=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SIS7019=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m CONFIG_SND_USB=y -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_USX2Y is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_US122L is not set +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_US122L=m +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_FIREWIRE=y +CONFIG_SND_FIREWIRE_LIB=m +CONFIG_SND_FIREWIRE_SPEAKERS=m +CONFIG_SND_ISIGHT=m CONFIG_SND_PCMCIA=y -# CONFIG_SND_VXPOCKET is not set -# CONFIG_SND_PDAUDIOCF is not set +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HIDRAW is not set @@ -2982,45 +3627,82 @@ CONFIG_USB_HIDDEV=y # Special HID drivers # CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +# CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m +CONFIG_HID_PRODIKEYS=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m -CONFIG_DRAGONRISE_FF=y +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +CONFIG_HID_ELECOM=m CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +# CONFIG_HOLTEK_FF is not set +CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m CONFIG_HID_LOGITECH=m -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +CONFIG_HID_MAGICMOUSE=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m -CONFIG_PANTHERLORD_FF=y +# CONFIG_PANTHERLORD_FF is not set CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_COMMON=m +CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_KOVAPLUS=m +CONFIG_HID_ROCCAT_PYRA=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m -CONFIG_GREENASIA_FF=y +# CONFIG_GREENASIA_FF is not set CONFIG_HID_SMARTJOYPLUS=m -CONFIG_SMARTJOYPLUS_FF=y +# CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TOPSEED=m CONFIG_HID_THRUSTMASTER=m -CONFIG_THRUSTMASTER_FF=y +# CONFIG_THRUSTMASTER_FF is not set CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_WIIMOTE=m CONFIG_HID_ZEROPLUS=m -CONFIG_ZEROPLUS_FF=y +# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_ZYDACRON=m CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=m +CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
@@ -3032,6 +3714,8 @@ CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_DYNAMIC_MINORS=y CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_MON is not set CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m @@ -3041,33 +3725,29 @@ CONFIG_USB_WUSB_CBAF=m # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=m +CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=m -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_OHCI_HCD_SSB=y +CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=m +CONFIG_USB_UHCI_HCD=y CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_HCD_ISO is not set # CONFIG_USB_SL811_CS is not set CONFIG_USB_R8A66597_HCD=m CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m
# -# Enable Host or Gadget support to see Inventra options -# - -# # USB Device Class drivers # CONFIG_USB_ACM=m @@ -3084,7 +3764,9 @@ CONFIG_USB_TMC=m # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m CONFIG_USB_STORAGE_USBAT=m @@ -3095,6 +3777,8 @@ CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m # CONFIG_USB_LIBUSUAL is not set
# @@ -3120,12 +3804,12 @@ CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m @@ -3135,11 +3819,13 @@ CONFIG_USB_SERIAL_IUU=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_MOS7720=m +# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_HP4X=m @@ -3151,9 +3837,13 @@ CONFIG_USB_SERIAL_SYMBOL=m CONFIG_USB_SERIAL_TI=m # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_SERIAL_DEBUG is not set
# @@ -3166,7 +3856,6 @@ CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m -CONFIG_USB_BERRY_CHARGE=m CONFIG_USB_LED=m CONFIG_USB_CYPRESS_CY7C63=m CONFIG_USB_CYTHERM=m @@ -3180,7 +3869,7 @@ CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set CONFIG_USB_ISIGHTFW=m -CONFIG_USB_VST=m +CONFIG_USB_YUREX=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m @@ -3192,21 +3881,22 @@ CONFIG_USB_XUSBATM=m # OTG and related infrastructure # CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=m CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m -CONFIG_UWB_WLP=m CONFIG_UWB_I1480U=m -CONFIG_UWB_I1480U_WLP=m CONFIG_MMC=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set
# # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m CONFIG_MMC_TEST=m @@ -3216,15 +3906,15 @@ CONFIG_MMC_TEST=m # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_RICOH_MMC=m +# CONFIG_MMC_RICOH_MMC is not set CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_WBSD=m -# CONFIG_MMC_AT91 is not set -# CONFIG_MMC_ATMELMCI is not set CONFIG_MMC_TIFM_SD=m CONFIG_MMC_SDRICOH_CS=m CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set
@@ -3239,30 +3929,39 @@ CONFIG_MSPRO_BLOCK=m # CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m +CONFIG_LEDS_CLASS=y
# # LED drivers # +CONFIG_LEDS_LM3530=m CONFIG_LEDS_NET48XX=m +CONFIG_LEDS_NET5501=m CONFIG_LEDS_WRAP=m -CONFIG_LEDS_ALIX2=m CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_GPIO=m CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m +CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m +CONFIG_LEDS_INTEL_SS4200=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_DELL_NETBOOKS=m +CONFIG_LEDS_TRIGGERS=y
# # LED Triggers # -CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
# @@ -3272,8 +3971,11 @@ CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set -CONFIG_RTC_LIB=m -CONFIG_RTC_CLASS=m +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set
# # RTC interfaces @@ -3282,7 +3984,7 @@ CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_DRV_TEST=m +# CONFIG_RTC_DRV_TEST is not set
# # I2C RTC drivers @@ -3290,18 +3992,23 @@ CONFIG_RTC_DRV_TEST=m CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m -# CONFIG_RTC_DRV_M41T80_WDT is not set +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_S35390A=m CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m
# # SPI RTC drivers @@ -3310,7 +4017,7 @@ CONFIG_RTC_DRV_RX8025=m # # Platform RTC drivers # -CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_CMOS=y CONFIG_RTC_DRV_DS1286=m CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m @@ -3319,23 +4026,25 @@ CONFIG_RTC_DRV_STK17TA8=m CONFIG_RTC_DRV_M48T86=m CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_AB3100=m
# # on-CPU RTC drivers # CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set
# # DMA Devices # -CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y +CONFIG_INTEL_MID_DMAC=m CONFIG_INTEL_IOATDMA=m +CONFIG_TIMB_DMA=m +CONFIG_PCH_DMA=m CONFIG_DMA_ENGINE=y
# @@ -3350,98 +4059,153 @@ CONFIG_UIO=m CONFIG_UIO_CIF=m CONFIG_UIO_PDRV=m CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_SMX=m CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_NETX=m +CONFIG_VIRTIO=y +CONFIG_VIRTIO_RING=y
# -# TI VLYNQ +# Virtio drivers # +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_MMIO=m CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set CONFIG_ET131X=m -# CONFIG_ET131X_DEBUG is not set CONFIG_SLICOSS=m -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_USB_IP_COMMON is not set +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set # CONFIG_ECHO is not set -# CONFIG_POCH is not set -# CONFIG_OTUS is not set -# CONFIG_RT2860 is not set -# CONFIG_RT2870 is not set -# CONFIG_RT3090 is not set # CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set -# CONFIG_ALTERA_PCIE_CHDMA is not set -# CONFIG_RTL8187SE is not set -# CONFIG_RTL8192SU is not set +# CONFIG_R8187SE is not set +# CONFIG_RTL8192U is not set # CONFIG_RTL8192E is not set +# CONFIG_R8712U is not set +# CONFIG_RTS_PSTOR is not set +# CONFIG_RTS5139 is not set # CONFIG_TRANZPORT is not set - -# -# Android -# - -# -# Qualcomm MSM Camera And Video -# - -# -# Camera Sensor Selection -# -# CONFIG_INPUT_GPIO is not set -# CONFIG_DST is not set # CONFIG_POHMELFS is not set -# CONFIG_B3DFG is not set CONFIG_IDE_PHISON=m -# CONFIG_PLAN9AUTH is not set # CONFIG_LINE6_USB is not set -# CONFIG_DRM_RADEON_KMS is not set +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_NOUVEAU_BACKLIGHT=y + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set # CONFIG_USB_SERIAL_QUATECH2 is not set # CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_FB_UDL is not set -CONFIG_HYPERV=m CONFIG_HYPERV_STORAGE=m -CONFIG_HYPERV_BLOCK=m CONFIG_HYPERV_NET=m +CONFIG_HYPERV_MOUSE=m # CONFIG_VME_BUS is not set - -# -# RAR Register Driver -# -# CONFIG_RAR_REGISTER is not set +# CONFIG_DX_SEP is not set # CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_WLAGS49_H2 is not set +# CONFIG_WLAGS49_H25 is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_CRYSTALHD is not set +# CONFIG_CXT1E1 is not set +# CONFIG_FB_XGI is not set +# CONFIG_ACPI_QUICKSTART is not set +# CONFIG_SBE_2T3E3 is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_DRM_PSB is not set +CONFIG_INTEL_MEI=m +# CONFIG_STAGING_MEDIA is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m +CONFIG_ACERHDF=m CONFIG_ASUS_LAPTOP=m CONFIG_DELL_WMI=m +CONFIG_DELL_WMI_AIO=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_LAPTOP_DEBUG=y CONFIG_TC1100_WMI=m +CONFIG_HP_ACCEL=m CONFIG_HP_WMI=m CONFIG_MSI_LAPTOP=m CONFIG_PANASONIC_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m # CONFIG_SONYPI_COMPAT is not set +CONFIG_IDEAPAD_LAPTOP=m CONFIG_THINKPAD_ACPI=m +CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set # CONFIG_THINKPAD_ACPI_DEBUG is not set # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_SENSORS_HDAPS=m CONFIG_INTEL_MENLOW=m CONFIG_ACPI_WMI=m +CONFIG_MSI_WMI=m CONFIG_ACPI_ASUS=m CONFIG_TOPSTAR_LAPTOP=m CONFIG_ACPI_TOSHIBA=m +CONFIG_TOSHIBA_BT_RFKILL=m +CONFIG_ACPI_CMPC=m +CONFIG_INTEL_IPS=m +CONFIG_IBM_RTL=m +CONFIG_XO15_EBOOK=m +CONFIG_SAMSUNG_LAPTOP=m +CONFIG_MXM_WMI=m +CONFIG_INTEL_OAKTRAIL=m +CONFIG_SAMSUNG_Q10=m + +# +# Hardware Spinlock drivers +# +CONFIG_CLKSRC_I8253=y +CONFIG_CLKEVT_I8253=y +CONFIG_I8253_LOCK=y +CONFIG_CLKBLD_I8253=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_DMAR_TABLE=y +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_DEFAULT_ON=y +CONFIG_INTEL_IOMMU_FLOPPY_WA=y +CONFIG_VIRT_DRIVERS=y +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m +CONFIG_PM_DEVFREQ=y + +# +# DEVFREQ Governors +# +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +CONFIG_DEVFREQ_GOV_PERFORMANCE=y +CONFIG_DEVFREQ_GOV_POWERSAVE=y +CONFIG_DEVFREQ_GOV_USERSPACE=y + +# +# DEVFREQ Drivers +#
# # Firmware Drivers @@ -3451,32 +4215,25 @@ CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set CONFIG_DMIID=y +CONFIG_DMI_SYSFS=m CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m +CONFIG_SIGMA=m +# CONFIG_GOOGLE_FIRMWARE is not set
# # File systems # -CONFIG_EXT2_FS=m -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=m -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=m +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -CONFIG_JBD2=m -CONFIG_FS_MBCACHE=m -CONFIG_REISER4_FS=m -# CONFIG_REISER4_DEBUG is not set +CONFIG_JBD2=y +CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set CONFIG_REISERFS_PROC_INFO=y @@ -3488,29 +4245,29 @@ CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y # CONFIG_JFS_DEBUG is not set CONFIG_JFS_STATISTICS=y -CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_RT is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=m CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y -CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=m CONFIG_QFMT_V1=m CONFIG_QFMT_V2=m CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_CUSE=m @@ -3556,6 +4313,7 @@ CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set @@ -3584,6 +4342,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_JFFS2_CMODE_FAVOURLZO is not set # CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set @@ -3592,8 +4351,11 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set # CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m @@ -3602,6 +4364,9 @@ CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y # CONFIG_NFS_V4_1 is not set # CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y @@ -3609,15 +4374,12 @@ CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS2=y @@ -3627,7 +4389,8 @@ CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_ACL=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set @@ -3642,7 +4405,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_ATARI_PARTITION is not set # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set +CONFIG_BSD_DISKLABEL=y # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set @@ -3694,13 +4457,13 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y -# CONFIG_DLM is not set
# # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y # CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 @@ -3709,12 +4472,13 @@ CONFIG_STRIP_ASM_SYMS=y # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y @@ -3730,9 +4494,11 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y @@ -3742,6 +4508,7 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set @@ -3749,10 +4516,12 @@ CONFIG_ARCH_WANT_FRAME_POINTERS=y # CONFIG_FRAME_POINTER is not set # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set # CONFIG_SYSCTL_SYSCALL_CHECK is not set @@ -3765,27 +4534,30 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set # CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y +# CONFIG_KMEMCHECK is not set +# CONFIG_TEST_KSTRTOX is not set # CONFIG_STRICT_DEVMEM is not set CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set # CONFIG_DEBUG_STACKOVERFLOW is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set # CONFIG_X86_PTDUMP is not set CONFIG_DEBUG_RODATA=y CONFIG_DEBUG_RODATA_TEST=y +# CONFIG_DEBUG_SET_MODULE_RONX is not set # CONFIG_DEBUG_NX_TEST is not set -# CONFIG_4KSTACKS is not set CONFIG_DOUBLEFAULT=y # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y @@ -3800,17 +4572,20 @@ CONFIG_IO_DELAY_0X80=y CONFIG_DEFAULT_IO_DELAY_TYPE=0 # CONFIG_CPA_DEBUG is not set # CONFIG_OPTIMIZE_INLINING is not set +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
# # Security options # CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set # CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set # CONFIG_INTEL_TXT is not set -# CONFIG_IMA is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m @@ -3824,7 +4599,6 @@ CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=m @@ -3835,11 +4609,15 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=m CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m # CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m @@ -3876,7 +4654,7 @@ CONFIG_CRYPTO_VMAC=m CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_GHASH=m -# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m @@ -3894,9 +4672,11 @@ CONFIG_CRYPTO_WP512=m # CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m @@ -3923,6 +4703,9 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m @@ -3934,39 +4717,49 @@ CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_APIC_ARCHITECTURE=y +CONFIG_KVM_MMIO=y +CONFIG_KVM_ASYNC_PF=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m +CONFIG_VHOST_NET=m CONFIG_LGUEST=m -CONFIG_VIRTIO=y -CONFIG_VIRTIO_RING=y -CONFIG_VIRTIO_PCI=m -CONFIG_VIRTIO_BALLOON=m # CONFIG_BINARY_PRINTF is not set
# # Library routines # +CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +CONFIG_CRC16=y CONFIG_CRC_T10DIF=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -3975,4 +4768,7 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y +CONFIG_CPU_RMAP=y CONFIG_NLATTR=y +CONFIG_AVERAGE=y +CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.i586-ipfire-pae b/config/kernel/kernel.config.i586-ipfire-pae index 4b23df3..6f39769 100644 --- a/config/kernel/kernel.config.i586-ipfire-pae +++ b/config/kernel/kernel.config.i586-ipfire-pae @@ -1,15 +1,14 @@ # -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.41-ipfire-pae -# Sat May 31 15:00:00 2011 +# Automatically generated file; DO NOT EDIT. +# Linux/i386 3.2.35 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y # CONFIG_X86_64 is not set CONFIG_X86=y +CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y @@ -19,10 +18,13 @@ CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_ZONE_DMA=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_GPIO=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y @@ -35,7 +37,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set @@ -44,34 +45,34 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_HAVE_INTEL_TXT=y -CONFIG_GENERIC_HARDIRQS=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y -CONFIG_X86_TRAMPOLINE=y -CONFIG_X86_32_LAZY_GS=y +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y
# # General setup # CONFIG_EXPERIMENTAL=y -CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y @@ -79,52 +80,73 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_TASKSTATS is not set +# CONFIG_FHANDLE is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +# CONFIG_TASK_XACCT is not set CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y
# # RCU Subsystem # CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set +# CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=32 # CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_RCU_FAST_NO_HZ is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=17 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # CONFIG_CGROUPS is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EMBEDDED is not set +# CONFIG_EXPERT is not set CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y +CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -133,35 +155,46 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y +# CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y
# # Kernel Performance Events And Counters # -# CONFIG_PERF_EVENTS is not set +CONFIG_PERF_EVENTS=y # CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y -# CONFIG_SLOB is not set # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
# # GCOV-based kernel profiling # -CONFIG_SLOW_WORK=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -175,22 +208,51 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y -# CONFIG_BLK_DEV_BSG is not set +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set
# # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_PADATA=y +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_FREEZER=y
# @@ -200,23 +262,25 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_SMP=y -CONFIG_SPARSE_IRQ=y -CONFIG_NUMA_IRQ_DESC=y CONFIG_X86_MPPARSE=y CONFIG_X86_BIGSMP=y CONFIG_X86_EXTENDED_PLATFORM=y -# CONFIG_X86_ELAN is not set -# CONFIG_X86_MRST is not set +# CONFIG_X86_WANT_INTEL_MID is not set # CONFIG_X86_RDC321X is not set # CONFIG_X86_32_NON_STANDARD is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +# CONFIG_X86_32_IRIS is not set CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_PARAVIRT_GUEST=y +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set CONFIG_XEN=y -CONFIG_XEN_MAX_DOMAIN_MEMORY=8 +CONFIG_XEN_DOM0=y +CONFIG_XEN_PRIVILEGED_GUEST=y +CONFIG_XEN_PVHVM=y +CONFIG_XEN_MAX_DOMAIN_MEMORY=128 CONFIG_XEN_SAVE_RESTORE=y -CONFIG_VMI=y CONFIG_KVM_CLOCK=y CONFIG_KVM_GUEST=y CONFIG_LGUEST_GUEST=y @@ -224,6 +288,7 @@ CONFIG_PARAVIRT=y CONFIG_PARAVIRT_SPINLOCKS=y CONFIG_PARAVIRT_CLOCK=y # CONFIG_PARAVIRT_DEBUG is not set +CONFIG_NO_BOOTMEM=y # CONFIG_MEMTEST is not set # CONFIG_M386 is not set # CONFIG_M486 is not set @@ -242,21 +307,20 @@ CONFIG_M586TSC=y # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP3D is not set +# CONFIG_MELAN is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set # CONFIG_MVIAC7 is not set -# CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set -# CONFIG_GENERIC_CPU is not set CONFIG_X86_GENERIC=y -CONFIG_X86_CPU=y -CONFIG_X86_L1_CACHE_BYTES=64 -CONFIG_X86_INTERNODE_CACHE_BYTES=64 +CONFIG_X86_INTERNODE_CACHE_SHIFT=7 CONFIG_X86_CMPXCHG=y -CONFIG_X86_L1_CACHE_SHIFT=5 +CONFIG_CMPXCHG_LOCAL=y +CONFIG_CMPXCHG_DOUBLE=y +CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y CONFIG_X86_PPRO_FENCE=y CONFIG_X86_F00F_BUG=y @@ -278,8 +342,8 @@ CONFIG_CPU_SUP_UMC_32=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y -# CONFIG_IOMMU_HELPER is not set -CONFIG_IOMMU_API=y +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y CONFIG_NR_CPUS=256 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y @@ -314,19 +378,20 @@ CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y CONFIG_X86_PAE=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_NUMA=y +# CONFIG_NUMA_EMU is not set CONFIG_NODES_SHIFT=3 CONFIG_HAVE_ARCH_BOOTMEM=y +CONFIG_HAVE_ARCH_ALLOC_REMAP=y CONFIG_ARCH_HAVE_MEMORY_PRESENT=y CONFIG_NEED_NODE_MEMMAP_SIZE=y -CONFIG_HAVE_ARCH_ALLOC_REMAP=y CONFIG_ARCH_DISCONTIGMEM_ENABLE=y CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ILLEGAL_POINTER_VALUE=0 CONFIG_SELECT_MEMORY_MODEL=y -# CONFIG_FLATMEM_MANUAL is not set CONFIG_DISCONTIGMEM_MANUAL=y # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_DISCONTIGMEM=y @@ -334,30 +399,34 @@ CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_NEED_MULTIPLE_NODES=y CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_STATIC=y +CONFIG_HAVE_MEMBLOCK=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set CONFIG_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y # CONFIG_MEMORY_FAILURE is not set +# CONFIG_TRANSPARENT_HUGEPAGE is not set +# CONFIG_CLEANCACHE is not set # CONFIG_HIGHPTE is not set # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set -CONFIG_X86_RESERVE_LOW_64K=y +CONFIG_X86_RESERVE_LOW=64 CONFIG_MATH_EMULATION=y CONFIG_MTRR=y # CONFIG_MTRR_SANITIZER is not set -# CONFIG_X86_PAT is not set +CONFIG_X86_PAT=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_RANDOM=y # CONFIG_EFI is not set CONFIG_SECCOMP=y -# CONFIG_CC_STACKPROTECTOR is not set +CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set CONFIG_HZ_300=y @@ -373,25 +442,25 @@ CONFIG_HOTPLUG_CPU=y CONFIG_COMPAT_VDSO=y # CONFIG_CMDLINE_BOOL is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y -# CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID is not set +CONFIG_USE_PERCPU_NUMA_NODE_ID=y
# # Power management and ACPI options # -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATE_CALLBACKS=y # CONFIG_HIBERNATION is not set +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS is not set CONFIG_ACPI_PROCFS_POWER=y -CONFIG_ACPI_POWER_METER=m -CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_EC_DEBUGFS=m CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m @@ -400,6 +469,7 @@ CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=m CONFIG_ACPI_DOCK=y CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m CONFIG_ACPI_THERMAL=m @@ -412,6 +482,8 @@ CONFIG_ACPI_PCI_SLOT=m CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m CONFIG_ACPI_SBS=m +# CONFIG_ACPI_HED is not set +# CONFIG_ACPI_APEI is not set # CONFIG_SFI is not set CONFIG_X86_APM_BOOT=y CONFIG_APM=m @@ -426,11 +498,9 @@ CONFIG_APM_CPU_IDLE=y # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y -# CONFIG_CPU_FREQ_DEBUG is not set CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set @@ -441,8 +511,9 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
# -# CPUFreq processor drivers +# x86 CPU frequency scaling drivers # +CONFIG_X86_PCC_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_POWERNOW_K6=m CONFIG_X86_POWERNOW_K7=m @@ -467,6 +538,7 @@ CONFIG_X86_SPEEDSTEP_LIB=m CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_INTEL_IDLE=y
# # Bus options (PCI etc.) @@ -475,28 +547,32 @@ CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set -# CONFIG_PCI_GOOLPC is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_XEN=y CONFIG_PCI_DOMAINS=y -CONFIG_DMAR=y -CONFIG_DMAR_DEFAULT_ON=y -CONFIG_DMAR_FLOPPY_WA=y +# CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y CONFIG_PCIEAER=y # CONFIG_PCIE_ECRC is not set # CONFIG_PCIEAER_INJECT is not set CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set +CONFIG_PCIE_PME=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y -CONFIG_PCI_LEGACY=y # CONFIG_PCI_DEBUG is not set CONFIG_PCI_STUB=m +CONFIG_XEN_PCIDEV_FRONTEND=y CONFIG_HT_IRQ=y +CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +CONFIG_PCI_IOAPIC=y +CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y CONFIG_EISA=y @@ -509,13 +585,11 @@ CONFIG_MCA_LEGACY=y # CONFIG_MCA_PROC_FS is not set CONFIG_SCx200=m CONFIG_SCx200HR_TIMER=m -# CONFIG_OLPC is not set -CONFIG_K8_NB=y +CONFIG_ALIX=y +CONFIG_AMD_NB=y CONFIG_PCCARD=m -# CONFIG_PCMCIA_DEBUG is not set CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y CONFIG_CARDBUS=y
# @@ -532,8 +606,9 @@ CONFIG_I82092=m CONFIG_I82365=m CONFIG_TCIC=m CONFIG_PCMCIA_PROBE=y -CONFIG_PCCARD_NONSTATIC=m +CONFIG_PCCARD_NONSTATIC=y # CONFIG_HOTPLUG_PCI is not set +# CONFIG_RAPIDIO is not set
# # Executable file formats / Emulations @@ -544,13 +619,13 @@ CONFIG_HAVE_AOUT=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set CONFIG_HAVE_ATOMIC_IOMAP=y +CONFIG_HAVE_TEXT_POKE_SMP=y CONFIG_NET=y
# # Networking options # CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m @@ -563,17 +638,18 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE_STATS is not set CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_ARPD=y @@ -602,15 +678,10 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -# CONFIG_DEFAULT_BIC is not set -# CONFIG_DEFAULT_CUBIC is not set -# CONFIG_DEFAULT_HTCP is not set -# CONFIG_DEFAULT_VEGAS is not set -# CONFIG_DEFAULT_WESTWOOD is not set CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" # CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m +CONFIG_IPV6=y # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set @@ -625,12 +696,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_NETWORK_SECMARK is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -643,9 +716,10 @@ CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m -CONFIG_NF_CT_ACCT=y CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -654,7 +728,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m @@ -662,10 +738,24 @@ CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_TPROXY=m CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m @@ -673,28 +763,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m @@ -703,7 +803,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y CONFIG_NETFILTER_XT_MATCH_SCTP=m CONFIG_NETFILTER_XT_MATCH_SOCKET=m CONFIG_NETFILTER_XT_MATCH_STATE=m @@ -714,7 +813,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_MATCH_OSF=m +# CONFIG_IP_SET is not set CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -725,8 +824,10 @@ CONFIG_IP_VS_TAB_BITS=12 # # CONFIG_IP_VS_PROTO_TCP is not set # CONFIG_IP_VS_PROTO_UDP is not set +# CONFIG_IP_VS_PROTO_AH_ESP is not set # CONFIG_IP_VS_PROTO_ESP is not set # CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set
# # IPVS scheduler @@ -745,6 +846,7 @@ CONFIG_IP_VS_TAB_BITS=12 # # IPVS application helper # +# CONFIG_IP_VS_NFCT is not set
# # IP: Netfilter Configuration @@ -754,7 +856,6 @@ CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_TTL=m @@ -792,6 +893,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # +CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m @@ -841,9 +943,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m CONFIG_STP=m CONFIG_GARP=m CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y @@ -866,6 +973,7 @@ CONFIG_LLC=m # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m CONFIG_NET_SCHED=y
# @@ -878,6 +986,7 @@ CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_MULTIQ=m CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m @@ -885,6 +994,9 @@ CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_INGRESS=m
# @@ -894,7 +1006,6 @@ CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y @@ -917,11 +1028,18 @@ CONFIG_NET_ACT_MIRRED=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m -# CONFIG_NET_ACT_SIMP is not set +CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y
# # Network testing @@ -977,8 +1095,8 @@ CONFIG_VLSI_FIR=m CONFIG_VIA_FIR=m CONFIG_MCS_FIR=m CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -995,6 +1113,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m @@ -1006,19 +1125,25 @@ CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m CONFIG_AF_RXRPC=m # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=m CONFIG_FIB_RULES=y CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_DEFAULT_PS is not set -CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m @@ -1028,9 +1153,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y -# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_DEBUG_MENU is not set @@ -1038,7 +1163,13 @@ CONFIG_MAC80211_LEDS=y CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m # CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set
# # Device Drivers @@ -1057,12 +1188,11 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set CONFIG_SYS_HYPERVISOR=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m CONFIG_CONNECTOR=m CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set CONFIG_MTD_TESTS=m -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set CONFIG_MTD_AR7_PARTS=m
@@ -1078,7 +1208,9 @@ CONFIG_MTD_BLOCK=m # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set +CONFIG_SM_FTL=m # CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set
# # RAM/ROM/Flash chip drivers @@ -1124,6 +1256,9 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_NAND_ECC_SMC is not set # CONFIG_MTD_NAND is not set # CONFIG_MTD_ONENAND is not set
@@ -1132,18 +1267,10 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_LPDDR=m CONFIG_MTD_QINFO_PROBE=m - -# -# UBI - Unsorted block images -# CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_RESERVE=1 # CONFIG_MTD_UBI_GLUEBI is not set - -# -# UBI debugging options -# # CONFIG_MTD_UBI_DEBUG is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m @@ -1176,7 +1303,9 @@ CONFIG_BLK_DEV_DAC960=m # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_SX8=m @@ -1188,18 +1317,38 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_CDROM_PKTCDVD is not set CONFIG_ATA_OVER_ETH=m CONFIG_XEN_BLKDEV_FRONTEND=y +CONFIG_XEN_BLKDEV_BACKEND=y CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_RBD=m +CONFIG_SENSORS_LIS3LV02D=m CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set # CONFIG_IBM_ASM is not set # CONFIG_PHANTOM is not set +# CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m CONFIG_ENCLOSURE_SERVICES=m +CONFIG_CS5535_MFGPT=m +CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 +CONFIG_CS5535_CLOCK_EVENT_SRC=m CONFIG_HP_ILO=m +CONFIG_APDS9802ALS=m CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_VMWARE_BALLOON=m +CONFIG_BMP085=m +CONFIG_PCH_PHUB=m +CONFIG_USB_SWITCH_FSA9480=m CONFIG_C2PORT=m CONFIG_C2PORT_DURAMAR_2150=m
@@ -1213,13 +1362,28 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWMC3200TOP_DEBUGFS is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +CONFIG_SENSORS_LIS3_I2C=m + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set
# # SCSI device support # -CONFIG_RAID_ATTRS=y +CONFIG_SCSI_MOD=m +CONFIG_RAID_ATTRS=m CONFIG_SCSI=m CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set @@ -1253,15 +1417,19 @@ CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS_DEBUG=y CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_CXGB4_ISCSI=m CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BNX2X_FCOE=m CONFIG_BE2ISCSI=m CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_HPSA=m CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m CONFIG_SCSI_7000FASST=m CONFIG_SCSI_ACARD=m CONFIG_SCSI_AHA152X=m @@ -1287,11 +1455,12 @@ CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m CONFIG_SCSI_MVSAS_DEBUG=y +# CONFIG_SCSI_MVSAS_TASKLET is not set +CONFIG_SCSI_MVUMI=m CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ADVANSYS=m CONFIG_SCSI_IN2000=m CONFIG_SCSI_ARCMSR=m -# CONFIG_SCSI_ARCMSR_AER is not set CONFIG_MEGARAID_NEWGEN=y CONFIG_MEGARAID_MM=m CONFIG_MEGARAID_MAILBOX=m @@ -1303,6 +1472,7 @@ CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_HPTIOP=m CONFIG_SCSI_BUSLOGIC=m CONFIG_SCSI_FLASHPOINT=y +CONFIG_VMWARE_PVSCSI=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m @@ -1316,6 +1486,7 @@ CONFIG_SCSI_EATA_MAX_TAGS=16 CONFIG_SCSI_FUTURE_DOMAIN=m CONFIG_SCSI_FD_MCS=m CONFIG_SCSI_GDTH=m +CONFIG_SCSI_ISCI=m CONFIG_SCSI_GENERIC_NCR5380=m CONFIG_SCSI_GENERIC_NCR5380_MMIO=m CONFIG_SCSI_GENERIC_NCR53C400=y @@ -1363,6 +1534,7 @@ CONFIG_SCSI_ULTRASTOR=m CONFIG_SCSI_NSP32=m # CONFIG_SCSI_DEBUG is not set CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y @@ -1385,30 +1557,48 @@ CONFIG_ATA=m CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_INIC162X=m +CONFIG_SATA_ACARD_AHCI=m CONFIG_SATA_SIL24=m CONFIG_ATA_SFF=y -CONFIG_SATA_SVW=m + +# +# SFF controllers with custom DMA interface +# +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SX4=m +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# CONFIG_ATA_PIIX=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m CONFIG_SATA_PROMISE=m -CONFIG_SATA_SX4=m CONFIG_SATA_SIL=m CONFIG_SATA_SIS=m +CONFIG_SATA_SVW=m CONFIG_SATA_ULI=m CONFIG_SATA_VIA=m CONFIG_SATA_VITESSE=m -CONFIG_SATA_INIC162X=m -CONFIG_PATA_ACPI=m + +# +# PATA SFF controllers with BMDMA +# CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m +CONFIG_PATA_ARASAN_CF=m CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATP867X=m CONFIG_PATA_ATIIXP=m -CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m @@ -1416,42 +1606,53 @@ CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m CONFIG_PATA_CYPRESS=m CONFIG_PATA_EFAR=m -CONFIG_ATA_GENERIC=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_ISAPNP=m -CONFIG_PATA_IT821X=m CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m -CONFIG_PATA_LEGACY=m -CONFIG_PATA_TRIFLEX=m CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_OLDPIIX=m CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OPTI=m +CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_QDI=m CONFIG_PATA_RADISYS=m CONFIG_PATA_RDC=m -CONFIG_PATA_RZ1000=m CONFIG_PATA_SC1200=m +CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_PDC2027X=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m +CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_TRIFLEX=m CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m + +# +# PIO-only SFF controllers +# +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_ISAPNP=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_QDI=m +CONFIG_PATA_RZ1000=m CONFIG_PATA_WINBOND_VLB=m -CONFIG_PATA_SCH=m + +# +# Generic fallback / legacy drivers +# +CONFIG_PATA_ACPI=m +CONFIG_ATA_GENERIC=m +CONFIG_PATA_LEGACY=m CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m @@ -1460,15 +1661,19 @@ CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m # CONFIG_MULTICORE_RAID456 is not set -CONFIG_MD_RAID6_PQ=m -CONFIG_ASYNC_RAID6_TEST=m CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set CONFIG_DM_MIRROR=m +CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m @@ -1476,6 +1681,8 @@ CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +# CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m @@ -1487,27 +1694,18 @@ CONFIG_FUSION_CTL=m # # IEEE 1394 (FireWire) support # - -# -# You can enable one or both FireWire driver stacks. -# - -# -# See the help texts for more information. -# CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m -# CONFIG_IEEE1394 is not set +# CONFIG_FIREWIRE_NOSY is not set # CONFIG_I2O is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m +CONFIG_NET_CORE=y CONFIG_BONDING=m -CONFIG_MACVLAN=m +CONFIG_DUMMY=m CONFIG_EQUALIZER=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set @@ -1515,58 +1713,114 @@ CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m -CONFIG_NET_SB1000=m +CONFIG_VIRTIO_NET=m +CONFIG_SUNGEM_PHY=m # CONFIG_ARCNET is not set -CONFIG_PHYLIB=y +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +CONFIG_ATM_ENI_DEBUG=y +CONFIG_ATM_ENI_TUNE_BURST=y +CONFIG_ATM_ENI_BURST_TX_16W=y +CONFIG_ATM_ENI_BURST_TX_8W=y +CONFIG_ATM_ENI_BURST_TX_4W=y +CONFIG_ATM_ENI_BURST_TX_2W=y +CONFIG_ATM_ENI_BURST_RX_16W=y +CONFIG_ATM_ENI_BURST_RX_8W=y +CONFIG_ATM_ENI_BURST_RX_4W=y +CONFIG_ATM_ENI_BURST_RX_2W=y +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_NICSTAR=m +CONFIG_ATM_NICSTAR_USE_SUNI=y +CONFIG_ATM_NICSTAR_USE_IDT77105=y +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_USE_TASKLET=y +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_SOLOS=m
# -# MII PHY device drivers +# CAIF transport drivers # -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -# CONFIG_FIXED_PHY is not set -CONFIG_MDIO_BITBANG=m -CONFIG_NET_ETHERNET=y -CONFIG_MII=m -CONFIG_HAPPYMEAL=m -CONFIG_SUNGEM=m -CONFIG_CASSINI=m +CONFIG_ETHERNET=y +CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y CONFIG_EL1=m -CONFIG_EL2=m -CONFIG_ELPLUS=m -CONFIG_EL16=m CONFIG_EL3=m CONFIG_3C515=m -CONFIG_ELMC=m -CONFIG_ELMC_II=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m CONFIG_VORTEX=m CONFIG_TYPHOON=m +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_NET_VENDOR_AMD=y +CONFIG_AMD8111_ETH=m CONFIG_LANCE=m -CONFIG_NET_VENDOR_SMC=y -CONFIG_WD80x3=m -CONFIG_ULTRAMCA=m -CONFIG_ULTRA=m -CONFIG_ULTRA32=m -CONFIG_SMC9194=m -CONFIG_ETHOC=m -CONFIG_NET_VENDOR_RACAL=y -CONFIG_NI52=m +CONFIG_PCNET32=m +CONFIG_DEPCA=m +CONFIG_PCMCIA_NMCLAN=m CONFIG_NI65=m +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_BNX2=m +CONFIG_CNIC=m +CONFIG_TIGON3=m +CONFIG_BNX2X=m +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_BNA=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4VF=m +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_CS89x0=m +CONFIG_NET_VENDOR_CISCO=y +CONFIG_ENIC=m CONFIG_DNET=m +CONFIG_NET_VENDOR_DEC=y +CONFIG_EWRK3=m CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 @@ -1579,170 +1833,197 @@ CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_DL2K=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_BE2NET=m +CONFIG_NET_VENDOR_EXAR=y +CONFIG_S2IO=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_NET_VENDOR_FUJITSU=y CONFIG_AT1700=m -CONFIG_DEPCA=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_ETH16I=m +CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m -CONFIG_NET_ISA=y -CONFIG_E2100=m -CONFIG_EWRK3=m +CONFIG_NET_VENDOR_IBM=y +# CONFIG_IBM_EMAC_ZMII is not set +# CONFIG_IBM_EMAC_RGMII is not set +# CONFIG_IBM_EMAC_TAH is not set +# CONFIG_IBM_EMAC_EMAC4 is not set +# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IGB=m +CONFIG_IGB_DCA=y +CONFIG_IGBVF=m +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGBEVF=m +CONFIG_NET_VENDOR_I825XX=y +CONFIG_ELPLUS=m +CONFIG_EL16=m +CONFIG_ELMC=m +CONFIG_ELMC_II=m +CONFIG_APRICOT=m CONFIG_EEXPRESS=m CONFIG_EEXPRESS_PRO=m -CONFIG_HPLAN_PLUS=m -CONFIG_HPLAN=m CONFIG_LP486E=m -CONFIG_ETH16I=m -CONFIG_NE2000=m +CONFIG_NI52=m CONFIG_ZNET=m -CONFIG_SEEQ8005=m -CONFIG_NE2_MCA=m +CONFIG_IP1000=m +CONFIG_JME=m +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_SKGE=m +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=m +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_KSZ884X_PCI=m +CONFIG_NET_VENDOR_MYRI=y +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_FEALNX=m +CONFIG_NET_VENDOR_NATSEMI=y CONFIG_IBMLANA=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NATSEMI=m +CONFIG_NS83820=m +CONFIG_NET_VENDOR_8390=y +CONFIG_EL2=m CONFIG_AC3200=m -CONFIG_APRICOT=m -CONFIG_B44=m -CONFIG_B44_PCI_AUTOSELECT=y -CONFIG_B44_PCICORE_AUTOSELECT=y -CONFIG_B44_PCI=y -CONFIG_FORCEDETH=m -# CONFIG_FORCEDETH_NAPI is not set -CONFIG_CS89x0=m -CONFIG_E100=m +CONFIG_PCMCIA_AXNET=m +CONFIG_E2100=m +CONFIG_ES3210=m +CONFIG_HPLAN_PLUS=m +CONFIG_HPLAN=m CONFIG_LNE390=m -CONFIG_FEALNX=m -CONFIG_NATSEMI=m +CONFIG_NE2000=m +CONFIG_NE2_MCA=m CONFIG_NE2K_PCI=m CONFIG_NE3210=m -CONFIG_ES3210=m +CONFIG_PCMCIA_PCNET=m +CONFIG_ULTRAMCA=m +CONFIG_ULTRA=m +CONFIG_ULTRA32=m +CONFIG_WD80x3=m +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_FORCEDETH=m +CONFIG_NET_VENDOR_OKI=y +CONFIG_PCH_GBE=m +CONFIG_ETHOC=m +CONFIG_NET_PACKET_ENGINE=y +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLGE=m +CONFIG_NETXEN_NIC=m +CONFIG_NET_VENDOR_RACAL=y +CONFIG_NET_VENDOR_REALTEK=y +CONFIG_ATP=m CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set CONFIG_8139TOO_TUNE_TWISTER=y CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=m +CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m +CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m +CONFIG_SIS190=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC9194=m +CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m CONFIG_SMSC9420=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set +CONFIG_NET_VENDOR_SUN=y +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NIU=m +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_TEHUTI=m +CONFIG_NET_VENDOR_TI=y CONFIG_TLAN=m -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y -CONFIG_SC92031=m -CONFIG_NET_POCKET=y -CONFIG_ATP=m -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_ATL2=m -CONFIG_NETDEV_1000=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -CONFIG_E1000E=m -CONFIG_IP1000=m -CONFIG_IGB=m -CONFIG_IGB_DCA=y -CONFIG_IGBVF=m -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -CONFIG_R8169_VLAN=y -CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m -CONFIG_CNIC=m -CONFIG_QLA3XXX=m -CONFIG_ATL1=m -CONFIG_ATL1E=m -CONFIG_ATL1C=m -CONFIG_JME=m -CONFIG_NETDEV_10000=y -CONFIG_MDIO=m -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T3_DEPENDS=y -CONFIG_CHELSIO_T3=m -CONFIG_ENIC=m -CONFIG_IXGBE=m -CONFIG_IXGBE_DCA=y -CONFIG_IXGB=m -CONFIG_S2IO=m -CONFIG_VXGE=m -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_MYRI10GE=m -CONFIG_MYRI10GE_DCA=y -CONFIG_NETXEN_NIC=m -CONFIG_NIU=m -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_TEHUTI=m -CONFIG_BNX2X=m -CONFIG_QLGE=m -CONFIG_SFC=m -CONFIG_SFC_MTD=y -CONFIG_BE2NET=m -# CONFIG_TR is not set -CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_AIRO=m -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m -# CONFIG_PRISM54 is not set -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_P54_COMMON is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set -# CONFIG_RT2X00 is not set -# CONFIG_HERMES is not set -# CONFIG_WL12XX is not set -# CONFIG_IWM is not set +CONFIG_NET_VENDOR_XIRCOM=y +CONFIG_PCMCIA_XIRC2PS=m +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_NET_SB1000=m +CONFIG_PHYLIB=y
# -# Enable WiMAX (Networking options) to see the WiMAX drivers +# MII PHY device drivers # +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m +# CONFIG_FIXED_PHY is not set +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +# CONFIG_TR is not set
# # USB Network Adapters @@ -1755,7 +2036,9 @@ CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m CONFIG_USB_NET_GL620A=m CONFIG_USB_NET_NET1080=m @@ -1770,17 +2053,63 @@ CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m +# CONFIG_USB_IPHETH is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +CONFIG_PCMCIA_RAYCS=m +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_AIRO=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AT76C50X_USB=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_RTL8180 is not set +# CONFIG_RTL8187 is not set +# CONFIG_ADM8211 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_MWL8K is not set +# CONFIG_ATH_COMMON is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMFMAC is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWLWIFI is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_HERMES is not set +# CONFIG_P54_COMMON is not set +# CONFIG_RT2X00 is not set +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +# CONFIG_RTL8192CU is not set +# CONFIG_WL1251 is not set +# CONFIG_WL12XX_MENU is not set +# CONFIG_ZD1211RW is not set +# CONFIG_MWIFIEX is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# CONFIG_WAN=y CONFIG_HOSTESS_SV11=m CONFIG_COSA=m @@ -1792,110 +2121,30 @@ CONFIG_HDLC_RAW_ETH=m CONFIG_HDLC_CISCO=m CONFIG_HDLC_FR=m CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_N2=m -CONFIG_C101=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_SDLA=m -CONFIG_SBNI=m -CONFIG_SBNI_MULTILINE=y -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_ATM_LANAI=m -CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set -CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y -CONFIG_ATM_IDT77252=m -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 -CONFIG_ATM_HE=m -CONFIG_ATM_HE_USE_SUNI=y -CONFIG_ATM_SOLOS=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m + +# +# X.25/LAPB support is disabled +# +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +# CONFIG_WANXL_BUILD_FIRMWARE is not set +CONFIG_PC300TOO=m +CONFIG_N2=m +CONFIG_C101=m +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_SDLA=m +CONFIG_SBNI=m +CONFIG_SBNI_MULTILINE=y CONFIG_XEN_NETDEV_FRONTEND=m -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NET_FC is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_VIRTIO_NET=m +CONFIG_XEN_NETDEV_BACKEND=m CONFIG_VMXNET3=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y CONFIG_ISDN_MPP=y @@ -1986,16 +2235,11 @@ CONFIG_ISDN_DRV_ICN=m CONFIG_ISDN_DRV_PCBIT=m CONFIG_ISDN_DRV_SC=m CONFIG_ISDN_DRV_ACT2000=m -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_ISDN_HDLC=m CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_CAPI_TRACE=y CONFIG_ISDN_CAPI_MIDDLEWARE=y CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIFS_BOOL=y -CONFIG_ISDN_CAPI_CAPIFS=m CONFIG_ISDN_CAPI_CAPIDRV=m
# @@ -2018,10 +2262,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m CONFIG_ISDN_DIVAS_USERIDI=m CONFIG_ISDN_DIVAS_MAINT=m CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_CAPI=y +# CONFIG_GIGASET_I4L is not set +# CONFIG_GIGASET_DUMMYLL is not set CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m # CONFIG_GIGASET_DEBUG is not set +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_MISDN_AVMFRITZ=m +CONFIG_MISDN_SPEEDFAX=m +CONFIG_MISDN_INFINEON=m +CONFIG_MISDN_W6692=m +CONFIG_MISDN_NETJET=m +CONFIG_MISDN_IPAC=m +CONFIG_MISDN_ISAR=m +CONFIG_ISDN_HDLC=m # CONFIG_PHONE is not set
# @@ -2030,6 +2297,7 @@ CONFIG_GIGASET_M101=m CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m
# # Userland interfaces @@ -2041,18 +2309,25 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_EVDEV is not set # CONFIG_INPUT_EVBUG is not set -CONFIG_XEN_KBDDEV_FRONTEND=m
# # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m CONFIG_KEYBOARD_ATKBD=y -CONFIG_QT2160=m +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_GPIO_POLLED=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_MATRIX=m CONFIG_KEYBOARD_LM8323=m CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m CONFIG_KEYBOARD_NEWTON=m CONFIG_KEYBOARD_OPENCORES=m CONFIG_KEYBOARD_STOWAWAY=m @@ -2063,20 +2338,28 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_BMA150=m CONFIG_INPUT_PCSPKR=m +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_APANEL=m # CONFIG_INPUT_WISTRON_BTNS is not set # CONFIG_INPUT_ATLAS_BTNS is not set -CONFIG_INPUT_ATI_REMOTE=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m # CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_WINBOND_CIR=m CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_WM831X_ON=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
# # Hardware I/O ports @@ -2089,6 +2372,8 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_PS2MULT=m # CONFIG_GAMEPORT is not set
# @@ -2097,11 +2382,17 @@ CONFIG_SERIO_LIBPS2=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_DEVKMEM=y +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set # CONFIG_SERIAL_NONSTANDARD is not set CONFIG_NOZOMI=m +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y
# # Serial drivers @@ -2129,12 +2420,18 @@ CONFIG_SERIAL_8250_RSA=y # # Non-8250 serial port support # +CONFIG_SERIAL_MFD_HSU=m +CONFIG_SERIAL_UARTLITE=m CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_PCH_UART=m +CONFIG_SERIAL_XILINX_PS_UART=m CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m @@ -2173,7 +2470,6 @@ CONFIG_MWAVE=m CONFIG_SCx200_GPIO=m CONFIG_PC8736x_GPIO=m CONFIG_NSC_GPIO=m -CONFIG_CS5535_GPIO=m # CONFIG_RAW_DRIVER is not set CONFIG_HPET=y CONFIG_HPET_MMAP=y @@ -2181,11 +2477,21 @@ CONFIG_HANGCHECK_TIMER=m # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y +# CONFIG_RAMOOPS is not set CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCA=m
@@ -2221,40 +2527,36 @@ CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PCI=m +CONFIG_I2C_GPIO=m +CONFIG_I2C_INTEL_MID=m CONFIG_I2C_OCORES=m +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m +CONFIG_I2C_XILINX=m +CONFIG_I2C_EG20T=m
# # External I2C/SMBus adapter drivers # +CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -# CONFIG_I2C_TAOS_EVM is not set +CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_TINY_USB=m
# -# Graphics adapter I2C/DDC channel drivers -# -CONFIG_I2C_VOODOO3=m - -# # Other I2C/SMBus bus drivers # CONFIG_I2C_PCA_ISA=m -CONFIG_I2C_PCA_PLATFORM=m CONFIG_I2C_STUB=m # CONFIG_SCx200_I2C is not set CONFIG_SCx200_ACB=m - -# -# Miscellaneous I2C Chip support -# -CONFIG_DS1682=m -CONFIG_SENSORS_TSL2550=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set # CONFIG_SPI is not set
# @@ -2262,8 +2564,73 @@ CONFIG_SENSORS_TSL2550=m # CONFIG_PPS=m # CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m +CONFIG_DP83640_PHY=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -# CONFIG_GPIOLIB is not set +CONFIG_GPIOLIB=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_MAX730X=m + +# +# Memory mapped GPIO drivers: +# +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_SCH=m +CONFIG_GPIO_VX855=m + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_ADP5588=m + +# +# PCI GPIO expanders: +# +CONFIG_GPIO_CS5535=m +# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_LANGWELL is not set +CONFIG_GPIO_PCH=m +CONFIG_GPIO_ML_IOH=m +# CONFIG_GPIO_TIMBERDALE is not set +CONFIG_GPIO_RDC321X=m + +# +# SPI GPIO expanders: +# +CONFIG_GPIO_MCP23S08=m + +# +# AC97 GPIO expanders: +# +# CONFIG_GPIO_UCB1400 is not set + +# +# MODULbus GPIO expanders: +# +CONFIG_GPIO_JANZ_TTL=m CONFIG_W1=m CONFIG_W1_CON=y
@@ -2273,27 +2640,37 @@ CONFIG_W1_CON=y CONFIG_W1_MASTER_MATROX=m CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS1WM=m +CONFIG_W1_MASTER_GPIO=m
# # 1-wire Slaves # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set -CONFIG_WM831X_POWER=m -CONFIG_WM8350_POWER=m +# CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set -CONFIG_BATTERY_DS2782=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_MAX17040=m -CONFIG_CHARGER_PCF50633=m +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_GPIO is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -2311,13 +2688,17 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7473=m CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_FAM15H_POWER=m CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m @@ -2327,11 +2708,15 @@ CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m @@ -2342,23 +2727,55 @@ CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m @@ -2366,34 +2783,35 @@ CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m -CONFIG_SENSORS_HDAPS=m CONFIG_SENSORS_APPLESMC=m
# # ACPI drivers # +CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m -CONFIG_SENSORS_LIS3LV02D=m CONFIG_THERMAL=y CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set
# # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_WATCHDOG=m CONFIG_ACQUIRE_WDT=m CONFIG_ADVANTECH_WDT=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_F71808E_WDT=m +CONFIG_SP5100_TCO=m +CONFIG_GEODE_WDT=m CONFIG_SC520_WDT=m CONFIG_SBC_FITPC2_WATCHDOG=m CONFIG_EUROTECH_WDT=m @@ -2406,9 +2824,11 @@ CONFIG_ITCO_WDT=m CONFIG_IT8712F_WDT=m CONFIG_IT87_WDT=m CONFIG_HP_WATCHDOG=m +CONFIG_HPWDT_NMI_DECODING=y CONFIG_SC1200_WDT=m CONFIG_SCx200_WDT=m CONFIG_PC87413_WDT=m +CONFIG_NV_TCO=m CONFIG_60XX_WDT=m CONFIG_SBC8360_WDT=m CONFIG_SBC7240_WDT=m @@ -2422,6 +2842,7 @@ CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m CONFIG_SBC_EPX_C3_WATCHDOG=m +CONFIG_XEN_WDT=m
# # ISA-based Watchdog Cards @@ -2447,10 +2868,9 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB=m CONFIG_SSB_SPROM=y -CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y -CONFIG_SSB_B43_PCI_BRIDGE=y +# CONFIG_SSB_B43_PCI_BRIDGE is not set CONFIG_SSB_PCMCIAHOST_POSSIBLE=y CONFIG_SSB_PCMCIAHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y @@ -2458,74 +2878,136 @@ CONFIG_SSB_SDIOHOST=y # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +CONFIG_BCMA=m +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +# CONFIG_BCMA_HOST_PCI is not set +# CONFIG_BCMA_DEBUG is not set
# # Multifunction device drivers # CONFIG_MFD_CORE=m CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set CONFIG_HTC_PASIC3=m +CONFIG_UCB1400_CORE=m +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m # CONFIG_MFD_TMIO is not set CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=m -CONFIG_MFD_WM8350=m -CONFIG_MFD_WM8350_I2C=m CONFIG_MFD_PCF50633=m CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m -CONFIG_AB3100_CORE=m -CONFIG_AB3100_OTP=m -# CONFIG_REGULATOR is not set +# CONFIG_ABX500_CORE is not set +CONFIG_MFD_CS5535=m +CONFIG_MFD_TIMBERDALE=m +CONFIG_LPC_SCH=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_JANZ_CMODIO=m +CONFIG_MFD_VX855=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +CONFIG_REGULATOR_GPIO=m +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_WM8400 is not set +# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_AD5398 is not set CONFIG_MEDIA_SUPPORT=m
# # Multimedia core support # +CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m -# CONFIG_VIDEO_ALLOW_V4L1 is not set -CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y CONFIG_VIDEO_MEDIA=m
# # Multimedia drivers # -# CONFIG_MEDIA_ATTACH is not set +CONFIG_RC_CORE=m +CONFIG_LIRC=m +CONFIG_RC_MAP=m +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_RC5_SZ_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_LIRC_CODEC is not set +# CONFIG_RC_ATI_REMOTE is not set +# CONFIG_IR_ENE is not set +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_ITE_CIR is not set +# CONFIG_IR_FINTEK is not set +# CONFIG_IR_NUVOTON is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_IR_WINBOND_CIR is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m # CONFIG_MEDIA_TUNER_CUSTOMISE is not set CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m
# -# Encoders/decoders and other helper chips +# Encoders, decoders, sensors and other helper chips #
# -# Audio decoders +# Audio decoders, processors and mixers # # CONFIG_VIDEO_TVAUDIO is not set # CONFIG_VIDEO_TDA7432 is not set # CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TDA9875 is not set # CONFIG_VIDEO_TEA6415C is not set # CONFIG_VIDEO_TEA6420 is not set # CONFIG_VIDEO_MSP3400 is not set # CONFIG_VIDEO_CS5345 is not set # CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_TLV320AIC23B is not set # CONFIG_VIDEO_WM8775 is not set # CONFIG_VIDEO_WM8739 is not set @@ -2544,19 +3026,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_BT856 is not set # CONFIG_VIDEO_BT866 is not set # CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_TCM825X is not set # CONFIG_VIDEO_SAA7110 is not set # CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_SAA7191 is not set # CONFIG_VIDEO_TVP514X is not set # CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set # CONFIG_VIDEO_VPX3220 is not set
# # Video and audio decoders # +# CONFIG_VIDEO_SAA717X is not set # CONFIG_VIDEO_CX25840 is not set
# @@ -2571,29 +3052,62 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_SAA7185 is not set # CONFIG_VIDEO_ADV7170 is not set # CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_THS7303 is not set # CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_S5K6AA is not set + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set
# # Video improvement chips # # CONFIG_VIDEO_UPD64031A is not set # CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_VIDEO_PMS is not set +# CONFIG_VIDEO_BWQCAM is not set +# CONFIG_VIDEO_CQCAM is not set +# CONFIG_VIDEO_W9966 is not set +# CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_ZORAN is not set +# CONFIG_VIDEO_MEYE is not set # CONFIG_VIDEO_SAA7134 is not set +# CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_TIMBERDALE is not set # CONFIG_VIDEO_CX88 is not set # CONFIG_VIDEO_CX23885 is not set +# CONFIG_VIDEO_CX25821 is not set # CONFIG_VIDEO_AU0828 is not set # CONFIG_VIDEO_IVTV is not set # CONFIG_VIDEO_CX18 is not set # CONFIG_VIDEO_SAA7164 is not set # CONFIG_VIDEO_CAFE_CCIC is not set +# CONFIG_VIDEO_VIA_CAMERA is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y # CONFIG_USB_VIDEO_CLASS is not set @@ -2602,24 +3116,25 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_HDPVR is not set # CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_TLG2300 is not set # CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_TM6000 is not set # CONFIG_VIDEO_USBVISION is not set # CONFIG_USB_ET61X251 is not set # CONFIG_USB_SN9C102 is not set -# CONFIG_USB_ZC0301 is not set -# CONFIG_USB_PWC_INPUT_EVDEV is not set +# CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set # CONFIG_USB_STKWEBCAM is not set # CONFIG_USB_S2255 is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_CADET is not set # CONFIG_RADIO_RTRACK is not set # CONFIG_RADIO_RTRACK2 is not set # CONFIG_RADIO_AZTECH is not set # CONFIG_RADIO_GEMTEK is not set -# CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MAESTRO is not set +# CONFIG_RADIO_MIROPCM20 is not set # CONFIG_RADIO_SF16FMI is not set # CONFIG_RADIO_SF16FMR2 is not set # CONFIG_RADIO_TERRATEC is not set @@ -2632,6 +3147,15 @@ CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_SI470X is not set # CONFIG_USB_MR800 is not set # CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_TIMBERDALE is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +# CONFIG_RADIO_WL128X is not set CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set CONFIG_DVB_CAPTURE_DRIVERS=y @@ -2671,16 +3195,75 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # CONFIG_DVB_DM1105 is not set
# +# Supported FireWire (IEEE 1394) Adapters +# +# CONFIG_DVB_FIREDTV is not set + +# # Supported Earthsoft PT1 Adapters # # CONFIG_DVB_PT1 is not set
# +# Supported Mantis Adapters +# +# CONFIG_MANTIS_CORE is not set + +# +# Supported nGene Adapters +# +# CONFIG_DVB_NGENE is not set + +# +# Supported ddbridge ('Octopus') Adapters +# +# CONFIG_DVB_DDBRIDGE is not set + +# # Supported DVB Frontends # # CONFIG_DVB_FE_CUSTOMISE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set + +# +# Multistandard (satellite) frontends +# + +# +# Multistandard (cable + terrestrial) frontends +# + +# +# DVB-S (satellite) frontends +# + +# +# DVB-T (terrestrial) frontends +# + +# +# DVB-C (cable) frontends +# + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# + +# +# ISDB-T (terrestrial) frontends +# + +# +# Digital terrestrial only tuners/PLL +# + +# +# SEC control devices for DVB-S +# + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set
# # Graphics support @@ -2697,20 +3280,24 @@ CONFIG_AGP_SWORKS=m CONFIG_AGP_VIA=m CONFIG_AGP_EFFICEON=m CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_VGA_SWITCHEROO is not set CONFIG_DRM=m CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_TTM=m CONFIG_DRM_TDFX=m CONFIG_DRM_R128=m CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_KMS=y CONFIG_DRM_I810=m -CONFIG_DRM_I830=m CONFIG_DRM_I915=m CONFIG_DRM_I915_KMS=y CONFIG_DRM_MGA=m CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m +CONFIG_DRM_VMWGFX=m +CONFIG_STUB_POULSBO=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y @@ -2726,6 +3313,7 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m +# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=m # CONFIG_FB_MACMODES is not set @@ -2740,6 +3328,7 @@ CONFIG_FB_CIRRUS=m CONFIG_FB_PM2=m CONFIG_FB_PM2_FIFO_DISCONNECT=y CONFIG_FB_CYBER2000=m +CONFIG_FB_CYBER2000_DDC=y # CONFIG_FB_ARC is not set CONFIG_FB_ASILIANT=y # CONFIG_FB_IMSTT is not set @@ -2780,6 +3369,7 @@ CONFIG_FB_ATY_CT=y CONFIG_FB_ATY_GX=y CONFIG_FB_ATY_BACKLIGHT=y CONFIG_FB_S3=m +CONFIG_FB_S3_DDC=y CONFIG_FB_SAVAGE=m CONFIG_FB_SAVAGE_I2C=y CONFIG_FB_SAVAGE_ACCEL=y @@ -2787,6 +3377,8 @@ CONFIG_FB_SIS=m CONFIG_FB_SIS_300=y CONFIG_FB_SIS_315=y CONFIG_FB_VIA=m +# CONFIG_FB_VIA_DIRECT_PROCFS is not set +# CONFIG_FB_VIA_X_COMPATIBILITY is not set CONFIG_FB_NEOMAGIC=m CONFIG_FB_KYRO=m CONFIG_FB_3DFX=m @@ -2805,6 +3397,8 @@ CONFIG_FB_GEODE_GX1=m CONFIG_FB_TMIO=m CONFIG_FB_TMIO_ACCELL=y CONFIG_FB_SM501=m +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set CONFIG_XEN_FBDEV_FRONTEND=m CONFIG_FB_METRONOME=m @@ -2812,15 +3406,16 @@ CONFIG_FB_METRONOME=m # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_ILI9320 is not set CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=m CONFIG_BACKLIGHT_PROGEAR=m CONFIG_BACKLIGHT_CARILLO_RANCH=m -CONFIG_BACKLIGHT_MBP_NVIDIA=m +CONFIG_BACKLIGHT_APPLE=m CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_WM831X=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_PCF50633=m
# # Display device support @@ -2839,7 +3434,7 @@ CONFIG_VGA_CONSOLE=y # CONFIG_MDA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y @@ -2854,6 +3449,9 @@ CONFIG_SOUND_OSS_CORE_PRECLAIM=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_OSSEMUL=y @@ -2861,137 +3459,191 @@ CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y -# CONFIG_SND_HRTIMER is not set -# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y -# CONFIG_SND_RAWMIDI_SEQ is not set -# CONFIG_SND_OPL3_LIB_SEQ is not set -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_RAWMIDI_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_OPL4_LIB_SEQ=m +CONFIG_SND_SBAWE_SEQ=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL4_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y # CONFIG_SND_PCSP is not set CONFIG_SND_DUMMY=m -# CONFIG_SND_VIRMIDI is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_MTS64 is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set -# CONFIG_SND_PORTMAN2X4 is not set +CONFIG_SND_ALOOP=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_WSS_LIB=m +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SB8_DSP=m +CONFIG_SND_SB16_DSP=m CONFIG_SND_ISA=y -# CONFIG_SND_ADLIB is not set -# CONFIG_SND_AD1816A is not set -# CONFIG_SND_AD1848 is not set -# CONFIG_SND_ALS100 is not set -# CONFIG_SND_AZT2320 is not set -# CONFIG_SND_CMI8330 is not set -# CONFIG_SND_CS4231 is not set -# CONFIG_SND_CS4236 is not set -# CONFIG_SND_DT019X is not set -# CONFIG_SND_ES968 is not set -# CONFIG_SND_ES1688 is not set -# CONFIG_SND_ES18XX is not set -# CONFIG_SND_SC6000 is not set -# CONFIG_SND_GUSCLASSIC is not set -# CONFIG_SND_GUSEXTREME is not set -# CONFIG_SND_GUSMAX is not set -# CONFIG_SND_INTERWAVE is not set -# CONFIG_SND_INTERWAVE_STB is not set -# CONFIG_SND_OPL3SA2 is not set -# CONFIG_SND_OPTI92X_AD1848 is not set -# CONFIG_SND_OPTI92X_CS4231 is not set -# CONFIG_SND_OPTI93X is not set -# CONFIG_SND_MIRO is not set -# CONFIG_SND_SB8 is not set -# CONFIG_SND_SB16 is not set -# CONFIG_SND_SBAWE is not set -# CONFIG_SND_SGALAXY is not set -# CONFIG_SND_SSCAPE is not set -# CONFIG_SND_WAVEFRONT is not set -# CONFIG_SND_MSND_PINNACLE is not set -# CONFIG_SND_MSND_CLASSIC is not set +CONFIG_SND_ADLIB=m +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_ALS100=m +CONFIG_SND_AZT1605=m +CONFIG_SND_AZT2316=m +CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4236=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_SC6000=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_JAZZ16=m +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_MIRO=m +CONFIG_SND_SB8=m +CONFIG_SND_SB16=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SSCAPE=m +CONFIG_SND_WAVEFRONT=m +CONFIG_SND_MSND_PINNACLE=m +CONFIG_SND_MSND_CLASSIC=m +CONFIG_SND_TEA575X=m CONFIG_SND_PCI=y -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALS4000 is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AW2 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_OXYGEN is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_CS5530 is not set -# CONFIG_SND_CS5535AUDIO is not set -# CONFIG_SND_CTXFI is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_INDIGOIOX is not set -# CONFIG_SND_INDIGODJX is not set -# CONFIG_SND_EMU10K1 is not set -# CONFIG_SND_EMU10K1X is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDA_INTEL is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_HIFIER is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_LX6464ES is not set -# CONFIG_SND_MAESTRO3 is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SIS7019 is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VIRTUOSO is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ASIHPI=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INDIGODJX=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_JACK=y +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_HDMI=y +CONFIG_SND_HDA_CODEC_CIRRUS=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_LOLA=m +CONFIG_SND_LX6464ES=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SIS7019=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m CONFIG_SND_USB=y -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_USX2Y is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_US122L is not set +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_US122L=m +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_FIREWIRE=y +CONFIG_SND_FIREWIRE_LIB=m +CONFIG_SND_FIREWIRE_SPEAKERS=m +CONFIG_SND_ISIGHT=m CONFIG_SND_PCMCIA=y -# CONFIG_SND_VXPOCKET is not set -# CONFIG_SND_PDAUDIOCF is not set +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HIDRAW is not set @@ -3007,45 +3659,82 @@ CONFIG_USB_HIDDEV=y # Special HID drivers # CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +# CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m +CONFIG_HID_PRODIKEYS=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m -CONFIG_DRAGONRISE_FF=y +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +CONFIG_HID_ELECOM=m CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +# CONFIG_HOLTEK_FF is not set +CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m CONFIG_HID_LOGITECH=m -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +CONFIG_HID_MAGICMOUSE=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m -CONFIG_PANTHERLORD_FF=y +# CONFIG_PANTHERLORD_FF is not set CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_COMMON=m +CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_KOVAPLUS=m +CONFIG_HID_ROCCAT_PYRA=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m -CONFIG_GREENASIA_FF=y +# CONFIG_GREENASIA_FF is not set CONFIG_HID_SMARTJOYPLUS=m -CONFIG_SMARTJOYPLUS_FF=y +# CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TOPSEED=m CONFIG_HID_THRUSTMASTER=m -CONFIG_THRUSTMASTER_FF=y +# CONFIG_THRUSTMASTER_FF is not set CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_WIIMOTE=m CONFIG_HID_ZEROPLUS=m -CONFIG_ZEROPLUS_FF=y +# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_ZYDACRON=m CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=m +CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
@@ -3057,6 +3746,8 @@ CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_DYNAMIC_MINORS=y CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_MON is not set CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m @@ -3066,33 +3757,29 @@ CONFIG_USB_WUSB_CBAF=m # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=m +CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=m -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_OHCI_HCD_SSB=y +CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=m +CONFIG_USB_UHCI_HCD=y CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_HCD_ISO is not set # CONFIG_USB_SL811_CS is not set CONFIG_USB_R8A66597_HCD=m CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m
# -# Enable Host or Gadget support to see Inventra options -# - -# # USB Device Class drivers # CONFIG_USB_ACM=m @@ -3109,7 +3796,9 @@ CONFIG_USB_TMC=m # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m CONFIG_USB_STORAGE_USBAT=m @@ -3120,6 +3809,8 @@ CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m # CONFIG_USB_LIBUSUAL is not set
# @@ -3145,12 +3836,12 @@ CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m @@ -3160,11 +3851,13 @@ CONFIG_USB_SERIAL_IUU=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_MOS7720=m +# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_HP4X=m @@ -3176,9 +3869,13 @@ CONFIG_USB_SERIAL_SYMBOL=m CONFIG_USB_SERIAL_TI=m # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_SERIAL_DEBUG is not set
# @@ -3191,7 +3888,6 @@ CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m -CONFIG_USB_BERRY_CHARGE=m CONFIG_USB_LED=m CONFIG_USB_CYPRESS_CY7C63=m CONFIG_USB_CYTHERM=m @@ -3205,7 +3901,7 @@ CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set CONFIG_USB_ISIGHTFW=m -CONFIG_USB_VST=m +CONFIG_USB_YUREX=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m @@ -3217,21 +3913,22 @@ CONFIG_USB_XUSBATM=m # OTG and related infrastructure # CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=m CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m -CONFIG_UWB_WLP=m CONFIG_UWB_I1480U=m -CONFIG_UWB_I1480U_WLP=m CONFIG_MMC=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set
# # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m CONFIG_MMC_TEST=m @@ -3241,15 +3938,15 @@ CONFIG_MMC_TEST=m # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_RICOH_MMC=m +# CONFIG_MMC_RICOH_MMC is not set CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_WBSD=m -# CONFIG_MMC_AT91 is not set -# CONFIG_MMC_ATMELMCI is not set CONFIG_MMC_TIFM_SD=m CONFIG_MMC_SDRICOH_CS=m CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set
@@ -3264,30 +3961,39 @@ CONFIG_MSPRO_BLOCK=m # CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m +CONFIG_LEDS_CLASS=y
# # LED drivers # +CONFIG_LEDS_LM3530=m CONFIG_LEDS_NET48XX=m +CONFIG_LEDS_NET5501=m CONFIG_LEDS_WRAP=m -CONFIG_LEDS_ALIX2=m CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_GPIO=m CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m +CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m +CONFIG_LEDS_INTEL_SS4200=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_DELL_NETBOOKS=m +CONFIG_LEDS_TRIGGERS=y
# # LED Triggers # -CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
# @@ -3297,8 +4003,11 @@ CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set -CONFIG_RTC_LIB=m -CONFIG_RTC_CLASS=m +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set
# # RTC interfaces @@ -3307,7 +4016,7 @@ CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_DRV_TEST=m +# CONFIG_RTC_DRV_TEST is not set
# # I2C RTC drivers @@ -3315,18 +4024,23 @@ CONFIG_RTC_DRV_TEST=m CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m -# CONFIG_RTC_DRV_M41T80_WDT is not set +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_S35390A=m CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m
# # SPI RTC drivers @@ -3335,7 +4049,7 @@ CONFIG_RTC_DRV_RX8025=m # # Platform RTC drivers # -CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_CMOS=y CONFIG_RTC_DRV_DS1286=m CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m @@ -3344,23 +4058,25 @@ CONFIG_RTC_DRV_STK17TA8=m CONFIG_RTC_DRV_M48T86=m CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_AB3100=m
# # on-CPU RTC drivers # CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set
# # DMA Devices # -CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y +CONFIG_INTEL_MID_DMAC=m CONFIG_INTEL_IOATDMA=m +CONFIG_TIMB_DMA=m +CONFIG_PCH_DMA=m CONFIG_DMA_ENGINE=y
# @@ -3375,104 +4091,169 @@ CONFIG_UIO=m CONFIG_UIO_CIF=m CONFIG_UIO_PDRV=m CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_SMX=m CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_NETX=m +CONFIG_VIRTIO=y +CONFIG_VIRTIO_RING=y + +# +# Virtio drivers +# +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_MMIO=m
# -# TI VLYNQ +# Xen driver support # CONFIG_XEN_BALLOON=y CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DEV_EVTCHN=m +CONFIG_XEN_BACKEND=y CONFIG_XENFS=m CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_SYS_HYPERVISOR=y +CONFIG_XEN_XENBUS_FRONTEND=y +CONFIG_XEN_GNTDEV=m +CONFIG_XEN_GRANT_DEV_ALLOC=m +CONFIG_SWIOTLB_XEN=y +CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set CONFIG_ET131X=m -# CONFIG_ET131X_DEBUG is not set CONFIG_SLICOSS=m -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_USB_IP_COMMON is not set +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set # CONFIG_ECHO is not set -# CONFIG_POCH is not set -# CONFIG_OTUS is not set -# CONFIG_RT2860 is not set -# CONFIG_RT2870 is not set -# CONFIG_RT3090 is not set # CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set -# CONFIG_ALTERA_PCIE_CHDMA is not set -# CONFIG_RTL8187SE is not set -# CONFIG_RTL8192SU is not set +# CONFIG_R8187SE is not set +# CONFIG_RTL8192U is not set # CONFIG_RTL8192E is not set +# CONFIG_R8712U is not set +# CONFIG_RTS_PSTOR is not set +# CONFIG_RTS5139 is not set # CONFIG_TRANZPORT is not set - -# -# Android -# - -# -# Qualcomm MSM Camera And Video -# - -# -# Camera Sensor Selection -# -# CONFIG_INPUT_GPIO is not set -# CONFIG_DST is not set # CONFIG_POHMELFS is not set -# CONFIG_B3DFG is not set CONFIG_IDE_PHISON=m -# CONFIG_PLAN9AUTH is not set # CONFIG_LINE6_USB is not set -# CONFIG_DRM_RADEON_KMS is not set +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_NOUVEAU_BACKLIGHT=y + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set # CONFIG_USB_SERIAL_QUATECH2 is not set # CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_FB_UDL is not set -CONFIG_HYPERV=m CONFIG_HYPERV_STORAGE=m -CONFIG_HYPERV_BLOCK=m CONFIG_HYPERV_NET=m +CONFIG_HYPERV_MOUSE=m # CONFIG_VME_BUS is not set - -# -# RAR Register Driver -# -# CONFIG_RAR_REGISTER is not set +# CONFIG_DX_SEP is not set # CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_WLAGS49_H2 is not set +# CONFIG_WLAGS49_H25 is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_CRYSTALHD is not set +# CONFIG_CXT1E1 is not set +# CONFIG_FB_XGI is not set +# CONFIG_ACPI_QUICKSTART is not set +# CONFIG_SBE_2T3E3 is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_DRM_PSB is not set +CONFIG_INTEL_MEI=m +# CONFIG_STAGING_MEDIA is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m +CONFIG_ACERHDF=m CONFIG_ASUS_LAPTOP=m CONFIG_DELL_WMI=m +CONFIG_DELL_WMI_AIO=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_LAPTOP_DEBUG=y CONFIG_TC1100_WMI=m +CONFIG_HP_ACCEL=m CONFIG_HP_WMI=m CONFIG_MSI_LAPTOP=m CONFIG_PANASONIC_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m # CONFIG_SONYPI_COMPAT is not set +CONFIG_IDEAPAD_LAPTOP=m CONFIG_THINKPAD_ACPI=m +CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set # CONFIG_THINKPAD_ACPI_DEBUG is not set # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_SENSORS_HDAPS=m CONFIG_INTEL_MENLOW=m CONFIG_ACPI_WMI=m +CONFIG_MSI_WMI=m CONFIG_ACPI_ASUS=m CONFIG_TOPSTAR_LAPTOP=m CONFIG_ACPI_TOSHIBA=m +CONFIG_TOSHIBA_BT_RFKILL=m +CONFIG_ACPI_CMPC=m +CONFIG_INTEL_IPS=m +CONFIG_IBM_RTL=m +CONFIG_XO15_EBOOK=m +CONFIG_SAMSUNG_LAPTOP=m +CONFIG_MXM_WMI=m +CONFIG_INTEL_OAKTRAIL=m +CONFIG_SAMSUNG_Q10=m + +# +# Hardware Spinlock drivers +# +CONFIG_CLKSRC_I8253=y +CONFIG_CLKEVT_I8253=y +CONFIG_I8253_LOCK=y +CONFIG_CLKBLD_I8253=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_DMAR_TABLE=y +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_DEFAULT_ON=y +CONFIG_INTEL_IOMMU_FLOPPY_WA=y +CONFIG_VIRT_DRIVERS=y +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m +CONFIG_PM_DEVFREQ=y + +# +# DEVFREQ Governors +# +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +CONFIG_DEVFREQ_GOV_PERFORMANCE=y +CONFIG_DEVFREQ_GOV_POWERSAVE=y +CONFIG_DEVFREQ_GOV_USERSPACE=y + +# +# DEVFREQ Drivers +#
# # Firmware Drivers @@ -3482,32 +4263,25 @@ CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set CONFIG_DMIID=y +CONFIG_DMI_SYSFS=m CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m +CONFIG_SIGMA=m +# CONFIG_GOOGLE_FIRMWARE is not set
# # File systems # -CONFIG_EXT2_FS=m -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=m -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=m +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -CONFIG_JBD2=m -CONFIG_FS_MBCACHE=m -CONFIG_REISER4_FS=m -# CONFIG_REISER4_DEBUG is not set +CONFIG_JBD2=y +CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set CONFIG_REISERFS_PROC_INFO=y @@ -3519,29 +4293,29 @@ CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y # CONFIG_JFS_DEBUG is not set CONFIG_JFS_STATISTICS=y -CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_RT is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=m CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y -CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=m CONFIG_QFMT_V1=m CONFIG_QFMT_V2=m CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_CUSE=m @@ -3587,6 +4361,7 @@ CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set @@ -3615,6 +4390,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_JFFS2_CMODE_FAVOURLZO is not set # CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set @@ -3623,8 +4399,11 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set # CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m @@ -3633,6 +4412,9 @@ CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y # CONFIG_NFS_V4_1 is not set # CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y @@ -3640,15 +4422,12 @@ CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS2=y @@ -3658,7 +4437,8 @@ CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_ACL=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set @@ -3673,7 +4453,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_ATARI_PARTITION is not set # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set +CONFIG_BSD_DISKLABEL=y # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set @@ -3725,13 +4505,13 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y -# CONFIG_DLM is not set
# # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y # CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 @@ -3740,12 +4520,13 @@ CONFIG_STRIP_ASM_SYMS=y # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y @@ -3761,9 +4542,11 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y @@ -3773,6 +4556,7 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set @@ -3780,10 +4564,12 @@ CONFIG_ARCH_WANT_FRAME_POINTERS=y # CONFIG_FRAME_POINTER is not set # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set # CONFIG_SYSCTL_SYSCALL_CHECK is not set @@ -3796,27 +4582,30 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set # CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y +# CONFIG_KMEMCHECK is not set +# CONFIG_TEST_KSTRTOX is not set # CONFIG_STRICT_DEVMEM is not set CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set # CONFIG_DEBUG_STACKOVERFLOW is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set # CONFIG_X86_PTDUMP is not set CONFIG_DEBUG_RODATA=y CONFIG_DEBUG_RODATA_TEST=y +# CONFIG_DEBUG_SET_MODULE_RONX is not set # CONFIG_DEBUG_NX_TEST is not set -# CONFIG_4KSTACKS is not set CONFIG_DOUBLEFAULT=y # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y @@ -3831,17 +4620,20 @@ CONFIG_IO_DELAY_0X80=y CONFIG_DEFAULT_IO_DELAY_TYPE=0 # CONFIG_CPA_DEBUG is not set # CONFIG_OPTIMIZE_INLINING is not set +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
# # Security options # CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set # CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set # CONFIG_INTEL_TXT is not set -# CONFIG_IMA is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m @@ -3855,7 +4647,6 @@ CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=m @@ -3866,11 +4657,15 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=m CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m # CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m @@ -3907,7 +4702,7 @@ CONFIG_CRYPTO_VMAC=m CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_GHASH=m -# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m @@ -3925,9 +4720,11 @@ CONFIG_CRYPTO_WP512=m # CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m @@ -3954,50 +4751,61 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m CONFIG_CRYPTO_DEV_PADLOCK_SHA=m CONFIG_CRYPTO_DEV_GEODE=m -CONFIG_CRYPTO_DEV_HIFN_795X=m -CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_APIC_ARCHITECTURE=y +CONFIG_KVM_MMIO=y +CONFIG_KVM_ASYNC_PF=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m +CONFIG_VHOST_NET=m CONFIG_LGUEST=m -CONFIG_VIRTIO=y -CONFIG_VIRTIO_RING=y -CONFIG_VIRTIO_PCI=m -CONFIG_VIRTIO_BALLOON=m # CONFIG_BINARY_PRINTF is not set
# # Library routines # +CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +CONFIG_CRC16=y CONFIG_CRC_T10DIF=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -4006,4 +4814,7 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y +CONFIG_CPU_RMAP=y CONFIG_NLATTR=y +CONFIG_AVERAGE=y +CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.i586-ipfire-xen b/config/kernel/kernel.config.i586-ipfire-xen index 72fd490..dcdf545 100644 --- a/config/kernel/kernel.config.i586-ipfire-xen +++ b/config/kernel/kernel.config.i586-ipfire-xen @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.41-ipfire-xen -# Mon May 31 15:00:00 2011 +# Linux kernel version: 2.6.32.60 +# Sat Dec 8 11:41:33 2012 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -47,7 +47,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_X86_32_SMP=y CONFIG_X86_NO_TSS=y CONFIG_X86_NO_IDT=y -CONFIG_X86_32_LAZY_GS=y CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" @@ -104,7 +103,7 @@ CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y # CONFIG_EMBEDDED is not set @@ -283,8 +282,9 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 # CONFIG_HIGHPTE is not set CONFIG_MTRR=y # CONFIG_X86_PAT is not set +CONFIG_ARCH_RANDOM=y CONFIG_SECCOMP=y -# CONFIG_CC_STACKPROTECTOR is not set +CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set CONFIG_HZ_300=y @@ -471,7 +471,7 @@ CONFIG_TCP_CONG_ILLINOIS=m CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" # CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m +CONFIG_IPV6=y # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set @@ -2140,10 +2140,9 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB=m CONFIG_SSB_SPROM=y -CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y -CONFIG_SSB_B43_PCI_BRIDGE=y +# CONFIG_SSB_B43_PCI_BRIDGE is not set CONFIG_SSB_PCMCIAHOST_POSSIBLE=y CONFIG_SSB_PCMCIAHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y @@ -2766,7 +2765,7 @@ CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=m +CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
@@ -2787,21 +2786,20 @@ CONFIG_USB_WUSB_CBAF=m # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=m +CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=m -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_OHCI_HCD_SSB=y +CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=m +CONFIG_USB_UHCI_HCD=y CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m # CONFIG_USB_SL811_CS is not set @@ -2810,10 +2808,6 @@ CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m
# -# Enable Host or Gadget support to see Inventra options -# - -# # USB Device Class drivers # CONFIG_USB_ACM=m @@ -3385,7 +3379,9 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set # CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m @@ -3433,7 +3429,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_ATARI_PARTITION is not set # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set +CONFIG_BSD_DISKLABEL=y # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set @@ -3563,6 +3559,7 @@ CONFIG_TRACING_SUPPORT=y # CONFIG_DMA_API_DEBUG is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KMEMCHECK=y +# CONFIG_KMEMCHECK is not set # CONFIG_STRICT_DEVMEM is not set CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set diff --git a/config/madwifi/madwifi.conf b/config/madwifi/madwifi.conf deleted file mode 100644 index a4a234f..0000000 --- a/config/madwifi/madwifi.conf +++ /dev/null @@ -1,295 +0,0 @@ -##### hostapd configuration file ############################################## -# Empty lines and lines starting with # are ignored - -# AP netdevice name (without 'ap' prefix, i.e., wlan0 uses wlan0ap for -# management frames) -interface=ath0 - -# Driver interface type (hostap/wired/madwifi/prism54; default: hostap) -driver=madwifi - -# hostapd event logger configuration -# -# Two output method: syslog and stdout (only usable if not forking to -# background). -# -# Module bitfield (ORed bitfield of modules that will be logged; -1 = all -# modules): -# bit 0 (1) = IEEE 802.11 -# bit 1 (2) = IEEE 802.1X -# bit 2 (4) = RADIUS -# bit 3 (8) = WPA -# bit 4 (16) = driver interface -# bit 5 (32) = IAPP -# -# Levels (minimum value for logged events): -# 0 = verbose debugging -# 1 = debugging -# 2 = informational messages -# 3 = notification -# 4 = warning -# -logger_syslog=-1 -logger_syslog_level=2 -logger_stdout=-1 -logger_stdout_level=1 - -# Debugging: 0 = no, 1 = minimal, 2 = verbose, 3 = msg dumps, 4 = excessive -debug=0 - -# Dump file for state information (on SIGUSR1) -dump_file=/tmp/hostapd.dump - -# Interface for separate control program. If this is specified, hostapd -# will create this directory and a UNIX domain socket for listening to requests -# from external programs (CLI/GUI, etc.) for status information and -# configuration. The socket file will be named based on the interface name, so -# multiple hostapd processes/interfaces can be run at the same time if more -# than one interface is used. -# /var/run/hostapd is the recommended directory for sockets and by default, -# hostapd_cli will use it when trying to connect with hostapd. -ctrl_interface=/var/run/hostapd - -# Access control for the control interface can be configured by setting the -# directory to allow only members of a group to use sockets. This way, it is -# possible to run hostapd as root (since it needs to change network -# configuration and open raw sockets) and still allow GUI/CLI components to be -# run as non-root users. However, since the control interface can be used to -# change the network configuration, this access needs to be protected in many -# cases. By default, hostapd is configured to use gid 0 (root). If you -# want to allow non-root users to use the contron interface, add a new group -# and change this value to match with that group. Add users that should have -# control interface access to this group. -# -# This variable can be a group name or gid. -#ctrl_interface_group=wheel -ctrl_interface_group=0 - - -##### IEEE 802.11 related configuration ####################################### - -# SSID to be used in IEEE 802.11 management frames -ssid=IPFire - -# Station MAC address -based authentication -# 0 = accept unless in deny list -# 1 = deny unless in accept list -# 2 = use external RADIUS server (accept/deny lists are searched first) -macaddr_acl=0 - -# Accept/deny lists are read from separate files (containing list of -# MAC addresses, one per line). Use absolute path name to make sure that the - -# files can be read on SIGHUP configuration reloads. -#accept_mac_file=/etc/hostapd/hostapd.accept -#deny_mac_file=/etc/hostapd/hostapd.deny - -# IEEE 802.11 specifies two authentication algorithms. hostapd can be -# configured to allow both of these or only one. Open system authentication -# should be used with IEEE 802.1X. -# Bit fields of allowed authentication algorithms: -# bit 0 = Open System Authentication -# bit 1 = Shared Key Authentication (requires WEP) -auth_algs=1 - -# Associate as a station to another AP while still acting as an AP on the same -# channel. -#assoc_ap_addr=00:12:34:56:78:9a - - -##### IEEE 802.1X (and IEEE 802.1aa/D4) related configuration ################# - -# Require IEEE 802.1X authorization -#ieee8021x=0 - -# Use integrated EAP authenticator instead of external RADIUS authentication -# server -#eap_authenticator=0 - -# Path for EAP authenticator user database -#eap_user_file=/etc/hostapd/eap_user - -# CA certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS -#ca_cert=/etc/hostapd/ca.pem - -# Server certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS -#server_cert=/etc/hostapd/server.pem - -# Private key matching with the server certificate for EAP-TLS/PEAP/TTLS -# This may point to the same file as server_cert if both certificate and key -# are included in a single file. PKCS#12 (PFX) file (.p12/.pfx) can also be -# used by commenting out server_cert and specifying the PFX file as the -# private_key. -#private_key=/etc/hostapd/server.prv - -# Passphrase for private key -#private_key_passwd=secret passphrase - -# Configuration data for EAP-SIM database/authentication gateway interface. -# This is a text string in implementation specific format. The example -# implementation in eap_sim_db.c uses this as the file name for the GSM -# authentication triplets. -#eap_sim_db=/etc/hostapd/sim_db - -# Optional displayable message sent with EAP Request-Identity -#eap_message=hello - -# WEP rekeying (disabled if key lengths are not set or are set to 0) -# Key lengths for default/broadcast and individual/unicast keys: -# 5 = 40-bit WEP (also known as 64-bit WEP with 40 secret bits) -# 13 = 104-bit WEP (also known as 128-bit WEP with 104 secret bits) -#wep_key_len_broadcast=5 -#wep_key_len_unicast=5 -# Rekeying period in seconds. 0 = do not rekey (i.e., set keys only once) -#wep_rekey_period=300 - -# EAPOL-Key index workaround (set bit7) for WinXP Supplicant (needed only if -# only broadcast keys are used) -#eapol_key_index_workaround=0 - -# EAP reauthentication period in seconds (default: 3600 seconds; 0 = disable -# reauthentication). -#eap_reauth_period=3600 - - -##### IEEE 802.11f - Inter-Access Point Protocol (IAPP) ####################### - -# Interface to be used for IAPP broadcast packets -#iapp_interface=eth0 - - -##### RADIUS configuration #################################################### -# for IEEE 802.1X with external Authentication Server, IEEE 802.11 -# authentication with external ACL for MAC addresses, and accounting - -# The own IP address of the access point (used as NAS-IP-Address) -#own_ip_addr=127.0.0.1 - -# Optional NAS-Identifier string for RADIUS messages. When used, this should be -# a unique to the NAS within the scope of the RADIUS server. For example, a -# fully qualified domain name can be used here. -#nas_identifier=ap.example.com - -# RADIUS authentication server -#auth_server_addr=127.0.0.1 -#auth_server_port=1812 -#auth_server_shared_secret=secret - -# RADIUS accounting server -#acct_server_addr=127.0.0.1 -#acct_server_port=1813 -#acct_server_shared_secret=secret - -# Secondary RADIUS servers; to be used if primary one does not reply to -# RADIUS packets. These are optional and there can be more than one secondary -# server listed. -#auth_server_addr=127.0.0.2 -#auth_server_port=1812 -#auth_server_shared_secret=secret2 -# -#acct_server_addr=127.0.0.2 -#acct_server_port=1813 -#acct_server_shared_secret=secret2 - -# Retry interval for trying to return to the primary RADIUS server (in -# seconds). RADIUS client code will automatically try to use the next server -# when the current server is not replying to requests. If this interval is set, -# primary server will be retried after configured amount of time even if the -# currently used secondary server is still working. -#radius_retry_primary_interval=600 - -# Interim accounting update interval -# If this is set (larger than 0) and acct_server is configured, hostapd will -# send interim accounting updates every N seconds. Note: if set, this overrides -# possible Acct-Interim-Interval attribute in Access-Accept message. Thus, this -# value should not be configured in hostapd.conf, if RADIUS server is used to -# control the interim interval. -# This value should not be less 600 (10 minutes) and must not be less than -# 60 (1 minute). -#radius_acct_interim_interval=600 - -# hostapd can be used as a RADIUS authentication server for other hosts. This -# requires that the integrated EAP authenticator is also enabled and both -# authentication services are sharing the same configuration. - -# File name of the RADIUS clients configuration for the RADIUS server. If this -# commented out, RADIUS server is disabled. -#radius_server_clients=/etc/hostapd/radius_clients - -# The UDP port number for the RADIUS authentication server -#radius_server_auth_port=1812 - - -##### WPA/IEEE 802.11i configuration ########################################## - -# Enable WPA. Setting this variable configures the AP to require WPA (either -# WPA-PSK or WPA-RADIUS/EAP based on other configuration). For WPA-PSK, either -# wpa_psk or wpa_passphrase must be set and wpa_key_mgmt must include WPA-PSK. -# For WPA-RADIUS/EAP, ieee8021x must be set (but without dynamic WEP keys), -# RADIUS authentication server must be configured, and WPA-EAP must be included -# in wpa_key_mgmt. -# This field is a bit field that can be used to enable WPA (IEEE 802.11i/D3.0) -# and/or WPA2 (full IEEE 802.11i/RSN): -# bit0 = WPA -# bit1 = IEEE 802.11i/RSN (WPA2) (dot11RSNAEnabled) -wpa=1 - -# WPA pre-shared keys for WPA-PSK. This can be either entered as a 256-bit -# secret in hex format (64 hex digits), wpa_psk, or as an ASCII passphrase -# (8..63 characters) that will be converted to PSK. This conversion uses SSID -# so the PSK changes when ASCII passphrase is used and the SSID is changed. -# wpa_psk (dot11RSNAConfigPSKValue) -# wpa_passphrase (dot11RSNAConfigPSKPassPhrase) -#wpa_psk=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef -wpa_passphrase=yoursecretpassphrase - -# Optionally, WPA PSKs can be read from a separate text file (containing list -# of (PSK,MAC address) pairs. This allows more than one PSK to be configured. -# Use absolute path name to make sure that the files can be read on SIGHUP -# configuration reloads. -#wpa_psk_file=/etc/hostapd/wpa_psk - -# Set of accepted key management algorithms (WPA-PSK, WPA-EAP, or both). The -# entries are separated with a space. -# (dot11RSNAConfigAuthenticationSuitesTable) -#wpa_key_mgmt=WPA-PSK WPA-EAP -wpa_key_mgmt=WPA-PSK - -# Set of accepted cipher suites (encryption algorithms) for pairwise keys -# (unicast packets). This is a space separated list of algorithms: - -# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] -# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] -# Group cipher suite (encryption algorithm for broadcast and multicast frames) -# is automatically selected based on this configuration. If only CCMP is -# allowed as the pairwise cipher, group cipher will also be CCMP. Otherwise, -# TKIP will be used as the group cipher. -# (dot11RSNAConfigPairwiseCiphersTable) -wpa_pairwise=TKIP CCMP - -# Time interval for rekeying GTK (broadcast/multicast encryption keys) in -# seconds. (dot11RSNAConfigGroupRekeyTime) -#wpa_group_rekey=600 - -# Rekey GTK when any STA that possesses the current GTK is leaving the BSS. -# (dot11RSNAConfigGroupRekeyStrict) -#wpa_strict_rekey=1 - -# Time interval for rekeying GMK (master key used internally to generate GTKs -# (in seconds). -#wpa_gmk_rekey=86400 - -# Enable IEEE 802.11i/RSN/WPA2 pre-authentication. This is used to speed up -# roaming be pre-authenticating IEEE 802.1X/EAP part of the full RSN -# authentication and key handshake before actually associating with a new AP. -# (dot11RSNAPreauthenticationEnabled) -#rsn_preauth=1 -# -# Space separated list of interfaces from which pre-authentication frames are -# accepted (e.g., 'eth0' or 'eth0 wlan0wds0'. This list should include all -# interface that are used for connections to other APs. This could include -# wired interfaces and WDS links. The normal wireless data interface towards -# associated stations (e.g., wlan0) should not be added, since -# pre-authentication is only used with APs other than the currently associated -# one. -#rsn_preauth_interfaces=eth0 diff --git a/config/profile.d/colorls.sh b/config/profile.d/colorls.sh new file mode 100644 index 0000000..dc5c223 --- /dev/null +++ b/config/profile.d/colorls.sh @@ -0,0 +1,40 @@ +# color-ls initialization + +#when USER_LS_COLORS defined do not override user LS_COLORS, but use them. +if [ -z "$USER_LS_COLORS" ]; then + + alias ll='ls -l' 2>/dev/null + alias l.='ls -d .*' 2>/dev/null + + + # Skip the rest for noninteractive shells. + [ -z "$PS1" ] && return + + COLORS= + + for colors in "$HOME/.dir_colors.$TERM" "$HOME/.dircolors.$TERM" \ + "$HOME/.dir_colors" "$HOME/.dircolors"; do + [ -e "$colors" ] && COLORS="$colors" && break + done + + [ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS.256color" ] && \ + [ "x`tty -s && tput colors 2>/dev/null`" = "x256" ] && \ + COLORS="/etc/DIR_COLORS.256color" + + if [ -z "$COLORS" ]; then + for colors in "/etc/DIR_COLORS.$TERM" "/etc/DIR_COLORS" ; do + [ -e "$colors" ] && COLORS="$colors" && break + done + fi + + # Existence of $COLORS already checked above. + [ -n "$COLORS" ] || return + + eval "`dircolors --sh "$COLORS" 2>/dev/null`" + [ -z "$LS_COLORS" ] && return + grep -qi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null && return +fi + +alias ll='ls -l --color=auto' 2>/dev/null +alias l.='ls -d .* --color=auto' 2>/dev/null +alias ls='ls --color=auto' 2>/dev/null diff --git a/config/profile.d/dircolors.sh b/config/profile.d/dircolors.sh deleted file mode 100644 index 873d91b..0000000 --- a/config/profile.d/dircolors.sh +++ /dev/null @@ -1,9 +0,0 @@ -# Setup for /bin/ls to support color, the alias is in /etc/bashrc. -if [ -f "/etc/dircolors" ] ; then - eval $(dircolors -b /etc/dircolors) - - if [ -f "$HOME/.dircolors" ] ; then - eval $(dircolors -b $HOME/.dircolors) - fi -fi -alias ls='ls --color=auto' diff --git a/config/profile.d/extrapaths.sh b/config/profile.d/extrapaths.sh index bb8f720..d712736 100644 --- a/config/profile.d/extrapaths.sh +++ b/config/profile.d/extrapaths.sh @@ -1,15 +1,11 @@ -if [ -d /usr/local/bin ]; then - pathprepend /usr/local/bin -fi -if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then - pathprepend /usr/local/sbin -fi -for directory in $(find /opt/*/bin -type d 2>/dev/null); do - pathappend $directory +# Make sure the basic paths are always available. + +pathmunge /bin +pathmunge /usr/bin +pathmunge /usr/local/bin + +for directory in $(find /opt/*/bin -maxdepth 1 -type d 2>/dev/null); do + pathmunge ${directory} after done -if [ -d ~/bin ]; then - pathprepend ~/bin -fi -#if [ $EUID -gt 99 ]; then -# pathappend . -#fi + +unset directory diff --git a/config/profile.d/glib2-locale.sh b/config/profile.d/glib2-locale.sh new file mode 100644 index 0000000..8dd50d5 --- /dev/null +++ b/config/profile.d/glib2-locale.sh @@ -0,0 +1,3 @@ +# Use the current locale charset for filenames +# in applications using GLib +export G_FILENAME_ENCODING=@locale diff --git a/config/profile.d/i18n.sh b/config/profile.d/i18n.sh index ac68d67..2f66e89 100644 --- a/config/profile.d/i18n.sh +++ b/config/profile.d/i18n.sh @@ -1,2 +1,10 @@ # Set up i18n variables -export LANG=en_US.utf8 + +if [ -f "/etc/sysconfig/console" ]; then + . /etc/sysconfig/console +else + LANG=en_US.UTF-8 +fi + +unset KEYMAP FONT UNICODE KEYMAP_CORRECTIONS LEGACY_CHARSET +export LANG diff --git a/config/profile.d/lang.sh b/config/profile.d/lang.sh new file mode 100644 index 0000000..5be62ad --- /dev/null +++ b/config/profile.d/lang.sh @@ -0,0 +1,90 @@ +# /etc/profile.d/lang.sh - set i18n stuff + +sourced=0 + +if [ -n "$LANG" ]; then + saved_lang="$LANG" + [ -f "$HOME/.i18n" ] && . "$HOME/.i18n" && sourced=1 + LANG="$saved_lang" + unset saved_lang +else + for langfile in /etc/sysconfig/i18n "$HOME/.i18n" ; do + [ -f $langfile ] && . $langfile && sourced=1 + done +fi + +if [ "$sourced" = 1 ]; then + [ -n "$LANG" ] && export LANG || unset LANG + [ -n "$LC_ADDRESS" ] && export LC_ADDRESS || unset LC_ADDRESS + [ -n "$LC_CTYPE" ] && export LC_CTYPE || unset LC_CTYPE + [ -n "$LC_COLLATE" ] && export LC_COLLATE || unset LC_COLLATE + [ -n "$LC_IDENTIFICATION" ] && export LC_IDENTIFICATION || unset LC_IDENTIFICATION + [ -n "$LC_MEASUREMENT" ] && export LC_MEASUREMENT || unset LC_MEASUREMENT + [ -n "$LC_MESSAGES" ] && export LC_MESSAGES || unset LC_MESSAGES + [ -n "$LC_MONETARY" ] && export LC_MONETARY || unset LC_MONETARY + [ -n "$LC_NAME" ] && export LC_NAME || unset LC_NAME + [ -n "$LC_NUMERIC" ] && export LC_NUMERIC || unset LC_NUMERIC + [ -n "$LC_PAPER" ] && export LC_PAPER || unset LC_PAPER + [ -n "$LC_TELEPHONE" ] && export LC_TELEPHONE || unset LC_TELEPHONE + [ -n "$LC_TIME" ] && export LC_TIME || unset LC_TIME + if [ -n "$LC_ALL" ]; then + if [ "$LC_ALL" != "$LANG" ]; then + export LC_ALL + else + unset LC_ALL + fi + else + unset LC_ALL + fi + [ -n "$LANGUAGE" ] && export LANGUAGE || unset LANGUAGE + [ -n "$LINGUAS" ] && export LINGUAS || unset LINGUAS + [ -n "$_XKB_CHARSET" ] && export _XKB_CHARSET || unset _XKB_CHARSET + + consoletype=$CONSOLETYPE + if [ -z "$consoletype" ]; then + consoletype=$(/sbin/consoletype stdout) + fi + + if [ -n "$LANG" ]; then + case $LANG in + *.utf8*|*.UTF-8*) + if [ "$TERM" = "linux" ]; then + if [ "$consoletype" = "vt" ]; then + case $LANG in + ja*) LANG=en_US.UTF-8 ;; + ko*) LANG=en_US.UTF-8 ;; + si*) LANG=en_US.UTF-8 ;; + zh*) LANG=en_US.UTF-8 ;; + ar*) LANG=en_US.UTF-8 ;; + fa*) LANG=en_US.UTF-8 ;; + he*) LANG=en_US.UTF-8 ;; + en_IN*) ;; + *_IN*) LANG=en_US.UTF-8 ;; + esac + fi + fi + ;; + *) + if [ "$TERM" = "linux" ]; then + if [ "$consoletype" = "vt" ]; then + case $LANG in + ja*) LANG=en_US ;; + ko*) LANG=en_US ;; + si*) LANG=en_US ;; + zh*) LANG=en_US ;; + ar*) LANG=en_US ;; + fa*) LANG=en_US ;; + he*) LANG=en_US ;; + en_IN*) ;; + *_IN*) LANG=en_US ;; + esac + fi + fi + ;; + esac + fi + + unset SYSFONTACM SYSFONT consoletype +fi +unset sourced +unset langfile diff --git a/config/profile.d/term256.sh b/config/profile.d/term256.sh new file mode 100644 index 0000000..546f67b --- /dev/null +++ b/config/profile.d/term256.sh @@ -0,0 +1,26 @@ +# Enable 256 color capabilities for appropriate terminals + +# Set this variable in your local shell config (such as ~/.bashrc) +# if you want remote xterms connecting to this system, to be sent 256 colors. +# This must be set before reading global initialization such as /etc/bashrc. +# SEND_256_COLORS_TO_REMOTE=1 + +# Terminals with any of the following set, support 256 colors (and are local) +local256="$COLORTERM$XTERM_VERSION$ROXTERM_ID$KONSOLE_DBUS_SESSION" + +if [ -n "$local256" ] || [ -n "$SEND_256_COLORS_TO_REMOTE" ]; then + + case "$TERM" in + 'xterm') TERM=xterm-256color;; + 'screen') TERM=screen-256color;; + 'Eterm') TERM=Eterm-256color;; + esac + export TERM + + if [ -n "$TERMCAP" ] && [ "$TERM" = "screen-256color" ]; then + TERMCAP=$(echo "$TERMCAP" | sed -e 's/Co#8/Co#256/g') + export TERMCAP + fi +fi + +unset local256 diff --git a/config/qos/makeqosscripts.pl b/config/qos/makeqosscripts.pl index 0b97b85..202bf4d 100644 --- a/config/qos/makeqosscripts.pl +++ b/config/qos/makeqosscripts.pl @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -76,6 +76,7 @@ $qossettings{'IMQ_DEV'} = 'imq0'; $qossettings{'TOS'} = ''; $qossettings{'VALID'} = 'yes'; $qossettings{'IMQ_MODE'} = 'PREROUTING'; +$qossettings{'QLENGTH'} = '1000';
&General::readhash("${General::swroot}/qos/settings", %qossettings);
@@ -165,6 +166,7 @@ case "$1" in #ip link set dev $qossettings{'RED_DEV'} mtu $qossettings{'MTU'}
### ADD HTB QDISC FOR $qossettings{'RED_DEV'} + tc qdisc del dev $qossettings{'RED_DEV'} root >/dev/null 2>&1 tc qdisc add dev $qossettings{'RED_DEV'} root handle 1: htb default $qossettings{'DEFCLASS_OUT'}
### MAIN RATE LIMIT @@ -223,7 +225,7 @@ foreach $classentry (sort @classes) if ($qossettings{'RED_DEV'} eq $classline[0]) { $qossettings{'DEVICE'} = $classline[0]; $qossettings{'CLASS'} = $classline[1]; - print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n"; + print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: fq_codel\n"; } } foreach $subclassentry (sort @subclasses) { @@ -231,7 +233,7 @@ foreach $subclassentry (sort @subclasses) { if ($qossettings{'RED_DEV'} eq $subclassline[0]) { $qossettings{'DEVICE'} = $subclassline[0]; $qossettings{'SCLASS'} = $subclassline[2]; - print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n"; + print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: fq_codel\n"; } } print "\n\t### FILTER TRAFFIC INTO CLASSES\n"; @@ -422,6 +424,7 @@ print <<END # ip link set dev $qossettings{'IMQ_DEV'} mtu $qossettings{'MTU'}
### ADD HTB QDISC FOR $qossettings{'IMQ_DEV'} + tc qdisc del dev $qossettings{'IMQ_DEV'} root >/dev/null 2>&1 tc qdisc add dev $qossettings{'IMQ_DEV'} root handle 2: htb default $qossettings{'DEFCLASS_INC'}
### MAIN RATE LIMIT @@ -480,7 +483,7 @@ foreach $classentry (sort @classes) if ($qossettings{'IMQ_DEV'} eq $classline[0]) { $qossettings{'DEVICE'} = $classline[0]; $qossettings{'CLASS'} = $classline[1]; - print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n"; + print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: fq_codel\n"; } } foreach $subclassentry (sort @subclasses) { @@ -488,7 +491,7 @@ foreach $subclassentry (sort @subclasses) { if ($qossettings{'IMQ_DEV'} eq $subclassline[0]) { $qossettings{'DEVICE'} = $subclassline[0]; $qossettings{'SCLASS'} = $subclassline[2]; - print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n"; + print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: fq_codel\n"; } } print "\n\t### FILTER TRAFFIC INTO CLASSES\n"; @@ -692,8 +695,9 @@ print <<END killall qosd >/dev/null 2>&1 (sleep 3 && killall -9 qosd &>/dev/null) & # DELETE QDISCS - tc qdisc del dev $qossettings{'RED_DEV'} root >/dev/null 2>&1 + tc qdisc add root dev $qossettings{'RED_DEV'} fq_codel >/dev/null 2>&1 tc qdisc del dev $qossettings{'IMQ_DEV'} root >/dev/null 2>&1 + tc qdisc add root dev $qossettings{'IMQ_DEV'} fq_codel >/dev/null 2>&1 # STOP IMQ-DEVICE ip link set $qossettings{'IMQ_DEV'} down >/dev/null 2>&1 iptables -t mangle --delete POSTROUTING -i $qossettings{'RED_DEV'} -p ah -j RETURN >/dev/null 2>&1 diff --git a/config/rootfiles/common/Crypt-PasswdMD5 b/config/rootfiles/common/Crypt-PasswdMD5 index 93df4cb..82c392d 100644 --- a/config/rootfiles/common/Crypt-PasswdMD5 +++ b/config/rootfiles/common/Crypt-PasswdMD5 @@ -1,6 +1,6 @@ #usr/lib/perl5/site_perl/5.12.3/Crypt usr/lib/perl5/site_perl/5.12.3/Crypt/PasswdMD5.pm -#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Crypt -#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Crypt/PasswdMD5 -#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Crypt/PasswdMD5/.packlist +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Crypt +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Crypt/PasswdMD5 +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Crypt/PasswdMD5/.packlist #usr/share/man/man3/Crypt::PasswdMD5.3 diff --git a/config/rootfiles/common/armv5tel/binutils b/config/rootfiles/common/armv5tel/binutils index 7ccfa4f..b3d281d 100644 --- a/config/rootfiles/common/armv5tel/binutils +++ b/config/rootfiles/common/armv5tel/binutils @@ -2,8 +2,10 @@ #usr/bin/ar #usr/bin/as #usr/bin/c++filt +#usr/bin/elfedit #usr/bin/gprof #usr/bin/ld +#usr/bin/ld.bfd #usr/bin/nm #usr/bin/objcopy #usr/bin/objdump @@ -18,13 +20,6 @@ #usr/include/dis-asm.h #usr/include/libiberty.h #usr/include/symcat.h -#usr/info/as.info -#usr/info/bfd.info -#usr/info/binutils.info -#usr/info/configure.info -#usr/info/gprof.info -#usr/info/ld.info -#usr/info/standards.info #usr/lib/ldscripts #usr/lib/ldscripts/armelf_linux_eabi.x #usr/lib/ldscripts/armelf_linux_eabi.xbn @@ -52,32 +47,38 @@ #usr/lib/ldscripts/armelfb_linux_eabi.xsw #usr/lib/ldscripts/armelfb_linux_eabi.xu #usr/lib/ldscripts/armelfb_linux_eabi.xw -#usr/lib/libbfd-2.18.so +usr/lib/libbfd-2.22.so #usr/lib/libbfd.a #usr/lib/libbfd.la #usr/lib/libbfd.so #usr/lib/libiberty.a -#usr/lib/libopcodes-2.18.so +usr/lib/libopcodes-2.22.so #usr/lib/libopcodes.a #usr/lib/libopcodes.la #usr/lib/libopcodes.so -#usr/man -#usr/man/man1 -#usr/man/man1/addr2line.1 -#usr/man/man1/ar.1 -#usr/man/man1/as.1 -#usr/man/man1/c++filt.1 -#usr/man/man1/dlltool.1 -#usr/man/man1/gprof.1 -#usr/man/man1/ld.1 -#usr/man/man1/nlmconv.1 -#usr/man/man1/nm.1 -#usr/man/man1/objcopy.1 -#usr/man/man1/objdump.1 -#usr/man/man1/ranlib.1 -#usr/man/man1/readelf.1 -#usr/man/man1/size.1 -#usr/man/man1/strings.1 -#usr/man/man1/strip.1 -#usr/man/man1/windmc.1 -#usr/man/man1/windres.1 +#usr/share/info/as.info +#usr/share/info/bfd.info +#usr/share/info/binutils.info +#usr/share/info/configure.info +#usr/share/info/gprof.info +#usr/share/info/ld.info +#usr/share/info/standards.info +#usr/share/man/man1/addr2line.1 +#usr/share/man/man1/ar.1 +#usr/share/man/man1/as.1 +#usr/share/man/man1/c++filt.1 +#usr/share/man/man1/dlltool.1 +#usr/share/man/man1/elfedit.1 +#usr/share/man/man1/gprof.1 +#usr/share/man/man1/ld.1 +#usr/share/man/man1/nlmconv.1 +#usr/share/man/man1/nm.1 +#usr/share/man/man1/objcopy.1 +#usr/share/man/man1/objdump.1 +#usr/share/man/man1/ranlib.1 +#usr/share/man/man1/readelf.1 +#usr/share/man/man1/size.1 +#usr/share/man/man1/strings.1 +#usr/share/man/man1/strip.1 +#usr/share/man/man1/windmc.1 +#usr/share/man/man1/windres.1 diff --git a/config/rootfiles/common/armv5tel/dracut b/config/rootfiles/common/armv5tel/dracut new file mode 100644 index 0000000..4d4ed18 --- /dev/null +++ b/config/rootfiles/common/armv5tel/dracut @@ -0,0 +1,65 @@ +#boot/ipfirerd-KVER-kirkwood.img +#boot/ipfirerd-KVER-omap.img +#boot/uInit-ipfire-kirkwood +#boot/uInit-ipfire-omap +etc/dracut.conf +etc/dracut.conf.d +#etc/dracut.conf.d/dracut.conf +sbin/dracut +sbin/dracut-catimages +sbin/dracut-gencmdline +sbin/lsinitrd +sbin/mkinitrd +sbin/switch_root +usr/share/dracut +usr/share/dracut/dracut-functions +usr/share/dracut/modules.d +usr/share/dracut/modules.d/60xen +usr/share/dracut/modules.d/60xen/check +usr/share/dracut/modules.d/60xen/install +usr/share/dracut/modules.d/60xen/installkernel +usr/share/dracut/modules.d/60xen/xen-pre-udev.sh +usr/share/dracut/modules.d/90kernel-modules +usr/share/dracut/modules.d/90kernel-modules/install +usr/share/dracut/modules.d/90kernel-modules/installkernel +usr/share/dracut/modules.d/90kernel-modules/parse-kernel.sh +usr/share/dracut/modules.d/95debug +usr/share/dracut/modules.d/95debug/check +usr/share/dracut/modules.d/95debug/install +usr/share/dracut/modules.d/95rootfs-block +usr/share/dracut/modules.d/95rootfs-block/block-genrules.sh +usr/share/dracut/modules.d/95rootfs-block/install +usr/share/dracut/modules.d/95rootfs-block/mount-root.sh +usr/share/dracut/modules.d/95rootfs-block/parse-block.sh +usr/share/dracut/modules.d/95terminfo +usr/share/dracut/modules.d/95terminfo/install +usr/share/dracut/modules.d/95udev-rules +usr/share/dracut/modules.d/95udev-rules/01-ignore.rules +usr/share/dracut/modules.d/95udev-rules/59-persistent-storage-volid.rules +usr/share/dracut/modules.d/95udev-rules/59-persistent-storage.rules +usr/share/dracut/modules.d/95udev-rules/61-persistent-storage.rules +usr/share/dracut/modules.d/95udev-rules/install +usr/share/dracut/modules.d/95udev-rules/load-modules.sh +usr/share/dracut/modules.d/98syslog +usr/share/dracut/modules.d/98syslog/README +usr/share/dracut/modules.d/98syslog/check +usr/share/dracut/modules.d/98syslog/install +usr/share/dracut/modules.d/98syslog/parse-syslog-opts.sh +usr/share/dracut/modules.d/98syslog/rsyslog.conf +usr/share/dracut/modules.d/98syslog/rsyslogd-start.sh +usr/share/dracut/modules.d/98syslog/rsyslogd-stop.sh +usr/share/dracut/modules.d/98syslog/syslog-cleanup.sh +usr/share/dracut/modules.d/98syslog/syslog-genrules.sh +usr/share/dracut/modules.d/99base +usr/share/dracut/modules.d/99base/check +usr/share/dracut/modules.d/99base/dracut-lib.sh +usr/share/dracut/modules.d/99base/init +usr/share/dracut/modules.d/99base/initqueue +usr/share/dracut/modules.d/99base/install +usr/share/dracut/modules.d/99base/loginit +usr/share/dracut/modules.d/99base/parse-blacklist.sh +usr/share/dracut/modules.d/99base/parse-root-opts.sh +#usr/share/man/man5/dracut.conf.5 +#usr/share/man/man8/dracut-catimages.8 +#usr/share/man/man8/dracut-gencmdline.8 +#usr/share/man/man8/dracut.8 diff --git a/config/rootfiles/common/armv5tel/gcc b/config/rootfiles/common/armv5tel/gcc index 2295ae9..ee9d800 100644 --- a/config/rootfiles/common/armv5tel/gcc +++ b/config/rootfiles/common/armv5tel/gcc @@ -2,7 +2,7 @@ #usr/bin/armv5tel-unknown-linux-gnueabi-c++ #usr/bin/armv5tel-unknown-linux-gnueabi-g++ #usr/bin/armv5tel-unknown-linux-gnueabi-gcc -#usr/bin/armv5tel-unknown-linux-gnueabi-gcc-4.1.2 +#usr/bin/armv5tel-unknown-linux-gnueabi-gcc-4.4.7 #usr/bin/c++ #usr/bin/cc #usr/bin/cpp @@ -11,545 +11,766 @@ #usr/bin/gccbug #usr/bin/gcov #usr/include/c++ -#usr/include/c++/4.1.2 -#usr/include/c++/4.1.2/algorithm -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/atomic_word.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/basic_file.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++allocator.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++config.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++io.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++locale.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/cpu_defines.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_base.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_inline.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_noninline.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/cxxabi_tweaks.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-default.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-posix.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-single.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-tpf.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/messages_members.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/os_defines.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch/O0g.gch -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch/O2g.gch -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/time_members.h -#usr/include/c++/4.1.2/backward -#usr/include/c++/4.1.2/backward/algo.h -#usr/include/c++/4.1.2/backward/algobase.h -#usr/include/c++/4.1.2/backward/alloc.h -#usr/include/c++/4.1.2/backward/backward_warning.h -#usr/include/c++/4.1.2/backward/bvector.h -#usr/include/c++/4.1.2/backward/complex.h -#usr/include/c++/4.1.2/backward/defalloc.h -#usr/include/c++/4.1.2/backward/deque.h -#usr/include/c++/4.1.2/backward/fstream.h -#usr/include/c++/4.1.2/backward/function.h -#usr/include/c++/4.1.2/backward/hash_map.h -#usr/include/c++/4.1.2/backward/hash_set.h -#usr/include/c++/4.1.2/backward/hashtable.h -#usr/include/c++/4.1.2/backward/heap.h -#usr/include/c++/4.1.2/backward/iomanip.h -#usr/include/c++/4.1.2/backward/iostream.h -#usr/include/c++/4.1.2/backward/istream.h -#usr/include/c++/4.1.2/backward/iterator.h -#usr/include/c++/4.1.2/backward/list.h -#usr/include/c++/4.1.2/backward/map.h -#usr/include/c++/4.1.2/backward/multimap.h -#usr/include/c++/4.1.2/backward/multiset.h -#usr/include/c++/4.1.2/backward/new.h -#usr/include/c++/4.1.2/backward/ostream.h -#usr/include/c++/4.1.2/backward/pair.h -#usr/include/c++/4.1.2/backward/queue.h -#usr/include/c++/4.1.2/backward/rope.h -#usr/include/c++/4.1.2/backward/set.h -#usr/include/c++/4.1.2/backward/slist.h -#usr/include/c++/4.1.2/backward/stack.h -#usr/include/c++/4.1.2/backward/stream.h -#usr/include/c++/4.1.2/backward/streambuf.h -#usr/include/c++/4.1.2/backward/strstream -#usr/include/c++/4.1.2/backward/tempbuf.h -#usr/include/c++/4.1.2/backward/tree.h -#usr/include/c++/4.1.2/backward/vector.h -#usr/include/c++/4.1.2/bits -#usr/include/c++/4.1.2/bits/allocator.h -#usr/include/c++/4.1.2/bits/atomicity.h -#usr/include/c++/4.1.2/bits/basic_ios.h -#usr/include/c++/4.1.2/bits/basic_ios.tcc -#usr/include/c++/4.1.2/bits/basic_string.h -#usr/include/c++/4.1.2/bits/basic_string.tcc -#usr/include/c++/4.1.2/bits/boost_concept_check.h -#usr/include/c++/4.1.2/bits/char_traits.h -#usr/include/c++/4.1.2/bits/cmath.tcc -#usr/include/c++/4.1.2/bits/codecvt.h -#usr/include/c++/4.1.2/bits/concept_check.h -#usr/include/c++/4.1.2/bits/concurrence.h -#usr/include/c++/4.1.2/bits/cpp_type_traits.h -#usr/include/c++/4.1.2/bits/deque.tcc -#usr/include/c++/4.1.2/bits/fstream.tcc -#usr/include/c++/4.1.2/bits/functexcept.h -#usr/include/c++/4.1.2/bits/gslice.h -#usr/include/c++/4.1.2/bits/gslice_array.h -#usr/include/c++/4.1.2/bits/indirect_array.h -#usr/include/c++/4.1.2/bits/ios_base.h -#usr/include/c++/4.1.2/bits/istream.tcc -#usr/include/c++/4.1.2/bits/list.tcc -#usr/include/c++/4.1.2/bits/locale_classes.h -#usr/include/c++/4.1.2/bits/locale_facets.h -#usr/include/c++/4.1.2/bits/locale_facets.tcc -#usr/include/c++/4.1.2/bits/localefwd.h -#usr/include/c++/4.1.2/bits/mask_array.h -#usr/include/c++/4.1.2/bits/ostream.tcc -#usr/include/c++/4.1.2/bits/postypes.h -#usr/include/c++/4.1.2/bits/slice_array.h -#usr/include/c++/4.1.2/bits/sstream.tcc -#usr/include/c++/4.1.2/bits/stl_algo.h -#usr/include/c++/4.1.2/bits/stl_algobase.h -#usr/include/c++/4.1.2/bits/stl_bvector.h -#usr/include/c++/4.1.2/bits/stl_construct.h -#usr/include/c++/4.1.2/bits/stl_deque.h -#usr/include/c++/4.1.2/bits/stl_function.h -#usr/include/c++/4.1.2/bits/stl_heap.h -#usr/include/c++/4.1.2/bits/stl_iterator.h -#usr/include/c++/4.1.2/bits/stl_iterator_base_funcs.h -#usr/include/c++/4.1.2/bits/stl_iterator_base_types.h -#usr/include/c++/4.1.2/bits/stl_list.h -#usr/include/c++/4.1.2/bits/stl_map.h -#usr/include/c++/4.1.2/bits/stl_multimap.h -#usr/include/c++/4.1.2/bits/stl_multiset.h -#usr/include/c++/4.1.2/bits/stl_numeric.h -#usr/include/c++/4.1.2/bits/stl_pair.h -#usr/include/c++/4.1.2/bits/stl_queue.h -#usr/include/c++/4.1.2/bits/stl_raw_storage_iter.h -#usr/include/c++/4.1.2/bits/stl_relops.h -#usr/include/c++/4.1.2/bits/stl_set.h -#usr/include/c++/4.1.2/bits/stl_stack.h -#usr/include/c++/4.1.2/bits/stl_tempbuf.h -#usr/include/c++/4.1.2/bits/stl_tree.h -#usr/include/c++/4.1.2/bits/stl_uninitialized.h -#usr/include/c++/4.1.2/bits/stl_vector.h -#usr/include/c++/4.1.2/bits/stream_iterator.h -#usr/include/c++/4.1.2/bits/streambuf.tcc -#usr/include/c++/4.1.2/bits/streambuf_iterator.h -#usr/include/c++/4.1.2/bits/stringfwd.h -#usr/include/c++/4.1.2/bits/valarray_after.h -#usr/include/c++/4.1.2/bits/valarray_array.h -#usr/include/c++/4.1.2/bits/valarray_array.tcc -#usr/include/c++/4.1.2/bits/valarray_before.h -#usr/include/c++/4.1.2/bits/vector.tcc -#usr/include/c++/4.1.2/bitset -#usr/include/c++/4.1.2/cassert -#usr/include/c++/4.1.2/cctype -#usr/include/c++/4.1.2/cerrno -#usr/include/c++/4.1.2/cfloat -#usr/include/c++/4.1.2/ciso646 -#usr/include/c++/4.1.2/climits -#usr/include/c++/4.1.2/clocale -#usr/include/c++/4.1.2/cmath -#usr/include/c++/4.1.2/complex -#usr/include/c++/4.1.2/csetjmp -#usr/include/c++/4.1.2/csignal -#usr/include/c++/4.1.2/cstdarg -#usr/include/c++/4.1.2/cstddef -#usr/include/c++/4.1.2/cstdio -#usr/include/c++/4.1.2/cstdlib -#usr/include/c++/4.1.2/cstring -#usr/include/c++/4.1.2/ctime -#usr/include/c++/4.1.2/cwchar -#usr/include/c++/4.1.2/cwctype -#usr/include/c++/4.1.2/cxxabi.h -#usr/include/c++/4.1.2/debug -#usr/include/c++/4.1.2/debug/bitset -#usr/include/c++/4.1.2/debug/debug.h -#usr/include/c++/4.1.2/debug/deque -#usr/include/c++/4.1.2/debug/formatter.h -#usr/include/c++/4.1.2/debug/functions.h -#usr/include/c++/4.1.2/debug/hash_map -#usr/include/c++/4.1.2/debug/hash_map.h -#usr/include/c++/4.1.2/debug/hash_multimap.h -#usr/include/c++/4.1.2/debug/hash_multiset.h -#usr/include/c++/4.1.2/debug/hash_set -#usr/include/c++/4.1.2/debug/hash_set.h -#usr/include/c++/4.1.2/debug/list -#usr/include/c++/4.1.2/debug/macros.h -#usr/include/c++/4.1.2/debug/map -#usr/include/c++/4.1.2/debug/map.h -#usr/include/c++/4.1.2/debug/multimap.h -#usr/include/c++/4.1.2/debug/multiset.h -#usr/include/c++/4.1.2/debug/safe_base.h -#usr/include/c++/4.1.2/debug/safe_iterator.h -#usr/include/c++/4.1.2/debug/safe_iterator.tcc -#usr/include/c++/4.1.2/debug/safe_sequence.h -#usr/include/c++/4.1.2/debug/set -#usr/include/c++/4.1.2/debug/set.h -#usr/include/c++/4.1.2/debug/string -#usr/include/c++/4.1.2/debug/vector -#usr/include/c++/4.1.2/deque -#usr/include/c++/4.1.2/exception -#usr/include/c++/4.1.2/exception_defines.h -#usr/include/c++/4.1.2/ext -#usr/include/c++/4.1.2/ext/algorithm -#usr/include/c++/4.1.2/ext/array_allocator.h -#usr/include/c++/4.1.2/ext/bitmap_allocator.h -#usr/include/c++/4.1.2/ext/codecvt_specializations.h -#usr/include/c++/4.1.2/ext/debug_allocator.h -#usr/include/c++/4.1.2/ext/functional -#usr/include/c++/4.1.2/ext/hash_fun.h -#usr/include/c++/4.1.2/ext/hash_map -#usr/include/c++/4.1.2/ext/hash_set -#usr/include/c++/4.1.2/ext/hashtable.h -#usr/include/c++/4.1.2/ext/iterator -#usr/include/c++/4.1.2/ext/malloc_allocator.h -#usr/include/c++/4.1.2/ext/memory -#usr/include/c++/4.1.2/ext/mt_allocator.h -#usr/include/c++/4.1.2/ext/new_allocator.h -#usr/include/c++/4.1.2/ext/numeric -#usr/include/c++/4.1.2/ext/pb_assoc -#usr/include/c++/4.1.2/ext/pb_assoc/assoc_cntnr.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/data_type.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail -#usr/include/c++/4.1.2/ext/pb_assoc/detail/assoc_cntnr_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cond_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ds_trait_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_types_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/lu_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/map_debug_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/mapping_level_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_category_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_trait_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/order_statistics_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/node.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/size_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/node.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_policies.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_sizes.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/type_utils.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_append.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_apply.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_at_index.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_contains.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_filter.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_transform.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/types_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/ds_trait.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/exception.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/hash_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/lu_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/ms_trait.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/tree_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/trivial_iterator_def.hpp -#usr/include/c++/4.1.2/ext/pod_char_traits.h -#usr/include/c++/4.1.2/ext/pool_allocator.h -#usr/include/c++/4.1.2/ext/rb_tree -#usr/include/c++/4.1.2/ext/rc_string_base.h -#usr/include/c++/4.1.2/ext/rope -#usr/include/c++/4.1.2/ext/ropeimpl.h -#usr/include/c++/4.1.2/ext/slist -#usr/include/c++/4.1.2/ext/sso_string_base.h -#usr/include/c++/4.1.2/ext/stdio_filebuf.h -#usr/include/c++/4.1.2/ext/stdio_sync_filebuf.h -#usr/include/c++/4.1.2/ext/typelist.h -#usr/include/c++/4.1.2/ext/vstring.h -#usr/include/c++/4.1.2/ext/vstring.tcc -#usr/include/c++/4.1.2/ext/vstring_fwd.h -#usr/include/c++/4.1.2/ext/vstring_util.h -#usr/include/c++/4.1.2/fstream -#usr/include/c++/4.1.2/functional -#usr/include/c++/4.1.2/iomanip -#usr/include/c++/4.1.2/ios -#usr/include/c++/4.1.2/iosfwd -#usr/include/c++/4.1.2/iostream -#usr/include/c++/4.1.2/istream -#usr/include/c++/4.1.2/iterator -#usr/include/c++/4.1.2/limits -#usr/include/c++/4.1.2/list -#usr/include/c++/4.1.2/locale -#usr/include/c++/4.1.2/map -#usr/include/c++/4.1.2/memory -#usr/include/c++/4.1.2/new -#usr/include/c++/4.1.2/numeric -#usr/include/c++/4.1.2/ostream -#usr/include/c++/4.1.2/queue -#usr/include/c++/4.1.2/set -#usr/include/c++/4.1.2/sstream -#usr/include/c++/4.1.2/stack -#usr/include/c++/4.1.2/stdexcept -#usr/include/c++/4.1.2/streambuf -#usr/include/c++/4.1.2/string -#usr/include/c++/4.1.2/tr1 -#usr/include/c++/4.1.2/tr1/array -#usr/include/c++/4.1.2/tr1/bind_iterate.h -#usr/include/c++/4.1.2/tr1/bind_repeat.h -#usr/include/c++/4.1.2/tr1/boost_shared_ptr.h -#usr/include/c++/4.1.2/tr1/functional -#usr/include/c++/4.1.2/tr1/functional_iterate.h -#usr/include/c++/4.1.2/tr1/hashtable -#usr/include/c++/4.1.2/tr1/memory -#usr/include/c++/4.1.2/tr1/mu_iterate.h -#usr/include/c++/4.1.2/tr1/ref_fwd.h -#usr/include/c++/4.1.2/tr1/ref_wrap_iterate.h -#usr/include/c++/4.1.2/tr1/repeat.h -#usr/include/c++/4.1.2/tr1/tuple -#usr/include/c++/4.1.2/tr1/tuple_iterate.h -#usr/include/c++/4.1.2/tr1/type_traits -#usr/include/c++/4.1.2/tr1/type_traits_fwd.h -#usr/include/c++/4.1.2/tr1/unordered_map -#usr/include/c++/4.1.2/tr1/unordered_set -#usr/include/c++/4.1.2/tr1/utility -#usr/include/c++/4.1.2/typeinfo -#usr/include/c++/4.1.2/utility -#usr/include/c++/4.1.2/valarray -#usr/include/c++/4.1.2/vector +#usr/include/c++/4.4.7 +#usr/include/c++/4.4.7/algorithm +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/atomic_word.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/basic_file.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++allocator.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++config.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++io.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++locale.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/cpu_defines.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_base.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_inline.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_noninline.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/cxxabi_tweaks.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/error_constants.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/extc++.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-default.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-posix.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-single.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-tpf.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/messages_members.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/os_defines.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/stdc++.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/stdtr1c++.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/time_members.h +#usr/include/c++/4.4.7/array +#usr/include/c++/4.4.7/backward +#usr/include/c++/4.4.7/backward/auto_ptr.h +#usr/include/c++/4.4.7/backward/backward_warning.h +#usr/include/c++/4.4.7/backward/binders.h +#usr/include/c++/4.4.7/backward/hash_fun.h +#usr/include/c++/4.4.7/backward/hash_map +#usr/include/c++/4.4.7/backward/hash_set +#usr/include/c++/4.4.7/backward/hashtable.h +#usr/include/c++/4.4.7/backward/strstream +#usr/include/c++/4.4.7/bits +#usr/include/c++/4.4.7/bits/algorithmfwd.h +#usr/include/c++/4.4.7/bits/allocator.h +#usr/include/c++/4.4.7/bits/atomic_0.h +#usr/include/c++/4.4.7/bits/atomic_2.h +#usr/include/c++/4.4.7/bits/atomicfwd_c.h +#usr/include/c++/4.4.7/bits/atomicfwd_cxx.h +#usr/include/c++/4.4.7/bits/basic_ios.h +#usr/include/c++/4.4.7/bits/basic_ios.tcc +#usr/include/c++/4.4.7/bits/basic_string.h +#usr/include/c++/4.4.7/bits/basic_string.tcc +#usr/include/c++/4.4.7/bits/boost_concept_check.h +#usr/include/c++/4.4.7/bits/char_traits.h +#usr/include/c++/4.4.7/bits/cmath.tcc +#usr/include/c++/4.4.7/bits/codecvt.h +#usr/include/c++/4.4.7/bits/concept_check.h +#usr/include/c++/4.4.7/bits/cpp_type_traits.h +#usr/include/c++/4.4.7/bits/deque.tcc +#usr/include/c++/4.4.7/bits/forward_list.h +#usr/include/c++/4.4.7/bits/forward_list.tcc +#usr/include/c++/4.4.7/bits/fstream.tcc +#usr/include/c++/4.4.7/bits/functexcept.h +#usr/include/c++/4.4.7/bits/functional_hash.h +#usr/include/c++/4.4.7/bits/gslice.h +#usr/include/c++/4.4.7/bits/gslice_array.h +#usr/include/c++/4.4.7/bits/hashtable.h +#usr/include/c++/4.4.7/bits/indirect_array.h +#usr/include/c++/4.4.7/bits/ios_base.h +#usr/include/c++/4.4.7/bits/istream.tcc +#usr/include/c++/4.4.7/bits/list.tcc +#usr/include/c++/4.4.7/bits/locale_classes.h +#usr/include/c++/4.4.7/bits/locale_classes.tcc +#usr/include/c++/4.4.7/bits/locale_facets.h +#usr/include/c++/4.4.7/bits/locale_facets.tcc +#usr/include/c++/4.4.7/bits/locale_facets_nonio.h +#usr/include/c++/4.4.7/bits/locale_facets_nonio.tcc +#usr/include/c++/4.4.7/bits/localefwd.h +#usr/include/c++/4.4.7/bits/mask_array.h +#usr/include/c++/4.4.7/bits/move.h +#usr/include/c++/4.4.7/bits/ostream.tcc +#usr/include/c++/4.4.7/bits/ostream_insert.h +#usr/include/c++/4.4.7/bits/postypes.h +#usr/include/c++/4.4.7/bits/shared_ptr.h +#usr/include/c++/4.4.7/bits/slice_array.h +#usr/include/c++/4.4.7/bits/sstream.tcc +#usr/include/c++/4.4.7/bits/stl_algo.h +#usr/include/c++/4.4.7/bits/stl_algobase.h +#usr/include/c++/4.4.7/bits/stl_bvector.h +#usr/include/c++/4.4.7/bits/stl_construct.h +#usr/include/c++/4.4.7/bits/stl_deque.h +#usr/include/c++/4.4.7/bits/stl_function.h +#usr/include/c++/4.4.7/bits/stl_heap.h +#usr/include/c++/4.4.7/bits/stl_iterator.h +#usr/include/c++/4.4.7/bits/stl_iterator_base_funcs.h +#usr/include/c++/4.4.7/bits/stl_iterator_base_types.h +#usr/include/c++/4.4.7/bits/stl_list.h +#usr/include/c++/4.4.7/bits/stl_map.h +#usr/include/c++/4.4.7/bits/stl_multimap.h +#usr/include/c++/4.4.7/bits/stl_multiset.h +#usr/include/c++/4.4.7/bits/stl_numeric.h +#usr/include/c++/4.4.7/bits/stl_pair.h +#usr/include/c++/4.4.7/bits/stl_queue.h +#usr/include/c++/4.4.7/bits/stl_raw_storage_iter.h +#usr/include/c++/4.4.7/bits/stl_relops.h +#usr/include/c++/4.4.7/bits/stl_set.h +#usr/include/c++/4.4.7/bits/stl_stack.h +#usr/include/c++/4.4.7/bits/stl_tempbuf.h +#usr/include/c++/4.4.7/bits/stl_tree.h +#usr/include/c++/4.4.7/bits/stl_uninitialized.h +#usr/include/c++/4.4.7/bits/stl_vector.h +#usr/include/c++/4.4.7/bits/stream_iterator.h +#usr/include/c++/4.4.7/bits/streambuf.tcc +#usr/include/c++/4.4.7/bits/streambuf_iterator.h +#usr/include/c++/4.4.7/bits/stringfwd.h +#usr/include/c++/4.4.7/bits/unique_ptr.h +#usr/include/c++/4.4.7/bits/valarray_after.h +#usr/include/c++/4.4.7/bits/valarray_array.h +#usr/include/c++/4.4.7/bits/valarray_array.tcc +#usr/include/c++/4.4.7/bits/valarray_before.h +#usr/include/c++/4.4.7/bits/vector.tcc +#usr/include/c++/4.4.7/bitset +#usr/include/c++/4.4.7/c++0x_warning.h +#usr/include/c++/4.4.7/cassert +#usr/include/c++/4.4.7/ccomplex +#usr/include/c++/4.4.7/cctype +#usr/include/c++/4.4.7/cerrno +#usr/include/c++/4.4.7/cfenv +#usr/include/c++/4.4.7/cfloat +#usr/include/c++/4.4.7/chrono +#usr/include/c++/4.4.7/cinttypes +#usr/include/c++/4.4.7/ciso646 +#usr/include/c++/4.4.7/climits +#usr/include/c++/4.4.7/clocale +#usr/include/c++/4.4.7/cmath +#usr/include/c++/4.4.7/complex +#usr/include/c++/4.4.7/complex.h +#usr/include/c++/4.4.7/condition_variable +#usr/include/c++/4.4.7/csetjmp +#usr/include/c++/4.4.7/csignal +#usr/include/c++/4.4.7/cstdarg +#usr/include/c++/4.4.7/cstdatomic +#usr/include/c++/4.4.7/cstdbool +#usr/include/c++/4.4.7/cstddef +#usr/include/c++/4.4.7/cstdint +#usr/include/c++/4.4.7/cstdio +#usr/include/c++/4.4.7/cstdlib +#usr/include/c++/4.4.7/cstring +#usr/include/c++/4.4.7/ctgmath +#usr/include/c++/4.4.7/ctime +#usr/include/c++/4.4.7/cwchar +#usr/include/c++/4.4.7/cwctype +#usr/include/c++/4.4.7/cxxabi-forced.h +#usr/include/c++/4.4.7/cxxabi.h +#usr/include/c++/4.4.7/debug +#usr/include/c++/4.4.7/debug/bitset +#usr/include/c++/4.4.7/debug/debug.h +#usr/include/c++/4.4.7/debug/deque +#usr/include/c++/4.4.7/debug/formatter.h +#usr/include/c++/4.4.7/debug/functions.h +#usr/include/c++/4.4.7/debug/list +#usr/include/c++/4.4.7/debug/macros.h +#usr/include/c++/4.4.7/debug/map +#usr/include/c++/4.4.7/debug/map.h +#usr/include/c++/4.4.7/debug/multimap.h +#usr/include/c++/4.4.7/debug/multiset.h +#usr/include/c++/4.4.7/debug/safe_base.h +#usr/include/c++/4.4.7/debug/safe_iterator.h +#usr/include/c++/4.4.7/debug/safe_iterator.tcc +#usr/include/c++/4.4.7/debug/safe_sequence.h +#usr/include/c++/4.4.7/debug/set +#usr/include/c++/4.4.7/debug/set.h +#usr/include/c++/4.4.7/debug/string +#usr/include/c++/4.4.7/debug/unordered_map +#usr/include/c++/4.4.7/debug/unordered_set +#usr/include/c++/4.4.7/debug/vector +#usr/include/c++/4.4.7/deque +#usr/include/c++/4.4.7/exception +#usr/include/c++/4.4.7/exception_defines.h +#usr/include/c++/4.4.7/exception_ptr.h +#usr/include/c++/4.4.7/ext +#usr/include/c++/4.4.7/ext/algorithm +#usr/include/c++/4.4.7/ext/array_allocator.h +#usr/include/c++/4.4.7/ext/atomicity.h +#usr/include/c++/4.4.7/ext/bitmap_allocator.h +#usr/include/c++/4.4.7/ext/cast.h +#usr/include/c++/4.4.7/ext/codecvt_specializations.h +#usr/include/c++/4.4.7/ext/concurrence.h +#usr/include/c++/4.4.7/ext/debug_allocator.h +#usr/include/c++/4.4.7/ext/enc_filebuf.h +#usr/include/c++/4.4.7/ext/extptr_allocator.h +#usr/include/c++/4.4.7/ext/functional +#usr/include/c++/4.4.7/ext/hash_map +#usr/include/c++/4.4.7/ext/hash_set +#usr/include/c++/4.4.7/ext/iterator +#usr/include/c++/4.4.7/ext/malloc_allocator.h +#usr/include/c++/4.4.7/ext/memory +#usr/include/c++/4.4.7/ext/mt_allocator.h +#usr/include/c++/4.4.7/ext/new_allocator.h +#usr/include/c++/4.4.7/ext/numeric +#usr/include/c++/4.4.7/ext/numeric_traits.h +#usr/include/c++/4.4.7/ext/pb_ds +#usr/include/c++/4.4.7/ext/pb_ds/assoc_container.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_types.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_pred.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/resize_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cond_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/container_base_dispatch.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/debug_map_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/eq_by_less.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/lu_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/child_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/head.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/internal_node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/leaf.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/point_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/priority_queue_base_dispatch.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_trace_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/type_utils.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/types_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/exception.hpp +#usr/include/c++/4.4.7/ext/pb_ds/hash_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/list_update_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/priority_queue.hpp +#usr/include/c++/4.4.7/ext/pb_ds/tag_and_trait.hpp +#usr/include/c++/4.4.7/ext/pb_ds/tree_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/trie_policy.hpp +#usr/include/c++/4.4.7/ext/pod_char_traits.h +#usr/include/c++/4.4.7/ext/pointer.h +#usr/include/c++/4.4.7/ext/pool_allocator.h +#usr/include/c++/4.4.7/ext/rb_tree +#usr/include/c++/4.4.7/ext/rc_string_base.h +#usr/include/c++/4.4.7/ext/rope +#usr/include/c++/4.4.7/ext/ropeimpl.h +#usr/include/c++/4.4.7/ext/slist +#usr/include/c++/4.4.7/ext/sso_string_base.h +#usr/include/c++/4.4.7/ext/stdio_filebuf.h +#usr/include/c++/4.4.7/ext/stdio_sync_filebuf.h +#usr/include/c++/4.4.7/ext/string_conversions.h +#usr/include/c++/4.4.7/ext/throw_allocator.h +#usr/include/c++/4.4.7/ext/type_traits.h +#usr/include/c++/4.4.7/ext/typelist.h +#usr/include/c++/4.4.7/ext/vstring.h +#usr/include/c++/4.4.7/ext/vstring.tcc +#usr/include/c++/4.4.7/ext/vstring_fwd.h +#usr/include/c++/4.4.7/ext/vstring_util.h +#usr/include/c++/4.4.7/fenv.h +#usr/include/c++/4.4.7/forward_list +#usr/include/c++/4.4.7/fstream +#usr/include/c++/4.4.7/functional +#usr/include/c++/4.4.7/initializer_list +#usr/include/c++/4.4.7/iomanip +#usr/include/c++/4.4.7/ios +#usr/include/c++/4.4.7/iosfwd +#usr/include/c++/4.4.7/iostream +#usr/include/c++/4.4.7/istream +#usr/include/c++/4.4.7/iterator +#usr/include/c++/4.4.7/limits +#usr/include/c++/4.4.7/list +#usr/include/c++/4.4.7/locale +#usr/include/c++/4.4.7/map +#usr/include/c++/4.4.7/memory +#usr/include/c++/4.4.7/mutex +#usr/include/c++/4.4.7/new +#usr/include/c++/4.4.7/numeric +#usr/include/c++/4.4.7/ostream +#usr/include/c++/4.4.7/parallel +#usr/include/c++/4.4.7/parallel/algo.h +#usr/include/c++/4.4.7/parallel/algobase.h +#usr/include/c++/4.4.7/parallel/algorithm +#usr/include/c++/4.4.7/parallel/algorithmfwd.h +#usr/include/c++/4.4.7/parallel/balanced_quicksort.h +#usr/include/c++/4.4.7/parallel/base.h +#usr/include/c++/4.4.7/parallel/basic_iterator.h +#usr/include/c++/4.4.7/parallel/checkers.h +#usr/include/c++/4.4.7/parallel/compatibility.h +#usr/include/c++/4.4.7/parallel/compiletime_settings.h +#usr/include/c++/4.4.7/parallel/equally_split.h +#usr/include/c++/4.4.7/parallel/features.h +#usr/include/c++/4.4.7/parallel/find.h +#usr/include/c++/4.4.7/parallel/find_selectors.h +#usr/include/c++/4.4.7/parallel/for_each.h +#usr/include/c++/4.4.7/parallel/for_each_selectors.h +#usr/include/c++/4.4.7/parallel/iterator.h +#usr/include/c++/4.4.7/parallel/list_partition.h +#usr/include/c++/4.4.7/parallel/losertree.h +#usr/include/c++/4.4.7/parallel/merge.h +#usr/include/c++/4.4.7/parallel/multiseq_selection.h +#usr/include/c++/4.4.7/parallel/multiway_merge.h +#usr/include/c++/4.4.7/parallel/multiway_mergesort.h +#usr/include/c++/4.4.7/parallel/numeric +#usr/include/c++/4.4.7/parallel/numericfwd.h +#usr/include/c++/4.4.7/parallel/omp_loop.h +#usr/include/c++/4.4.7/parallel/omp_loop_static.h +#usr/include/c++/4.4.7/parallel/par_loop.h +#usr/include/c++/4.4.7/parallel/parallel.h +#usr/include/c++/4.4.7/parallel/partial_sum.h +#usr/include/c++/4.4.7/parallel/partition.h +#usr/include/c++/4.4.7/parallel/queue.h +#usr/include/c++/4.4.7/parallel/quicksort.h +#usr/include/c++/4.4.7/parallel/random_number.h +#usr/include/c++/4.4.7/parallel/random_shuffle.h +#usr/include/c++/4.4.7/parallel/search.h +#usr/include/c++/4.4.7/parallel/set_operations.h +#usr/include/c++/4.4.7/parallel/settings.h +#usr/include/c++/4.4.7/parallel/sort.h +#usr/include/c++/4.4.7/parallel/tags.h +#usr/include/c++/4.4.7/parallel/types.h +#usr/include/c++/4.4.7/parallel/unique_copy.h +#usr/include/c++/4.4.7/parallel/workstealing.h +#usr/include/c++/4.4.7/queue +#usr/include/c++/4.4.7/random +#usr/include/c++/4.4.7/ratio +#usr/include/c++/4.4.7/regex +#usr/include/c++/4.4.7/set +#usr/include/c++/4.4.7/sstream +#usr/include/c++/4.4.7/stack +#usr/include/c++/4.4.7/stdatomic.h +#usr/include/c++/4.4.7/stdexcept +#usr/include/c++/4.4.7/streambuf +#usr/include/c++/4.4.7/string +#usr/include/c++/4.4.7/system_error +#usr/include/c++/4.4.7/tgmath.h +#usr/include/c++/4.4.7/thread +#usr/include/c++/4.4.7/tr1 +#usr/include/c++/4.4.7/tr1/array +#usr/include/c++/4.4.7/tr1/bessel_function.tcc +#usr/include/c++/4.4.7/tr1/beta_function.tcc +#usr/include/c++/4.4.7/tr1/ccomplex +#usr/include/c++/4.4.7/tr1/cctype +#usr/include/c++/4.4.7/tr1/cfenv +#usr/include/c++/4.4.7/tr1/cfloat +#usr/include/c++/4.4.7/tr1/cinttypes +#usr/include/c++/4.4.7/tr1/climits +#usr/include/c++/4.4.7/tr1/cmath +#usr/include/c++/4.4.7/tr1/complex +#usr/include/c++/4.4.7/tr1/complex.h +#usr/include/c++/4.4.7/tr1/cstdarg +#usr/include/c++/4.4.7/tr1/cstdbool +#usr/include/c++/4.4.7/tr1/cstdint +#usr/include/c++/4.4.7/tr1/cstdio +#usr/include/c++/4.4.7/tr1/cstdlib +#usr/include/c++/4.4.7/tr1/ctgmath +#usr/include/c++/4.4.7/tr1/ctime +#usr/include/c++/4.4.7/tr1/ctype.h +#usr/include/c++/4.4.7/tr1/cwchar +#usr/include/c++/4.4.7/tr1/cwctype +#usr/include/c++/4.4.7/tr1/ell_integral.tcc +#usr/include/c++/4.4.7/tr1/exp_integral.tcc +#usr/include/c++/4.4.7/tr1/fenv.h +#usr/include/c++/4.4.7/tr1/float.h +#usr/include/c++/4.4.7/tr1/functional +#usr/include/c++/4.4.7/tr1/functional_hash.h +#usr/include/c++/4.4.7/tr1/gamma.tcc +#usr/include/c++/4.4.7/tr1/hashtable.h +#usr/include/c++/4.4.7/tr1/hypergeometric.tcc +#usr/include/c++/4.4.7/tr1/inttypes.h +#usr/include/c++/4.4.7/tr1/legendre_function.tcc +#usr/include/c++/4.4.7/tr1/limits.h +#usr/include/c++/4.4.7/tr1/math.h +#usr/include/c++/4.4.7/tr1/memory +#usr/include/c++/4.4.7/tr1/modified_bessel_func.tcc +#usr/include/c++/4.4.7/tr1/poly_hermite.tcc +#usr/include/c++/4.4.7/tr1/poly_laguerre.tcc +#usr/include/c++/4.4.7/tr1/random +#usr/include/c++/4.4.7/tr1/regex +#usr/include/c++/4.4.7/tr1/riemann_zeta.tcc +#usr/include/c++/4.4.7/tr1/shared_ptr.h +#usr/include/c++/4.4.7/tr1/special_function_util.h +#usr/include/c++/4.4.7/tr1/stdarg.h +#usr/include/c++/4.4.7/tr1/stdbool.h +#usr/include/c++/4.4.7/tr1/stdint.h +#usr/include/c++/4.4.7/tr1/stdio.h +#usr/include/c++/4.4.7/tr1/stdlib.h +#usr/include/c++/4.4.7/tr1/tgmath.h +#usr/include/c++/4.4.7/tr1/tuple +#usr/include/c++/4.4.7/tr1/type_traits +#usr/include/c++/4.4.7/tr1/unordered_map +#usr/include/c++/4.4.7/tr1/unordered_set +#usr/include/c++/4.4.7/tr1/utility +#usr/include/c++/4.4.7/tr1/wchar.h +#usr/include/c++/4.4.7/tr1/wctype.h +#usr/include/c++/4.4.7/tr1_impl +#usr/include/c++/4.4.7/tr1_impl/array +#usr/include/c++/4.4.7/tr1_impl/boost_sp_counted_base.h +#usr/include/c++/4.4.7/tr1_impl/cctype +#usr/include/c++/4.4.7/tr1_impl/cfenv +#usr/include/c++/4.4.7/tr1_impl/cinttypes +#usr/include/c++/4.4.7/tr1_impl/cmath +#usr/include/c++/4.4.7/tr1_impl/complex +#usr/include/c++/4.4.7/tr1_impl/cstdint +#usr/include/c++/4.4.7/tr1_impl/cstdio +#usr/include/c++/4.4.7/tr1_impl/cstdlib +#usr/include/c++/4.4.7/tr1_impl/cwchar +#usr/include/c++/4.4.7/tr1_impl/cwctype +#usr/include/c++/4.4.7/tr1_impl/functional +#usr/include/c++/4.4.7/tr1_impl/functional_hash.h +#usr/include/c++/4.4.7/tr1_impl/hashtable +#usr/include/c++/4.4.7/tr1_impl/hashtable_policy.h +#usr/include/c++/4.4.7/tr1_impl/random +#usr/include/c++/4.4.7/tr1_impl/random.tcc +#usr/include/c++/4.4.7/tr1_impl/regex +#usr/include/c++/4.4.7/tr1_impl/type_traits +#usr/include/c++/4.4.7/tr1_impl/unordered_map +#usr/include/c++/4.4.7/tr1_impl/unordered_set +#usr/include/c++/4.4.7/tr1_impl/utility +#usr/include/c++/4.4.7/tuple +#usr/include/c++/4.4.7/type_traits +#usr/include/c++/4.4.7/typeinfo +#usr/include/c++/4.4.7/unordered_map +#usr/include/c++/4.4.7/unordered_set +#usr/include/c++/4.4.7/utility +#usr/include/c++/4.4.7/valarray +#usr/include/c++/4.4.7/vector +#usr/info #usr/info/cpp.info #usr/info/cppinternals.info +#usr/info/dir #usr/info/gcc.info #usr/info/gccinstall.info #usr/info/gccint.info +#usr/info/libgomp.info #usr/lib/gcc #usr/lib/gcc/armv5tel-unknown-linux-gnueabi -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2 -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/cc1 -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/cc1plus -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/collect2 -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbegin.o -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbeginS.o -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbeginT.o -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtend.o -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtendS.o -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/README -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/float.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/iso646.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/limits.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/mmintrin.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stdarg.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stdbool.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stddef.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/syslimits.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/unwind.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/varargs.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/fixinc.sh -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/fixincl -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/gsyslimits.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/README -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/float.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/iso646.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/limits.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/mmintrin.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stdarg.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stdbool.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stddef.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/unwind.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/varargs.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/macro_list -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/mkheaders -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/mkheaders.conf -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcc.a -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcc_eh.a -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcov.a +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7 +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/cc1 +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/cc1plus +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/collect2 +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbegin.o +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbeginS.o +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbeginT.o +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtend.o +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtendS.o +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/finclude +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/README +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/limits.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/syslimits.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/arm_neon.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/float.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/iso646.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/mf-runtime.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/mmintrin.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/omp.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/ssp.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/stdio.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/string.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/unistd.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdarg.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdbool.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stddef.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdfix.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/unwind.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/varargs.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixinc.sh +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixinc_list +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixincl +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/gsyslimits.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include/README +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include/limits.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/macro_list +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkheaders +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkheaders.conf +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkinstalldirs +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcc.a +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcc_eh.a +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcov.a +#usr/lib/libgomp.a +#usr/lib/libgomp.la +#usr/lib/libgomp.so +usr/lib/libgomp.so.1 +usr/lib/libgomp.so.1.0.0 +#usr/lib/libgomp.spec +#usr/lib/libmudflap.a +#usr/lib/libmudflap.la +#usr/lib/libmudflap.so +usr/lib/libmudflap.so.0 +usr/lib/libmudflap.so.0.0.0 +#usr/lib/libmudflapth.a +#usr/lib/libmudflapth.la +#usr/lib/libmudflapth.so +usr/lib/libmudflapth.so.0 +usr/lib/libmudflapth.so.0.0.0 +#usr/lib/libssp.a +#usr/lib/libssp.la +#usr/lib/libssp.so +usr/lib/libssp.so.0 +usr/lib/libssp.so.0.0.0 +#usr/lib/libssp_nonshared.a +#usr/lib/libssp_nonshared.la #usr/lib/libstdc++.a -#usr/lib/libstdc++.la -#usr/lib/libstdc++.so -usr/lib/libstdc++.so.6 -usr/lib/libstdc++.so.6.0.8 +usr/lib/libstdc++.so.6.0.13 #usr/lib/libsupc++.a #usr/lib/libsupc++.la +#usr/man +#usr/man/man1 #usr/man/man1/cpp.1 #usr/man/man1/g++.1 #usr/man/man1/gcc.1 diff --git a/config/rootfiles/common/armv5tel/glibc b/config/rootfiles/common/armv5tel/glibc index 2393ff2..42ae490 100644 --- a/config/rootfiles/common/armv5tel/glibc +++ b/config/rootfiles/common/armv5tel/glibc @@ -1,44 +1,48 @@ -#etc/rpc -lib/ld-2.5.so +#etc/ld.so.cache +etc/localtime +etc/rpc +lib/ld-2.12.so lib/ld-linux.so.3 -lib/libBrokenLocale-2.5.so -#lib/libBrokenLocale.so.1 +lib/libBrokenLocale-2.12.so +lib/libBrokenLocale.so.1 #lib/libSegFault.so -lib/libanl-2.5.so -#lib/libanl.so.1 -lib/libc-2.5.so +lib/libanl-2.12.so +lib/libanl.so.1 +lib/libc-2.12.so lib/libc.so.6 -lib/libcrypt-2.5.so +lib/libcidn-2.12.so +lib/libcidn.so.1 +lib/libcrypt-2.12.so lib/libcrypt.so.1 -lib/libdl-2.5.so +lib/libdl-2.12.so lib/libdl.so.2 -lib/libm-2.5.so +lib/libm-2.12.so lib/libm.so.6 #lib/libmemusage.so -lib/libnsl-2.5.so +lib/libnsl-2.12.so lib/libnsl.so.1 -lib/libnss_compat-2.5.so +lib/libnss_compat-2.12.so lib/libnss_compat.so.2 -lib/libnss_dns-2.5.so +lib/libnss_dns-2.12.so lib/libnss_dns.so.2 -lib/libnss_files-2.5.so +lib/libnss_files-2.12.so lib/libnss_files.so.2 -lib/libnss_hesiod-2.5.so -#lib/libnss_hesiod.so.2 -lib/libnss_nis-2.5.so -#lib/libnss_nis.so.2 -lib/libnss_nisplus-2.5.so -#lib/libnss_nisplus.so.2 +lib/libnss_hesiod-2.12.so +lib/libnss_hesiod.so.2 +lib/libnss_nis-2.12.so +lib/libnss_nis.so.2 +lib/libnss_nisplus-2.12.so +lib/libnss_nisplus.so.2 #lib/libpcprofile.so -lib/libpthread-2.5.so +lib/libpthread-2.12.so lib/libpthread.so.0 -lib/libresolv-2.5.so +lib/libresolv-2.12.so lib/libresolv.so.2 -lib/librt-2.5.so +lib/librt-2.12.so lib/librt.so.1 -#lib/libthread_db-1.0.so -#lib/libthread_db.so.1 -lib/libutil-2.5.so +lib/libthread_db-1.0.so +lib/libthread_db.so.1 +lib/libutil-2.12.so lib/libutil.so.1 sbin/ldconfig #sbin/sln @@ -83,7 +87,9 @@ usr/bin/ldd #usr/include/bits/endian.h #usr/include/bits/environments.h #usr/include/bits/errno.h +#usr/include/bits/error.h #usr/include/bits/fcntl.h +#usr/include/bits/fcntl2.h #usr/include/bits/fenv.h #usr/include/bits/fenvinline.h #usr/include/bits/huge_val.h @@ -107,6 +113,7 @@ usr/bin/ldd #usr/include/bits/mman.h #usr/include/bits/monetary-ldbl.h #usr/include/bits/mqueue.h +#usr/include/bits/mqueue2.h #usr/include/bits/msq.h #usr/include/bits/nan.h #usr/include/bits/netdb.h @@ -122,6 +129,7 @@ usr/bin/ldd #usr/include/bits/sem.h #usr/include/bits/semaphore.h #usr/include/bits/setjmp.h +#usr/include/bits/setjmp2.h #usr/include/bits/shm.h #usr/include/bits/sigaction.h #usr/include/bits/sigcontext.h @@ -147,7 +155,6 @@ usr/bin/ldd #usr/include/bits/string.h #usr/include/bits/string2.h #usr/include/bits/string3.h -#usr/include/bits/stropts.h #usr/include/bits/sys_errlist.h #usr/include/bits/syscall.h #usr/include/bits/syslog-ldbl.h @@ -170,7 +177,6 @@ usr/bin/ldd #usr/include/bits/wchar2.h #usr/include/bits/wordsize.h #usr/include/bits/xopen_lim.h -#usr/include/bits/xtitypes.h #usr/include/byteswap.h #usr/include/complex.h #usr/include/cpio.h @@ -203,6 +209,7 @@ usr/bin/ldd #usr/include/gnu/libc-version.h #usr/include/gnu/stubs.h #usr/include/grp.h +#usr/include/gshadow.h #usr/include/iconv.h #usr/include/ieee754.h #usr/include/ifaddrs.h @@ -258,6 +265,8 @@ usr/bin/ldd #usr/include/netinet/udp.h #usr/include/netipx #usr/include/netipx/ipx.h +#usr/include/netiucv +#usr/include/netiucv/iucv.h #usr/include/netpacket #usr/include/netpacket/packet.h #usr/include/netrom @@ -304,10 +313,15 @@ usr/bin/ldd #usr/include/rpc/xdr.h #usr/include/rpcsvc #usr/include/rpcsvc/bootparam.h +#usr/include/rpcsvc/bootparam_prot.h #usr/include/rpcsvc/bootparam_prot.x +#usr/include/rpcsvc/key_prot.h #usr/include/rpcsvc/key_prot.x +#usr/include/rpcsvc/klm_prot.h #usr/include/rpcsvc/klm_prot.x +#usr/include/rpcsvc/mount.h #usr/include/rpcsvc/mount.x +#usr/include/rpcsvc/nfs_prot.h #usr/include/rpcsvc/nfs_prot.x #usr/include/rpcsvc/nis.h #usr/include/rpcsvc/nis.x @@ -316,20 +330,29 @@ usr/bin/ldd #usr/include/rpcsvc/nis_object.x #usr/include/rpcsvc/nis_tags.h #usr/include/rpcsvc/nislib.h +#usr/include/rpcsvc/nlm_prot.h #usr/include/rpcsvc/nlm_prot.x +#usr/include/rpcsvc/rex.h #usr/include/rpcsvc/rex.x +#usr/include/rpcsvc/rquota.h #usr/include/rpcsvc/rquota.x +#usr/include/rpcsvc/rstat.h #usr/include/rpcsvc/rstat.x +#usr/include/rpcsvc/rusers.h #usr/include/rpcsvc/rusers.x +#usr/include/rpcsvc/sm_inter.h #usr/include/rpcsvc/sm_inter.x +#usr/include/rpcsvc/spray.h #usr/include/rpcsvc/spray.x #usr/include/rpcsvc/yp.h #usr/include/rpcsvc/yp.x #usr/include/rpcsvc/yp_prot.h #usr/include/rpcsvc/ypclnt.h +#usr/include/rpcsvc/yppasswd.h #usr/include/rpcsvc/yppasswd.x #usr/include/rpcsvc/ypupd.h #usr/include/sched.h +#usr/include/scsi/scsi.h #usr/include/scsi/scsi_ioctl.h #usr/include/scsi/sg.h #usr/include/search.h @@ -346,7 +369,6 @@ usr/bin/ldd #usr/include/stdlib.h #usr/include/string.h #usr/include/strings.h -#usr/include/stropts.h #usr/include/sys #usr/include/sys/acct.h #usr/include/sys/bitypes.h @@ -355,6 +377,7 @@ usr/bin/ldd #usr/include/sys/elf.h #usr/include/sys/epoll.h #usr/include/sys/errno.h +#usr/include/sys/eventfd.h #usr/include/sys/fcntl.h #usr/include/sys/file.h #usr/include/sys/fsuid.h @@ -389,13 +412,13 @@ usr/bin/ldd #usr/include/sys/sendfile.h #usr/include/sys/shm.h #usr/include/sys/signal.h +#usr/include/sys/signalfd.h #usr/include/sys/socket.h #usr/include/sys/socketvar.h #usr/include/sys/soundcard.h #usr/include/sys/stat.h #usr/include/sys/statfs.h #usr/include/sys/statvfs.h -#usr/include/sys/stropts.h #usr/include/sys/swap.h #usr/include/sys/syscall.h #usr/include/sys/sysctl.h @@ -405,6 +428,7 @@ usr/bin/ldd #usr/include/sys/termios.h #usr/include/sys/time.h #usr/include/sys/timeb.h +#usr/include/sys/timerfd.h #usr/include/sys/times.h #usr/include/sys/timex.h #usr/include/sys/ttychars.h @@ -447,20 +471,6 @@ usr/bin/ldd #usr/include/wctype.h #usr/include/wordexp.h #usr/include/xlocale.h -#usr/info -#usr/info/dir -#usr/info/libc.info -#usr/info/libc.info-1 -#usr/info/libc.info-10 -#usr/info/libc.info-11 -#usr/info/libc.info-2 -#usr/info/libc.info-3 -#usr/info/libc.info-4 -#usr/info/libc.info-5 -#usr/info/libc.info-6 -#usr/info/libc.info-7 -#usr/info/libc.info-8 -#usr/info/libc.info-9 #usr/lib/Mcrt1.o #usr/lib/Scrt1.o #usr/lib/crt1.o @@ -472,6 +482,7 @@ usr/lib/gconv #usr/lib/gconv/ASMO_449.so #usr/lib/gconv/BIG5.so #usr/lib/gconv/BIG5HKSCS.so +#usr/lib/gconv/BRF.so #usr/lib/gconv/CP10007.so #usr/lib/gconv/CP1125.so #usr/lib/gconv/CP1250.so @@ -522,7 +533,11 @@ usr/lib/gconv #usr/lib/gconv/GREEK-CCITT.so #usr/lib/gconv/GREEK7-OLD.so #usr/lib/gconv/GREEK7.so +#usr/lib/gconv/HP-GREEK8.so #usr/lib/gconv/HP-ROMAN8.so +#usr/lib/gconv/HP-ROMAN9.so +#usr/lib/gconv/HP-THAI8.so +#usr/lib/gconv/HP-TURKISH8.so #usr/lib/gconv/IBM037.so #usr/lib/gconv/IBM038.so #usr/lib/gconv/IBM1004.so @@ -663,6 +678,7 @@ usr/lib/gconv #usr/lib/gconv/ISO8859-7.so #usr/lib/gconv/ISO8859-8.so #usr/lib/gconv/ISO8859-9.so +#usr/lib/gconv/ISO8859-9E.so #usr/lib/gconv/ISO_10367-BOX.so #usr/lib/gconv/ISO_11548-1.so #usr/lib/gconv/ISO_2033.so @@ -674,10 +690,12 @@ usr/lib/gconv #usr/lib/gconv/JOHAB.so #usr/lib/gconv/KOI-8.so #usr/lib/gconv/KOI8-R.so +#usr/lib/gconv/KOI8-RU.so #usr/lib/gconv/KOI8-T.so #usr/lib/gconv/KOI8-U.so #usr/lib/gconv/LATIN-GREEK-1.so #usr/lib/gconv/LATIN-GREEK.so +#usr/lib/gconv/MAC-CENTRALEUROPE.so #usr/lib/gconv/MAC-IS.so #usr/lib/gconv/MAC-SAMI.so #usr/lib/gconv/MAC-UK.so @@ -712,6 +730,8 @@ usr/lib/gconv #usr/lib/glibc/getconf #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFF32 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFFBIG +#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFF32 +#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFFBIG #usr/lib/glibc/pt_chown #usr/lib/libBrokenLocale.a #usr/lib/libBrokenLocale.so @@ -721,6 +741,7 @@ usr/lib/gconv #usr/lib/libc.a #usr/lib/libc.so #usr/lib/libc_nonshared.a +#usr/lib/libcidn.so #usr/lib/libcrypt.a #usr/lib/libcrypt.so #usr/lib/libdl.a @@ -743,6 +764,7 @@ usr/lib/gconv #usr/lib/libpthread_nonshared.a #usr/lib/libresolv.a #usr/lib/libresolv.so +#usr/lib/librpcsvc.a #usr/lib/librt.a #usr/lib/librt.so #usr/lib/libthread_db.so @@ -763,6 +785,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/ASMO_449.gz #usr/share/i18n/charmaps/BIG5-HKSCS.gz #usr/share/i18n/charmaps/BIG5.gz +#usr/share/i18n/charmaps/BRF.gz #usr/share/i18n/charmaps/BS_4730.gz #usr/share/i18n/charmaps/BS_VIEWDATA.gz #usr/share/i18n/charmaps/CP10007.gz @@ -821,7 +844,11 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/GREEK-CCITT.gz #usr/share/i18n/charmaps/GREEK7-OLD.gz #usr/share/i18n/charmaps/GREEK7.gz +#usr/share/i18n/charmaps/HP-GREEK8.gz #usr/share/i18n/charmaps/HP-ROMAN8.gz +#usr/share/i18n/charmaps/HP-ROMAN9.gz +#usr/share/i18n/charmaps/HP-THAI8.gz +#usr/share/i18n/charmaps/HP-TURKISH8.gz #usr/share/i18n/charmaps/IBM037.gz #usr/share/i18n/charmaps/IBM038.gz #usr/share/i18n/charmaps/IBM1004.gz @@ -901,6 +928,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/ISO-8859-7.gz #usr/share/i18n/charmaps/ISO-8859-8.gz #usr/share/i18n/charmaps/ISO-8859-9.gz +#usr/share/i18n/charmaps/ISO-8859-9E.gz #usr/share/i18n/charmaps/ISO-IR-197.gz #usr/share/i18n/charmaps/ISO-IR-209.gz #usr/share/i18n/charmaps/ISO-IR-90.gz @@ -934,11 +962,13 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/JUS_I.B1.003-SERB.gz #usr/share/i18n/charmaps/KOI-8.gz #usr/share/i18n/charmaps/KOI8-R.gz +#usr/share/i18n/charmaps/KOI8-RU.gz #usr/share/i18n/charmaps/KOI8-T.gz #usr/share/i18n/charmaps/KOI8-U.gz #usr/share/i18n/charmaps/KSC5636.gz #usr/share/i18n/charmaps/LATIN-GREEK-1.gz #usr/share/i18n/charmaps/LATIN-GREEK.gz +#usr/share/i18n/charmaps/MAC-CENTRALEUROPE.gz #usr/share/i18n/charmaps/MAC-CYRILLIC.gz #usr/share/i18n/charmaps/MAC-IS.gz #usr/share/i18n/charmaps/MAC-SAMI.gz @@ -1004,12 +1034,17 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ar_TN #usr/share/i18n/locales/ar_YE #usr/share/i18n/locales/as_IN +#usr/share/i18n/locales/ast_ES #usr/share/i18n/locales/az_AZ #usr/share/i18n/locales/be_BY #usr/share/i18n/locales/be_BY@latin +#usr/share/i18n/locales/ber_DZ +#usr/share/i18n/locales/ber_MA #usr/share/i18n/locales/bg_BG #usr/share/i18n/locales/bn_BD #usr/share/i18n/locales/bn_IN +#usr/share/i18n/locales/bo_CN +#usr/share/i18n/locales/bo_IN #usr/share/i18n/locales/br_FR #usr/share/i18n/locales/br_FR@euro #usr/share/i18n/locales/bs_BA @@ -1019,8 +1054,10 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ca_ES@euro #usr/share/i18n/locales/ca_FR #usr/share/i18n/locales/ca_IT +#usr/share/i18n/locales/crh_UA #usr/share/i18n/locales/cs_CZ #usr/share/i18n/locales/csb_PL +#usr/share/i18n/locales/cv_RU #usr/share/i18n/locales/cy_GB #usr/share/i18n/locales/da_DK #usr/share/i18n/locales/de_AT @@ -1032,10 +1069,12 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/de_DE@euro #usr/share/i18n/locales/de_LU #usr/share/i18n/locales/de_LU@euro +#usr/share/i18n/locales/dv_MV #usr/share/i18n/locales/dz_BT #usr/share/i18n/locales/el_CY #usr/share/i18n/locales/el_GR #usr/share/i18n/locales/el_GR@euro +#usr/share/i18n/locales/en_AG #usr/share/i18n/locales/en_AU #usr/share/i18n/locales/en_BW #usr/share/i18n/locales/en_CA @@ -1045,6 +1084,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/en_IE #usr/share/i18n/locales/en_IE@euro #usr/share/i18n/locales/en_IN +#usr/share/i18n/locales/en_NG #usr/share/i18n/locales/en_NZ #usr/share/i18n/locales/en_PH #usr/share/i18n/locales/en_SG @@ -1078,6 +1118,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/fa_IR #usr/share/i18n/locales/fi_FI #usr/share/i18n/locales/fi_FI@euro +#usr/share/i18n/locales/fil_PH #usr/share/i18n/locales/fo_FO #usr/share/i18n/locales/fr_BE #usr/share/i18n/locales/fr_BE@euro @@ -1087,6 +1128,8 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/fr_FR@euro #usr/share/i18n/locales/fr_LU #usr/share/i18n/locales/fr_LU@euro +#usr/share/i18n/locales/fur_IT +#usr/share/i18n/locales/fy_DE #usr/share/i18n/locales/fy_NL #usr/share/i18n/locales/ga_IE #usr/share/i18n/locales/ga_IE@euro @@ -1099,19 +1142,27 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/gl_ES@euro #usr/share/i18n/locales/gu_IN #usr/share/i18n/locales/gv_GB +#usr/share/i18n/locales/ha_NG #usr/share/i18n/locales/he_IL #usr/share/i18n/locales/hi_IN +#usr/share/i18n/locales/hne_IN #usr/share/i18n/locales/hr_HR #usr/share/i18n/locales/hsb_DE +#usr/share/i18n/locales/ht_HT #usr/share/i18n/locales/hu_HU #usr/share/i18n/locales/hy_AM #usr/share/i18n/locales/i18n #usr/share/i18n/locales/id_ID +#usr/share/i18n/locales/ig_NG +#usr/share/i18n/locales/ik_CA #usr/share/i18n/locales/is_IS #usr/share/i18n/locales/iso14651_t1 +#usr/share/i18n/locales/iso14651_t1_common +#usr/share/i18n/locales/iso14651_t1_pinyin #usr/share/i18n/locales/it_CH #usr/share/i18n/locales/it_IT #usr/share/i18n/locales/it_IT@euro +#usr/share/i18n/locales/iu_CA #usr/share/i18n/locales/iw_IL #usr/share/i18n/locales/ja_JP #usr/share/i18n/locales/ka_GE @@ -1120,13 +1171,19 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/km_KH #usr/share/i18n/locales/kn_IN #usr/share/i18n/locales/ko_KR +#usr/share/i18n/locales/kok_IN +#usr/share/i18n/locales/ks_IN +#usr/share/i18n/locales/ks_IN@devanagari #usr/share/i18n/locales/ku_TR #usr/share/i18n/locales/kw_GB #usr/share/i18n/locales/ky_KG #usr/share/i18n/locales/lg_UG +#usr/share/i18n/locales/li_BE +#usr/share/i18n/locales/li_NL #usr/share/i18n/locales/lo_LA #usr/share/i18n/locales/lt_LT #usr/share/i18n/locales/lv_LV +#usr/share/i18n/locales/mai_IN #usr/share/i18n/locales/mg_MG #usr/share/i18n/locales/mi_NZ #usr/share/i18n/locales/mk_MK @@ -1135,13 +1192,19 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/mr_IN #usr/share/i18n/locales/ms_MY #usr/share/i18n/locales/mt_MT +#usr/share/i18n/locales/my_MM +#usr/share/i18n/locales/nan_TW@latin #usr/share/i18n/locales/nb_NO +#usr/share/i18n/locales/nds_DE +#usr/share/i18n/locales/nds_NL #usr/share/i18n/locales/ne_NP +#usr/share/i18n/locales/nl_AW #usr/share/i18n/locales/nl_BE #usr/share/i18n/locales/nl_BE@euro #usr/share/i18n/locales/nl_NL #usr/share/i18n/locales/nl_NL@euro #usr/share/i18n/locales/nn_NO +#usr/share/i18n/locales/no_NO #usr/share/i18n/locales/nr_ZA #usr/share/i18n/locales/nso_ZA #usr/share/i18n/locales/oc_FR @@ -1150,7 +1213,9 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/or_IN #usr/share/i18n/locales/pa_IN #usr/share/i18n/locales/pa_PK +#usr/share/i18n/locales/pap_AN #usr/share/i18n/locales/pl_PL +#usr/share/i18n/locales/ps_AF #usr/share/i18n/locales/pt_BR #usr/share/i18n/locales/pt_PT #usr/share/i18n/locales/pt_PT@euro @@ -1158,7 +1223,12 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ru_RU #usr/share/i18n/locales/ru_UA #usr/share/i18n/locales/rw_RW +#usr/share/i18n/locales/sa_IN +#usr/share/i18n/locales/sc_IT +#usr/share/i18n/locales/sd_IN +#usr/share/i18n/locales/sd_IN@devanagari #usr/share/i18n/locales/se_NO +#usr/share/i18n/locales/shs_CA #usr/share/i18n/locales/si_LK #usr/share/i18n/locales/sid_ET #usr/share/i18n/locales/sk_SK @@ -1168,8 +1238,10 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/so_KE #usr/share/i18n/locales/so_SO #usr/share/i18n/locales/sq_AL -#usr/share/i18n/locales/sr_CS +#usr/share/i18n/locales/sq_MK #usr/share/i18n/locales/sr_ME +#usr/share/i18n/locales/sr_RS +#usr/share/i18n/locales/sr_RS@latin #usr/share/i18n/locales/ss_ZA #usr/share/i18n/locales/st_ZA #usr/share/i18n/locales/sv_FI @@ -1182,6 +1254,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ti_ER #usr/share/i18n/locales/ti_ET #usr/share/i18n/locales/tig_ER +#usr/share/i18n/locales/tk_TM #usr/share/i18n/locales/tl_PH #usr/share/i18n/locales/tn_ZA #usr/share/i18n/locales/tr_CY @@ -1200,7 +1273,10 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/translit_wide #usr/share/i18n/locales/ts_ZA #usr/share/i18n/locales/tt_RU +#usr/share/i18n/locales/tt_RU@iqtelif +#usr/share/i18n/locales/ug_CN #usr/share/i18n/locales/uk_UA +#usr/share/i18n/locales/ur_IN #usr/share/i18n/locales/ur_PK #usr/share/i18n/locales/uz_UZ #usr/share/i18n/locales/uz_UZ@cyrillic @@ -1209,16 +1285,34 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/wa_BE #usr/share/i18n/locales/wa_BE@euro #usr/share/i18n/locales/wal_ET +#usr/share/i18n/locales/wo_SN #usr/share/i18n/locales/xh_ZA #usr/share/i18n/locales/yi_US +#usr/share/i18n/locales/yo_NG #usr/share/i18n/locales/zh_CN #usr/share/i18n/locales/zh_HK #usr/share/i18n/locales/zh_SG #usr/share/i18n/locales/zh_TW #usr/share/i18n/locales/zu_ZA +#usr/share/info/dir +#usr/share/info/libc.info +#usr/share/info/libc.info-1 +#usr/share/info/libc.info-10 +#usr/share/info/libc.info-11 +#usr/share/info/libc.info-2 +#usr/share/info/libc.info-3 +#usr/share/info/libc.info-4 +#usr/share/info/libc.info-5 +#usr/share/info/libc.info-6 +#usr/share/info/libc.info-7 +#usr/share/info/libc.info-8 +#usr/share/info/libc.info-9 #usr/share/locale/be #usr/share/locale/be/LC_MESSAGES #usr/share/locale/be/LC_MESSAGES/libc.mo +#usr/share/locale/bg +#usr/share/locale/bg/LC_MESSAGES +#usr/share/locale/bg/LC_MESSAGES/libc.mo #usr/share/locale/ca #usr/share/locale/ca/LC_MESSAGES #usr/share/locale/ca/LC_MESSAGES/libc.mo @@ -1255,6 +1349,9 @@ usr/lib/locale/locale-archive #usr/share/locale/hu #usr/share/locale/hu/LC_MESSAGES #usr/share/locale/hu/LC_MESSAGES/libc.mo +#usr/share/locale/id +#usr/share/locale/id/LC_MESSAGES +#usr/share/locale/id/LC_MESSAGES/libc.mo #usr/share/locale/it #usr/share/locale/it/LC_MESSAGES #usr/share/locale/it/LC_MESSAGES/libc.mo @@ -1265,6 +1362,9 @@ usr/lib/locale/locale-archive #usr/share/locale/ko/LC_MESSAGES #usr/share/locale/ko/LC_MESSAGES/libc.mo #usr/share/locale/locale.alias +#usr/share/locale/lt +#usr/share/locale/lt/LC_MESSAGES +#usr/share/locale/lt/LC_MESSAGES/libc.mo #usr/share/locale/nb #usr/share/locale/nb/LC_MESSAGES #usr/share/locale/nb/LC_MESSAGES/libc.mo @@ -1292,11 +1392,14 @@ usr/lib/locale/locale-archive #usr/share/locale/tr #usr/share/locale/tr/LC_MESSAGES #usr/share/locale/tr/LC_MESSAGES/libc.mo +#usr/share/locale/vi +#usr/share/locale/vi/LC_MESSAGES +#usr/share/locale/vi/LC_MESSAGES/libc.mo #usr/share/locale/zh_CN #usr/share/locale/zh_CN/LC_MESSAGES #usr/share/locale/zh_CN/LC_MESSAGES/libc.mo #usr/share/locale/zh_TW #usr/share/locale/zh_TW/LC_MESSAGES #usr/share/locale/zh_TW/LC_MESSAGES/libc.mo -#usr/share/zoneinfo/iso3166.tab -#usr/share/zoneinfo/zone.tab +#var/cache/ldconfig +#var/cache/ldconfig/aux-cache diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts index ccb7bfb..1a613ac 100644 --- a/config/rootfiles/common/armv5tel/initscripts +++ b/config/rootfiles/common/armv5tel/initscripts @@ -36,7 +36,6 @@ etc/rc.d/init.d/halt #etc/rc.d/init.d/hostapd #etc/rc.d/init.d/icecream #etc/rc.d/init.d/imspector -#etc/rc.d/init.d/ipfireseeder etc/rc.d/init.d/ipsec #etc/rc.d/init.d/lcd4linux #etc/rc.d/init.d/lcr @@ -74,6 +73,7 @@ etc/rc.d/init.d/networking/red.down/10-ovpn etc/rc.d/init.d/networking/red.down/20-RL-firewall etc/rc.d/init.d/networking/red.down/99-D-dialctrl.pl #etc/rc.d/init.d/networking/red.up +etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq etc/rc.d/init.d/networking/red.up/10-miniupnpd etc/rc.d/init.d/networking/red.up/10-multicast @@ -88,6 +88,7 @@ etc/rc.d/init.d/networking/red.up/30-ddns etc/rc.d/init.d/networking/red.up/40-ipac etc/rc.d/init.d/networking/red.up/50-ipsec etc/rc.d/init.d/networking/red.up/50-ovpn +etc/rc.d/init.d/networking/red.up/98-leds etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl etc/rc.d/init.d/networking/red.up/99-fireinfo etc/rc.d/init.d/networking/red.up/99-pakfire-update @@ -141,6 +142,7 @@ etc/rc.d/rc0.d/K28apache etc/rc.d/rc0.d/K30sshd #etc/rc.d/rc0.d/K34client175 etc/rc.d/rc0.d/K45random +etc/rc.d/rc0.d/K47setclock etc/rc.d/rc0.d/K49cyrus-sasl etc/rc.d/rc0.d/K78snort etc/rc.d/rc0.d/K79leds @@ -186,6 +188,7 @@ etc/rc.d/rc6.d/K28apache etc/rc.d/rc6.d/K30sshd #etc/rc.d/rc6.d/K34client175 etc/rc.d/rc6.d/K45random +etc/rc.d/rc6.d/K47setclock etc/rc.d/rc6.d/K49cyrus-sasl etc/rc.d/rc6.d/K78snort etc/rc.d/rc6.d/K79leds diff --git a/config/rootfiles/common/armv5tel/installer b/config/rootfiles/common/armv5tel/installer new file mode 100644 index 0000000..ef5e901 --- /dev/null +++ b/config/rootfiles/common/armv5tel/installer @@ -0,0 +1,3 @@ +#etc/system-release +#opt/pakfire/db/core/mine +#var/ipfire/firebuild diff --git a/config/rootfiles/common/armv5tel/linux-headers b/config/rootfiles/common/armv5tel/linux-headers new file mode 100644 index 0000000..3b8dd3a --- /dev/null +++ b/config/rootfiles/common/armv5tel/linux-headers @@ -0,0 +1,678 @@ +#usr/include/asm +#usr/include/asm-generic +#usr/include/asm-generic/auxvec.h +#usr/include/asm-generic/bitsperlong.h +#usr/include/asm-generic/errno-base.h +#usr/include/asm-generic/errno.h +#usr/include/asm-generic/fcntl.h +#usr/include/asm-generic/int-l64.h +#usr/include/asm-generic/int-ll64.h +#usr/include/asm-generic/ioctl.h +#usr/include/asm-generic/ioctls.h +#usr/include/asm-generic/ipcbuf.h +#usr/include/asm-generic/mman-common.h +#usr/include/asm-generic/mman.h +#usr/include/asm-generic/msgbuf.h +#usr/include/asm-generic/param.h +#usr/include/asm-generic/poll.h +#usr/include/asm-generic/posix_types.h +#usr/include/asm-generic/resource.h +#usr/include/asm-generic/sembuf.h +#usr/include/asm-generic/setup.h +#usr/include/asm-generic/shmbuf.h +#usr/include/asm-generic/shmparam.h +#usr/include/asm-generic/siginfo.h +#usr/include/asm-generic/signal-defs.h +#usr/include/asm-generic/signal.h +#usr/include/asm-generic/socket.h +#usr/include/asm-generic/sockios.h +#usr/include/asm-generic/stat.h +#usr/include/asm-generic/statfs.h +#usr/include/asm-generic/swab.h +#usr/include/asm-generic/termbits.h +#usr/include/asm-generic/termios.h +#usr/include/asm-generic/types.h +#usr/include/asm-generic/ucontext.h +#usr/include/asm-generic/unistd.h +#usr/include/asm/a.out.h +#usr/include/asm/auxvec.h +#usr/include/asm/bitsperlong.h +#usr/include/asm/byteorder.h +#usr/include/asm/errno.h +#usr/include/asm/fcntl.h +#usr/include/asm/hwcap.h +#usr/include/asm/ioctl.h +#usr/include/asm/ioctls.h +#usr/include/asm/ipcbuf.h +#usr/include/asm/mman.h +#usr/include/asm/msgbuf.h +#usr/include/asm/param.h +#usr/include/asm/poll.h +#usr/include/asm/posix_types.h +#usr/include/asm/ptrace.h +#usr/include/asm/resource.h +#usr/include/asm/sembuf.h +#usr/include/asm/setup.h +#usr/include/asm/shmbuf.h +#usr/include/asm/sigcontext.h +#usr/include/asm/siginfo.h +#usr/include/asm/signal.h +#usr/include/asm/socket.h +#usr/include/asm/sockios.h +#usr/include/asm/stat.h +#usr/include/asm/statfs.h +#usr/include/asm/swab.h +#usr/include/asm/termbits.h +#usr/include/asm/termios.h +#usr/include/asm/types.h +#usr/include/asm/unistd.h +#usr/include/drm +#usr/include/drm/drm.h +#usr/include/drm/drm_mode.h +#usr/include/drm/drm_sarea.h +#usr/include/drm/i810_drm.h +#usr/include/drm/i915_drm.h +#usr/include/drm/mga_drm.h +#usr/include/drm/nouveau_drm.h +#usr/include/drm/r128_drm.h +#usr/include/drm/radeon_drm.h +#usr/include/drm/savage_drm.h +#usr/include/drm/sis_drm.h +#usr/include/drm/via_drm.h +#usr/include/drm/vmwgfx_drm.h +#usr/include/linux +#usr/include/linux/a.out.h +#usr/include/linux/acct.h +#usr/include/linux/adb.h +#usr/include/linux/adfs_fs.h +#usr/include/linux/affs_hardblocks.h +#usr/include/linux/agpgart.h +#usr/include/linux/aio_abi.h +#usr/include/linux/apm_bios.h +#usr/include/linux/arcfb.h +#usr/include/linux/atalk.h +#usr/include/linux/atm.h +#usr/include/linux/atm_eni.h +#usr/include/linux/atm_he.h +#usr/include/linux/atm_idt77105.h +#usr/include/linux/atm_nicstar.h +#usr/include/linux/atm_tcp.h +#usr/include/linux/atm_zatm.h +#usr/include/linux/atmapi.h +#usr/include/linux/atmarp.h +#usr/include/linux/atmbr2684.h +#usr/include/linux/atmclip.h +#usr/include/linux/atmdev.h +#usr/include/linux/atmioc.h +#usr/include/linux/atmlec.h +#usr/include/linux/atmmpc.h +#usr/include/linux/atmppp.h +#usr/include/linux/atmsap.h +#usr/include/linux/atmsvc.h +#usr/include/linux/audit.h +#usr/include/linux/auto_fs.h +#usr/include/linux/auto_fs4.h +#usr/include/linux/auxvec.h +#usr/include/linux/ax25.h +#usr/include/linux/b1lli.h +#usr/include/linux/baycom.h +#usr/include/linux/bfs_fs.h +#usr/include/linux/binfmts.h +#usr/include/linux/blk_types.h +#usr/include/linux/blkpg.h +#usr/include/linux/blktrace_api.h +#usr/include/linux/bpqether.h +#usr/include/linux/bsg.h +#usr/include/linux/byteorder +#usr/include/linux/byteorder/big_endian.h +#usr/include/linux/byteorder/little_endian.h +#usr/include/linux/caif +#usr/include/linux/caif/caif_socket.h +#usr/include/linux/caif/if_caif.h +#usr/include/linux/can +#usr/include/linux/can.h +#usr/include/linux/can/bcm.h +#usr/include/linux/can/error.h +#usr/include/linux/can/gw.h +#usr/include/linux/can/netlink.h +#usr/include/linux/can/raw.h +#usr/include/linux/capability.h +#usr/include/linux/capi.h +#usr/include/linux/cciss_defs.h +#usr/include/linux/cciss_ioctl.h +#usr/include/linux/cdk.h +#usr/include/linux/cdrom.h +#usr/include/linux/cgroupstats.h +#usr/include/linux/chio.h +#usr/include/linux/cm4000_cs.h +#usr/include/linux/cn_proc.h +#usr/include/linux/coda.h +#usr/include/linux/coda_psdev.h +#usr/include/linux/coff.h +#usr/include/linux/comstats.h +#usr/include/linux/connector.h +#usr/include/linux/const.h +#usr/include/linux/cramfs_fs.h +#usr/include/linux/cuda.h +#usr/include/linux/cyclades.h +#usr/include/linux/cycx_cfm.h +#usr/include/linux/dcbnl.h +#usr/include/linux/dccp.h +#usr/include/linux/dlm.h +#usr/include/linux/dlm_device.h +#usr/include/linux/dlm_netlink.h +#usr/include/linux/dlm_plock.h +#usr/include/linux/dlmconstants.h +#usr/include/linux/dm-ioctl.h +#usr/include/linux/dm-log-userspace.h +#usr/include/linux/dn.h +#usr/include/linux/dqblk_xfs.h +#usr/include/linux/dvb +#usr/include/linux/dvb/audio.h +#usr/include/linux/dvb/ca.h +#usr/include/linux/dvb/dmx.h +#usr/include/linux/dvb/frontend.h +#usr/include/linux/dvb/net.h +#usr/include/linux/dvb/osd.h +#usr/include/linux/dvb/version.h +#usr/include/linux/dvb/video.h +#usr/include/linux/edd.h +#usr/include/linux/efs_fs_sb.h +#usr/include/linux/elf-em.h +#usr/include/linux/elf-fdpic.h +#usr/include/linux/elf.h +#usr/include/linux/elfcore.h +#usr/include/linux/errno.h +#usr/include/linux/errqueue.h +#usr/include/linux/ethtool.h +#usr/include/linux/eventpoll.h +#usr/include/linux/ext2_fs.h +#usr/include/linux/fadvise.h +#usr/include/linux/falloc.h +#usr/include/linux/fanotify.h +#usr/include/linux/fb.h +#usr/include/linux/fcntl.h +#usr/include/linux/fd.h +#usr/include/linux/fdreg.h +#usr/include/linux/fib_rules.h +#usr/include/linux/fiemap.h +#usr/include/linux/filter.h +#usr/include/linux/firewire-cdev.h +#usr/include/linux/firewire-constants.h +#usr/include/linux/flat.h +#usr/include/linux/fs.h +#usr/include/linux/fsl_hypervisor.h +#usr/include/linux/fuse.h +#usr/include/linux/futex.h +#usr/include/linux/gameport.h +#usr/include/linux/gen_stats.h +#usr/include/linux/generic_serial.h +#usr/include/linux/genetlink.h +#usr/include/linux/gfs2_ondisk.h +#usr/include/linux/gigaset_dev.h +#usr/include/linux/hdlc +#usr/include/linux/hdlc.h +#usr/include/linux/hdlc/ioctl.h +#usr/include/linux/hdlcdrv.h +#usr/include/linux/hdreg.h +#usr/include/linux/hid.h +#usr/include/linux/hiddev.h +#usr/include/linux/hidraw.h +#usr/include/linux/hpet.h +#usr/include/linux/hysdn_if.h +#usr/include/linux/i2c-dev.h +#usr/include/linux/i2c.h +#usr/include/linux/i2o-dev.h +#usr/include/linux/i8k.h +#usr/include/linux/icmp.h +#usr/include/linux/icmpv6.h +#usr/include/linux/if.h +#usr/include/linux/if_addr.h +#usr/include/linux/if_addrlabel.h +#usr/include/linux/if_alg.h +#usr/include/linux/if_arcnet.h +#usr/include/linux/if_arp.h +#usr/include/linux/if_bonding.h +#usr/include/linux/if_bridge.h +#usr/include/linux/if_cablemodem.h +#usr/include/linux/if_ec.h +#usr/include/linux/if_eql.h +#usr/include/linux/if_ether.h +#usr/include/linux/if_fc.h +#usr/include/linux/if_fddi.h +#usr/include/linux/if_frad.h +#usr/include/linux/if_hippi.h +#usr/include/linux/if_infiniband.h +#usr/include/linux/if_link.h +#usr/include/linux/if_ltalk.h +#usr/include/linux/if_packet.h +#usr/include/linux/if_phonet.h +#usr/include/linux/if_plip.h +#usr/include/linux/if_ppp.h +#usr/include/linux/if_pppol2tp.h +#usr/include/linux/if_pppox.h +#usr/include/linux/if_slip.h +#usr/include/linux/if_strip.h +#usr/include/linux/if_tr.h +#usr/include/linux/if_tun.h +#usr/include/linux/if_tunnel.h +#usr/include/linux/if_vlan.h +#usr/include/linux/if_x25.h +#usr/include/linux/igmp.h +#usr/include/linux/in.h +#usr/include/linux/in6.h +#usr/include/linux/in_route.h +#usr/include/linux/inet_diag.h +#usr/include/linux/inotify.h +#usr/include/linux/input.h +#usr/include/linux/ioctl.h +#usr/include/linux/ip.h +#usr/include/linux/ip6_tunnel.h +#usr/include/linux/ip_vs.h +#usr/include/linux/ipc.h +#usr/include/linux/ipmi.h +#usr/include/linux/ipmi_msgdefs.h +#usr/include/linux/ipsec.h +#usr/include/linux/ipv6.h +#usr/include/linux/ipv6_route.h +#usr/include/linux/ipx.h +#usr/include/linux/irda.h +#usr/include/linux/irqnr.h +#usr/include/linux/isdn +#usr/include/linux/isdn.h +#usr/include/linux/isdn/capicmd.h +#usr/include/linux/isdn_divertif.h +#usr/include/linux/isdn_ppp.h +#usr/include/linux/isdnif.h +#usr/include/linux/iso_fs.h +#usr/include/linux/ivtv.h +#usr/include/linux/ivtvfb.h +#usr/include/linux/ixjuser.h +#usr/include/linux/jffs2.h +#usr/include/linux/joystick.h +#usr/include/linux/kd.h +#usr/include/linux/kdev_t.h +#usr/include/linux/kernel-page-flags.h +#usr/include/linux/kernel.h +#usr/include/linux/kernelcapi.h +#usr/include/linux/keyboard.h +#usr/include/linux/keyctl.h +#usr/include/linux/l2tp.h +#usr/include/linux/limits.h +#usr/include/linux/llc.h +#usr/include/linux/loop.h +#usr/include/linux/lp.h +#usr/include/linux/magic.h +#usr/include/linux/major.h +#usr/include/linux/map_to_7segment.h +#usr/include/linux/matroxfb.h +#usr/include/linux/media.h +#usr/include/linux/mempolicy.h +#usr/include/linux/meye.h +#usr/include/linux/mii.h +#usr/include/linux/minix_fs.h +#usr/include/linux/mman.h +#usr/include/linux/mmc +#usr/include/linux/mmc/ioctl.h +#usr/include/linux/mmtimer.h +#usr/include/linux/mqueue.h +#usr/include/linux/mroute.h +#usr/include/linux/mroute6.h +#usr/include/linux/msdos_fs.h +#usr/include/linux/msg.h +#usr/include/linux/mtio.h +#usr/include/linux/n_r3964.h +#usr/include/linux/nbd.h +#usr/include/linux/ncp.h +#usr/include/linux/ncp_fs.h +#usr/include/linux/ncp_mount.h +#usr/include/linux/ncp_no.h +#usr/include/linux/neighbour.h +#usr/include/linux/net.h +#usr/include/linux/net_dropmon.h +#usr/include/linux/net_tstamp.h +#usr/include/linux/netdevice.h +#usr/include/linux/netfilter +#usr/include/linux/netfilter.h +#usr/include/linux/netfilter/ipset +#usr/include/linux/netfilter/ipset/ip_set.h +#usr/include/linux/netfilter/ipset/ip_set_bitmap.h +#usr/include/linux/netfilter/ipset/ip_set_hash.h +#usr/include/linux/netfilter/ipset/ip_set_list.h +#usr/include/linux/netfilter/nf_conntrack_common.h +#usr/include/linux/netfilter/nf_conntrack_ftp.h +#usr/include/linux/netfilter/nf_conntrack_sctp.h +#usr/include/linux/netfilter/nf_conntrack_tcp.h +#usr/include/linux/netfilter/nf_conntrack_tuple_common.h +#usr/include/linux/netfilter/nfnetlink.h +#usr/include/linux/netfilter/nfnetlink_compat.h +#usr/include/linux/netfilter/nfnetlink_conntrack.h +#usr/include/linux/netfilter/nfnetlink_log.h +#usr/include/linux/netfilter/nfnetlink_queue.h +#usr/include/linux/netfilter/x_tables.h +#usr/include/linux/netfilter/xt_AUDIT.h +#usr/include/linux/netfilter/xt_CHECKSUM.h +#usr/include/linux/netfilter/xt_CLASSIFY.h +#usr/include/linux/netfilter/xt_CONNMARK.h +#usr/include/linux/netfilter/xt_CONNSECMARK.h +#usr/include/linux/netfilter/xt_CT.h +#usr/include/linux/netfilter/xt_DSCP.h +#usr/include/linux/netfilter/xt_IDLETIMER.h +#usr/include/linux/netfilter/xt_LED.h +#usr/include/linux/netfilter/xt_MARK.h +#usr/include/linux/netfilter/xt_NFLOG.h +#usr/include/linux/netfilter/xt_NFQUEUE.h +#usr/include/linux/netfilter/xt_RATEEST.h +#usr/include/linux/netfilter/xt_SECMARK.h +#usr/include/linux/netfilter/xt_TCPMSS.h +#usr/include/linux/netfilter/xt_TCPOPTSTRIP.h +#usr/include/linux/netfilter/xt_TEE.h +#usr/include/linux/netfilter/xt_TPROXY.h +#usr/include/linux/netfilter/xt_addrtype.h +#usr/include/linux/netfilter/xt_cluster.h +#usr/include/linux/netfilter/xt_comment.h +#usr/include/linux/netfilter/xt_connbytes.h +#usr/include/linux/netfilter/xt_connlimit.h +#usr/include/linux/netfilter/xt_connmark.h +#usr/include/linux/netfilter/xt_conntrack.h +#usr/include/linux/netfilter/xt_cpu.h +#usr/include/linux/netfilter/xt_dccp.h +#usr/include/linux/netfilter/xt_devgroup.h +#usr/include/linux/netfilter/xt_dscp.h +#usr/include/linux/netfilter/xt_esp.h +#usr/include/linux/netfilter/xt_hashlimit.h +#usr/include/linux/netfilter/xt_helper.h +#usr/include/linux/netfilter/xt_iprange.h +#usr/include/linux/netfilter/xt_ipvs.h +#usr/include/linux/netfilter/xt_length.h +#usr/include/linux/netfilter/xt_limit.h +#usr/include/linux/netfilter/xt_mac.h +#usr/include/linux/netfilter/xt_mark.h +#usr/include/linux/netfilter/xt_multiport.h +#usr/include/linux/netfilter/xt_osf.h +#usr/include/linux/netfilter/xt_owner.h +#usr/include/linux/netfilter/xt_physdev.h +#usr/include/linux/netfilter/xt_pkttype.h +#usr/include/linux/netfilter/xt_policy.h +#usr/include/linux/netfilter/xt_quota.h +#usr/include/linux/netfilter/xt_rateest.h +#usr/include/linux/netfilter/xt_realm.h +#usr/include/linux/netfilter/xt_recent.h +#usr/include/linux/netfilter/xt_sctp.h +#usr/include/linux/netfilter/xt_set.h +#usr/include/linux/netfilter/xt_socket.h +#usr/include/linux/netfilter/xt_state.h +#usr/include/linux/netfilter/xt_statistic.h +#usr/include/linux/netfilter/xt_string.h +#usr/include/linux/netfilter/xt_tcpmss.h +#usr/include/linux/netfilter/xt_tcpudp.h +#usr/include/linux/netfilter/xt_time.h +#usr/include/linux/netfilter/xt_u32.h +#usr/include/linux/netfilter_arp +#usr/include/linux/netfilter_arp.h +#usr/include/linux/netfilter_arp/arp_tables.h +#usr/include/linux/netfilter_arp/arpt_mangle.h +#usr/include/linux/netfilter_bridge +#usr/include/linux/netfilter_bridge.h +#usr/include/linux/netfilter_bridge/ebt_802_3.h +#usr/include/linux/netfilter_bridge/ebt_among.h +#usr/include/linux/netfilter_bridge/ebt_arp.h +#usr/include/linux/netfilter_bridge/ebt_arpreply.h +#usr/include/linux/netfilter_bridge/ebt_ip.h +#usr/include/linux/netfilter_bridge/ebt_ip6.h +#usr/include/linux/netfilter_bridge/ebt_limit.h +#usr/include/linux/netfilter_bridge/ebt_log.h +#usr/include/linux/netfilter_bridge/ebt_mark_m.h +#usr/include/linux/netfilter_bridge/ebt_mark_t.h +#usr/include/linux/netfilter_bridge/ebt_nat.h +#usr/include/linux/netfilter_bridge/ebt_nflog.h +#usr/include/linux/netfilter_bridge/ebt_pkttype.h +#usr/include/linux/netfilter_bridge/ebt_redirect.h +#usr/include/linux/netfilter_bridge/ebt_stp.h +#usr/include/linux/netfilter_bridge/ebt_ulog.h +#usr/include/linux/netfilter_bridge/ebt_vlan.h +#usr/include/linux/netfilter_bridge/ebtables.h +#usr/include/linux/netfilter_decnet.h +#usr/include/linux/netfilter_ipv4 +#usr/include/linux/netfilter_ipv4.h +#usr/include/linux/netfilter_ipv4/ip_queue.h +#usr/include/linux/netfilter_ipv4/ip_tables.h +#usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h +#usr/include/linux/netfilter_ipv4/ipt_ECN.h +#usr/include/linux/netfilter_ipv4/ipt_LOG.h +#usr/include/linux/netfilter_ipv4/ipt_REJECT.h +#usr/include/linux/netfilter_ipv4/ipt_SAME.h +#usr/include/linux/netfilter_ipv4/ipt_TTL.h +#usr/include/linux/netfilter_ipv4/ipt_ULOG.h +#usr/include/linux/netfilter_ipv4/ipt_addrtype.h +#usr/include/linux/netfilter_ipv4/ipt_ah.h +#usr/include/linux/netfilter_ipv4/ipt_ecn.h +#usr/include/linux/netfilter_ipv4/ipt_realm.h +#usr/include/linux/netfilter_ipv4/ipt_ttl.h +#usr/include/linux/netfilter_ipv4/nf_nat.h +#usr/include/linux/netfilter_ipv6 +#usr/include/linux/netfilter_ipv6.h +#usr/include/linux/netfilter_ipv6/ip6_tables.h +#usr/include/linux/netfilter_ipv6/ip6t_HL.h +#usr/include/linux/netfilter_ipv6/ip6t_LOG.h +#usr/include/linux/netfilter_ipv6/ip6t_REJECT.h +#usr/include/linux/netfilter_ipv6/ip6t_ah.h +#usr/include/linux/netfilter_ipv6/ip6t_frag.h +#usr/include/linux/netfilter_ipv6/ip6t_hl.h +#usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h +#usr/include/linux/netfilter_ipv6/ip6t_mh.h +#usr/include/linux/netfilter_ipv6/ip6t_opts.h +#usr/include/linux/netfilter_ipv6/ip6t_rt.h +#usr/include/linux/netlink.h +#usr/include/linux/netrom.h +#usr/include/linux/nfc.h +#usr/include/linux/nfs.h +#usr/include/linux/nfs2.h +#usr/include/linux/nfs3.h +#usr/include/linux/nfs4.h +#usr/include/linux/nfs4_mount.h +#usr/include/linux/nfs_fs.h +#usr/include/linux/nfs_idmap.h +#usr/include/linux/nfs_mount.h +#usr/include/linux/nfsacl.h +#usr/include/linux/nfsd +#usr/include/linux/nfsd/debug.h +#usr/include/linux/nfsd/export.h +#usr/include/linux/nfsd/nfsfh.h +#usr/include/linux/nfsd/stats.h +#usr/include/linux/nl80211.h +#usr/include/linux/nubus.h +#usr/include/linux/nvram.h +#usr/include/linux/omap3isp.h +#usr/include/linux/omapfb.h +#usr/include/linux/oom.h +#usr/include/linux/param.h +#usr/include/linux/parport.h +#usr/include/linux/patchkey.h +#usr/include/linux/pci.h +#usr/include/linux/pci_regs.h +#usr/include/linux/perf_event.h +#usr/include/linux/personality.h +#usr/include/linux/pfkeyv2.h +#usr/include/linux/pg.h +#usr/include/linux/phantom.h +#usr/include/linux/phonet.h +#usr/include/linux/pkt_cls.h +#usr/include/linux/pkt_sched.h +#usr/include/linux/pktcdvd.h +#usr/include/linux/pmu.h +#usr/include/linux/poll.h +#usr/include/linux/posix_types.h +#usr/include/linux/ppdev.h +#usr/include/linux/ppp-comp.h +#usr/include/linux/ppp_defs.h +#usr/include/linux/pps.h +#usr/include/linux/prctl.h +#usr/include/linux/ptp_clock.h +#usr/include/linux/ptrace.h +#usr/include/linux/qnx4_fs.h +#usr/include/linux/qnxtypes.h +#usr/include/linux/quota.h +#usr/include/linux/radeonfb.h +#usr/include/linux/raid +#usr/include/linux/raid/md_p.h +#usr/include/linux/raid/md_u.h +#usr/include/linux/random.h +#usr/include/linux/raw.h +#usr/include/linux/rds.h +#usr/include/linux/reboot.h +#usr/include/linux/reiserfs_fs.h +#usr/include/linux/reiserfs_xattr.h +#usr/include/linux/resource.h +#usr/include/linux/rfkill.h +#usr/include/linux/romfs_fs.h +#usr/include/linux/rose.h +#usr/include/linux/route.h +#usr/include/linux/rtc.h +#usr/include/linux/rtnetlink.h +#usr/include/linux/scc.h +#usr/include/linux/sched.h +#usr/include/linux/screen_info.h +#usr/include/linux/sdla.h +#usr/include/linux/securebits.h +#usr/include/linux/selinux_netlink.h +#usr/include/linux/sem.h +#usr/include/linux/serial.h +#usr/include/linux/serial_core.h +#usr/include/linux/serial_reg.h +#usr/include/linux/serio.h +#usr/include/linux/shm.h +#usr/include/linux/signal.h +#usr/include/linux/signalfd.h +#usr/include/linux/snmp.h +#usr/include/linux/socket.h +#usr/include/linux/sockios.h +#usr/include/linux/som.h +#usr/include/linux/sonet.h +#usr/include/linux/sonypi.h +#usr/include/linux/sound.h +#usr/include/linux/soundcard.h +#usr/include/linux/spi +#usr/include/linux/spi/spidev.h +#usr/include/linux/stat.h +#usr/include/linux/stddef.h +#usr/include/linux/string.h +#usr/include/linux/sunrpc +#usr/include/linux/sunrpc/debug.h +#usr/include/linux/suspend_ioctls.h +#usr/include/linux/swab.h +#usr/include/linux/synclink.h +#usr/include/linux/sysctl.h +#usr/include/linux/taskstats.h +#usr/include/linux/tc_act +#usr/include/linux/tc_act/tc_csum.h +#usr/include/linux/tc_act/tc_gact.h +#usr/include/linux/tc_act/tc_ipt.h +#usr/include/linux/tc_act/tc_mirred.h +#usr/include/linux/tc_act/tc_nat.h +#usr/include/linux/tc_act/tc_pedit.h +#usr/include/linux/tc_act/tc_skbedit.h +#usr/include/linux/tc_ematch +#usr/include/linux/tc_ematch/tc_em_cmp.h +#usr/include/linux/tc_ematch/tc_em_meta.h +#usr/include/linux/tc_ematch/tc_em_nbyte.h +#usr/include/linux/tc_ematch/tc_em_text.h +#usr/include/linux/tcp.h +#usr/include/linux/telephony.h +#usr/include/linux/termios.h +#usr/include/linux/time.h +#usr/include/linux/times.h +#usr/include/linux/timex.h +#usr/include/linux/tiocl.h +#usr/include/linux/tipc.h +#usr/include/linux/tipc_config.h +#usr/include/linux/toshiba.h +#usr/include/linux/tty.h +#usr/include/linux/types.h +#usr/include/linux/udf_fs_i.h +#usr/include/linux/udp.h +#usr/include/linux/uinput.h +#usr/include/linux/uio.h +#usr/include/linux/ultrasound.h +#usr/include/linux/un.h +#usr/include/linux/unistd.h +#usr/include/linux/usb +#usr/include/linux/usb/audio.h +#usr/include/linux/usb/cdc.h +#usr/include/linux/usb/ch11.h +#usr/include/linux/usb/ch9.h +#usr/include/linux/usb/functionfs.h +#usr/include/linux/usb/g_printer.h +#usr/include/linux/usb/gadgetfs.h +#usr/include/linux/usb/midi.h +#usr/include/linux/usb/tmc.h +#usr/include/linux/usb/video.h +#usr/include/linux/usbdevice_fs.h +#usr/include/linux/utime.h +#usr/include/linux/utsname.h +#usr/include/linux/uvcvideo.h +#usr/include/linux/v4l2-mediabus.h +#usr/include/linux/v4l2-subdev.h +#usr/include/linux/version.h +#usr/include/linux/veth.h +#usr/include/linux/vhost.h +#usr/include/linux/videodev2.h +#usr/include/linux/virtio_9p.h +#usr/include/linux/virtio_balloon.h +#usr/include/linux/virtio_blk.h +#usr/include/linux/virtio_config.h +#usr/include/linux/virtio_console.h +#usr/include/linux/virtio_ids.h +#usr/include/linux/virtio_net.h +#usr/include/linux/virtio_pci.h +#usr/include/linux/virtio_ring.h +#usr/include/linux/virtio_rng.h +#usr/include/linux/vt.h +#usr/include/linux/wait.h +#usr/include/linux/wanrouter.h +#usr/include/linux/watchdog.h +#usr/include/linux/wimax +#usr/include/linux/wimax.h +#usr/include/linux/wimax/i2400m.h +#usr/include/linux/wireless.h +#usr/include/linux/x25.h +#usr/include/linux/xattr.h +#usr/include/linux/xfrm.h +#usr/include/mtd +#usr/include/mtd/inftl-user.h +#usr/include/mtd/mtd-abi.h +#usr/include/mtd/mtd-user.h +#usr/include/mtd/nftl-user.h +#usr/include/mtd/ubi-user.h +#usr/include/rdma +#usr/include/rdma/ib_user_cm.h +#usr/include/rdma/ib_user_mad.h +#usr/include/rdma/ib_user_sa.h +#usr/include/rdma/ib_user_verbs.h +#usr/include/rdma/rdma_netlink.h +#usr/include/rdma/rdma_user_cm.h +#usr/include/scsi +#usr/include/scsi/fc +#usr/include/scsi/fc/fc_els.h +#usr/include/scsi/fc/fc_fs.h +#usr/include/scsi/fc/fc_gs.h +#usr/include/scsi/fc/fc_ns.h +#usr/include/scsi/scsi_bsg_fc.h +#usr/include/scsi/scsi_netlink.h +#usr/include/scsi/scsi_netlink_fc.h +#usr/include/sound +#usr/include/sound/asequencer.h +#usr/include/sound/asound.h +#usr/include/sound/asound_fm.h +#usr/include/sound/emu10k1.h +#usr/include/sound/hdsp.h +#usr/include/sound/hdspm.h +#usr/include/sound/sb16_csp.h +#usr/include/sound/sfnt_info.h +#usr/include/video +#usr/include/video/edid.h +#usr/include/video/sisfb.h +#usr/include/video/uvesafb.h +#usr/include/xen +#usr/include/xen/evtchn.h +#usr/include/xen/privcmd.h diff --git a/config/rootfiles/common/armv5tel/linux-kirkwood b/config/rootfiles/common/armv5tel/linux-kirkwood index 3cfb393..c24aebe 100644 --- a/config/rootfiles/common/armv5tel/linux-kirkwood +++ b/config/rootfiles/common/armv5tel/linux-kirkwood @@ -1,5 +1,2085 @@ -boot/uInit-ipfire-kirkwood -boot/uImage-ipfire-kirkwood boot/System.map-KVER-ipfire-kirkwood +#boot/System.map-ipfire-kirkwood boot/config-KVER-ipfire-kirkwood +boot/uImage-ipfire-kirkwood +boot/vmlinuz-KVER-ipfire-kirkwood +etc/modprobe.d/framebuffer +etc/modprobe.d/ipv6 +etc/modprobe.d/isdn lib/modules/KVER-ipfire-kirkwood +#lib/modules/KVER-ipfire-kirkwood/build +#lib/modules/KVER-ipfire-kirkwood/kernel +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/aes_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/af_alg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/algif_hash.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/algif_skcipher.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ansi_cprng.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/anubis.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_memcpy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_pq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_raid6_recov.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_tx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_xor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/raid6test.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/authenc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/blowfish_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/camellia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cast5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cast6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cbc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ccm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/crc32c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cryptd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/crypto_user.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ctr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/des_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ecb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/fcrypt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/gcm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/gf128mul.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ghash-generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/khazad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/lrw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/md4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/md5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/michael_mic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd128.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd160.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd256.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd320.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/salsa20_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/seed.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/seqiv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/serpent.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha1_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha256_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/tea.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/tgr192.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/twofish_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/vmac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/wp512.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/xcbc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/xor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/xts.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/zlib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/acard-ahci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ahci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ahci_platform.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ata_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ata_piix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/libahci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/libata.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ali.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_amd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_arasan_cf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_artop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_atiixp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_atp867x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cmd640.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cmd64x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cs5520.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cs5530.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cs5536.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cypress.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_efar.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt366.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt37x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt3x2n.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt3x3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_it8213.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_it821x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_jmicron.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_legacy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_marvell.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_mpiix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_netcell.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ninja32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ns87410.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ns87415.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_oldpiix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_opti.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_optidma.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pcmcia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pdc2027x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pdc202xx_old.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_piccolo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_radisys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_rdc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_rz1000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sc1200.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_serverworks.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sil680.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sis.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sl82c105.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_triflex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_via.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pdc_adma.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_inic162x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_mv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_nv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_promise.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_qstor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sil.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sil24.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sis.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_svw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sx4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_uli.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_via.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_vsc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/ambassador.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/atmtcp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/eni.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/firestream.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/fore_200e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/horizon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/idt77105.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/idt77252.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/iphase.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/lanai.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/nicstar.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/solos-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/suni.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/uPD98402.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/zatm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base/regmap +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base/regmap/regmap-i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bcma +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bcma/bcma.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/DAC960.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/aoe +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/aoe/aoe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cciss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cpqarray.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cryptoloop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/mg_disk.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/nbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/osdblk.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/rbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/sx8.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/ath3k.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bcm203x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bfusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bluecard_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bpa10x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bt3c_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btmrvl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btmrvl_sdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btsdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btuart_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btwilink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/dtl1_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/hci_uart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/hci_vhci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/cdrom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/cdrom/cdrom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random/rng-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random/timeriomem-rng.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_devintf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_msghandler.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_poweroff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_si.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_watchdog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/lp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/nvram.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/pcmcia +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/pcmcia/synclink_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ppdev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/connector +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/connector/cn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto/hifn_795x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto/mv_cesa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/dma +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/dma/dmatest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-net.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-ohci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-sbp2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-adp5588.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-it8761e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-janz-ttl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max7300.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max730x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-mcp23s08.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-ml-ioh.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-pca953x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-pcf857x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-rdc321x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-vx855.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/drm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/mga +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/r128 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/r128/r128.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/savage +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/savage/savage.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/tdfx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/tdfx/tdfx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/ttm +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/ttm/ttm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/via +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/via/via.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/vmwgfx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/stub +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/stub/poulsbo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-a4tech.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-apple.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-axff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-belkin.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-cherry.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-chicony.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-cypress.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-dr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-elecom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ezkey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-gaff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-holtekff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-kensington.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-keytouch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-kye.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-logitech-dj.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-logitech.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-magicmouse.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-microsoft.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-monterey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-multitouch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ortek.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-picolcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-pl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-primax.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-prodikeys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-quanta.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-samsung.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sjoy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-speedlink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sunplus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-tmff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-topseed.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-uclogic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-wacom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-waltop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-wiimote.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-zpff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-zydacron.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/usbhid +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ad7414.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ad7418.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1021.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1025.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1026.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1029.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1031.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ads1015.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7411.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7462.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7470.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/amc6821.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/asc7621.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/atxp1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/dme1737.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc2103.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc6w201.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/f71805f.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/f71882fg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/g760a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gl518sm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gl520sm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/hwmon-vid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/hwmon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/i5k_amb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ibmaem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/jc42.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lineage-pem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm73.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm75.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm77.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm78.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm80.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm83.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm85.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm87.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm90.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm92.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4151.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4215.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max16065.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6642.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ntc_thermistor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pc87360.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pc87427.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ltc2978.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/zl6100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sht21.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sis5595.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smm665.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47b397.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47m1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47m192.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/tmp102.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/tmp401.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/via686a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/vt1211.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/vt8231.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83627ehf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83627hf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83781d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83791d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83792d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83795.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83l785ts.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83l786ng.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/algos +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/algos/i2c-algo-bit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/algos/i2c-algo-pca.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ali1535.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ali1563.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ali15x3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-amd756.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-designware-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-designware-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-eg20t.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-i801.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-intel-mid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-isch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-nforce2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ocores.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-parport-light.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-parport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-pca-platform.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-piix4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-simtec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis5595.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis630.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis96x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-taos-evm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-tiny-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-via.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-viapro.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-xiic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-mux.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/gpio-i2cmux.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/pca9541.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/pca954x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ieee802154 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/ff-memless.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/input-polldev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/adp5589-keys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/gpio_keys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/gpio_keys_polled.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/lkkbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/matrix_keypad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/mcs_touchkey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/mpr121_touchkey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/newtonkbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/qt1070.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/qt2160.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/stowaway.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/tca6416-keypad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/88pm860x_onkey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ad714x-i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ad714x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/bma150.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/cm109.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/keyspan_remote.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/pcf8574_keypad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/sparse-keymap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi/capi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi/capidrv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi/kernelcapi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/divert +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/divert/dss1_divert.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/bas_gigaset.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/gigaset.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/ser_gigaset.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/usb_gigaset.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/avm_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1dma.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/c4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/t1pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/diva_idi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divacapi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divadidd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/avmfritz.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcpci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNinfineon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNipac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNisar.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/netjet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/speedfax.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/w6692.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/avma1_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/elsa_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hfc_usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_isac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_st5481.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/sedlbauer_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/teles_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hysdn +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hysdn/hysdn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdnhdlc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/l1oip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/mISDN_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/mISDN_dsp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-88pm860x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lt3593.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-pca9532.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-pca955x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-timer.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-crypt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-delay.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-flakey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-log-userspace.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-log.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-mirror.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-multipath.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-raid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-region-hash.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-round-robin.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-service-time.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-snapshot.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-thin-pool.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-zero.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/linear.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/md-mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/persistent-data/dm-persistent-data.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid0.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid10.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid456.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/mc44s803.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda18271.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda827x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda8290.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda9887.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tea5761.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tea5767.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-simple.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-types.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/xc4000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/xc5000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb/dvb-core +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/rc-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/ir-kbd-i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/v4l2-common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/v4l2-int-device.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core/memstick.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core/mspro_block.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/jmb38x_ms.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/r592.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/tifm_ms.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptbase.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptctl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptfc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptsas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptscsih.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptspi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/janz-cmodio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/lpc_sch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633-adc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/rdc321x-southbridge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/sm501.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/timberdale.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps6105x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps65010.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps6507x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/vx855.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/wl1273-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/wm8400-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/apds9802als.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/apds990x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bh1770glc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bh1780gli.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bmp085.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/c2port +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/c2port/core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/cb710 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/cb710/cb710.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/at24.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/eeprom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/max6875.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/hmc6352.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/hpilo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ics932s401.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/isl29003.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/isl29020.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/iwmc3200top +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/pch_phub.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ti-st/st_drv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tifm_7xx1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tifm_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tsl2550.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/mmc_block.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/mmc_test.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/sdio_uart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/core +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/core/mmc_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/cb710-mmc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/dw_mmc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/mvsdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdricoh_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/tifm_sd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/ushc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/via-sdmmc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/vub300.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ar7part.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/chips +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/chips/chipreg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr/lpddr_cmds.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr/qinfo_probe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/maps +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/maps/physmap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtd_blkdevs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtdblock.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtdchar.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand_ecc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand_ids.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/orion_nand.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/plat_nand.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ofpart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/sm_ftl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_nandecctest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_oobtest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_pagetest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_readtest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_speedtest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_stresstest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_subpagetest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_torturetest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ubi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ubi/ubi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/bonding +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/bonding/bonding.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/dummy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/eql.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c574_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c589_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c59x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/typhoon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/8390.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/ax88796.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/axnet_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/ne2k-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/pcnet_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/adaptec +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/adaptec/starfire.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/alteon +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/alteon/acenic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/amd8111e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/nmclan_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/pcnet32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1c +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1e +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1e/atl1e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atlx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atlx/atl1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/bnx2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/bnx2x +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/cnic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/tg3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade/bna +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb3 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4vf +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco/enic +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco/enic/enic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/davicom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/davicom/dm9000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/tulip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/de600.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/de620.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/dl2k.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/sundance.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/emulex +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/emulex/benet +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/emulex/benet/be2net.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fealnx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fujitsu +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/hp +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/hp/hp100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/icplus +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/icplus/ipg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000/e1000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000e +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igb/igb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igbvf +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgb/ixgb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgbe +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/jme.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/mv643xx_eth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/skge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/sky2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ksz884x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/myricom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/myricom/myri10ge +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/natsemi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/natsemi/natsemi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/natsemi/ns83820.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion/s2io.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion/vxge +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion/vxge/vxge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/nvidia +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/nvidia/forcedeth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi/pch_gbe +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines/hamachi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines/yellowfin.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/netxen +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qla3xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlcnic +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlge +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlge/qlge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/rdc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/rdc/r6040.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/8139cp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/8139too.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/r8169.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/seeq +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/seeq/seeq8005.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sfc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sfc/sfc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/silan +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/silan/sc92031.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sis +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sis/sis190.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sis/sis900.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/epic100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc911x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc91x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smsc911x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smsc9420.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun/cassini.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun/niu.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun/sunhme.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/tehuti +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/tehuti/tehuti.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/ti +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/ti/tlan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via/via-rhine.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/xircom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ifb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/imq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/irda-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/irtty-sir.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/kingsun-sir.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/ks959-sir.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/ksdazzle-sir.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/mcs7780.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/sir-dev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/stir4200.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/vlsi_ir.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/macvtap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/mdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/broadcom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/cicada.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/dp83640.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/et1011c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/icplus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/lxt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/marvell.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/micrel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/national.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/qsemi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/realtek.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/smsc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/ste10Xp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/vitesse.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/pptp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip/slip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/tun.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/catc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_eem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_ncm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cx82310_eth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/dm9601.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/gl620a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/hso.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/kalmia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/lg-vl600.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/mcs7830.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/net1080.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/pegasus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/rndis_host.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/smsc75xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/smsc95xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/usbnet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/zaurus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/veth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/vmxnet3 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/vmxnet3/vmxnet3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/dlci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/dscc4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/farsync.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_cisco.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_fr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_ppp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_raw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_raw_eth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/lmc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/lmc/lmc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/pc300too.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/pci200syn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/wanxl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/airo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/airo_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel_pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_plx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ray_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/wl3501_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport/parport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport/parport_ax88796.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pci +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pci/pci-stub.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/i82092.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia_rsrc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pd6729.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/yenta_socket.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pps +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ptp +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator/fixed.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator/gpio-regulator.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-bq32k.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-bq4802.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-cmos.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1286.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1307.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1374.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1511.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1553.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1672.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-em3027.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-isl12022.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-isl1208.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m41t80.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t35.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t59.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t86.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-msm6242.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf8563.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rp5c01.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rv3029c2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rx8025.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rx8581.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-s35390a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-stk17ta8.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-v3020.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-x1205.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/3w-9xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/3w-sas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/3w-xxxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/a100u2w.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aacraid +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aacraid/aacraid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic7xxx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic7xxx/aic79xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic7xxx/aic7xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic94xx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic94xx/aic94xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/arcmsr +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/arcmsr/arcmsr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/be2iscsi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/be2iscsi/be2iscsi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bfa +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bfa/bfa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2fc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2fc/bnx2fc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2i +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2i/bnx2i.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb3i +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb4i +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb4i/cxgb4i.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/libcxgbi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dc395x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dmx3191d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dpt_i2o.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe/fcoe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe/libfcoe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fdomain.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/hpsa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/hptiop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/initio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ipr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ips.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/iscsi_boot_sysfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/iscsi_tcp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libfc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libfc/libfc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libiscsi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libiscsi_tcp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libsas +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libsas/libsas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/lpfc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/lpfc/lpfc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid/megaraid_mbox.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid/megaraid_mm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid/megaraid_sas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mpt2sas +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mpt2sas/mpt2sas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvsas +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvsas/mvsas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvumi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd/libosd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/aha152x_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/fdomain_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/nsp_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/qlogic_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pm8001 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pm8001/pm8001.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pmcraid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla1280.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla2xxx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla2xxx/qla2xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla4xxx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla4xxx/qla4xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qlogicfas408.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/raid_class.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_fc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_iscsi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_sas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_spi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_srp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_wait_scan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sd_mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ses.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/stex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sym53c8xx_2 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/tmscsim.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ssb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ssb/ssb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/et131x +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/et131x/et131x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/phison +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/phison/phison.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/usbip-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/usbip-host.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/ipwireless +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/ipwireless/ipwireless.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/8250_dw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/altera_jtaguart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/altera_uart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/mfd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/pch_uart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/serial_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/timbuart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/uartlite.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/xilinx_uartps.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_aec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_cif.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_netx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pci_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pdrv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pdrv_genirq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_sercos3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/cxacru.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/speedtch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/ueagle-atm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/usbatm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/cdc-acm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/cdc-wdm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/usblp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/usbtmc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/hwa-hc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/isp116x-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/isp1362-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/oxu210hp-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/r8a66597-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/sl811-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/whci +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/whci/whci-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/xhci-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/cypress_cy7c63.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/emi26.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/ftdi-elan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/iowarrior.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/isight_firmware.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/sisusbvga +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usblcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usbled.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usbsevseg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/uss720.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/yurex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg/gpio_vbus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg/nop-usb-xceiv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/aircable.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ark3116.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/belkin_sa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ch341.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/cp210x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/cypress_m8.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/digi_acceleport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/funsoft.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/garmin_gps.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/hp4x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ipaq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ir-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/iuu_phoenix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mct_u232.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mos7720.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mos7840.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/moto_modem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/opticon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/option.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/oti6858.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/qcaux.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/qcserial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/siemens_mpi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/sierra.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ssu100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/symbolserial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/usb_wwan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/vivopay-serial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/uas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-alauda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-eneub6250.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-freecom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-isd200.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-jumpshot.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-karma.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-realtek.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-sddr09.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-sddr55.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-usbat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/usb-storage.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore/wusb-cbaf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore/wusb-wa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore/wusbcore.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/hwa-rc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480/dfu +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480/i1480-est.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/umc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/uwb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/whc-rc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/whci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/arkfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/aty128fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/atyfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/radeonfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/88pm860x_bl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/adp8860_bl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/adp8870_bl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/generic_bl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/lcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/pcf50633-backlight.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/platform_lcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/cirrusfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/cyber2000fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/display +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/display/display.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/fb_ddc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/fb_sys_fops.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/kyro +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/kyro/kyrofb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/macmodes.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/g450_pll.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/i2c-matroxfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_DAC1064.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_Ti3026.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_accel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_base.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_crtc2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_g450.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_maven.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_misc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/metronomefb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/neofb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/nvidia +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/nvidia/nvidiafb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/output.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/pm2fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/pm3fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/riva +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/riva/rivafb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/s3fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sis +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sis/sisfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sm501fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/smscufx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sstfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/svgalib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/syscopyarea.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sysfillrect.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sysimgblt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tdfxfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tmiofb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tridentfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/uvesafb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/vgastate.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/vt8623fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds1wm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds2482.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds2490.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/matrox_w1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/w1-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2423.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2431.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2433.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_smem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_therm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/wire.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/alim7101_wdt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/max63xx_wdt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/orion_wdt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/pcwd_pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/pcwd_usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/wdt_pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/autofs4 +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cachefiles +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cachefiles/cachefiles.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cifs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cifs/cifs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ecryptfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ecryptfs/ecryptfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/exportfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/exportfs/exportfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat/vfat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fscache +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fscache/fscache.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse/cuse.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse/fuse.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/isofs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/isofs/isofs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jffs2 +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jffs2/jffs2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jfs/jfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/lockd +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/lockd/lockd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs_common +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs_common/nfs_acl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfsd +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfsd/nfsd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_tree.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_v1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_v2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/reiserfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/reiserfs/reiserfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/udf +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ufs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ufs/ufs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/xfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/cordic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-ccitt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-itu-t.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-t10dif.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc8.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/raid6 +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_bm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_fsm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net +#lib/modules/KVER-ipfire-kirkwood/kernel/net/802 +#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/garp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/p8022.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/psnap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/stp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/8021q +#lib/modules/KVER-ipfire-kirkwood/kernel/net/8021q/8021q.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm +#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/atm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/br2684.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/clip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/batman-adv +#lib/modules/KVER-ipfire-kirkwood/kernel/net/batman-adv/batman-adv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/bluetooth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/bnep +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/bnep/bnep.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/cmtp +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/cmtp/cmtp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/hidp +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/hidp/hidp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/rfcomm +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/rfcomm/rfcomm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/bridge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_802_3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_among.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_arp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_arpreply.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_dnat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_ip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_ip6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_limit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_log.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_mark.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_mark_m.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_nflog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_pkttype.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_redirect.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_snat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_stp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_ulog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_vlan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_broute.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_filter.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_nat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ceph +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ceph/libceph.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154 +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/6lowpan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/af_802154.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/ieee802154.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4 +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ah4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/gre.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/inet_diag.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ipcomp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ipip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arp_tables.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arpt_mangle.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arptable_filter.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ip_queue.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ip_tables.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ECN.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_LOG.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_NETMAP.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_REJECT.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ULOG.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ah.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ecn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_filter.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_mangle.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_nat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_raw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_h323.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_pptp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_tftp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_bic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_cubic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_diag.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_highspeed.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_htcp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_hybla.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_illinois.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_lp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_scalable.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_vegas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_veno.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_westwood.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_yeah.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/xfrm4_tunnel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6 +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ah6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ip6_tunnel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ipcomp6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/mip6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6_queue.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6_tables.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_REJECT.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_ah.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_eui64.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_frag.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_hbh.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_rt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_filter.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_raw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/sit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/tunnel6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_beet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_ro.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_transport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_tunnel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_tunnel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm/ircomm-tty.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm/ircomm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irlan +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irlan/irlan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irnet +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irnet/irnet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/key +#lib/modules/KVER-ipfire-kirkwood/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_ppp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/llc +#lib/modules/KVER-ipfire-kirkwood/kernel/net/llc/llc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/mac80211 +#lib/modules/KVER-ipfire-kirkwood/kernel/net/mac80211/mac80211.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs/ip_vs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_broadcast.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_ftp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_h323.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_irc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_netbios_ns.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_netlink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_pptp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_dccp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_gre.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_sctp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_udplite.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_sane.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_snmp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_tproxy_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink_log.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink_queue.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/x_tables.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CHECKSUM.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CT.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_DSCP.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_IDLETIMER.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_IMQ.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NFLOG.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NFQUEUE.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NOTRACK.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TCPMSS.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TEE.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TPROXY.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_cluster.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_comment.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connlimit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connmark.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_cpu.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_devgroup.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_esp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_hashlimit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_helper.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_hl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_ipvs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_layer7.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_length.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_limit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_mac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_mark.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_osf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_owner.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_physdev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_pkttype.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_policy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_quota.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_rateest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_realm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_recent.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_socket.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_state.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_statistic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_string.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_tcpmss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_tcpudp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_time.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill/rfkill-regulator.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill/rfkill.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc/af-rxrpc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc/rxkad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_csum.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_gact.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_ipt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_mirred.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_nat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_pedit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_simple.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_skbedit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_flow.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_fw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_route.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_rsvp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_rsvp6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_tcindex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_u32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_meta.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_nbyte.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_text.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_u32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_atm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_drr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_gred.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_hfsc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_htb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_mqprio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_multiq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_qfq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_sfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_sfq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_tbf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/cfg80211.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211_crypt_ccmp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211_crypt_tkip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211_crypt_wep.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm +#lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm/xfrm_ipcomp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm/xfrm_user.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/ac97_bus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/oss +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/oss/snd-mixer-oss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/oss/snd-pcm-oss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/oss +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/oss/snd-seq-oss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-device.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-midi-emul.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-virmidi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-hwdep.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-page-alloc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-rawmidi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-timer.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/opl3 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/opl3/snd-opl3-lib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/opl3/snd-opl3-synth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-aloop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-mts64.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/vx +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/vx/snd-vx-lib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-firewire-lib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-firewire-speakers.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-isight.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4113.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4114.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4117.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4xxx-adda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-pt2258.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-tea575x-tuner.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/snd-cs8427.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/snd-i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ac97 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0/snd-au8810.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0/snd-au8820.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0/snd-au8830.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/aw2 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/aw2/snd-aw2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ca0106 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ca0106/snd-ca0106.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs46xx +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs46xx/snd-cs46xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs5535audio +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ctxfi +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ctxfi/snd-ctxfi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-darla20.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-darla24.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-echo3g.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-gina20.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-gina24.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigodj.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigodjx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigoio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigoiox.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-layla20.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-layla24.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-mia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-mona.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1/snd-emu10k1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1/snd-emu10k1x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-analog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-ca0132.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-conexant.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-idt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-realtek.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-si3054.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-via.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-intel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712/snd-ice1712.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712/snd-ice1724.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/korg1212 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/korg1212/snd-korg1212.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lola +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lola/snd-lola.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lx6464es +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lx6464es/snd-lx6464es.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/mixart +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/mixart/snd-mixart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/nm256 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/nm256/snd-nm256.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen/snd-oxygen-lib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen/snd-oxygen.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen/snd-virtuoso.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/pcxhr +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/pcxhr/snd-pcxhr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/riptide +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/riptide/snd-riptide.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652/snd-hdsp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652/snd-hdspm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652/snd-rme9652.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-ad1889.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-als300.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-atiixp-modem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-atiixp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-azt3328.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-bt87x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-cmipci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-cs4281.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-ens1370.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-ens1371.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-es1938.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-es1968.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-fm801.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-intel8x0.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-intel8x0m.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-maestro3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-rme32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-rme96.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-sonicvibes.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-via82xx-modem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-via82xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/trident +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/trident/snd-trident.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/vx222 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/vx222/snd-vx222.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ymfpci +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ymfpci/snd-ymfpci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/pdaudiocf +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/vx +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/vx/snd-vxpocket.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs/snd-soc-alc5623.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs/snd-soc-cs42l51.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-kirkwood-i2s.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-kirkwood.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-openrd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-t5325.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/snd-soc-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth/emux +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth/emux/snd-emux-synth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth/snd-util-mem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/misc +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire-kirkwood/modules.alias +#lib/modules/KVER-ipfire-kirkwood/modules.alias.bin +#lib/modules/KVER-ipfire-kirkwood/modules.builtin +#lib/modules/KVER-ipfire-kirkwood/modules.ccwmap +#lib/modules/KVER-ipfire-kirkwood/modules.dep +#lib/modules/KVER-ipfire-kirkwood/modules.dep.bin +#lib/modules/KVER-ipfire-kirkwood/modules.ieee1394map +#lib/modules/KVER-ipfire-kirkwood/modules.inputmap +#lib/modules/KVER-ipfire-kirkwood/modules.isapnpmap +#lib/modules/KVER-ipfire-kirkwood/modules.ofmap +#lib/modules/KVER-ipfire-kirkwood/modules.order +#lib/modules/KVER-ipfire-kirkwood/modules.pcimap +#lib/modules/KVER-ipfire-kirkwood/modules.seriomap +#lib/modules/KVER-ipfire-kirkwood/modules.symbols +#lib/modules/KVER-ipfire-kirkwood/modules.symbols.bin +#lib/modules/KVER-ipfire-kirkwood/modules.usbmap +#lib/modules/KVER-ipfire-kirkwood/source +sbin/gen_init_cpio +boot/uInit-ipfire-kirkwood diff --git a/config/rootfiles/common/armv5tel/linux-omap b/config/rootfiles/common/armv5tel/linux-omap new file mode 100644 index 0000000..f3bf7c6 --- /dev/null +++ b/config/rootfiles/common/armv5tel/linux-omap @@ -0,0 +1,1467 @@ +boot/System.map-KVER-ipfire-omap +#boot/System.map-ipfire-omap +boot/config-KVER-ipfire-omap +boot/uImage-ipfire-omap +boot/vmlinuz-KVER-ipfire-omap +lib/modules/KVER-ipfire-omap +#lib/modules/KVER-ipfire-omap/build +#lib/modules/KVER-ipfire-omap/kernel +#lib/modules/KVER-ipfire-omap/kernel/crypto +#lib/modules/KVER-ipfire-omap/kernel/crypto/aes_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/af_alg.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/algif_hash.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/algif_skcipher.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/ansi_cprng.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/anubis.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_memcpy.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_pq.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_raid6_recov.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_tx.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_xor.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/raid6test.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/authenc.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/blowfish_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/camellia.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/cast5.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/cast6.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/cbc.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/ccm.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/crc32c.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/cryptd.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/crypto_user.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/ctr.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/des_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/ecb.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/fcrypt.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/gcm.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/gf128mul.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/ghash-generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/khazad.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/lrw.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/md4.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/md5.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/michael_mic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/pcrypt.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd128.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd160.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd256.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd320.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/salsa20_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/seed.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/seqiv.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/serpent.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/sha1_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/sha256_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/tea.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/tgr192.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/twofish_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/vmac.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/wp512.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/xcbc.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/xor.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/xts.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/zlib.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/ahci_platform.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/libahci.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/libata.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_arasan_cf.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_of_platform.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_platform.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/sata_mv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/atm +#lib/modules/KVER-ipfire-omap/kernel/drivers/atm/atmtcp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/base +#lib/modules/KVER-ipfire-omap/kernel/drivers/base/regmap +#lib/modules/KVER-ipfire-omap/kernel/drivers/base/regmap/regmap-i2c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bcma +#lib/modules/KVER-ipfire-omap/kernel/drivers/bcma/bcma.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/aoe +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/aoe/aoe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/cryptoloop.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/mg_disk.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/nbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/osdblk.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/rbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/ath3k.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bcm203x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bfusb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bpa10x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btmrvl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btmrvl_sdio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btsdio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btwilink.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/hci_uart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/hci_vhci.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/cdrom +#lib/modules/KVER-ipfire-omap/kernel/drivers/cdrom/cdrom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/omap-rng.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/rng-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/timeriomem-rng.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_devintf.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_msghandler.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_poweroff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_si.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_watchdog.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/lp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/nvram.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ppdev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/connector +#lib/modules/KVER-ipfire-omap/kernel/drivers/connector/cn.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto +#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto/omap-aes.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto/omap-sham.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/dma +#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/dmatest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/dw_dmac.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/timb_dma.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-adp5588.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-generic.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-it8761e.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max7300.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max730x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-mcp23s08.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-pca953x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-pcf857x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-twl4030.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu/drm/drm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-a4tech.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-apple.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-axff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-belkin.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-cherry.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-chicony.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-cypress.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-dr.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-elecom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ezkey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-gaff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-holtekff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-kensington.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-keytouch.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-kye.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-logitech-dj.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-logitech.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-magicmouse.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-microsoft.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-monterey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-multitouch.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ortek.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-picolcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-pl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-primax.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-prodikeys.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-quanta.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-samsung.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sjoy.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-speedlink.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sunplus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-tmff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-topseed.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-uclogic.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-wacom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-waltop.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-wiimote.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-zpff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-zydacron.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbkbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbmouse.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ad7414.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ad7418.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1021.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1025.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1026.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1029.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1031.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ads1015.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7411.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7462.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7470.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/amc6821.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/asc7621.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/atxp1.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/dme1737.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc2103.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc6w201.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f71805f.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f71882fg.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/g760a.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gl518sm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gl520sm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/hwmon-vid.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/hwmon.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ibmaem.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/jc42.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lineage-pem.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm73.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm75.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm77.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm78.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm80.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm83.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm85.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm87.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm90.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm92.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4151.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4215.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max16065.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6642.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ntc_thermistor.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pc87360.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pc87427.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ltc2978.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/zl6100.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sht21.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smm665.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47b397.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47m1.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47m192.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp102.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp401.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/twl4030-madc-hwmon.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/vt1211.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83627ehf.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83627hf.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83781d.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83791d.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83792d.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83795.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83l785ts.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83l786ng.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock/hwspinlock_core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock/omap_hwspinlock.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos/i2c-algo-bit.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos/i2c-algo-pca.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-ocores.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-parport-light.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-parport.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-pca-platform.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-simtec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-taos-evm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-tiny-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-xiic.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-mux.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/gpio-i2cmux.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/pca9541.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/pca954x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ieee802154 +#lib/modules/KVER-ipfire-omap/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/ff-memless.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/input-polldev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/adp5589-keys.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/gpio_keys.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/gpio_keys_polled.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/lkkbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/matrix_keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/mcs_touchkey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/mpr121_touchkey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/newtonkbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/omap-keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/omap4-keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/qt1070.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/qt2160.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/stowaway.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/tca6416-keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/twl4030_keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ad714x-i2c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ad714x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/bma150.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/cm109.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/keyspan_remote.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pcf8574_keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pwm-beeper.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl4030-pwrbutton.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl4030-vibra.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl6040-vibra.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/sparse-keymap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/capi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/capidrv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/kernelcapi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/divert +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/divert/dss1_divert.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/bas_gigaset.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/gigaset.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/ser_gigaset.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/usb_gigaset.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware/mISDN +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hfc_usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hisax.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hisax_st5481.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdn.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdnhdlc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/l1oip.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/mISDN_core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/mISDN_dsp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lt3593.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-pca9532.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-pca955x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-default-on.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-timer.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-crypt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-delay.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-flakey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-log-userspace.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-log.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-mirror.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-mod.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-multipath.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-raid.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-region-hash.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-round-robin.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-service-time.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-snapshot.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-thin-pool.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-zero.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/linear.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/md-mod.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/persistent-data/dm-persistent-data.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid0.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid1.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid10.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid456.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/mc44s803.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda18271.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda827x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda8290.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda9887.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tea5761.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tea5767.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-simple.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-types.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/xc4000.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/xc5000.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb/dvb-core +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio/wl128x +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio/wl128x/fm_drv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/rc-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/ir-kbd-i2c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/v4l2-common.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/v4l2-int-device.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick +#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core +#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core/memstick.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core/mspro_block.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633-adc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/sm501.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps6105x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps65010.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps6507x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/twl4030-madc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/twl6030-pwm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/wl1273-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/wm8400-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/apds9802als.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/apds990x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bh1770glc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bh1780gli.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bmp085.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/c2port +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/c2port/core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/at24.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/eeprom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/max6875.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/hmc6352.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ics932s401.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/isl29003.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/isl29020.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/iwmc3200top +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ti-st/st_drv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/tsl2550.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/mmc_block.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/mmc_test.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/sdio_uart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/dw_mmc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/sdhci.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/ushc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/vub300.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ar7part.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/chips +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/chips/chipreg.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr/lpddr_cmds.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr/qinfo_probe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/maps +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/maps/physmap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtd_blkdevs.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtdblock.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtdchar.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/nand/nand_ecc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ofpart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/sm_ftl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_nandecctest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_oobtest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_pagetest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_readtest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_speedtest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_stresstest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_subpagetest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_torturetest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ubi +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ubi/ubi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/bonding +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/bonding/bonding.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/dummy.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/eql.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/8390/ax88796.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/davicom +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/davicom/dm9000.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink/de600.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink/de620.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/seeq +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/seeq/seeq8005.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smc911x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smc91x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smsc911x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ifb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/imq.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/irda-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/irtty-sir.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/kingsun-sir.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/ks959-sir.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/ksdazzle-sir.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/mcs7780.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/sir-dev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/stir4200.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/macvtap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/broadcom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/cicada.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/dp83640.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/et1011c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/icplus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/lxt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/marvell.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/micrel.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/national.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/qsemi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/realtek.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/smsc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/ste10Xp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/vitesse.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pptp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip/slip.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/tun.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/catc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_eem.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_ncm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cx82310_eth.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/dm9601.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/gl620a.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/hso.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/kalmia.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/lg-vl600.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/mcs7830.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/net1080.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/pegasus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/rndis_host.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/smsc75xx.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/smsc95xx.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/usbnet.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/zaurus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/veth.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/dlci.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_cisco.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_fr.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_ppp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_raw.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_raw_eth.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/hostap +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/hostap/hostap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/parport +#lib/modules/KVER-ipfire-omap/kernel/drivers/parport/parport.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/parport/parport_ax88796.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/power +#lib/modules/KVER-ipfire-omap/kernel/drivers/power/gpio-charger.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/power/twl4030_charger.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/pps +#lib/modules/KVER-ipfire-omap/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ptp +#lib/modules/KVER-ipfire-omap/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/regulator +#lib/modules/KVER-ipfire-omap/kernel/drivers/regulator/gpio-regulator.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-cmos.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1286.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1307.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1374.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1511.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1553.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1672.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-em3027.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-isl12022.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-isl1208.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m41t80.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t35.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t59.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t86.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-msm6242.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf8563.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rp5c01.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rv3029c2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rx8025.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rx8581.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-s35390a.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-stk17ta8.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-v3020.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-x1205.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/fcoe +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/fcoe/libfcoe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/iscsi_boot_sysfs.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/iscsi_tcp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libfc +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libfc/libfc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libiscsi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libiscsi_tcp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libsas +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libsas/libsas.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd/libosd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/raid_class.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_mod.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_fc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_iscsi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_sas.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_spi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_srp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_wait_scan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sd_mod.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/ses.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sg.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ssb +#lib/modules/KVER-ipfire-omap/kernel/drivers/ssb/ssb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/staging +#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip +#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/usbip-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/usbip-host.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/8250_dw.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/altera_jtaguart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/altera_uart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/timbuart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/xilinx_uartps.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/uio +#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio_pdrv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio_pdrv_genirq.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/cxacru.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/speedtch.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/ueagle-atm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/usbatm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/cdc-acm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/cdc-wdm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/usblp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/usbtmc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3/dwc3.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/isp116x-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/isp1362-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/oxu210hp-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/r8a66597-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/sl811-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/cypress_cy7c63.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/emi26.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/ftdi-elan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/iowarrior.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/isight_firmware.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/sisusbvga +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usblcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usbled.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usbsevseg.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/uss720.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/yurex.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/gpio_vbus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/twl4030-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/twl6030-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/aircable.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ark3116.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/belkin_sa.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ch341.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/cp210x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/cypress_m8.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/digi_acceleport.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/funsoft.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/garmin_gps.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/hp4x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ipaq.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ir-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/iuu_phoenix.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mct_u232.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mos7720.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mos7840.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/moto_modem.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/opticon.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/option.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/oti6858.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/qcaux.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/qcserial.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/siemens_mpi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/sierra.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ssu100.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/symbolserial.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/usb_wwan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/vivopay-serial.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/uas.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-alauda.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-eneub6250.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-freecom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-isd200.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-jumpshot.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-karma.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-realtek.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-sddr09.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-sddr55.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-usbat.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/usb-storage.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/adp8860_bl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/adp8870_bl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/lcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/pcf50633-backlight.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/platform_lcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/pwm_bl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/fb_sys_fops.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/metronomefb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/output.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sm501fb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/smscufx.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/syscopyarea.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sysfillrect.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sysimgblt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/tmiofb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/uvesafb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1 +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds1wm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds2482.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds2490.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/omap_hdq.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/w1-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2423.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2431.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2433.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_smem.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_therm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/wire.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/dw_wdt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/max63xx_wdt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/mpcore_wdt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/omap_wdt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/pcwd_usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/twl4030_wdt.ko +#lib/modules/KVER-ipfire-omap/kernel/fs +#lib/modules/KVER-ipfire-omap/kernel/fs/autofs4 +#lib/modules/KVER-ipfire-omap/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/cachefiles +#lib/modules/KVER-ipfire-omap/kernel/fs/cachefiles/cachefiles.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/cifs +#lib/modules/KVER-ipfire-omap/kernel/fs/cifs/cifs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/ecryptfs +#lib/modules/KVER-ipfire-omap/kernel/fs/ecryptfs/ecryptfs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/exportfs +#lib/modules/KVER-ipfire-omap/kernel/fs/exportfs/exportfs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/fat +#lib/modules/KVER-ipfire-omap/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/fat/vfat.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/fscache +#lib/modules/KVER-ipfire-omap/kernel/fs/fscache/fscache.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/fuse +#lib/modules/KVER-ipfire-omap/kernel/fs/fuse/cuse.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/fuse/fuse.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/isofs +#lib/modules/KVER-ipfire-omap/kernel/fs/isofs/isofs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/jffs2 +#lib/modules/KVER-ipfire-omap/kernel/fs/jffs2/jffs2.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/jfs +#lib/modules/KVER-ipfire-omap/kernel/fs/jfs/jfs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/lockd +#lib/modules/KVER-ipfire-omap/kernel/fs/lockd/lockd.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/nfs +#lib/modules/KVER-ipfire-omap/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/nfs_common +#lib/modules/KVER-ipfire-omap/kernel/fs/nfs_common/nfs_acl.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/nfsd +#lib/modules/KVER-ipfire-omap/kernel/fs/nfsd/nfsd.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/quota +#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_tree.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_v1.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_v2.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/reiserfs +#lib/modules/KVER-ipfire-omap/kernel/fs/reiserfs/reiserfs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/udf +#lib/modules/KVER-ipfire-omap/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/ufs +#lib/modules/KVER-ipfire-omap/kernel/fs/ufs/ufs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/xfs +#lib/modules/KVER-ipfire-omap/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire-omap/kernel/lib +#lib/modules/KVER-ipfire-omap/kernel/lib/cordic.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/crc-ccitt.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/crc-itu-t.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/crc-t10dif.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/crc8.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/raid6 +#lib/modules/KVER-ipfire-omap/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/ts_bm.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/ts_fsm.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire-omap/kernel/net +#lib/modules/KVER-ipfire-omap/kernel/net/802 +#lib/modules/KVER-ipfire-omap/kernel/net/802/garp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/802/p8022.ko +#lib/modules/KVER-ipfire-omap/kernel/net/802/psnap.ko +#lib/modules/KVER-ipfire-omap/kernel/net/802/stp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/8021q +#lib/modules/KVER-ipfire-omap/kernel/net/8021q/8021q.ko +#lib/modules/KVER-ipfire-omap/kernel/net/atm +#lib/modules/KVER-ipfire-omap/kernel/net/atm/atm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/atm/br2684.ko +#lib/modules/KVER-ipfire-omap/kernel/net/atm/clip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/batman-adv +#lib/modules/KVER-ipfire-omap/kernel/net/batman-adv/batman-adv.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bluetooth.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bnep +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bnep/bnep.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/cmtp +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/cmtp/cmtp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/hidp +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/hidp/hidp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/rfcomm +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/rfcomm/rfcomm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/bridge.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_802_3.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_among.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_arp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_arpreply.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_dnat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ip6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_limit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_log.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_mark.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_mark_m.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_nflog.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_pkttype.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_redirect.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_snat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_stp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ulog.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_vlan.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_broute.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_filter.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_nat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ceph +#lib/modules/KVER-ipfire-omap/kernel/net/ceph/libceph.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154 +#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/6lowpan.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/af_802154.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/ieee802154.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4 +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ah4.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/gre.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/inet_diag.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ipcomp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ipip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arp_tables.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arpt_mangle.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arptable_filter.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ip_queue.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ip_tables.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ECN.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_LOG.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_NETMAP.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_REJECT.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ULOG.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ah.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ecn.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_filter.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_mangle.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_nat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_raw.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_h323.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_pptp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_tftp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_bic.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_cubic.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_diag.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_highspeed.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_htcp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_hybla.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_illinois.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_lp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_scalable.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_vegas.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_veno.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_westwood.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_yeah.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/xfrm4_tunnel.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6 +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ah6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ip6_tunnel.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ipcomp6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/mip6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6_queue.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6_tables.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_REJECT.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_ah.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_eui64.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_frag.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_hbh.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_rt.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_filter.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_raw.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/sit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/tunnel6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_beet.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_ro.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_transport.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_tunnel.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_tunnel.ko +#lib/modules/KVER-ipfire-omap/kernel/net/irda +#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm +#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm/ircomm-tty.ko +#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm/ircomm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/irda/irda.ko +#lib/modules/KVER-ipfire-omap/kernel/net/irda/irlan +#lib/modules/KVER-ipfire-omap/kernel/net/irda/irlan/irlan.ko +#lib/modules/KVER-ipfire-omap/kernel/net/irda/irnet +#lib/modules/KVER-ipfire-omap/kernel/net/irda/irnet/irnet.ko +#lib/modules/KVER-ipfire-omap/kernel/net/key +#lib/modules/KVER-ipfire-omap/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_ppp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/llc +#lib/modules/KVER-ipfire-omap/kernel/net/llc/llc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/mac80211 +#lib/modules/KVER-ipfire-omap/kernel/net/mac80211/mac80211.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_broadcast.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_ftp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_h323.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_irc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_netbios_ns.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_netlink.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_pptp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_dccp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_gre.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_sctp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_udplite.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_sane.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_snmp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_tproxy_core.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink_log.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink_queue.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/x_tables.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CHECKSUM.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CT.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_DSCP.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_IDLETIMER.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_IMQ.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NFLOG.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NFQUEUE.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NOTRACK.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TCPMSS.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TEE.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TPROXY.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_cluster.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_comment.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connlimit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connmark.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_cpu.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_devgroup.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_esp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_hashlimit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_helper.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_hl.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_ipvs.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_layer7.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_length.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_limit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_mac.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_mark.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_osf.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_owner.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_physdev.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_pkttype.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_policy.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_quota.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_rateest.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_realm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_recent.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_socket.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_state.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_statistic.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_string.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_tcpmss.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_tcpudp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_time.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-omap/kernel/net/rfkill +#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill-regulator.ko +#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill.ko +#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc +#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc/af-rxrpc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc/rxkad.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_csum.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_gact.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_ipt.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_mirred.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_nat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_pedit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_simple.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_skbedit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_flow.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_fw.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_route.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_rsvp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_rsvp6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_tcindex.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_u32.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_meta.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_nbyte.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_text.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_u32.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_atm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_drr.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_gred.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_hfsc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_htb.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_mqprio.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_multiq.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_qfq.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_sfb.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_sfq.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_tbf.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc +#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss +#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/wireless +#lib/modules/KVER-ipfire-omap/kernel/net/wireless/cfg80211.ko +#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211.ko +#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_ccmp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_tkip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_wep.ko +#lib/modules/KVER-ipfire-omap/kernel/net/xfrm +#lib/modules/KVER-ipfire-omap/kernel/net/xfrm/xfrm_ipcomp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/xfrm/xfrm_user.ko +#lib/modules/KVER-ipfire-omap/kernel/sound +#lib/modules/KVER-ipfire-omap/kernel/sound/core +#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss +#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss/snd-mixer-oss.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss/snd-pcm-oss.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/oss +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/oss/snd-seq-oss.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-device.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-virmidi.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-hwdep.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-page-alloc.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-rawmidi.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-timer.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-aloop.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-mts64.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tpa6130a2.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-twl4030.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-twl6040.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-am3517evm.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-igep0020.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap-mcbsp.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap-mcpdm.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3beagle.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3evm.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3pandora.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-overo.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-rx51.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-sdp3430.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-sdp4430.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-zoom2.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/snd-soc-core.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/usb +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/misc +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire-omap/modules.alias +#lib/modules/KVER-ipfire-omap/modules.alias.bin +#lib/modules/KVER-ipfire-omap/modules.builtin +#lib/modules/KVER-ipfire-omap/modules.ccwmap +#lib/modules/KVER-ipfire-omap/modules.dep +#lib/modules/KVER-ipfire-omap/modules.dep.bin +#lib/modules/KVER-ipfire-omap/modules.ieee1394map +#lib/modules/KVER-ipfire-omap/modules.inputmap +#lib/modules/KVER-ipfire-omap/modules.isapnpmap +#lib/modules/KVER-ipfire-omap/modules.ofmap +#lib/modules/KVER-ipfire-omap/modules.order +#lib/modules/KVER-ipfire-omap/modules.pcimap +#lib/modules/KVER-ipfire-omap/modules.seriomap +#lib/modules/KVER-ipfire-omap/modules.symbols +#lib/modules/KVER-ipfire-omap/modules.symbols.bin +#lib/modules/KVER-ipfire-omap/modules.usbmap +#lib/modules/KVER-ipfire-omap/source +boot/uInit-ipfire-omap diff --git a/config/rootfiles/common/armv5tel/linux-rpi b/config/rootfiles/common/armv5tel/linux-rpi new file mode 100644 index 0000000..0b8c57c --- /dev/null +++ b/config/rootfiles/common/armv5tel/linux-rpi @@ -0,0 +1,1439 @@ +boot/System.map-KVER-ipfire-rpi +#boot/System.map-ipfire-rpi +boot/config-KVER-ipfire-rpi +boot/kernel.img +boot/vmlinuz-KVER-ipfire-rpi +#lib/modules +lib/modules/KVER-ipfire-rpi +#lib/modules/KVER-ipfire-rpi/build +#lib/modules/KVER-ipfire-rpi/kernel +#lib/modules/KVER-ipfire-rpi/kernel/arch +#lib/modules/KVER-ipfire-rpi/kernel/arch/arm +#lib/modules/KVER-ipfire-rpi/kernel/arch/arm/mach-bcm2708 +#lib/modules/KVER-ipfire-rpi/kernel/arch/arm/mach-bcm2708/dmaer.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto +#lib/modules/KVER-ipfire-rpi/kernel/crypto/aes_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/af_alg.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/algif_hash.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/algif_skcipher.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/ansi_cprng.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/anubis.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_memcpy.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_pq.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_raid6_recov.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_tx.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_xor.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/raid6test.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/authenc.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/blowfish_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/camellia.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cast5.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cast6.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cbc.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/ccm.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/crc32c.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cryptd.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/crypto_user.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/ctr.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/des_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/ecb.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/fcrypt.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/gcm.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/gf128mul.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/ghash-generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/khazad.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/lrw.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/md4.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/md5.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/michael_mic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd128.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd160.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd256.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd320.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/salsa20_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/seed.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/seqiv.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/serpent.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/sha1_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/sha256_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/tea.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/tgr192.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/twofish_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/vmac.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/wp512.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/xcbc.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/xor.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/xts.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/zlib.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/ahci_platform.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/libahci.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/libata.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/pata_arasan_cf.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/sata_mv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/atm +#lib/modules/KVER-ipfire-rpi/kernel/drivers/atm/atmtcp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/base +#lib/modules/KVER-ipfire-rpi/kernel/drivers/base/regmap +#lib/modules/KVER-ipfire-rpi/kernel/drivers/base/regmap/regmap-i2c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bcma +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bcma/bcma.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/aoe +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/aoe/aoe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/cryptoloop.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/mg_disk.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/nbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/osdblk.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/rbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/ath3k.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/bcm203x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/bfusb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/bpa10x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btmrvl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btmrvl_sdio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btsdio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btwilink.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/hci_uart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/hci_vhci.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/cdrom +#lib/modules/KVER-ipfire-rpi/kernel/drivers/cdrom/cdrom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random/rng-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random/timeriomem-rng.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_devintf.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_msghandler.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_poweroff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_si.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_watchdog.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/lp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/nvram.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ppdev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/connector +#lib/modules/KVER-ipfire-rpi/kernel/drivers/connector/cn.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/cpufreq +#lib/modules/KVER-ipfire-rpi/kernel/drivers/cpufreq/cpufreq_stats.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/dma +#lib/modules/KVER-ipfire-rpi/kernel/drivers/dma/dmatest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-adp5588.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-it8761e.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max7300.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max730x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-mcp23s08.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-pca953x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-pcf857x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm/drm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-a4tech.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-apple.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-axff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-belkin.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-cherry.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-chicony.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-cypress.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-dr.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-elecom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ezkey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-gaff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-holtekff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-kensington.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-keytouch.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-kye.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-logitech-dj.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-logitech.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-magicmouse.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-microsoft.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-monterey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-multitouch.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ortek.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-picolcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-pl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-primax.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-prodikeys.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-quanta.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-samsung.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sjoy.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-speedlink.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sunplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-tmff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-topseed.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-uclogic.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-wacom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-waltop.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-wiimote.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-zpff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-zydacron.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/usbhid +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ad7414.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ad7418.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1021.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1025.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1026.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1029.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1031.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ads1015.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7411.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7462.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7470.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/amc6821.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/asc7621.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/atxp1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/dme1737.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/emc2103.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/emc6w201.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/f71805f.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/f71882fg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/g760a.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gl518sm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gl520sm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/hwmon-vid.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/hwmon.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ibmaem.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/jc42.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lineage-pem.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm73.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm75.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm77.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm78.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm80.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm83.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm85.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm87.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm90.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm92.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4151.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4215.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max16065.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6642.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ntc_thermistor.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pc87360.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pc87427.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/ltc2978.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/zl6100.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sht21.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smm665.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smsc47b397.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smsc47m1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smsc47m192.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/tmp102.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/tmp401.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/vt1211.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83627ehf.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83627hf.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83781d.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83791d.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83792d.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83795.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83l785ts.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83l786ng.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/algos +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/algos/i2c-algo-bit.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/algos/i2c-algo-pca.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-bcm2708.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-designware-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-designware-platform.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-ocores.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-parport-light.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-parport.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-pca-platform.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-simtec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-taos-evm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-tiny-usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-xiic.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-mux.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/gpio-i2cmux.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/pca9541.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/pca954x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ieee802154 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/ff-memless.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/input-polldev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/adp5589-keys.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/gpio_keys.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/gpio_keys_polled.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/lkkbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/matrix_keypad.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/mcs_touchkey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/mpr121_touchkey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/newtonkbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/qt1070.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/qt2160.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/stowaway.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/tca6416-keypad.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/88pm860x_onkey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ad714x-i2c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ad714x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/bma150.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/cm109.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/keyspan_remote.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/pcf8574_keypad.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/ambakmi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/sparse-keymap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi/capi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi/capidrv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi/kernelcapi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/divert +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/divert/dss1_divert.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/bas_gigaset.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/gigaset.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/ser_gigaset.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/usb_gigaset.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hardware +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hardware/mISDN +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hfc_usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hisax.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hisax_st5481.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l/isdn.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l/isdnhdlc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN/l1oip.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN/mISDN_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN/mISDN_dsp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-88pm860x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lt3593.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-pca9532.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-pca955x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-timer.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-crypt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-delay.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-flakey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-log-userspace.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-log.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-mirror.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-mod.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-multipath.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-raid.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-region-hash.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-round-robin.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-service-time.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-snapshot.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-thin-pool.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-zero.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/linear.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/md-mod.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/persistent-data/dm-persistent-data.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid0.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid10.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid456.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/mc44s803.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda18271.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda827x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda8290.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda9887.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tea5761.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tea5767.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-simple.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-types.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/xc4000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/xc5000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb/dvb-core +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/rc-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/ir-kbd-i2c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/v4l2-common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/v4l2-int-device.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick +#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core +#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core/memstick.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core/mspro_block.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633-adc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/sm501.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps6105x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps65010.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps6507x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/wl1273-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/wm8400-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/apds9802als.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/apds990x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bh1770glc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bh1780gli.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bmp085.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/c2port +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/c2port/core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/at24.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/eeprom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/max6875.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/hmc6352.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ics932s401.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/isl29003.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/isl29020.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/iwmc3200top +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ti-st/st_drv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/tsl2550.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card/mmc_test.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card/sdio_uart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/dw_mmc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/mmci.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/sdhci-pxav2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/sdhci-pxav3.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/ushc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/vub300.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ar7part.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/chips +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/chips/chipreg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr/lpddr_cmds.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr/qinfo_probe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/maps +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/maps/physmap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtd_blkdevs.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtdblock.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtdchar.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand_ecc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand_ids.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/plat_nand.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ofpart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/sm_ftl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_nandecctest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_oobtest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_pagetest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_readtest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_speedtest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_stresstest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_subpagetest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_torturetest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ubi +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ubi/ubi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/bonding +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/bonding/bonding.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/dummy.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/eql.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/8390/ax88796.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/davicom +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/davicom/dm9000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink/de600.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink/de620.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/seeq +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/seeq/seeq8005.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc/smc911x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc/smc91x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc/smsc911x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ifb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/imq.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/irda-usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/irtty-sir.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/kingsun-sir.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/ks959-sir.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/ksdazzle-sir.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/mcs7780.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/sir-dev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/stir4200.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/macvtap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/broadcom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/cicada.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/dp83640.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/et1011c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/icplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/lxt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/marvell.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/micrel.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/national.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/qsemi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/realtek.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/smsc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/ste10Xp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/vitesse.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/pptp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip/slip.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/tun.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/catc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_eem.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_ncm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cx82310_eth.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/dm9601.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/gl620a.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/hso.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/kalmia.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/lg-vl600.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/mcs7830.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/net1080.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/pegasus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/rndis_host.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/smsc75xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/smsc95xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/usbnet.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/zaurus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/veth.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/dlci.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_cisco.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_fr.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_ppp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_raw.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_raw_eth.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/hostap +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/hostap/hostap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/parport +#lib/modules/KVER-ipfire-rpi/kernel/drivers/parport/parport.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/parport/parport_ax88796.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/pps +#lib/modules/KVER-ipfire-rpi/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ptp +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/regulator +#lib/modules/KVER-ipfire-rpi/kernel/drivers/regulator/fixed.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/regulator/gpio-regulator.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-bq32k.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-bq4802.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-cmos.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1286.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1307.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1374.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1511.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1553.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1672.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-em3027.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-isl12022.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-isl1208.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m41t80.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t35.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t59.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t86.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-msm6242.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf8563.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pl030.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pl031.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rp5c01.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rv3029c2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rx8025.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rx8581.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-s35390a.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-stk17ta8.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-v3020.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-x1205.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/fcoe +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/fcoe/libfcoe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/iscsi_boot_sysfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/iscsi_tcp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libfc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libfc/libfc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libiscsi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libiscsi_tcp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libsas +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libsas/libsas.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/osd +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/osd/libosd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/raid_class.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_fc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_iscsi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_sas.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_spi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_srp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_wait_scan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/ses.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/sg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ssb +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ssb/ssb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip/usbip-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip/usbip-host.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/8250_dw.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/altera_jtaguart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/altera_uart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/timbuart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/xilinx_uartps.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio +#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio_pdrv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio_pdrv_genirq.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/cxacru.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/speedtch.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/ueagle-atm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/usbatm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/cdc-acm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/cdc-wdm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/usblp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/usbtmc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3/dwc3.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/isp116x-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/isp1362-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/oxu210hp-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/r8a66597-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/sl811-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/cypress_cy7c63.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/emi26.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/ftdi-elan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/iowarrior.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/isight_firmware.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usblcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usbled.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usbsevseg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/uss720.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/yurex.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg/gpio_vbus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg/nop-usb-xceiv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/aircable.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ark3116.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/belkin_sa.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ch341.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/cp210x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/cypress_m8.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/digi_acceleport.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/funsoft.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/garmin_gps.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/hp4x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ipaq.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ir-usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/iuu_phoenix.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mct_u232.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mos7720.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mos7840.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/moto_modem.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/opticon.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/option.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/oti6858.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/qcaux.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/qcserial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/siemens_mpi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/sierra.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ssu100.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/symbolserial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/usb_wwan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/vivopay-serial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/uas.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-alauda.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-eneub6250.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-freecom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-isd200.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-jumpshot.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-karma.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-realtek.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-sddr09.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-sddr55.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-usbat.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/usb-storage.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/88pm860x_bl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/adp8860_bl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/adp8870_bl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/generic_bl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/lcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/pcf50633-backlight.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/platform_lcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/fb_sys_fops.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/metronomefb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/output.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sm501fb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/smscufx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/syscopyarea.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sysfillrect.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sysimgblt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/tmiofb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/uvesafb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/ds1wm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/ds2482.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/ds2490.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/w1-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2423.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2431.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2433.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_smem.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_therm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/wire.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/bcm2708_wdog.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/dw_wdt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/max63xx_wdt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/pcwd_usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/sp805_wdt.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs +#lib/modules/KVER-ipfire-rpi/kernel/fs/autofs4 +#lib/modules/KVER-ipfire-rpi/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/cachefiles +#lib/modules/KVER-ipfire-rpi/kernel/fs/cachefiles/cachefiles.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/cifs +#lib/modules/KVER-ipfire-rpi/kernel/fs/cifs/cifs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/ecryptfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/ecryptfs/ecryptfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/exportfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/exportfs/exportfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/fat +#lib/modules/KVER-ipfire-rpi/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/fat/vfat.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/fscache +#lib/modules/KVER-ipfire-rpi/kernel/fs/fscache/fscache.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/fuse +#lib/modules/KVER-ipfire-rpi/kernel/fs/fuse/cuse.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/fuse/fuse.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/isofs +#lib/modules/KVER-ipfire-rpi/kernel/fs/isofs/isofs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/jffs2 +#lib/modules/KVER-ipfire-rpi/kernel/fs/jffs2/jffs2.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/jfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/jfs/jfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/lockd +#lib/modules/KVER-ipfire-rpi/kernel/fs/lockd/lockd.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs_common +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs_common/nfs_acl.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfsd +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfsd/nfsd.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/quota +#lib/modules/KVER-ipfire-rpi/kernel/fs/quota/quota_tree.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/quota/quota_v1.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/quota/quota_v2.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/reiserfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/reiserfs/reiserfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/udf +#lib/modules/KVER-ipfire-rpi/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/ufs +#lib/modules/KVER-ipfire-rpi/kernel/fs/ufs/ufs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/xfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib +#lib/modules/KVER-ipfire-rpi/kernel/lib/cordic.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/crc-ccitt.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/crc-itu-t.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/crc-t10dif.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/crc8.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/raid6 +#lib/modules/KVER-ipfire-rpi/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/ts_bm.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/ts_fsm.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net +#lib/modules/KVER-ipfire-rpi/kernel/net/802 +#lib/modules/KVER-ipfire-rpi/kernel/net/802/garp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/802/p8022.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/802/psnap.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/802/stp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/8021q +#lib/modules/KVER-ipfire-rpi/kernel/net/8021q/8021q.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/atm +#lib/modules/KVER-ipfire-rpi/kernel/net/atm/atm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/atm/br2684.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/atm/clip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/batman-adv +#lib/modules/KVER-ipfire-rpi/kernel/net/batman-adv/batman-adv.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/bluetooth.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/bnep +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/bnep/bnep.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/cmtp +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/cmtp/cmtp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/hidp +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/hidp/hidp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/rfcomm +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/rfcomm/rfcomm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/bridge.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_802_3.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_among.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_arp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_arpreply.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_dnat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_ip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_ip6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_limit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_log.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_mark.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_mark_m.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_nflog.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_pkttype.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_redirect.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_snat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_stp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_ulog.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_vlan.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtable_broute.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtable_filter.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtable_nat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ceph +#lib/modules/KVER-ipfire-rpi/kernel/net/ceph/libceph.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154 +#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154/6lowpan.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154/af_802154.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154/ieee802154.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4 +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ah4.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/gre.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/inet_diag.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ipcomp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ipip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arp_tables.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arpt_mangle.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arptable_filter.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ip_queue.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ip_tables.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ECN.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_LOG.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_NETMAP.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_REJECT.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ULOG.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ah.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ecn.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_filter.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_mangle.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_nat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_raw.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_h323.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_pptp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_tftp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_bic.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_cubic.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_diag.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_highspeed.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_htcp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_hybla.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_illinois.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_lp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_scalable.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_vegas.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_veno.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_westwood.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_yeah.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/xfrm4_tunnel.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6 +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ah6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ip6_tunnel.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ipcomp6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/mip6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6_queue.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6_tables.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_REJECT.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_ah.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_eui64.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_frag.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_hbh.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_rt.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_filter.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_raw.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/sit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/tunnel6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_beet.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_ro.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_transport.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_tunnel.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_tunnel.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/irda +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm/ircomm-tty.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm/ircomm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irda.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irlan +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irlan/irlan.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irnet +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irnet/irnet.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/key +#lib/modules/KVER-ipfire-rpi/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_ppp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/llc +#lib/modules/KVER-ipfire-rpi/kernel/net/llc/llc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/mac80211 +#lib/modules/KVER-ipfire-rpi/kernel/net/mac80211/mac80211.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/ipvs +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/ipvs/ip_vs.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_broadcast.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_ftp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_h323.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_irc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_netbios_ns.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_netlink.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_pptp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_dccp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_gre.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_sctp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_udplite.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_sane.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_snmp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_tproxy_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink_log.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink_queue.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/x_tables.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_CHECKSUM.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_CT.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_DSCP.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_IDLETIMER.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_IMQ.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NFLOG.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NFQUEUE.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NOTRACK.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TCPMSS.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TEE.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TPROXY.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_cluster.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_comment.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connlimit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connmark.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_cpu.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_devgroup.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_esp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_hashlimit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_helper.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_hl.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_ipvs.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_layer7.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_length.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_limit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_mac.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_mark.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_osf.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_owner.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_physdev.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_pkttype.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_policy.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_quota.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_rateest.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_realm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_recent.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_socket.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_state.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_statistic.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_string.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_tcpmss.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_tcpudp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_time.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill +#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill/rfkill-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill/rfkill-regulator.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill/rfkill.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/rxrpc +#lib/modules/KVER-ipfire-rpi/kernel/net/rxrpc/af-rxrpc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/rxrpc/rxkad.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_csum.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_gact.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_ipt.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_mirred.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_nat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_pedit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_simple.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_skbedit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_flow.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_fw.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_route.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_rsvp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_rsvp6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_tcindex.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_u32.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_meta.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_nbyte.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_text.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_u32.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_atm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_drr.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_gred.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_hfsc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_htb.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_mqprio.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_multiq.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_qfq.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_sfb.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_sfq.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_tbf.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc +#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/auth_gss +#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/cfg80211.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211_crypt_ccmp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211_crypt_tkip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211_crypt_wep.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/xfrm +#lib/modules/KVER-ipfire-rpi/kernel/net/xfrm/xfrm_ipcomp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/xfrm/xfrm_user.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound +#lib/modules/KVER-ipfire-rpi/kernel/sound/ac97_bus.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/arm +#lib/modules/KVER-ipfire-rpi/kernel/sound/arm/snd-aaci.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/arm/snd-bcm2835.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/oss +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/oss/snd-mixer-oss.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/oss/snd-pcm-oss.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/oss +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/oss/snd-seq-oss.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-device.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-virmidi.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-hwdep.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-page-alloc.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-rawmidi.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-timer.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-aloop.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-mts64.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/pci +#lib/modules/KVER-ipfire-rpi/kernel/sound/pci/ac97 +#lib/modules/KVER-ipfire-rpi/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/snd-soc-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/misc +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire-rpi/modules.alias +#lib/modules/KVER-ipfire-rpi/modules.alias.bin +#lib/modules/KVER-ipfire-rpi/modules.builtin +#lib/modules/KVER-ipfire-rpi/modules.ccwmap +#lib/modules/KVER-ipfire-rpi/modules.dep +#lib/modules/KVER-ipfire-rpi/modules.dep.bin +#lib/modules/KVER-ipfire-rpi/modules.ieee1394map +#lib/modules/KVER-ipfire-rpi/modules.inputmap +#lib/modules/KVER-ipfire-rpi/modules.isapnpmap +#lib/modules/KVER-ipfire-rpi/modules.ofmap +#lib/modules/KVER-ipfire-rpi/modules.order +#lib/modules/KVER-ipfire-rpi/modules.pcimap +#lib/modules/KVER-ipfire-rpi/modules.seriomap +#lib/modules/KVER-ipfire-rpi/modules.symbols +#lib/modules/KVER-ipfire-rpi/modules.symbols.bin +#lib/modules/KVER-ipfire-rpi/modules.usbmap +#lib/modules/KVER-ipfire-rpi/source diff --git a/config/rootfiles/common/armv5tel/linux-versatile b/config/rootfiles/common/armv5tel/linux-versatile deleted file mode 100644 index 8562f2e..0000000 --- a/config/rootfiles/common/armv5tel/linux-versatile +++ /dev/null @@ -1,5 +0,0 @@ -boot/System.map-KVER-ipfire-versatile -boot/config-KVER-ipfire-versatile -boot/vmlinuz-KVER-ipfire-versatile -boot/ipfirerd-KVER-versatile.img -lib/modules/KVER-ipfire-versatile diff --git a/config/rootfiles/common/armv5tel/rpi-firmware b/config/rootfiles/common/armv5tel/rpi-firmware new file mode 100644 index 0000000..3024548 --- /dev/null +++ b/config/rootfiles/common/armv5tel/rpi-firmware @@ -0,0 +1,9 @@ +#boot/LICENCE.broadcom +boot/bootcode.bin +boot/cmdline.txt +boot/config.txt +#boot/first32k.bin +boot/start.elf +boot/start_cd.elf +boot/fixup.dat +boot/fixup_cd.dat diff --git a/config/rootfiles/common/armv5tel/u-boot b/config/rootfiles/common/armv5tel/u-boot new file mode 100644 index 0000000..759d41d --- /dev/null +++ b/config/rootfiles/common/armv5tel/u-boot @@ -0,0 +1,6 @@ +#boot/MLO +#boot/u-boot.bin +usr/bin/mkimage +boot/boot.scr +boot/boot.script +boot/convert_bootscript diff --git a/config/rootfiles/common/armv5tel/uboot b/config/rootfiles/common/armv5tel/uboot deleted file mode 100644 index 80864b7..0000000 --- a/config/rootfiles/common/armv5tel/uboot +++ /dev/null @@ -1 +0,0 @@ -usr/bin/mkimage diff --git a/config/rootfiles/common/autoconf b/config/rootfiles/common/autoconf index 8124618..b398eb9 100644 --- a/config/rootfiles/common/autoconf +++ b/config/rootfiles/common/autoconf @@ -5,16 +5,6 @@ #usr/bin/autoscan #usr/bin/autoupdate #usr/bin/ifnames -#usr/info/autoconf.info -#usr/man/man1/autoconf.1 -#usr/man/man1/autoheader.1 -#usr/man/man1/autom4te.1 -#usr/man/man1/autoreconf.1 -#usr/man/man1/autoscan.1 -#usr/man/man1/autoupdate.1 -#usr/man/man1/config.guess.1 -#usr/man/man1/config.sub.1 -#usr/man/man1/ifnames.1 #usr/share/autoconf #usr/share/autoconf/Autom4te #usr/share/autoconf/Autom4te/C4che.pm @@ -23,8 +13,8 @@ #usr/share/autoconf/Autom4te/Configure_ac.pm #usr/share/autoconf/Autom4te/FileUtils.pm #usr/share/autoconf/Autom4te/General.pm +#usr/share/autoconf/Autom4te/Getopt.pm #usr/share/autoconf/Autom4te/Request.pm -#usr/share/autoconf/Autom4te/Struct.pm #usr/share/autoconf/Autom4te/XFile.pm #usr/share/autoconf/INSTALL #usr/share/autoconf/autoconf @@ -35,9 +25,11 @@ #usr/share/autoconf/autoconf/autotest.m4 #usr/share/autoconf/autoconf/autoupdate.m4 #usr/share/autoconf/autoconf/c.m4 +#usr/share/autoconf/autoconf/erlang.m4 #usr/share/autoconf/autoconf/fortran.m4 #usr/share/autoconf/autoconf/functions.m4 #usr/share/autoconf/autoconf/general.m4 +#usr/share/autoconf/autoconf/go.m4 #usr/share/autoconf/autoconf/headers.m4 #usr/share/autoconf/autoconf/lang.m4 #usr/share/autoconf/autoconf/libs.m4 @@ -53,9 +45,21 @@ #usr/share/autoconf/autotest/autotest.m4 #usr/share/autoconf/autotest/autotest.m4f #usr/share/autoconf/autotest/general.m4 +#usr/share/autoconf/autotest/specific.m4 #usr/share/autoconf/m4sugar +#usr/share/autoconf/m4sugar/foreach.m4 #usr/share/autoconf/m4sugar/m4sh.m4 #usr/share/autoconf/m4sugar/m4sh.m4f #usr/share/autoconf/m4sugar/m4sugar.m4 #usr/share/autoconf/m4sugar/m4sugar.m4f #usr/share/autoconf/m4sugar/version.m4 +#usr/share/info/autoconf.info +#usr/share/man/man1/autoconf.1 +#usr/share/man/man1/autoheader.1 +#usr/share/man/man1/autom4te.1 +#usr/share/man/man1/autoreconf.1 +#usr/share/man/man1/autoscan.1 +#usr/share/man/man1/autoupdate.1 +#usr/share/man/man1/config.guess.1 +#usr/share/man/man1/config.sub.1 +#usr/share/man/man1/ifnames.1 diff --git a/config/rootfiles/common/automake b/config/rootfiles/common/automake index 2b2ceb2..0c19dc3 100644 --- a/config/rootfiles/common/automake +++ b/config/rootfiles/common/automake @@ -1,121 +1,133 @@ #usr/bin/aclocal -#usr/bin/aclocal-1.9 +#usr/bin/aclocal-1.12 #usr/bin/automake -#usr/bin/automake-1.9 -#usr/share/aclocal-1.9 -#usr/share/aclocal-1.9/amversion.m4 -#usr/share/aclocal-1.9/as.m4 -#usr/share/aclocal-1.9/auxdir.m4 -#usr/share/aclocal-1.9/ccstdc.m4 -#usr/share/aclocal-1.9/cond.m4 -#usr/share/aclocal-1.9/depend.m4 -#usr/share/aclocal-1.9/depout.m4 -#usr/share/aclocal-1.9/dmalloc.m4 -#usr/share/aclocal-1.9/gcj.m4 -#usr/share/aclocal-1.9/header.m4 -#usr/share/aclocal-1.9/init.m4 -#usr/share/aclocal-1.9/install-sh.m4 -#usr/share/aclocal-1.9/lead-dot.m4 -#usr/share/aclocal-1.9/lex.m4 -#usr/share/aclocal-1.9/lispdir.m4 -#usr/share/aclocal-1.9/maintainer.m4 -#usr/share/aclocal-1.9/make.m4 -#usr/share/aclocal-1.9/minuso.m4 -#usr/share/aclocal-1.9/missing.m4 -#usr/share/aclocal-1.9/mkdirp.m4 -#usr/share/aclocal-1.9/multi.m4 -#usr/share/aclocal-1.9/obsol-gt.m4 -#usr/share/aclocal-1.9/obsol-lt.m4 -#usr/share/aclocal-1.9/obsolete.m4 -#usr/share/aclocal-1.9/options.m4 -#usr/share/aclocal-1.9/protos.m4 -#usr/share/aclocal-1.9/python.m4 -#usr/share/aclocal-1.9/regex.m4 -#usr/share/aclocal-1.9/runlog.m4 -#usr/share/aclocal-1.9/sanity.m4 -#usr/share/aclocal-1.9/strip.m4 -#usr/share/aclocal-1.9/tar.m4 -#usr/share/automake-1.9 -#usr/share/automake-1.9/Automake -#usr/share/automake-1.9/Automake/ChannelDefs.pm -#usr/share/automake-1.9/Automake/Channels.pm -#usr/share/automake-1.9/Automake/Condition.pm -#usr/share/automake-1.9/Automake/Config.pm -#usr/share/automake-1.9/Automake/Configure_ac.pm -#usr/share/automake-1.9/Automake/DisjConditions.pm -#usr/share/automake-1.9/Automake/FileUtils.pm -#usr/share/automake-1.9/Automake/General.pm -#usr/share/automake-1.9/Automake/Item.pm -#usr/share/automake-1.9/Automake/ItemDef.pm -#usr/share/automake-1.9/Automake/Location.pm -#usr/share/automake-1.9/Automake/Options.pm -#usr/share/automake-1.9/Automake/Rule.pm -#usr/share/automake-1.9/Automake/RuleDef.pm -#usr/share/automake-1.9/Automake/Struct.pm -#usr/share/automake-1.9/Automake/VarDef.pm -#usr/share/automake-1.9/Automake/Variable.pm -#usr/share/automake-1.9/Automake/Version.pm -#usr/share/automake-1.9/Automake/Wrap.pm -#usr/share/automake-1.9/Automake/XFile.pm -#usr/share/automake-1.9/COPYING -#usr/share/automake-1.9/INSTALL -#usr/share/automake-1.9/acinstall -#usr/share/automake-1.9/am -#usr/share/automake-1.9/am/ansi2knr.am -#usr/share/automake-1.9/am/check.am -#usr/share/automake-1.9/am/clean-hdr.am -#usr/share/automake-1.9/am/clean.am -#usr/share/automake-1.9/am/compile.am -#usr/share/automake-1.9/am/configure.am -#usr/share/automake-1.9/am/data.am -#usr/share/automake-1.9/am/dejagnu.am -#usr/share/automake-1.9/am/depend.am -#usr/share/automake-1.9/am/depend2.am -#usr/share/automake-1.9/am/distdir.am -#usr/share/automake-1.9/am/footer.am -#usr/share/automake-1.9/am/header-vars.am -#usr/share/automake-1.9/am/header.am -#usr/share/automake-1.9/am/inst-vars.am -#usr/share/automake-1.9/am/install.am -#usr/share/automake-1.9/am/java.am -#usr/share/automake-1.9/am/lang-compile.am -#usr/share/automake-1.9/am/lex.am -#usr/share/automake-1.9/am/library.am -#usr/share/automake-1.9/am/libs.am -#usr/share/automake-1.9/am/libtool.am -#usr/share/automake-1.9/am/lisp.am -#usr/share/automake-1.9/am/ltlib.am -#usr/share/automake-1.9/am/ltlibrary.am -#usr/share/automake-1.9/am/mans-vars.am -#usr/share/automake-1.9/am/mans.am -#usr/share/automake-1.9/am/multilib.am -#usr/share/automake-1.9/am/program.am -#usr/share/automake-1.9/am/progs.am -#usr/share/automake-1.9/am/python.am -#usr/share/automake-1.9/am/remake-hdr.am -#usr/share/automake-1.9/am/scripts.am -#usr/share/automake-1.9/am/subdirs.am -#usr/share/automake-1.9/am/tags.am -#usr/share/automake-1.9/am/texi-vers.am -#usr/share/automake-1.9/am/texibuild.am -#usr/share/automake-1.9/am/texinfos.am -#usr/share/automake-1.9/am/yacc.am -#usr/share/automake-1.9/ansi2knr.1 -#usr/share/automake-1.9/ansi2knr.c -#usr/share/automake-1.9/compile -#usr/share/automake-1.9/config-ml.in -#usr/share/automake-1.9/config.guess -#usr/share/automake-1.9/config.sub -#usr/share/automake-1.9/depcomp -#usr/share/automake-1.9/elisp-comp -#usr/share/automake-1.9/install-sh -#usr/share/automake-1.9/mdate-sh -#usr/share/automake-1.9/missing -#usr/share/automake-1.9/mkinstalldirs -#usr/share/automake-1.9/py-compile -#usr/share/automake-1.9/symlink-tree -#usr/share/automake-1.9/texinfo.tex -#usr/share/automake-1.9/ylwrap +#usr/bin/automake-1.12 +#usr/share/aclocal-1.12 +#usr/share/aclocal-1.12/amversion.m4 +#usr/share/aclocal-1.12/ar-lib.m4 +#usr/share/aclocal-1.12/as.m4 +#usr/share/aclocal-1.12/auxdir.m4 +#usr/share/aclocal-1.12/ccstdc.m4 +#usr/share/aclocal-1.12/cond-if.m4 +#usr/share/aclocal-1.12/cond.m4 +#usr/share/aclocal-1.12/depend.m4 +#usr/share/aclocal-1.12/depout.m4 +#usr/share/aclocal-1.12/dmalloc.m4 +#usr/share/aclocal-1.12/gcj.m4 +#usr/share/aclocal-1.12/header.m4 +#usr/share/aclocal-1.12/init.m4 +#usr/share/aclocal-1.12/install-sh.m4 +#usr/share/aclocal-1.12/lead-dot.m4 +#usr/share/aclocal-1.12/lex.m4 +#usr/share/aclocal-1.12/lispdir.m4 +#usr/share/aclocal-1.12/maintainer.m4 +#usr/share/aclocal-1.12/make.m4 +#usr/share/aclocal-1.12/minuso.m4 +#usr/share/aclocal-1.12/missing.m4 +#usr/share/aclocal-1.12/mkdirp.m4 +#usr/share/aclocal-1.12/obsol-gt.m4 +#usr/share/aclocal-1.12/obsol-lt.m4 +#usr/share/aclocal-1.12/obsolete.m4 +#usr/share/aclocal-1.12/options.m4 +#usr/share/aclocal-1.12/protos.m4 +#usr/share/aclocal-1.12/python.m4 +#usr/share/aclocal-1.12/runlog.m4 +#usr/share/aclocal-1.12/sanity.m4 +#usr/share/aclocal-1.12/silent.m4 +#usr/share/aclocal-1.12/strip.m4 +#usr/share/aclocal-1.12/substnot.m4 +#usr/share/aclocal-1.12/tar.m4 +#usr/share/aclocal-1.12/upc.m4 +#usr/share/aclocal-1.12/vala.m4 +#usr/share/aclocal/README +#usr/share/automake-1.12 +#usr/share/automake-1.12/Automake +#usr/share/automake-1.12/Automake/ChannelDefs.pm +#usr/share/automake-1.12/Automake/Channels.pm +#usr/share/automake-1.12/Automake/Condition.pm +#usr/share/automake-1.12/Automake/Config.pm +#usr/share/automake-1.12/Automake/Configure_ac.pm +#usr/share/automake-1.12/Automake/DisjConditions.pm +#usr/share/automake-1.12/Automake/FileUtils.pm +#usr/share/automake-1.12/Automake/General.pm +#usr/share/automake-1.12/Automake/Getopt.pm +#usr/share/automake-1.12/Automake/Item.pm +#usr/share/automake-1.12/Automake/ItemDef.pm +#usr/share/automake-1.12/Automake/Location.pm +#usr/share/automake-1.12/Automake/Options.pm +#usr/share/automake-1.12/Automake/Rule.pm +#usr/share/automake-1.12/Automake/RuleDef.pm +#usr/share/automake-1.12/Automake/VarDef.pm +#usr/share/automake-1.12/Automake/Variable.pm +#usr/share/automake-1.12/Automake/Version.pm +#usr/share/automake-1.12/Automake/Wrap.pm +#usr/share/automake-1.12/Automake/XFile.pm +#usr/share/automake-1.12/COPYING +#usr/share/automake-1.12/INSTALL +#usr/share/automake-1.12/am +#usr/share/automake-1.12/am/check.am +#usr/share/automake-1.12/am/check2.am +#usr/share/automake-1.12/am/clean-hdr.am +#usr/share/automake-1.12/am/clean.am +#usr/share/automake-1.12/am/compile.am +#usr/share/automake-1.12/am/configure.am +#usr/share/automake-1.12/am/data.am +#usr/share/automake-1.12/am/dejagnu.am +#usr/share/automake-1.12/am/depend.am +#usr/share/automake-1.12/am/depend2.am +#usr/share/automake-1.12/am/distdir.am +#usr/share/automake-1.12/am/footer.am +#usr/share/automake-1.12/am/header-vars.am +#usr/share/automake-1.12/am/header.am +#usr/share/automake-1.12/am/inst-vars.am +#usr/share/automake-1.12/am/install.am +#usr/share/automake-1.12/am/java.am +#usr/share/automake-1.12/am/lang-compile.am +#usr/share/automake-1.12/am/lex.am +#usr/share/automake-1.12/am/library.am +#usr/share/automake-1.12/am/libs.am +#usr/share/automake-1.12/am/libtool.am +#usr/share/automake-1.12/am/lisp.am +#usr/share/automake-1.12/am/ltlib.am +#usr/share/automake-1.12/am/ltlibrary.am +#usr/share/automake-1.12/am/mans-vars.am +#usr/share/automake-1.12/am/mans.am +#usr/share/automake-1.12/am/program.am +#usr/share/automake-1.12/am/progs.am +#usr/share/automake-1.12/am/python.am +#usr/share/automake-1.12/am/remake-hdr.am +#usr/share/automake-1.12/am/scripts.am +#usr/share/automake-1.12/am/subdirs.am +#usr/share/automake-1.12/am/tags.am +#usr/share/automake-1.12/am/texi-vers.am +#usr/share/automake-1.12/am/texibuild.am +#usr/share/automake-1.12/am/texinfos.am +#usr/share/automake-1.12/am/vala.am +#usr/share/automake-1.12/am/yacc.am +#usr/share/automake-1.12/ar-lib +#usr/share/automake-1.12/compile +#usr/share/automake-1.12/config.guess +#usr/share/automake-1.12/config.sub +#usr/share/automake-1.12/depcomp +#usr/share/automake-1.12/elisp-comp +#usr/share/automake-1.12/install-sh +#usr/share/automake-1.12/mdate-sh +#usr/share/automake-1.12/missing +#usr/share/automake-1.12/mkinstalldirs +#usr/share/automake-1.12/py-compile +#usr/share/automake-1.12/tap-driver.pl +#usr/share/automake-1.12/tap-driver.sh +#usr/share/automake-1.12/test-driver +#usr/share/automake-1.12/texinfo.tex +#usr/share/automake-1.12/ylwrap +#usr/share/doc/automake +#usr/share/doc/automake/amhello-1.0.tar.gz +#usr/share/info/automake-history.info #usr/share/info/automake.info #usr/share/info/automake.info-1 #usr/share/info/automake.info-2 +#usr/share/info/automake.info-3 +#usr/share/man/man1/aclocal-1.12.1 +#usr/share/man/man1/aclocal.1 +#usr/share/man/man1/automake-1.12.1 +#usr/share/man/man1/automake.1 diff --git a/config/rootfiles/common/bash b/config/rootfiles/common/bash index 43eecc9..ecaeb1b 100644 --- a/config/rootfiles/common/bash +++ b/config/rootfiles/common/bash @@ -1,6 +1,6 @@ bin/sh bin/bash #bin/bashbug -#usr/info/bash.info -#usr/man/man1/bash.1 -#usr/man/man1/bashbug.1 +#usr/share/info/bash.info +#usr/share/man/man1/bash.1 +#usr/share/man/man1/bashbug.1 diff --git a/config/rootfiles/common/bind b/config/rootfiles/common/bind index db6bdab..df66853 100644 --- a/config/rootfiles/common/bind +++ b/config/rootfiles/common/bind @@ -1,4 +1,4 @@ -#usr/bin/dig +usr/bin/dig usr/bin/host usr/bin/nslookup usr/bin/nsupdate diff --git a/config/rootfiles/common/bridge-utils b/config/rootfiles/common/bridge-utils index 6c5db4f..3bfa898 100644 --- a/config/rootfiles/common/bridge-utils +++ b/config/rootfiles/common/bridge-utils @@ -1,4 +1,2 @@ -#usr/include/libbridge.h -#usr/lib/libbridge.a -#usr/man/man8/brctl.8 usr/sbin/brctl +#usr/share/man/man8/brctl.8 diff --git a/config/rootfiles/common/cairo b/config/rootfiles/common/cairo new file mode 100644 index 0000000..ca09099 --- /dev/null +++ b/config/rootfiles/common/cairo @@ -0,0 +1,99 @@ +#usr/bin/cairo-trace +#usr/include/cairo +#usr/include/cairo/cairo-deprecated.h +#usr/include/cairo/cairo-features.h +#usr/include/cairo/cairo-ft.h +#usr/include/cairo/cairo-gobject.h +#usr/include/cairo/cairo-pdf.h +#usr/include/cairo/cairo-ps.h +#usr/include/cairo/cairo-script-interpreter.h +#usr/include/cairo/cairo-svg.h +#usr/include/cairo/cairo-version.h +#usr/include/cairo/cairo.h +#usr/lib/cairo +#usr/lib/cairo/libcairo-trace.a +#usr/lib/cairo/libcairo-trace.la +usr/lib/cairo/libcairo-trace.so +usr/lib/cairo/libcairo-trace.so.0 +usr/lib/cairo/libcairo-trace.so.0.0.0 +#usr/lib/libcairo-gobject.a +#usr/lib/libcairo-gobject.la +usr/lib/libcairo-gobject.so +usr/lib/libcairo-gobject.so.2 +usr/lib/libcairo-gobject.so.2.11000.2 +#usr/lib/libcairo-script-interpreter.a +#usr/lib/libcairo-script-interpreter.la +usr/lib/libcairo-script-interpreter.so +usr/lib/libcairo-script-interpreter.so.2 +usr/lib/libcairo-script-interpreter.so.2.11000.2 +#usr/lib/libcairo.a +#usr/lib/libcairo.la +#usr/lib/libcairo.so +usr/lib/libcairo.so.2 +usr/lib/libcairo.so.2.11000.2 +#usr/lib/pkgconfig/cairo-fc.pc +#usr/lib/pkgconfig/cairo-ft.pc +#usr/lib/pkgconfig/cairo-gobject.pc +#usr/lib/pkgconfig/cairo-pdf.pc +#usr/lib/pkgconfig/cairo-png.pc +#usr/lib/pkgconfig/cairo-ps.pc +#usr/lib/pkgconfig/cairo-svg.pc +#usr/lib/pkgconfig/cairo.pc +#usr/share/gtk-doc/html/cairo +#usr/share/gtk-doc/html/cairo/bindings-errors.html +#usr/share/gtk-doc/html/cairo/bindings-fonts.html +#usr/share/gtk-doc/html/cairo/bindings-memory.html +#usr/share/gtk-doc/html/cairo/bindings-overloading.html +#usr/share/gtk-doc/html/cairo/bindings-path.html +#usr/share/gtk-doc/html/cairo/bindings-patterns.html +#usr/share/gtk-doc/html/cairo/bindings-return-values.html +#usr/share/gtk-doc/html/cairo/bindings-streams.html +#usr/share/gtk-doc/html/cairo/bindings-surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-Error-handling.html +#usr/share/gtk-doc/html/cairo/cairo-FreeType-Fonts.html +#usr/share/gtk-doc/html/cairo/cairo-Image-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-PDF-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-PNG-Support.html +#usr/share/gtk-doc/html/cairo/cairo-Paths.html +#usr/share/gtk-doc/html/cairo/cairo-PostScript-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-Quartz-(CGFont)-Fonts.html +#usr/share/gtk-doc/html/cairo/cairo-Quartz-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-Recording-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-Regions.html +#usr/share/gtk-doc/html/cairo/cairo-SVG-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-Transformations.html +#usr/share/gtk-doc/html/cairo/cairo-Types.html +#usr/share/gtk-doc/html/cairo/cairo-User-Fonts.html +#usr/share/gtk-doc/html/cairo/cairo-Version-Information.html +#usr/share/gtk-doc/html/cairo/cairo-Win32-Fonts.html +#usr/share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-XLib-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-device-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-font-face-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-matrix-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-scaled-font-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-surface-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-t.html +#usr/share/gtk-doc/html/cairo/cairo-drawing.html +#usr/share/gtk-doc/html/cairo/cairo-fonts.html +#usr/share/gtk-doc/html/cairo/cairo-support.html +#usr/share/gtk-doc/html/cairo/cairo-surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-text.html +#usr/share/gtk-doc/html/cairo/cairo.devhelp +#usr/share/gtk-doc/html/cairo/cairo.devhelp2 +#usr/share/gtk-doc/html/cairo/home.png +#usr/share/gtk-doc/html/cairo/index-1.10.html +#usr/share/gtk-doc/html/cairo/index-1.2.html +#usr/share/gtk-doc/html/cairo/index-1.4.html +#usr/share/gtk-doc/html/cairo/index-1.6.html +#usr/share/gtk-doc/html/cairo/index-1.8.html +#usr/share/gtk-doc/html/cairo/index-all.html +#usr/share/gtk-doc/html/cairo/index.html +#usr/share/gtk-doc/html/cairo/index.sgml +#usr/share/gtk-doc/html/cairo/language-bindings.html +#usr/share/gtk-doc/html/cairo/left.png +#usr/share/gtk-doc/html/cairo/right.png +#usr/share/gtk-doc/html/cairo/style.css +#usr/share/gtk-doc/html/cairo/up.png diff --git a/config/rootfiles/common/cmake b/config/rootfiles/common/cmake index 4a1d702..81a9539 100644 --- a/config/rootfiles/common/cmake +++ b/config/rootfiles/common/cmake @@ -1,424 +1,421 @@ -#usr/local/bin/ccmake -#usr/local/bin/cmake -#usr/local/bin/cpack -#usr/local/bin/ctest -#usr/local/doc -#usr/local/doc/cmake-2.6 -#usr/local/doc/cmake-2.6/ccmake.docbook -#usr/local/doc/cmake-2.6/ccmake.html -#usr/local/doc/cmake-2.6/ccmake.txt -#usr/local/doc/cmake-2.6/cmake-commands.html -#usr/local/doc/cmake-2.6/cmake-commands.txt -#usr/local/doc/cmake-2.6/cmake-compatcommands.html -#usr/local/doc/cmake-2.6/cmake-compatcommands.txt -#usr/local/doc/cmake-2.6/cmake-modules.html -#usr/local/doc/cmake-2.6/cmake-modules.txt -#usr/local/doc/cmake-2.6/cmake-policies.html -#usr/local/doc/cmake-2.6/cmake-policies.txt -#usr/local/doc/cmake-2.6/cmake-properties.html -#usr/local/doc/cmake-2.6/cmake-properties.txt -#usr/local/doc/cmake-2.6/cmake-variables.html -#usr/local/doc/cmake-2.6/cmake-variables.txt -#usr/local/doc/cmake-2.6/cmake.docbook -#usr/local/doc/cmake-2.6/cmake.html -#usr/local/doc/cmake-2.6/cmake.txt -#usr/local/doc/cmake-2.6/cpack.docbook -#usr/local/doc/cmake-2.6/cpack.html -#usr/local/doc/cmake-2.6/cpack.txt -#usr/local/doc/cmake-2.6/ctest.docbook -#usr/local/doc/cmake-2.6/ctest.html -#usr/local/doc/cmake-2.6/ctest.txt -#usr/local/man -#usr/local/man/man1 -#usr/local/man/man1/ccmake.1 -#usr/local/man/man1/cmake.1 -#usr/local/man/man1/cmakecommands.1 -#usr/local/man/man1/cmakecompat.1 -#usr/local/man/man1/cmakemodules.1 -#usr/local/man/man1/cmakepolicies.1 -#usr/local/man/man1/cmakeprops.1 -#usr/local/man/man1/cmakevars.1 -#usr/local/man/man1/cpack.1 -#usr/local/man/man1/ctest.1 -#usr/local/share/cmake-2.6 -#usr/local/share/cmake-2.6/Modules -#usr/local/share/cmake-2.6/Modules/AddFileDependencies.cmake -#usr/local/share/cmake-2.6/Modules/BundleUtilities.cmake -#usr/local/share/cmake-2.6/Modules/CMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeASM-ATTInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeASMCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeASMInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeASM_MASMInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeBackwardCompatibilityC.cmake -#usr/local/share/cmake-2.6/Modules/CMakeBackwardCompatibilityCXX.cmake -#usr/local/share/cmake-2.6/Modules/CMakeBorlandFindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeBuildSettings.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeCCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeCCompilerABI.c -#usr/local/share/cmake-2.6/Modules/CMakeCCompilerId.c.in -#usr/local/share/cmake-2.6/Modules/CMakeCInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeCXXCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeCXXCompilerABI.cpp -#usr/local/share/cmake-2.6/Modules/CMakeCXXCompilerId.cpp.in -#usr/local/share/cmake-2.6/Modules/CMakeCXXInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeCommonLanguageInclude.cmake -#usr/local/share/cmake-2.6/Modules/CMakeCompilerABI.h -#usr/local/share/cmake-2.6/Modules/CMakeConfigurableFile.in -#usr/local/share/cmake-2.6/Modules/CMakeDependentOption.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineASM-ATTCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineASMCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineASM_MASMCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineCCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineCXXCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineCompilerABI.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineCompilerId.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineFortranCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineJavaCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineRCCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineSystem.cmake -#usr/local/share/cmake-2.6/Modules/CMakeExportBuildSettings.cmake -#usr/local/share/cmake-2.6/Modules/CMakeFindBinUtils.cmake -#usr/local/share/cmake-2.6/Modules/CMakeFindFrameworks.cmake -#usr/local/share/cmake-2.6/Modules/CMakeFindWMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeFindXCode.cmake -#usr/local/share/cmake-2.6/Modules/CMakeForceCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeFortranCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeFortranCompilerId.F90.in -#usr/local/share/cmake-2.6/Modules/CMakeFortranInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeGenericSystem.cmake -#usr/local/share/cmake-2.6/Modules/CMakeImportBuildSettings.cmake -#usr/local/share/cmake-2.6/Modules/CMakeJavaCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeJavaInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeMSYSFindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeMinGWFindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeNMakeFindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakePlatformId.h.in -#usr/local/share/cmake-2.6/Modules/CMakePrintSystemInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeRCCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeRCInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeSystem.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeSystemSpecificInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestASM-ATTCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestASMCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestASM_MASMCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestCCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestCXXCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestForFreeVC.cxx -#usr/local/share/cmake-2.6/Modules/CMakeTestFortranCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestGNU.c -#usr/local/share/cmake-2.6/Modules/CMakeTestJavaCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestNMakeCLVersion.c -#usr/local/share/cmake-2.6/Modules/CMakeTestRCCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeUnixFindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS6BackwardCompatibility.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS6FindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS71FindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS7BackwardCompatibility.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS7FindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS8FindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS9FindMake.cmake -#usr/local/share/cmake-2.6/Modules/CPack.DS_Store.in -#usr/local/share/cmake-2.6/Modules/CPack.Description.plist.in -#usr/local/share/cmake-2.6/Modules/CPack.Info.plist.in -#usr/local/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.in -#usr/local/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.rsrc.in -#usr/local/share/cmake-2.6/Modules/CPack.OSXX11.Info.plist.in -#usr/local/share/cmake-2.6/Modules/CPack.OSXX11.main.scpt.in -#usr/local/share/cmake-2.6/Modules/CPack.RuntimeScript.in -#usr/local/share/cmake-2.6/Modules/CPack.STGZ_Header.sh.in -#usr/local/share/cmake-2.6/Modules/CPack.VolumeIcon.icns.in -#usr/local/share/cmake-2.6/Modules/CPack.background.png.in -#usr/local/share/cmake-2.6/Modules/CPack.cmake -#usr/local/share/cmake-2.6/Modules/CPack.distribution.dist.in -#usr/local/share/cmake-2.6/Modules/CPackDeb.cmake -#usr/local/share/cmake-2.6/Modules/CPackRPM.cmake -#usr/local/share/cmake-2.6/Modules/CPackZIP.cmake -#usr/local/share/cmake-2.6/Modules/CTest.cmake -#usr/local/share/cmake-2.6/Modules/CTestTargets.cmake -#usr/local/share/cmake-2.6/Modules/CheckCCompilerFlag.cmake -#usr/local/share/cmake-2.6/Modules/CheckCSourceCompiles.cmake -#usr/local/share/cmake-2.6/Modules/CheckCSourceRuns.cmake -#usr/local/share/cmake-2.6/Modules/CheckCXXCompilerFlag.cmake -#usr/local/share/cmake-2.6/Modules/CheckCXXSourceCompiles.cmake -#usr/local/share/cmake-2.6/Modules/CheckCXXSourceRuns.cmake -#usr/local/share/cmake-2.6/Modules/CheckForPthreads.c -#usr/local/share/cmake-2.6/Modules/CheckFortranFunctionExists.cmake -#usr/local/share/cmake-2.6/Modules/CheckFunctionExists.c -#usr/local/share/cmake-2.6/Modules/CheckFunctionExists.cmake -#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.c.in -#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.cmake -#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.cxx.in -#usr/local/share/cmake-2.6/Modules/CheckIncludeFileCXX.cmake -#usr/local/share/cmake-2.6/Modules/CheckIncludeFiles.cmake -#usr/local/share/cmake-2.6/Modules/CheckLibraryExists.cmake -#usr/local/share/cmake-2.6/Modules/CheckLibraryExists.lists.in -#usr/local/share/cmake-2.6/Modules/CheckSizeOf.cmake -#usr/local/share/cmake-2.6/Modules/CheckStructHasMember.cmake -#usr/local/share/cmake-2.6/Modules/CheckSymbolExists.cmake -#usr/local/share/cmake-2.6/Modules/CheckTypeSize.cmake -#usr/local/share/cmake-2.6/Modules/CheckTypeSizeC.c.in -#usr/local/share/cmake-2.6/Modules/CheckVariableExists.c -#usr/local/share/cmake-2.6/Modules/CheckVariableExists.cmake -#usr/local/share/cmake-2.6/Modules/Dart.cmake -#usr/local/share/cmake-2.6/Modules/DartConfiguration.tcl.in -#usr/local/share/cmake-2.6/Modules/Documentation.cmake -#usr/local/share/cmake-2.6/Modules/DummyCXXFile.cxx -#usr/local/share/cmake-2.6/Modules/FLTKCompatibility.cmake -#usr/local/share/cmake-2.6/Modules/FeatureSummary.cmake -#usr/local/share/cmake-2.6/Modules/FindASPELL.cmake -#usr/local/share/cmake-2.6/Modules/FindAVIFile.cmake -#usr/local/share/cmake-2.6/Modules/FindBLAS.cmake -#usr/local/share/cmake-2.6/Modules/FindBZip2.cmake -#usr/local/share/cmake-2.6/Modules/FindBoost.cmake -#usr/local/share/cmake-2.6/Modules/FindCABLE.cmake -#usr/local/share/cmake-2.6/Modules/FindCURL.cmake -#usr/local/share/cmake-2.6/Modules/FindCVS.cmake -#usr/local/share/cmake-2.6/Modules/FindCoin3D.cmake -#usr/local/share/cmake-2.6/Modules/FindCups.cmake -#usr/local/share/cmake-2.6/Modules/FindCurses.cmake -#usr/local/share/cmake-2.6/Modules/FindCxxTest.cmake -#usr/local/share/cmake-2.6/Modules/FindCygwin.cmake -#usr/local/share/cmake-2.6/Modules/FindDCMTK.cmake -#usr/local/share/cmake-2.6/Modules/FindDart.cmake -#usr/local/share/cmake-2.6/Modules/FindDevIL.cmake -#usr/local/share/cmake-2.6/Modules/FindDoxygen.cmake -#usr/local/share/cmake-2.6/Modules/FindEXPAT.cmake -#usr/local/share/cmake-2.6/Modules/FindFLTK.cmake -#usr/local/share/cmake-2.6/Modules/FindFLTK2.cmake -#usr/local/share/cmake-2.6/Modules/FindFreetype.cmake -#usr/local/share/cmake-2.6/Modules/FindGCCXML.cmake -#usr/local/share/cmake-2.6/Modules/FindGDAL.cmake -#usr/local/share/cmake-2.6/Modules/FindGIF.cmake -#usr/local/share/cmake-2.6/Modules/FindGLU.cmake -#usr/local/share/cmake-2.6/Modules/FindGLUT.cmake -#usr/local/share/cmake-2.6/Modules/FindGTK.cmake -#usr/local/share/cmake-2.6/Modules/FindGettext.cmake -#usr/local/share/cmake-2.6/Modules/FindGnuplot.cmake -#usr/local/share/cmake-2.6/Modules/FindHSPELL.cmake -#usr/local/share/cmake-2.6/Modules/FindHTMLHelp.cmake -#usr/local/share/cmake-2.6/Modules/FindITK.cmake -#usr/local/share/cmake-2.6/Modules/FindImageMagick.cmake -#usr/local/share/cmake-2.6/Modules/FindJNI.cmake -#usr/local/share/cmake-2.6/Modules/FindJPEG.cmake -#usr/local/share/cmake-2.6/Modules/FindJasper.cmake -#usr/local/share/cmake-2.6/Modules/FindJava.cmake -#usr/local/share/cmake-2.6/Modules/FindKDE3.cmake -#usr/local/share/cmake-2.6/Modules/FindKDE4.cmake -#usr/local/share/cmake-2.6/Modules/FindLAPACK.cmake -#usr/local/share/cmake-2.6/Modules/FindLATEX.cmake -#usr/local/share/cmake-2.6/Modules/FindLibXml2.cmake -#usr/local/share/cmake-2.6/Modules/FindLibXslt.cmake -#usr/local/share/cmake-2.6/Modules/FindLua50.cmake -#usr/local/share/cmake-2.6/Modules/FindLua51.cmake -#usr/local/share/cmake-2.6/Modules/FindMFC.cmake -#usr/local/share/cmake-2.6/Modules/FindMPEG.cmake -#usr/local/share/cmake-2.6/Modules/FindMPEG2.cmake -#usr/local/share/cmake-2.6/Modules/FindMPI.cmake -#usr/local/share/cmake-2.6/Modules/FindMatlab.cmake -#usr/local/share/cmake-2.6/Modules/FindMotif.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenAL.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenGL.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenMP.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenSSL.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenSceneGraph.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenThreads.cmake -#usr/local/share/cmake-2.6/Modules/FindPHP4.cmake -#usr/local/share/cmake-2.6/Modules/FindPNG.cmake -#usr/local/share/cmake-2.6/Modules/FindPackageHandleStandardArgs.cmake -#usr/local/share/cmake-2.6/Modules/FindPackageMessage.cmake -#usr/local/share/cmake-2.6/Modules/FindPerl.cmake -#usr/local/share/cmake-2.6/Modules/FindPerlLibs.cmake -#usr/local/share/cmake-2.6/Modules/FindPhysFS.cmake -#usr/local/share/cmake-2.6/Modules/FindPike.cmake -#usr/local/share/cmake-2.6/Modules/FindPkgConfig.cmake -#usr/local/share/cmake-2.6/Modules/FindProducer.cmake -#usr/local/share/cmake-2.6/Modules/FindPythonInterp.cmake -#usr/local/share/cmake-2.6/Modules/FindPythonLibs.cmake -#usr/local/share/cmake-2.6/Modules/FindQt.cmake -#usr/local/share/cmake-2.6/Modules/FindQt3.cmake -#usr/local/share/cmake-2.6/Modules/FindQt4.cmake -#usr/local/share/cmake-2.6/Modules/FindQuickTime.cmake -#usr/local/share/cmake-2.6/Modules/FindRTI.cmake -#usr/local/share/cmake-2.6/Modules/FindRuby.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL_image.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL_mixer.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL_net.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL_sound.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL_ttf.cmake -#usr/local/share/cmake-2.6/Modules/FindSWIG.cmake -#usr/local/share/cmake-2.6/Modules/FindSelfPackers.cmake -#usr/local/share/cmake-2.6/Modules/FindSquish.cmake -#usr/local/share/cmake-2.6/Modules/FindSubversion.cmake -#usr/local/share/cmake-2.6/Modules/FindTCL.cmake -#usr/local/share/cmake-2.6/Modules/FindTIFF.cmake -#usr/local/share/cmake-2.6/Modules/FindTclStub.cmake -#usr/local/share/cmake-2.6/Modules/FindTclsh.cmake -#usr/local/share/cmake-2.6/Modules/FindThreads.cmake -#usr/local/share/cmake-2.6/Modules/FindUnixCommands.cmake -#usr/local/share/cmake-2.6/Modules/FindVTK.cmake -#usr/local/share/cmake-2.6/Modules/FindWget.cmake -#usr/local/share/cmake-2.6/Modules/FindWish.cmake -#usr/local/share/cmake-2.6/Modules/FindX11.cmake -#usr/local/share/cmake-2.6/Modules/FindXMLRPC.cmake -#usr/local/share/cmake-2.6/Modules/FindZLIB.cmake -#usr/local/share/cmake-2.6/Modules/Findosg.cmake -#usr/local/share/cmake-2.6/Modules/FindosgAnimation.cmake -#usr/local/share/cmake-2.6/Modules/FindosgDB.cmake -#usr/local/share/cmake-2.6/Modules/FindosgFX.cmake -#usr/local/share/cmake-2.6/Modules/FindosgGA.cmake -#usr/local/share/cmake-2.6/Modules/FindosgIntrospection.cmake -#usr/local/share/cmake-2.6/Modules/FindosgManipulator.cmake -#usr/local/share/cmake-2.6/Modules/FindosgParticle.cmake -#usr/local/share/cmake-2.6/Modules/FindosgProducer.cmake -#usr/local/share/cmake-2.6/Modules/FindosgShadow.cmake -#usr/local/share/cmake-2.6/Modules/FindosgSim.cmake -#usr/local/share/cmake-2.6/Modules/FindosgTerrain.cmake -#usr/local/share/cmake-2.6/Modules/FindosgText.cmake -#usr/local/share/cmake-2.6/Modules/FindosgUtil.cmake -#usr/local/share/cmake-2.6/Modules/FindosgViewer.cmake -#usr/local/share/cmake-2.6/Modules/FindosgVolume.cmake -#usr/local/share/cmake-2.6/Modules/FindosgWidget.cmake -#usr/local/share/cmake-2.6/Modules/Findosg_functions.cmake -#usr/local/share/cmake-2.6/Modules/FindwxWidgets.cmake -#usr/local/share/cmake-2.6/Modules/FindwxWindows.cmake -#usr/local/share/cmake-2.6/Modules/FortranCInterface.cmake -#usr/local/share/cmake-2.6/Modules/FortranCInterface.h.in -#usr/local/share/cmake-2.6/Modules/GetPrerequisites.cmake -#usr/local/share/cmake-2.6/Modules/ITKCompatibility.cmake -#usr/local/share/cmake-2.6/Modules/InstallRequiredSystemLibraries.cmake -#usr/local/share/cmake-2.6/Modules/KDE3Macros.cmake -#usr/local/share/cmake-2.6/Modules/MacOSXBundleInfo.plist.in -#usr/local/share/cmake-2.6/Modules/MacOSXFrameworkInfo.plist.in -#usr/local/share/cmake-2.6/Modules/MacroAddFileDependencies.cmake -#usr/local/share/cmake-2.6/Modules/NSIS.InstallOptions.ini.in -#usr/local/share/cmake-2.6/Modules/NSIS.template.in -#usr/local/share/cmake-2.6/Modules/Platform -#usr/local/share/cmake-2.6/Modules/Platform/AIX-VisualAge-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/AIX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/BSDOS.cmake -#usr/local/share/cmake-2.6/Modules/Platform/BeOS.cmake -#usr/local/share/cmake-2.6/Modules/Platform/BlueGeneL.cmake -#usr/local/share/cmake-2.6/Modules/Platform/CYGWIN-g77.cmake -#usr/local/share/cmake-2.6/Modules/Platform/CYGWIN.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Catamount.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Darwin-icc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Darwin-icpc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Darwin-xlc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Darwin.cmake -#usr/local/share/cmake-2.6/Modules/Platform/DragonFly.cmake -#usr/local/share/cmake-2.6/Modules/Platform/FreeBSD.cmake -#usr/local/share/cmake-2.6/Modules/Platform/GNU.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-ASM.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-CXX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-Common.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic-SDCC-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic.cmake -#usr/local/share/cmake-2.6/Modules/Platform/HP-UX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Haiku.cmake -#usr/local/share/cmake-2.6/Modules/Platform/IRIX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/IRIX64.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-GNU-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-CXX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-CXX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-CXX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-VisualAge-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-VisualAge-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-como.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-icpc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-ifort.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux.cmake -#usr/local/share/cmake-2.6/Modules/Platform/MP-RAS.cmake -#usr/local/share/cmake-2.6/Modules/Platform/NetBSD.cmake -#usr/local/share/cmake-2.6/Modules/Platform/OSF1.cmake -#usr/local/share/cmake-2.6/Modules/Platform/OpenBSD.cmake -#usr/local/share/cmake-2.6/Modules/Platform/QNX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/RISCos.cmake -#usr/local/share/cmake-2.6/Modules/Platform/SCO_SV.cmake -#usr/local/share/cmake-2.6/Modules/Platform/SINIX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/SunOS-SunPro-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/SunOS.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Tru64.cmake -#usr/local/share/cmake-2.6/Modules/Platform/ULTRIX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/UNIX_SV.cmake -#usr/local/share/cmake-2.6/Modules/Platform/UnixPaths.cmake -#usr/local/share/cmake-2.6/Modules/Platform/UnixWare.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-bcc32.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-cl.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-cl.cmake.in -#usr/local/share/cmake-2.6/Modules/Platform/Windows-df.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-g++.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-g77.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-gcc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-icl.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-ifort.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-wcl386.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows.cmake -#usr/local/share/cmake-2.6/Modules/Platform/WindowsPaths.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Xenix.cmake -#usr/local/share/cmake-2.6/Modules/Platform/cl.cmake -#usr/local/share/cmake-2.6/Modules/Platform/eCos.cmake -#usr/local/share/cmake-2.6/Modules/Platform/g77.cmake -#usr/local/share/cmake-2.6/Modules/Platform/gas.cmake -#usr/local/share/cmake-2.6/Modules/Platform/gcc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/kFreeBSD.cmake -#usr/local/share/cmake-2.6/Modules/Platform/syllable.cmake -#usr/local/share/cmake-2.6/Modules/Platform/xlf.cmake -#usr/local/share/cmake-2.6/Modules/SquishTestScript.cmake -#usr/local/share/cmake-2.6/Modules/SystemInformation.cmake -#usr/local/share/cmake-2.6/Modules/SystemInformation.in -#usr/local/share/cmake-2.6/Modules/TestBigEndian.cmake -#usr/local/share/cmake-2.6/Modules/TestCXXAcceptsFlag.cmake -#usr/local/share/cmake-2.6/Modules/TestEndianess.c.in -#usr/local/share/cmake-2.6/Modules/TestForANSIForScope.cmake -#usr/local/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cmake -#usr/local/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cxx -#usr/local/share/cmake-2.6/Modules/TestForAnsiForScope.cxx -#usr/local/share/cmake-2.6/Modules/TestForSSTREAM.cmake -#usr/local/share/cmake-2.6/Modules/TestForSSTREAM.cxx -#usr/local/share/cmake-2.6/Modules/TestForSTDNamespace.cmake -#usr/local/share/cmake-2.6/Modules/TestForSTDNamespace.cxx -#usr/local/share/cmake-2.6/Modules/UseEcos.cmake -#usr/local/share/cmake-2.6/Modules/UsePkgConfig.cmake -#usr/local/share/cmake-2.6/Modules/UseQt4.cmake -#usr/local/share/cmake-2.6/Modules/UseSWIG.cmake -#usr/local/share/cmake-2.6/Modules/UseVTK40.cmake -#usr/local/share/cmake-2.6/Modules/UseVTKBuildSettings40.cmake -#usr/local/share/cmake-2.6/Modules/UseVTKConfig40.cmake -#usr/local/share/cmake-2.6/Modules/Use_wxWindows.cmake -#usr/local/share/cmake-2.6/Modules/UsewxWidgets.cmake -#usr/local/share/cmake-2.6/Modules/VTKCompatibility.cmake -#usr/local/share/cmake-2.6/Modules/ecos_clean.cmake -#usr/local/share/cmake-2.6/Modules/kde3init_dummy.cpp.in -#usr/local/share/cmake-2.6/Modules/kde3uic.cmake -#usr/local/share/cmake-2.6/Modules/readme.txt -#usr/local/share/cmake-2.6/Templates -#usr/local/share/cmake-2.6/Templates/CMakeLists.txt -#usr/local/share/cmake-2.6/Templates/CMakeVSMacros1.vsmacros -#usr/local/share/cmake-2.6/Templates/CMakeVSMacros2.vsmacros -#usr/local/share/cmake-2.6/Templates/CMakeVisualStudio6Configurations.cmake -#usr/local/share/cmake-2.6/Templates/CPack.GenericDescription.txt -#usr/local/share/cmake-2.6/Templates/CPack.GenericLicense.txt -#usr/local/share/cmake-2.6/Templates/CPack.GenericWelcome.txt -#usr/local/share/cmake-2.6/Templates/CPackConfig.cmake.in -#usr/local/share/cmake-2.6/Templates/CTestScript.cmake.in -#usr/local/share/cmake-2.6/Templates/DLLFooter.dsptemplate -#usr/local/share/cmake-2.6/Templates/DLLHeader.dsptemplate -#usr/local/share/cmake-2.6/Templates/EXEFooter.dsptemplate -#usr/local/share/cmake-2.6/Templates/EXEHeader.dsptemplate -#usr/local/share/cmake-2.6/Templates/EXEWinHeader.dsptemplate -#usr/local/share/cmake-2.6/Templates/TestDriver.cxx.in -#usr/local/share/cmake-2.6/Templates/UtilityFooter.dsptemplate -#usr/local/share/cmake-2.6/Templates/UtilityHeader.dsptemplate -#usr/local/share/cmake-2.6/Templates/cygwin-package.sh.in -#usr/local/share/cmake-2.6/Templates/staticLibFooter.dsptemplate -#usr/local/share/cmake-2.6/Templates/staticLibHeader.dsptemplate -#usr/local/share/cmake-2.6/include -#usr/local/share/cmake-2.6/include/cmCPluginAPI.h +#usr/bin/ccmake +#usr/bin/cmake +#usr/bin/cpack +#usr/bin/ctest +#usr/doc/cmake-2.6 +#usr/doc/cmake-2.6/ccmake.docbook +#usr/doc/cmake-2.6/ccmake.html +#usr/doc/cmake-2.6/ccmake.txt +#usr/doc/cmake-2.6/cmake-commands.html +#usr/doc/cmake-2.6/cmake-commands.txt +#usr/doc/cmake-2.6/cmake-compatcommands.html +#usr/doc/cmake-2.6/cmake-compatcommands.txt +#usr/doc/cmake-2.6/cmake-modules.html +#usr/doc/cmake-2.6/cmake-modules.txt +#usr/doc/cmake-2.6/cmake-policies.html +#usr/doc/cmake-2.6/cmake-policies.txt +#usr/doc/cmake-2.6/cmake-properties.html +#usr/doc/cmake-2.6/cmake-properties.txt +#usr/doc/cmake-2.6/cmake-variables.html +#usr/doc/cmake-2.6/cmake-variables.txt +#usr/doc/cmake-2.6/cmake.docbook +#usr/doc/cmake-2.6/cmake.html +#usr/doc/cmake-2.6/cmake.txt +#usr/doc/cmake-2.6/cpack.docbook +#usr/doc/cmake-2.6/cpack.html +#usr/doc/cmake-2.6/cpack.txt +#usr/doc/cmake-2.6/ctest.docbook +#usr/doc/cmake-2.6/ctest.html +#usr/doc/cmake-2.6/ctest.txt +#usr/man/man1/ccmake.1 +#usr/man/man1/cmake.1 +#usr/man/man1/cmakecommands.1 +#usr/man/man1/cmakecompat.1 +#usr/man/man1/cmakemodules.1 +#usr/man/man1/cmakepolicies.1 +#usr/man/man1/cmakeprops.1 +#usr/man/man1/cmakevars.1 +#usr/man/man1/cpack.1 +#usr/man/man1/ctest.1 +#usr/share/cmake-2.6 +#usr/share/cmake-2.6/Modules +#usr/share/cmake-2.6/Modules/AddFileDependencies.cmake +#usr/share/cmake-2.6/Modules/BundleUtilities.cmake +#usr/share/cmake-2.6/Modules/CMake.cmake +#usr/share/cmake-2.6/Modules/CMakeASM-ATTInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeASMCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeASMInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeASM_MASMInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeBackwardCompatibilityC.cmake +#usr/share/cmake-2.6/Modules/CMakeBackwardCompatibilityCXX.cmake +#usr/share/cmake-2.6/Modules/CMakeBorlandFindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeBuildSettings.cmake.in +#usr/share/cmake-2.6/Modules/CMakeCCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeCCompilerABI.c +#usr/share/cmake-2.6/Modules/CMakeCCompilerId.c.in +#usr/share/cmake-2.6/Modules/CMakeCInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeCXXCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeCXXCompilerABI.cpp +#usr/share/cmake-2.6/Modules/CMakeCXXCompilerId.cpp.in +#usr/share/cmake-2.6/Modules/CMakeCXXInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeCommonLanguageInclude.cmake +#usr/share/cmake-2.6/Modules/CMakeCompilerABI.h +#usr/share/cmake-2.6/Modules/CMakeConfigurableFile.in +#usr/share/cmake-2.6/Modules/CMakeDependentOption.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineASM-ATTCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineASMCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineASM_MASMCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineCCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineCXXCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineCompilerABI.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineCompilerId.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineFortranCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineJavaCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineRCCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineSystem.cmake +#usr/share/cmake-2.6/Modules/CMakeExportBuildSettings.cmake +#usr/share/cmake-2.6/Modules/CMakeFindBinUtils.cmake +#usr/share/cmake-2.6/Modules/CMakeFindFrameworks.cmake +#usr/share/cmake-2.6/Modules/CMakeFindWMake.cmake +#usr/share/cmake-2.6/Modules/CMakeFindXCode.cmake +#usr/share/cmake-2.6/Modules/CMakeForceCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeFortranCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeFortranCompilerId.F90.in +#usr/share/cmake-2.6/Modules/CMakeFortranInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeGenericSystem.cmake +#usr/share/cmake-2.6/Modules/CMakeImportBuildSettings.cmake +#usr/share/cmake-2.6/Modules/CMakeJavaCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeJavaInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeMSYSFindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeMinGWFindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeNMakeFindMake.cmake +#usr/share/cmake-2.6/Modules/CMakePlatformId.h.in +#usr/share/cmake-2.6/Modules/CMakePrintSystemInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeRCCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeRCInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeSystem.cmake.in +#usr/share/cmake-2.6/Modules/CMakeSystemSpecificInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeTestASM-ATTCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestASMCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestASM_MASMCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestCCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestCXXCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestForFreeVC.cxx +#usr/share/cmake-2.6/Modules/CMakeTestFortranCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestGNU.c +#usr/share/cmake-2.6/Modules/CMakeTestJavaCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestNMakeCLVersion.c +#usr/share/cmake-2.6/Modules/CMakeTestRCCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeUnixFindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeVS6BackwardCompatibility.cmake +#usr/share/cmake-2.6/Modules/CMakeVS6FindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeVS71FindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeVS7BackwardCompatibility.cmake +#usr/share/cmake-2.6/Modules/CMakeVS7FindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeVS8FindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeVS9FindMake.cmake +#usr/share/cmake-2.6/Modules/CPack.DS_Store.in +#usr/share/cmake-2.6/Modules/CPack.Description.plist.in +#usr/share/cmake-2.6/Modules/CPack.Info.plist.in +#usr/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.in +#usr/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.rsrc.in +#usr/share/cmake-2.6/Modules/CPack.OSXX11.Info.plist.in +#usr/share/cmake-2.6/Modules/CPack.OSXX11.main.scpt.in +#usr/share/cmake-2.6/Modules/CPack.RuntimeScript.in +#usr/share/cmake-2.6/Modules/CPack.STGZ_Header.sh.in +#usr/share/cmake-2.6/Modules/CPack.VolumeIcon.icns.in +#usr/share/cmake-2.6/Modules/CPack.background.png.in +#usr/share/cmake-2.6/Modules/CPack.cmake +#usr/share/cmake-2.6/Modules/CPack.distribution.dist.in +#usr/share/cmake-2.6/Modules/CPackDeb.cmake +#usr/share/cmake-2.6/Modules/CPackRPM.cmake +#usr/share/cmake-2.6/Modules/CPackZIP.cmake +#usr/share/cmake-2.6/Modules/CTest.cmake +#usr/share/cmake-2.6/Modules/CTestTargets.cmake +#usr/share/cmake-2.6/Modules/CheckCCompilerFlag.cmake +#usr/share/cmake-2.6/Modules/CheckCSourceCompiles.cmake +#usr/share/cmake-2.6/Modules/CheckCSourceRuns.cmake +#usr/share/cmake-2.6/Modules/CheckCXXCompilerFlag.cmake +#usr/share/cmake-2.6/Modules/CheckCXXSourceCompiles.cmake +#usr/share/cmake-2.6/Modules/CheckCXXSourceRuns.cmake +#usr/share/cmake-2.6/Modules/CheckForPthreads.c +#usr/share/cmake-2.6/Modules/CheckFortranFunctionExists.cmake +#usr/share/cmake-2.6/Modules/CheckFunctionExists.c +#usr/share/cmake-2.6/Modules/CheckFunctionExists.cmake +#usr/share/cmake-2.6/Modules/CheckIncludeFile.c.in +#usr/share/cmake-2.6/Modules/CheckIncludeFile.cmake +#usr/share/cmake-2.6/Modules/CheckIncludeFile.cxx.in +#usr/share/cmake-2.6/Modules/CheckIncludeFileCXX.cmake +#usr/share/cmake-2.6/Modules/CheckIncludeFiles.cmake +#usr/share/cmake-2.6/Modules/CheckLibraryExists.cmake +#usr/share/cmake-2.6/Modules/CheckLibraryExists.lists.in +#usr/share/cmake-2.6/Modules/CheckSizeOf.cmake +#usr/share/cmake-2.6/Modules/CheckStructHasMember.cmake +#usr/share/cmake-2.6/Modules/CheckSymbolExists.cmake +#usr/share/cmake-2.6/Modules/CheckTypeSize.cmake +#usr/share/cmake-2.6/Modules/CheckTypeSizeC.c.in +#usr/share/cmake-2.6/Modules/CheckVariableExists.c +#usr/share/cmake-2.6/Modules/CheckVariableExists.cmake +#usr/share/cmake-2.6/Modules/Dart.cmake +#usr/share/cmake-2.6/Modules/DartConfiguration.tcl.in +#usr/share/cmake-2.6/Modules/Documentation.cmake +#usr/share/cmake-2.6/Modules/DummyCXXFile.cxx +#usr/share/cmake-2.6/Modules/FLTKCompatibility.cmake +#usr/share/cmake-2.6/Modules/FeatureSummary.cmake +#usr/share/cmake-2.6/Modules/FindASPELL.cmake +#usr/share/cmake-2.6/Modules/FindAVIFile.cmake +#usr/share/cmake-2.6/Modules/FindBLAS.cmake +#usr/share/cmake-2.6/Modules/FindBZip2.cmake +#usr/share/cmake-2.6/Modules/FindBoost.cmake +#usr/share/cmake-2.6/Modules/FindCABLE.cmake +#usr/share/cmake-2.6/Modules/FindCURL.cmake +#usr/share/cmake-2.6/Modules/FindCVS.cmake +#usr/share/cmake-2.6/Modules/FindCoin3D.cmake +#usr/share/cmake-2.6/Modules/FindCups.cmake +#usr/share/cmake-2.6/Modules/FindCurses.cmake +#usr/share/cmake-2.6/Modules/FindCxxTest.cmake +#usr/share/cmake-2.6/Modules/FindCygwin.cmake +#usr/share/cmake-2.6/Modules/FindDCMTK.cmake +#usr/share/cmake-2.6/Modules/FindDart.cmake +#usr/share/cmake-2.6/Modules/FindDevIL.cmake +#usr/share/cmake-2.6/Modules/FindDoxygen.cmake +#usr/share/cmake-2.6/Modules/FindEXPAT.cmake +#usr/share/cmake-2.6/Modules/FindFLTK.cmake +#usr/share/cmake-2.6/Modules/FindFLTK2.cmake +#usr/share/cmake-2.6/Modules/FindFreetype.cmake +#usr/share/cmake-2.6/Modules/FindGCCXML.cmake +#usr/share/cmake-2.6/Modules/FindGDAL.cmake +#usr/share/cmake-2.6/Modules/FindGIF.cmake +#usr/share/cmake-2.6/Modules/FindGLU.cmake +#usr/share/cmake-2.6/Modules/FindGLUT.cmake +#usr/share/cmake-2.6/Modules/FindGTK.cmake +#usr/share/cmake-2.6/Modules/FindGettext.cmake +#usr/share/cmake-2.6/Modules/FindGnuplot.cmake +#usr/share/cmake-2.6/Modules/FindHSPELL.cmake +#usr/share/cmake-2.6/Modules/FindHTMLHelp.cmake +#usr/share/cmake-2.6/Modules/FindITK.cmake +#usr/share/cmake-2.6/Modules/FindImageMagick.cmake +#usr/share/cmake-2.6/Modules/FindJNI.cmake +#usr/share/cmake-2.6/Modules/FindJPEG.cmake +#usr/share/cmake-2.6/Modules/FindJasper.cmake +#usr/share/cmake-2.6/Modules/FindJava.cmake +#usr/share/cmake-2.6/Modules/FindKDE3.cmake +#usr/share/cmake-2.6/Modules/FindKDE4.cmake +#usr/share/cmake-2.6/Modules/FindLAPACK.cmake +#usr/share/cmake-2.6/Modules/FindLATEX.cmake +#usr/share/cmake-2.6/Modules/FindLibXml2.cmake +#usr/share/cmake-2.6/Modules/FindLibXslt.cmake +#usr/share/cmake-2.6/Modules/FindLua50.cmake +#usr/share/cmake-2.6/Modules/FindLua51.cmake +#usr/share/cmake-2.6/Modules/FindMFC.cmake +#usr/share/cmake-2.6/Modules/FindMPEG.cmake +#usr/share/cmake-2.6/Modules/FindMPEG2.cmake +#usr/share/cmake-2.6/Modules/FindMPI.cmake +#usr/share/cmake-2.6/Modules/FindMatlab.cmake +#usr/share/cmake-2.6/Modules/FindMotif.cmake +#usr/share/cmake-2.6/Modules/FindOpenAL.cmake +#usr/share/cmake-2.6/Modules/FindOpenGL.cmake +#usr/share/cmake-2.6/Modules/FindOpenMP.cmake +#usr/share/cmake-2.6/Modules/FindOpenSSL.cmake +#usr/share/cmake-2.6/Modules/FindOpenSceneGraph.cmake +#usr/share/cmake-2.6/Modules/FindOpenThreads.cmake +#usr/share/cmake-2.6/Modules/FindPHP4.cmake +#usr/share/cmake-2.6/Modules/FindPNG.cmake +#usr/share/cmake-2.6/Modules/FindPackageHandleStandardArgs.cmake +#usr/share/cmake-2.6/Modules/FindPackageMessage.cmake +#usr/share/cmake-2.6/Modules/FindPerl.cmake +#usr/share/cmake-2.6/Modules/FindPerlLibs.cmake +#usr/share/cmake-2.6/Modules/FindPhysFS.cmake +#usr/share/cmake-2.6/Modules/FindPike.cmake +#usr/share/cmake-2.6/Modules/FindPkgConfig.cmake +#usr/share/cmake-2.6/Modules/FindProducer.cmake +#usr/share/cmake-2.6/Modules/FindPythonInterp.cmake +#usr/share/cmake-2.6/Modules/FindPythonLibs.cmake +#usr/share/cmake-2.6/Modules/FindQt.cmake +#usr/share/cmake-2.6/Modules/FindQt3.cmake +#usr/share/cmake-2.6/Modules/FindQt4.cmake +#usr/share/cmake-2.6/Modules/FindQuickTime.cmake +#usr/share/cmake-2.6/Modules/FindRTI.cmake +#usr/share/cmake-2.6/Modules/FindRuby.cmake +#usr/share/cmake-2.6/Modules/FindSDL.cmake +#usr/share/cmake-2.6/Modules/FindSDL_image.cmake +#usr/share/cmake-2.6/Modules/FindSDL_mixer.cmake +#usr/share/cmake-2.6/Modules/FindSDL_net.cmake +#usr/share/cmake-2.6/Modules/FindSDL_sound.cmake +#usr/share/cmake-2.6/Modules/FindSDL_ttf.cmake +#usr/share/cmake-2.6/Modules/FindSWIG.cmake +#usr/share/cmake-2.6/Modules/FindSelfPackers.cmake +#usr/share/cmake-2.6/Modules/FindSquish.cmake +#usr/share/cmake-2.6/Modules/FindSubversion.cmake +#usr/share/cmake-2.6/Modules/FindTCL.cmake +#usr/share/cmake-2.6/Modules/FindTIFF.cmake +#usr/share/cmake-2.6/Modules/FindTclStub.cmake +#usr/share/cmake-2.6/Modules/FindTclsh.cmake +#usr/share/cmake-2.6/Modules/FindThreads.cmake +#usr/share/cmake-2.6/Modules/FindUnixCommands.cmake +#usr/share/cmake-2.6/Modules/FindVTK.cmake +#usr/share/cmake-2.6/Modules/FindWget.cmake +#usr/share/cmake-2.6/Modules/FindWish.cmake +#usr/share/cmake-2.6/Modules/FindX11.cmake +#usr/share/cmake-2.6/Modules/FindXMLRPC.cmake +#usr/share/cmake-2.6/Modules/FindZLIB.cmake +#usr/share/cmake-2.6/Modules/Findosg.cmake +#usr/share/cmake-2.6/Modules/FindosgAnimation.cmake +#usr/share/cmake-2.6/Modules/FindosgDB.cmake +#usr/share/cmake-2.6/Modules/FindosgFX.cmake +#usr/share/cmake-2.6/Modules/FindosgGA.cmake +#usr/share/cmake-2.6/Modules/FindosgIntrospection.cmake +#usr/share/cmake-2.6/Modules/FindosgManipulator.cmake +#usr/share/cmake-2.6/Modules/FindosgParticle.cmake +#usr/share/cmake-2.6/Modules/FindosgProducer.cmake +#usr/share/cmake-2.6/Modules/FindosgShadow.cmake +#usr/share/cmake-2.6/Modules/FindosgSim.cmake +#usr/share/cmake-2.6/Modules/FindosgTerrain.cmake +#usr/share/cmake-2.6/Modules/FindosgText.cmake +#usr/share/cmake-2.6/Modules/FindosgUtil.cmake +#usr/share/cmake-2.6/Modules/FindosgViewer.cmake +#usr/share/cmake-2.6/Modules/FindosgVolume.cmake +#usr/share/cmake-2.6/Modules/FindosgWidget.cmake +#usr/share/cmake-2.6/Modules/Findosg_functions.cmake +#usr/share/cmake-2.6/Modules/FindwxWidgets.cmake +#usr/share/cmake-2.6/Modules/FindwxWindows.cmake +#usr/share/cmake-2.6/Modules/FortranCInterface.cmake +#usr/share/cmake-2.6/Modules/FortranCInterface.h.in +#usr/share/cmake-2.6/Modules/GetPrerequisites.cmake +#usr/share/cmake-2.6/Modules/ITKCompatibility.cmake +#usr/share/cmake-2.6/Modules/InstallRequiredSystemLibraries.cmake +#usr/share/cmake-2.6/Modules/KDE3Macros.cmake +#usr/share/cmake-2.6/Modules/MacOSXBundleInfo.plist.in +#usr/share/cmake-2.6/Modules/MacOSXFrameworkInfo.plist.in +#usr/share/cmake-2.6/Modules/MacroAddFileDependencies.cmake +#usr/share/cmake-2.6/Modules/NSIS.InstallOptions.ini.in +#usr/share/cmake-2.6/Modules/NSIS.template.in +#usr/share/cmake-2.6/Modules/Platform +#usr/share/cmake-2.6/Modules/Platform/AIX-VisualAge-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/AIX.cmake +#usr/share/cmake-2.6/Modules/Platform/BSDOS.cmake +#usr/share/cmake-2.6/Modules/Platform/BeOS.cmake +#usr/share/cmake-2.6/Modules/Platform/BlueGeneL.cmake +#usr/share/cmake-2.6/Modules/Platform/CYGWIN-g77.cmake +#usr/share/cmake-2.6/Modules/Platform/CYGWIN.cmake +#usr/share/cmake-2.6/Modules/Platform/Catamount.cmake +#usr/share/cmake-2.6/Modules/Platform/Darwin-icc.cmake +#usr/share/cmake-2.6/Modules/Platform/Darwin-icpc.cmake +#usr/share/cmake-2.6/Modules/Platform/Darwin-xlc.cmake +#usr/share/cmake-2.6/Modules/Platform/Darwin.cmake +#usr/share/cmake-2.6/Modules/Platform/DragonFly.cmake +#usr/share/cmake-2.6/Modules/Platform/FreeBSD.cmake +#usr/share/cmake-2.6/Modules/Platform/GNU.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-ASM.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-CXX.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-Common.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic-SDCC-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic.cmake +#usr/share/cmake-2.6/Modules/Platform/HP-UX.cmake +#usr/share/cmake-2.6/Modules/Platform/Haiku.cmake +#usr/share/cmake-2.6/Modules/Platform/IRIX.cmake +#usr/share/cmake-2.6/Modules/Platform/IRIX64.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-GNU-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-CXX.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-CXX.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-CXX.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-VisualAge-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-VisualAge-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-como.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-icpc.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-ifort.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux.cmake +#usr/share/cmake-2.6/Modules/Platform/MP-RAS.cmake +#usr/share/cmake-2.6/Modules/Platform/NetBSD.cmake +#usr/share/cmake-2.6/Modules/Platform/OSF1.cmake +#usr/share/cmake-2.6/Modules/Platform/OpenBSD.cmake +#usr/share/cmake-2.6/Modules/Platform/QNX.cmake +#usr/share/cmake-2.6/Modules/Platform/RISCos.cmake +#usr/share/cmake-2.6/Modules/Platform/SCO_SV.cmake +#usr/share/cmake-2.6/Modules/Platform/SINIX.cmake +#usr/share/cmake-2.6/Modules/Platform/SunOS-SunPro-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/SunOS.cmake +#usr/share/cmake-2.6/Modules/Platform/Tru64.cmake +#usr/share/cmake-2.6/Modules/Platform/ULTRIX.cmake +#usr/share/cmake-2.6/Modules/Platform/UNIX_SV.cmake +#usr/share/cmake-2.6/Modules/Platform/UnixPaths.cmake +#usr/share/cmake-2.6/Modules/Platform/UnixWare.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-bcc32.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-cl.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-cl.cmake.in +#usr/share/cmake-2.6/Modules/Platform/Windows-df.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-g++.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-g77.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-gcc.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-icl.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-ifort.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-wcl386.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows.cmake +#usr/share/cmake-2.6/Modules/Platform/WindowsPaths.cmake +#usr/share/cmake-2.6/Modules/Platform/Xenix.cmake +#usr/share/cmake-2.6/Modules/Platform/cl.cmake +#usr/share/cmake-2.6/Modules/Platform/eCos.cmake +#usr/share/cmake-2.6/Modules/Platform/g77.cmake +#usr/share/cmake-2.6/Modules/Platform/gas.cmake +#usr/share/cmake-2.6/Modules/Platform/gcc.cmake +#usr/share/cmake-2.6/Modules/Platform/kFreeBSD.cmake +#usr/share/cmake-2.6/Modules/Platform/syllable.cmake +#usr/share/cmake-2.6/Modules/Platform/xlf.cmake +#usr/share/cmake-2.6/Modules/SquishTestScript.cmake +#usr/share/cmake-2.6/Modules/SystemInformation.cmake +#usr/share/cmake-2.6/Modules/SystemInformation.in +#usr/share/cmake-2.6/Modules/TestBigEndian.cmake +#usr/share/cmake-2.6/Modules/TestCXXAcceptsFlag.cmake +#usr/share/cmake-2.6/Modules/TestEndianess.c.in +#usr/share/cmake-2.6/Modules/TestForANSIForScope.cmake +#usr/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cmake +#usr/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cxx +#usr/share/cmake-2.6/Modules/TestForAnsiForScope.cxx +#usr/share/cmake-2.6/Modules/TestForSSTREAM.cmake +#usr/share/cmake-2.6/Modules/TestForSSTREAM.cxx +#usr/share/cmake-2.6/Modules/TestForSTDNamespace.cmake +#usr/share/cmake-2.6/Modules/TestForSTDNamespace.cxx +#usr/share/cmake-2.6/Modules/UseEcos.cmake +#usr/share/cmake-2.6/Modules/UsePkgConfig.cmake +#usr/share/cmake-2.6/Modules/UseQt4.cmake +#usr/share/cmake-2.6/Modules/UseSWIG.cmake +#usr/share/cmake-2.6/Modules/UseVTK40.cmake +#usr/share/cmake-2.6/Modules/UseVTKBuildSettings40.cmake +#usr/share/cmake-2.6/Modules/UseVTKConfig40.cmake +#usr/share/cmake-2.6/Modules/Use_wxWindows.cmake +#usr/share/cmake-2.6/Modules/UsewxWidgets.cmake +#usr/share/cmake-2.6/Modules/VTKCompatibility.cmake +#usr/share/cmake-2.6/Modules/ecos_clean.cmake +#usr/share/cmake-2.6/Modules/kde3init_dummy.cpp.in +#usr/share/cmake-2.6/Modules/kde3uic.cmake +#usr/share/cmake-2.6/Modules/readme.txt +#usr/share/cmake-2.6/Templates +#usr/share/cmake-2.6/Templates/CMakeLists.txt +#usr/share/cmake-2.6/Templates/CMakeVSMacros1.vsmacros +#usr/share/cmake-2.6/Templates/CMakeVSMacros2.vsmacros +#usr/share/cmake-2.6/Templates/CMakeVisualStudio6Configurations.cmake +#usr/share/cmake-2.6/Templates/CPack.GenericDescription.txt +#usr/share/cmake-2.6/Templates/CPack.GenericLicense.txt +#usr/share/cmake-2.6/Templates/CPack.GenericWelcome.txt +#usr/share/cmake-2.6/Templates/CPackConfig.cmake.in +#usr/share/cmake-2.6/Templates/CTestScript.cmake.in +#usr/share/cmake-2.6/Templates/DLLFooter.dsptemplate +#usr/share/cmake-2.6/Templates/DLLHeader.dsptemplate +#usr/share/cmake-2.6/Templates/EXEFooter.dsptemplate +#usr/share/cmake-2.6/Templates/EXEHeader.dsptemplate +#usr/share/cmake-2.6/Templates/EXEWinHeader.dsptemplate +#usr/share/cmake-2.6/Templates/TestDriver.cxx.in +#usr/share/cmake-2.6/Templates/UtilityFooter.dsptemplate +#usr/share/cmake-2.6/Templates/UtilityHeader.dsptemplate +#usr/share/cmake-2.6/Templates/cygwin-package.sh.in +#usr/share/cmake-2.6/Templates/staticLibFooter.dsptemplate +#usr/share/cmake-2.6/Templates/staticLibHeader.dsptemplate +#usr/share/cmake-2.6/include +#usr/share/cmake-2.6/include/cmCPluginAPI.h diff --git a/config/rootfiles/common/collectd b/config/rootfiles/common/collectd index 2e4448b..2b9fa28 100644 --- a/config/rootfiles/common/collectd +++ b/config/rootfiles/common/collectd @@ -2,6 +2,7 @@ etc/collectd.conf etc/collectd.custom etc/collectd.precache etc/collectd.thermal +etc/rc.d/init.d/collectd etc/rc.d/rc0.d/K50collectd etc/rc.d/rc3.d/S29collectd etc/rc.d/rc6.d/K50collectd @@ -11,134 +12,202 @@ etc/rc.d/rc6.d/K50collectd #usr/include/collectd/client.h #usr/include/collectd/lcc_features.h #usr/lib/collectd +#usr/lib/collectd/apache.a #usr/lib/collectd/apache.la usr/lib/collectd/apache.so +#usr/lib/collectd/apcups.a #usr/lib/collectd/apcups.la usr/lib/collectd/apcups.so +#usr/lib/collectd/ascent.a #usr/lib/collectd/ascent.la usr/lib/collectd/ascent.so +#usr/lib/collectd/battery.a #usr/lib/collectd/battery.la usr/lib/collectd/battery.so +#usr/lib/collectd/bind.a #usr/lib/collectd/bind.la usr/lib/collectd/bind.so +#usr/lib/collectd/conntrack.a #usr/lib/collectd/conntrack.la usr/lib/collectd/conntrack.so +#usr/lib/collectd/contextswitch.a #usr/lib/collectd/contextswitch.la usr/lib/collectd/contextswitch.so +#usr/lib/collectd/cpu.a #usr/lib/collectd/cpu.la usr/lib/collectd/cpu.so +#usr/lib/collectd/cpufreq.a #usr/lib/collectd/cpufreq.la usr/lib/collectd/cpufreq.so +#usr/lib/collectd/curl.a #usr/lib/collectd/curl.la usr/lib/collectd/curl.so +#usr/lib/collectd/curl_xml.a #usr/lib/collectd/curl_xml.la usr/lib/collectd/curl_xml.so +#usr/lib/collectd/df.a #usr/lib/collectd/df.la usr/lib/collectd/df.so +#usr/lib/collectd/disk.a #usr/lib/collectd/disk.la usr/lib/collectd/disk.so +#usr/lib/collectd/dns.a #usr/lib/collectd/dns.la usr/lib/collectd/dns.so +#usr/lib/collectd/email.a #usr/lib/collectd/email.la usr/lib/collectd/email.so +#usr/lib/collectd/entropy.a #usr/lib/collectd/entropy.la usr/lib/collectd/entropy.so +#usr/lib/collectd/exec.a #usr/lib/collectd/exec.la usr/lib/collectd/exec.so +#usr/lib/collectd/filecount.a #usr/lib/collectd/filecount.la usr/lib/collectd/filecount.so +#usr/lib/collectd/fscache.a #usr/lib/collectd/fscache.la usr/lib/collectd/fscache.so +#usr/lib/collectd/hddtemp.a #usr/lib/collectd/hddtemp.la usr/lib/collectd/hddtemp.so +#usr/lib/collectd/interface.a #usr/lib/collectd/interface.la usr/lib/collectd/interface.so +#usr/lib/collectd/iptables.a #usr/lib/collectd/iptables.la usr/lib/collectd/iptables.so +#usr/lib/collectd/irq.a #usr/lib/collectd/irq.la usr/lib/collectd/irq.so +#usr/lib/collectd/load.a #usr/lib/collectd/load.la usr/lib/collectd/load.so +#usr/lib/collectd/logfile.a #usr/lib/collectd/logfile.la usr/lib/collectd/logfile.so +#usr/lib/collectd/madwifi.a #usr/lib/collectd/madwifi.la usr/lib/collectd/madwifi.so +#usr/lib/collectd/match_empty_counter.a #usr/lib/collectd/match_empty_counter.la usr/lib/collectd/match_empty_counter.so +#usr/lib/collectd/match_hashed.a #usr/lib/collectd/match_hashed.la usr/lib/collectd/match_hashed.so +#usr/lib/collectd/match_regex.a #usr/lib/collectd/match_regex.la usr/lib/collectd/match_regex.so +#usr/lib/collectd/match_timediff.a #usr/lib/collectd/match_timediff.la usr/lib/collectd/match_timediff.so +#usr/lib/collectd/match_value.a #usr/lib/collectd/match_value.la usr/lib/collectd/match_value.so +#usr/lib/collectd/memory.a #usr/lib/collectd/memory.la usr/lib/collectd/memory.so +#usr/lib/collectd/multimeter.a #usr/lib/collectd/multimeter.la usr/lib/collectd/multimeter.so +#usr/lib/collectd/network.a #usr/lib/collectd/network.la usr/lib/collectd/network.so +#usr/lib/collectd/nfs.a #usr/lib/collectd/nfs.la usr/lib/collectd/nfs.so +#usr/lib/collectd/ntpd.a #usr/lib/collectd/ntpd.la usr/lib/collectd/ntpd.so +#usr/lib/collectd/olsrd.a #usr/lib/collectd/olsrd.la usr/lib/collectd/olsrd.so +#usr/lib/collectd/openvpn.a #usr/lib/collectd/openvpn.la usr/lib/collectd/openvpn.so +#usr/lib/collectd/ping.a #usr/lib/collectd/ping.la usr/lib/collectd/ping.so +#usr/lib/collectd/powerdns.a #usr/lib/collectd/powerdns.la usr/lib/collectd/powerdns.so +#usr/lib/collectd/processes.a #usr/lib/collectd/processes.la usr/lib/collectd/processes.so +#usr/lib/collectd/protocols.a #usr/lib/collectd/protocols.la usr/lib/collectd/protocols.so +#usr/lib/collectd/python.a #usr/lib/collectd/python.la usr/lib/collectd/python.so +#usr/lib/collectd/rrdcached.a +#usr/lib/collectd/rrdcached.la +usr/lib/collectd/rrdcached.so +#usr/lib/collectd/rrdtool.a #usr/lib/collectd/rrdtool.la usr/lib/collectd/rrdtool.so +#usr/lib/collectd/sensors.a #usr/lib/collectd/sensors.la usr/lib/collectd/sensors.so +#usr/lib/collectd/swap.a #usr/lib/collectd/swap.la usr/lib/collectd/swap.so +#usr/lib/collectd/syslog.a #usr/lib/collectd/syslog.la usr/lib/collectd/syslog.so +#usr/lib/collectd/table.a #usr/lib/collectd/table.la usr/lib/collectd/table.so +#usr/lib/collectd/tail.a #usr/lib/collectd/tail.la usr/lib/collectd/tail.so +#usr/lib/collectd/target_notification.a #usr/lib/collectd/target_notification.la usr/lib/collectd/target_notification.so +#usr/lib/collectd/target_replace.a #usr/lib/collectd/target_replace.la usr/lib/collectd/target_replace.so +#usr/lib/collectd/target_scale.a #usr/lib/collectd/target_scale.la usr/lib/collectd/target_scale.so +#usr/lib/collectd/target_set.a #usr/lib/collectd/target_set.la usr/lib/collectd/target_set.so +#usr/lib/collectd/tcpconns.a #usr/lib/collectd/tcpconns.la usr/lib/collectd/tcpconns.so +#usr/lib/collectd/teamspeak2.a #usr/lib/collectd/teamspeak2.la usr/lib/collectd/teamspeak2.so +#usr/lib/collectd/ted.a #usr/lib/collectd/ted.la usr/lib/collectd/ted.so +#usr/lib/collectd/thermal.a #usr/lib/collectd/thermal.la usr/lib/collectd/thermal.so +#usr/lib/collectd/unixsock.a #usr/lib/collectd/unixsock.la usr/lib/collectd/unixsock.so +#usr/lib/collectd/uptime.a #usr/lib/collectd/uptime.la usr/lib/collectd/uptime.so +#usr/lib/collectd/users.a #usr/lib/collectd/users.la usr/lib/collectd/users.so +#usr/lib/collectd/uuid.a #usr/lib/collectd/uuid.la usr/lib/collectd/uuid.so +#usr/lib/collectd/vmem.a #usr/lib/collectd/vmem.la usr/lib/collectd/vmem.so +#usr/lib/collectd/wireless.a #usr/lib/collectd/wireless.la usr/lib/collectd/wireless.so +#usr/lib/collectd/write_http.a #usr/lib/collectd/write_http.la usr/lib/collectd/write_http.so +#usr/lib/libcollectdclient.a #usr/lib/libcollectdclient.la usr/lib/libcollectdclient.so usr/lib/libcollectdclient.so.0 @@ -171,4 +240,3 @@ usr/share/collectd/types.db #usr/share/man/man5/collectd.conf.5 #usr/share/man/man5/types.db.5 #var/lib/collectd -etc/rc.d/init.d/collectd diff --git a/config/rootfiles/common/compat-wireless b/config/rootfiles/common/compat-wireless index 80018c8..5a562d2 100644 --- a/config/rootfiles/common/compat-wireless +++ b/config/rootfiles/common/compat-wireless @@ -1,2 +1,2 @@ -etc/udev/rules.d/50-compat_firmware.rules +lib/udev/rules.d/50-compat_firmware.rules lib/udev/compat_firmware.sh diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot index 1d2fc9d..51fd388 100644 --- a/config/rootfiles/common/configroot +++ b/config/rootfiles/common/configroot @@ -59,6 +59,7 @@ var/ipfire/langs #var/ipfire/langs/es.pl #var/ipfire/langs/fr.pl #var/ipfire/langs/list +#var/ipfire/langs/nl.pl #var/ipfire/langs/pl.pl #var/ipfire/langs/ru.pl var/ipfire/logging diff --git a/config/rootfiles/common/conntrack-tools b/config/rootfiles/common/conntrack-tools new file mode 100644 index 0000000..5ce29aa --- /dev/null +++ b/config/rootfiles/common/conntrack-tools @@ -0,0 +1,6 @@ +usr/sbin/conntrack +#usr/sbin/conntrackd +#usr/sbin/nfct +#usr/share/man/man8/conntrack.8 +#usr/share/man/man8/conntrackd.8 +#usr/share/man/man8/nfct.8 diff --git a/config/rootfiles/common/coreutils b/config/rootfiles/common/coreutils index 3901b69..c08e228 100644 --- a/config/rootfiles/common/coreutils +++ b/config/rootfiles/common/coreutils @@ -6,7 +6,6 @@ bin/cp bin/date bin/dd bin/df -bin/echo bin/false bin/head bin/ln @@ -21,7 +20,7 @@ bin/sleep bin/sync bin/true bin/uname -etc/dircolors +etc/DIR_COLORS usr/bin/[ usr/bin/basename #usr/bin/cksum @@ -59,7 +58,7 @@ usr/bin/printf #usr/bin/ptx usr/bin/readlink usr/bin/seq -#usr/bin/sha1sum +usr/bin/sha1sum usr/bin/shred usr/bin/sort usr/bin/split @@ -84,7 +83,6 @@ usr/bin/whoami usr/bin/yes usr/sbin/chroot #usr/share/info/coreutils.info -#usr/share/info/dir #usr/share/man/man1/basename.1 #usr/share/man/man1/cat.1 #usr/share/man/man1/chroot.1 diff --git a/config/rootfiles/common/curl b/config/rootfiles/common/curl index 1e962e0..2a9e16b 100644 --- a/config/rootfiles/common/curl +++ b/config/rootfiles/common/curl @@ -16,7 +16,7 @@ usr/bin/curl usr/lib/libcurl.so usr/lib/libcurl.so.3 usr/lib/libcurl.so.4 -usr/lib/libcurl.so.4.1.1 +usr/lib/libcurl.so.4.2.0 #usr/lib/pkgconfig/libcurl.pc #usr/share/man/man1/curl-config.1 #usr/share/man/man1/curl.1 diff --git a/config/rootfiles/common/daq b/config/rootfiles/common/daq index b23fd19..10ec777 100644 --- a/config/rootfiles/common/daq +++ b/config/rootfiles/common/daq @@ -1,4 +1,4 @@ -usr/bin/daq-modules-config +#usr/bin/daq-modules-config #usr/include/daq.h #usr/include/daq_api.h #usr/include/daq_common.h @@ -20,8 +20,8 @@ usr/lib/daq #usr/lib/libdaq.a #usr/lib/libdaq.la #usr/lib/libdaq.so -usr/lib/libdaq.so.1 -usr/lib/libdaq.so.1.0.0 +usr/lib/libdaq.so.2 +usr/lib/libdaq.so.2.0.0 #usr/lib/libdaq_static.a #usr/lib/libdaq_static.la #usr/lib/libdaq_static_modules.a diff --git a/config/rootfiles/common/dejavu-fonts-ttf b/config/rootfiles/common/dejavu-fonts-ttf new file mode 100644 index 0000000..bfdfed8 --- /dev/null +++ b/config/rootfiles/common/dejavu-fonts-ttf @@ -0,0 +1,22 @@ +#usr/share/fonts +usr/share/fonts/DejaVuSans-Bold.ttf +usr/share/fonts/DejaVuSans-BoldOblique.ttf +usr/share/fonts/DejaVuSans-ExtraLight.ttf +usr/share/fonts/DejaVuSans-Oblique.ttf +usr/share/fonts/DejaVuSans.ttf +#usr/share/fonts/DejaVuSansCondensed-Bold.ttf +#usr/share/fonts/DejaVuSansCondensed-BoldOblique.ttf +#usr/share/fonts/DejaVuSansCondensed-Oblique.ttf +#usr/share/fonts/DejaVuSansCondensed.ttf +#usr/share/fonts/DejaVuSansMono-Bold.ttf +#usr/share/fonts/DejaVuSansMono-BoldOblique.ttf +#usr/share/fonts/DejaVuSansMono-Oblique.ttf +#usr/share/fonts/DejaVuSansMono.ttf +#usr/share/fonts/DejaVuSerif-Bold.ttf +#usr/share/fonts/DejaVuSerif-BoldItalic.ttf +#usr/share/fonts/DejaVuSerif-Italic.ttf +#usr/share/fonts/DejaVuSerif.ttf +#usr/share/fonts/DejaVuSerifCondensed-Bold.ttf +#usr/share/fonts/DejaVuSerifCondensed-BoldItalic.ttf +#usr/share/fonts/DejaVuSerifCondensed-Italic.ttf +#usr/share/fonts/DejaVuSerifCondensed.ttf diff --git a/config/rootfiles/common/dracut b/config/rootfiles/common/dracut deleted file mode 100644 index cb57182..0000000 --- a/config/rootfiles/common/dracut +++ /dev/null @@ -1,62 +0,0 @@ -#boot/ipfirerd-KVER.img -etc/dracut.conf -etc/dracut.conf.d -#etc/dracut.conf.d/dracut.conf -sbin/dracut -sbin/dracut-catimages -sbin/dracut-gencmdline -sbin/lsinitrd -sbin/mkinitrd -sbin/switch_root -usr/share/dracut -usr/share/dracut/dracut-functions -usr/share/dracut/modules.d -usr/share/dracut/modules.d/60xen -usr/share/dracut/modules.d/60xen/check -usr/share/dracut/modules.d/60xen/install -usr/share/dracut/modules.d/60xen/installkernel -usr/share/dracut/modules.d/60xen/xen-pre-udev.sh -usr/share/dracut/modules.d/90kernel-modules -usr/share/dracut/modules.d/90kernel-modules/install -usr/share/dracut/modules.d/90kernel-modules/installkernel -usr/share/dracut/modules.d/90kernel-modules/parse-kernel.sh -usr/share/dracut/modules.d/95debug -usr/share/dracut/modules.d/95debug/check -usr/share/dracut/modules.d/95debug/install -usr/share/dracut/modules.d/95rootfs-block -usr/share/dracut/modules.d/95rootfs-block/block-genrules.sh -usr/share/dracut/modules.d/95rootfs-block/install -usr/share/dracut/modules.d/95rootfs-block/mount-root.sh -usr/share/dracut/modules.d/95rootfs-block/parse-block.sh -usr/share/dracut/modules.d/95terminfo -usr/share/dracut/modules.d/95terminfo/install -usr/share/dracut/modules.d/95udev-rules -usr/share/dracut/modules.d/95udev-rules/01-ignore.rules -usr/share/dracut/modules.d/95udev-rules/59-persistent-storage-volid.rules -usr/share/dracut/modules.d/95udev-rules/59-persistent-storage.rules -usr/share/dracut/modules.d/95udev-rules/61-persistent-storage.rules -usr/share/dracut/modules.d/95udev-rules/install -usr/share/dracut/modules.d/95udev-rules/load-modules.sh -usr/share/dracut/modules.d/98syslog -usr/share/dracut/modules.d/98syslog/README -usr/share/dracut/modules.d/98syslog/check -usr/share/dracut/modules.d/98syslog/install -usr/share/dracut/modules.d/98syslog/parse-syslog-opts.sh -usr/share/dracut/modules.d/98syslog/rsyslog.conf -usr/share/dracut/modules.d/98syslog/rsyslogd-start.sh -usr/share/dracut/modules.d/98syslog/rsyslogd-stop.sh -usr/share/dracut/modules.d/98syslog/syslog-cleanup.sh -usr/share/dracut/modules.d/98syslog/syslog-genrules.sh -usr/share/dracut/modules.d/99base -usr/share/dracut/modules.d/99base/check -usr/share/dracut/modules.d/99base/dracut-lib.sh -usr/share/dracut/modules.d/99base/init -usr/share/dracut/modules.d/99base/initqueue -usr/share/dracut/modules.d/99base/install -usr/share/dracut/modules.d/99base/loginit -usr/share/dracut/modules.d/99base/parse-blacklist.sh -usr/share/dracut/modules.d/99base/parse-root-opts.sh -#usr/share/man/man5/dracut.conf.5 -#usr/share/man/man8/dracut-catimages.8 -#usr/share/man/man8/dracut-gencmdline.8 -#usr/share/man/man8/dracut.8 diff --git a/config/rootfiles/common/dvb-firmwares b/config/rootfiles/common/dvb-firmwares new file mode 100644 index 0000000..3a521b1 --- /dev/null +++ b/config/rootfiles/common/dvb-firmwares @@ -0,0 +1,23 @@ +lib/firmware/dvb-fe-bcm3510-01.fw +lib/firmware/dvb-fe-or51132-qam.fw +lib/firmware/dvb-fe-or51132-vsb.fw +lib/firmware/dvb-fe-or51211.fw +lib/firmware/dvb-ttpci-01.fw +#lib/firmware/dvb-ttpci-01.fw-261a +#lib/firmware/dvb-ttpci-01.fw-261b +#lib/firmware/dvb-ttpci-01.fw-261c +#lib/firmware/dvb-ttpci-01.fw-261d +#lib/firmware/dvb-ttpci-01.fw-261f +#lib/firmware/dvb-ttpci-01.fw-2622 +lib/firmware/dvb-usb-avertv-a800-02.fw +lib/firmware/dvb-usb-bluebird-01.fw +lib/firmware/dvb-usb-dibusb-5.0.0.11.fw +lib/firmware/dvb-usb-dibusb-6.0.0.8.fw +lib/firmware/dvb-usb-dtt200u-01.fw +lib/firmware/dvb-usb-terratec-h7-az6007.fw +lib/firmware/dvb-usb-terratec-h7-drxk.fw +lib/firmware/dvb-usb-umt-010-02.fw +lib/firmware/dvb-usb-vp702x-01.fw +lib/firmware/dvb-usb-vp7045-01.fw +lib/firmware/dvb-usb-wt220u-01.fw +lib/firmware/dvb-usb-wt220u-02.fw diff --git a/config/rootfiles/common/e2fsprogs b/config/rootfiles/common/e2fsprogs index a293290..9622e6c 100644 --- a/config/rootfiles/common/e2fsprogs +++ b/config/rootfiles/common/e2fsprogs @@ -41,6 +41,7 @@ usr/bin/uuidgen #usr/include/blkid #usr/include/blkid/blkid.h #usr/include/blkid/blkid_types.h +#usr/include/com_err.h #usr/include/e2p #usr/include/e2p/e2p.h #usr/include/et @@ -54,7 +55,10 @@ usr/bin/uuidgen #usr/include/ext2fs/ext2_types.h #usr/include/ext2fs/ext2fs.h #usr/include/ext2fs/ext3_extents.h +#usr/include/ext2fs/qcow2.h #usr/include/ext2fs/tdb.h +#usr/include/quota +#usr/include/quota/mkquota.h #usr/include/ss #usr/include/ss/ss.h #usr/include/ss/ss_err.h @@ -69,18 +73,20 @@ usr/lib/libcom_err.so usr/lib/libe2p.so #usr/lib/libext2fs.a usr/lib/libext2fs.so +#usr/lib/libquota.a #usr/lib/libss.a usr/lib/libss.so #usr/lib/libuuid.a usr/lib/libuuid.so -#usr/lib/pkgconfig #usr/lib/pkgconfig/blkid.pc #usr/lib/pkgconfig/com_err.pc #usr/lib/pkgconfig/e2p.pc #usr/lib/pkgconfig/ext2fs.pc +#usr/lib/pkgconfig/quota.pc #usr/lib/pkgconfig/ss.pc #usr/lib/pkgconfig/uuid.pc usr/sbin/e2freefrag +usr/sbin/e4defrag usr/sbin/filefrag usr/sbin/mklost+found usr/sbin/uuidd @@ -117,6 +123,7 @@ usr/sbin/uuidd #usr/share/man/man8/e2image.8 #usr/share/man/man8/e2label.8 #usr/share/man/man8/e2undo.8 +#usr/share/man/man8/e4defrag.8 #usr/share/man/man8/filefrag.8 #usr/share/man/man8/findfs.8 #usr/share/man/man8/fsck.8 diff --git a/config/rootfiles/common/file b/config/rootfiles/common/file index 0fe0c6d..c48045a 100644 --- a/config/rootfiles/common/file +++ b/config/rootfiles/common/file @@ -2,15 +2,10 @@ usr/bin/file #usr/include/magic.h #usr/lib/libmagic.a #usr/lib/libmagic.la -usr/lib/libmagic.so +#usr/lib/libmagic.so usr/lib/libmagic.so.1 usr/lib/libmagic.so.1.0.0 -#usr/man/man1/file.1 -#usr/man/man3/libmagic.3 -#usr/man/man4 -#usr/man/man4/magic.4 -#usr/share/file -usr/share/file/magic -usr/share/file/magic.mgc -usr/share/file/magic.mime -usr/share/file/magic.mime.mgc +#usr/share/man/man1/file.1 +#usr/share/man/man3/libmagic.3 +#usr/share/man/man4/magic.4 +usr/share/misc/magic.mgc diff --git a/config/rootfiles/common/fontconfig b/config/rootfiles/common/fontconfig new file mode 100644 index 0000000..ade611e --- /dev/null +++ b/config/rootfiles/common/fontconfig @@ -0,0 +1,424 @@ +#etc/fonts +#etc/fonts/conf.avail +etc/fonts/conf.avail/10-autohint.conf +etc/fonts/conf.avail/10-no-sub-pixel.conf +etc/fonts/conf.avail/10-sub-pixel-bgr.conf +etc/fonts/conf.avail/10-sub-pixel-rgb.conf +etc/fonts/conf.avail/10-sub-pixel-vbgr.conf +etc/fonts/conf.avail/10-sub-pixel-vrgb.conf +etc/fonts/conf.avail/10-unhinted.conf +etc/fonts/conf.avail/20-fix-globaladvance.conf +etc/fonts/conf.avail/20-unhint-small-vera.conf +etc/fonts/conf.avail/25-unhint-nonlatin.conf +etc/fonts/conf.avail/30-metric-aliases.conf +etc/fonts/conf.avail/30-urw-aliases.conf +etc/fonts/conf.avail/40-nonlatin.conf +etc/fonts/conf.avail/45-latin.conf +etc/fonts/conf.avail/49-sansserif.conf +etc/fonts/conf.avail/50-user.conf +etc/fonts/conf.avail/51-local.conf +etc/fonts/conf.avail/60-latin.conf +etc/fonts/conf.avail/65-fonts-persian.conf +etc/fonts/conf.avail/65-khmer.conf +etc/fonts/conf.avail/65-nonlatin.conf +etc/fonts/conf.avail/69-unifont.conf +etc/fonts/conf.avail/70-no-bitmaps.conf +etc/fonts/conf.avail/70-yes-bitmaps.conf +etc/fonts/conf.avail/80-delicious.conf +etc/fonts/conf.avail/90-synthetic.conf +#etc/fonts/conf.d +etc/fonts/conf.d/20-fix-globaladvance.conf +etc/fonts/conf.d/20-unhint-small-vera.conf +etc/fonts/conf.d/30-metric-aliases.conf +etc/fonts/conf.d/30-urw-aliases.conf +etc/fonts/conf.d/40-nonlatin.conf +etc/fonts/conf.d/45-latin.conf +etc/fonts/conf.d/49-sansserif.conf +etc/fonts/conf.d/50-user.conf +etc/fonts/conf.d/51-local.conf +etc/fonts/conf.d/60-latin.conf +etc/fonts/conf.d/65-fonts-persian.conf +etc/fonts/conf.d/65-nonlatin.conf +etc/fonts/conf.d/69-unifont.conf +etc/fonts/conf.d/80-delicious.conf +etc/fonts/conf.d/90-synthetic.conf +#etc/fonts/conf.d/README +etc/fonts/fonts.conf +etc/fonts/fonts.dtd +usr/bin/fc-cache +usr/bin/fc-cat +usr/bin/fc-list +usr/bin/fc-match +#usr/include/fontconfig +#usr/include/fontconfig/fcfreetype.h +#usr/include/fontconfig/fcprivate.h +#usr/include/fontconfig/fontconfig.h +#usr/lib/libfontconfig.a +#usr/lib/libfontconfig.la +usr/lib/libfontconfig.so +usr/lib/libfontconfig.so.1 +usr/lib/libfontconfig.so.1.3.0 +usr/lib/pkgconfig/fontconfig.pc +#usr/share/doc/fontconfig +#usr/share/doc/fontconfig/fontconfig-devel +#usr/share/doc/fontconfig/fontconfig-devel.pdf +#usr/share/doc/fontconfig/fontconfig-devel.txt +#usr/share/doc/fontconfig/fontconfig-devel/index.html +#usr/share/doc/fontconfig/fontconfig-devel/r1034.html +#usr/share/doc/fontconfig/fontconfig-devel/r1056.html +#usr/share/doc/fontconfig/fontconfig-devel/r108.html +#usr/share/doc/fontconfig/fontconfig-devel/r1099.html +#usr/share/doc/fontconfig/fontconfig-devel/r1127.html +#usr/share/doc/fontconfig/fontconfig-devel/r1148.html +#usr/share/doc/fontconfig/fontconfig-devel/r1171.html +#usr/share/doc/fontconfig/fontconfig-devel/r1192.html +#usr/share/doc/fontconfig/fontconfig-devel/r1237.html +#usr/share/doc/fontconfig/fontconfig-devel/r1260.html +#usr/share/doc/fontconfig/fontconfig-devel/r1283.html +#usr/share/doc/fontconfig/fontconfig-devel/r129.html +#usr/share/doc/fontconfig/fontconfig-devel/r1309.html +#usr/share/doc/fontconfig/fontconfig-devel/r1336.html +#usr/share/doc/fontconfig/fontconfig-devel/r1367.html +#usr/share/doc/fontconfig/fontconfig-devel/r1389.html +#usr/share/doc/fontconfig/fontconfig-devel/r1412.html +#usr/share/doc/fontconfig/fontconfig-devel/r1434.html +#usr/share/doc/fontconfig/fontconfig-devel/r1460.html +#usr/share/doc/fontconfig/fontconfig-devel/r1482.html +#usr/share/doc/fontconfig/fontconfig-devel/r150.html +#usr/share/doc/fontconfig/fontconfig-devel/r1505.html +#usr/share/doc/fontconfig/fontconfig-devel/r1529.html +#usr/share/doc/fontconfig/fontconfig-devel/r1552.html +#usr/share/doc/fontconfig/fontconfig-devel/r1577.html +#usr/share/doc/fontconfig/fontconfig-devel/r1602.html +#usr/share/doc/fontconfig/fontconfig-devel/r1627.html +#usr/share/doc/fontconfig/fontconfig-devel/r1652.html +#usr/share/doc/fontconfig/fontconfig-devel/r1677.html +#usr/share/doc/fontconfig/fontconfig-devel/r1699.html +#usr/share/doc/fontconfig/fontconfig-devel/r171.html +#usr/share/doc/fontconfig/fontconfig-devel/r1724.html +#usr/share/doc/fontconfig/fontconfig-devel/r1749.html +#usr/share/doc/fontconfig/fontconfig-devel/r1774.html +#usr/share/doc/fontconfig/fontconfig-devel/r1801.html +#usr/share/doc/fontconfig/fontconfig-devel/r1829.html +#usr/share/doc/fontconfig/fontconfig-devel/r1858.html +#usr/share/doc/fontconfig/fontconfig-devel/r1883.html +#usr/share/doc/fontconfig/fontconfig-devel/r1905.html +#usr/share/doc/fontconfig/fontconfig-devel/r192.html +#usr/share/doc/fontconfig/fontconfig-devel/r1927.html +#usr/share/doc/fontconfig/fontconfig-devel/r1950.html +#usr/share/doc/fontconfig/fontconfig-devel/r1976.html +#usr/share/doc/fontconfig/fontconfig-devel/r2002.html +#usr/share/doc/fontconfig/fontconfig-devel/r2032.html +#usr/share/doc/fontconfig/fontconfig-devel/r2057.html +#usr/share/doc/fontconfig/fontconfig-devel/r2081.html +#usr/share/doc/fontconfig/fontconfig-devel/r2110.html +#usr/share/doc/fontconfig/fontconfig-devel/r213.html +#usr/share/doc/fontconfig/fontconfig-devel/r2131.html +#usr/share/doc/fontconfig/fontconfig-devel/r2155.html +#usr/share/doc/fontconfig/fontconfig-devel/r2178.html +#usr/share/doc/fontconfig/fontconfig-devel/r2201.html +#usr/share/doc/fontconfig/fontconfig-devel/r2227.html +#usr/share/doc/fontconfig/fontconfig-devel/r2256.html +#usr/share/doc/fontconfig/fontconfig-devel/r2286.html +#usr/share/doc/fontconfig/fontconfig-devel/r2316.html +#usr/share/doc/fontconfig/fontconfig-devel/r234.html +#usr/share/doc/fontconfig/fontconfig-devel/r2349.html +#usr/share/doc/fontconfig/fontconfig-devel/r2370.html +#usr/share/doc/fontconfig/fontconfig-devel/r2391.html +#usr/share/doc/fontconfig/fontconfig-devel/r2413.html +#usr/share/doc/fontconfig/fontconfig-devel/r2434.html +#usr/share/doc/fontconfig/fontconfig-devel/r2456.html +#usr/share/doc/fontconfig/fontconfig-devel/r2478.html +#usr/share/doc/fontconfig/fontconfig-devel/r2501.html +#usr/share/doc/fontconfig/fontconfig-devel/r2522.html +#usr/share/doc/fontconfig/fontconfig-devel/r2544.html +#usr/share/doc/fontconfig/fontconfig-devel/r2566.html +#usr/share/doc/fontconfig/fontconfig-devel/r258.html +#usr/share/doc/fontconfig/fontconfig-devel/r2588.html +#usr/share/doc/fontconfig/fontconfig-devel/r2609.html +#usr/share/doc/fontconfig/fontconfig-devel/r2631.html +#usr/share/doc/fontconfig/fontconfig-devel/r2655.html +#usr/share/doc/fontconfig/fontconfig-devel/r2676.html +#usr/share/doc/fontconfig/fontconfig-devel/r2698.html +#usr/share/doc/fontconfig/fontconfig-devel/r2721.html +#usr/share/doc/fontconfig/fontconfig-devel/r2744.html +#usr/share/doc/fontconfig/fontconfig-devel/r2767.html +#usr/share/doc/fontconfig/fontconfig-devel/r2788.html +#usr/share/doc/fontconfig/fontconfig-devel/r279.html +#usr/share/doc/fontconfig/fontconfig-devel/r2817.html +#usr/share/doc/fontconfig/fontconfig-devel/r2842.html +#usr/share/doc/fontconfig/fontconfig-devel/r2873.html +#usr/share/doc/fontconfig/fontconfig-devel/r2911.html +#usr/share/doc/fontconfig/fontconfig-devel/r2942.html +#usr/share/doc/fontconfig/fontconfig-devel/r2969.html +#usr/share/doc/fontconfig/fontconfig-devel/r2993.html +#usr/share/doc/fontconfig/fontconfig-devel/r301.html +#usr/share/doc/fontconfig/fontconfig-devel/r3021.html +#usr/share/doc/fontconfig/fontconfig-devel/r3045.html +#usr/share/doc/fontconfig/fontconfig-devel/r3069.html +#usr/share/doc/fontconfig/fontconfig-devel/r3094.html +#usr/share/doc/fontconfig/fontconfig-devel/r3118.html +#usr/share/doc/fontconfig/fontconfig-devel/r3142.html +#usr/share/doc/fontconfig/fontconfig-devel/r3164.html +#usr/share/doc/fontconfig/fontconfig-devel/r3192.html +#usr/share/doc/fontconfig/fontconfig-devel/r3213.html +#usr/share/doc/fontconfig/fontconfig-devel/r323.html +#usr/share/doc/fontconfig/fontconfig-devel/r3234.html +#usr/share/doc/fontconfig/fontconfig-devel/r3257.html +#usr/share/doc/fontconfig/fontconfig-devel/r3283.html +#usr/share/doc/fontconfig/fontconfig-devel/r3305.html +#usr/share/doc/fontconfig/fontconfig-devel/r3327.html +#usr/share/doc/fontconfig/fontconfig-devel/r3349.html +#usr/share/doc/fontconfig/fontconfig-devel/r3371.html +#usr/share/doc/fontconfig/fontconfig-devel/r3393.html +#usr/share/doc/fontconfig/fontconfig-devel/r3414.html +#usr/share/doc/fontconfig/fontconfig-devel/r3435.html +#usr/share/doc/fontconfig/fontconfig-devel/r344.html +#usr/share/doc/fontconfig/fontconfig-devel/r3460.html +#usr/share/doc/fontconfig/fontconfig-devel/r3496.html +#usr/share/doc/fontconfig/fontconfig-devel/r3518.html +#usr/share/doc/fontconfig/fontconfig-devel/r3553.html +#usr/share/doc/fontconfig/fontconfig-devel/r3581.html +#usr/share/doc/fontconfig/fontconfig-devel/r3607.html +#usr/share/doc/fontconfig/fontconfig-devel/r3629.html +#usr/share/doc/fontconfig/fontconfig-devel/r3656.html +#usr/share/doc/fontconfig/fontconfig-devel/r3683.html +#usr/share/doc/fontconfig/fontconfig-devel/r369.html +#usr/share/doc/fontconfig/fontconfig-devel/r3708.html +#usr/share/doc/fontconfig/fontconfig-devel/r3733.html +#usr/share/doc/fontconfig/fontconfig-devel/r3755.html +#usr/share/doc/fontconfig/fontconfig-devel/r3778.html +#usr/share/doc/fontconfig/fontconfig-devel/r3805.html +#usr/share/doc/fontconfig/fontconfig-devel/r3827.html +#usr/share/doc/fontconfig/fontconfig-devel/r3852.html +#usr/share/doc/fontconfig/fontconfig-devel/r3873.html +#usr/share/doc/fontconfig/fontconfig-devel/r3898.html +#usr/share/doc/fontconfig/fontconfig-devel/r3923.html +#usr/share/doc/fontconfig/fontconfig-devel/r3948.html +#usr/share/doc/fontconfig/fontconfig-devel/r397.html +#usr/share/doc/fontconfig/fontconfig-devel/r3973.html +#usr/share/doc/fontconfig/fontconfig-devel/r3999.html +#usr/share/doc/fontconfig/fontconfig-devel/r4021.html +#usr/share/doc/fontconfig/fontconfig-devel/r4043.html +#usr/share/doc/fontconfig/fontconfig-devel/r4065.html +#usr/share/doc/fontconfig/fontconfig-devel/r4090.html +#usr/share/doc/fontconfig/fontconfig-devel/r4119.html +#usr/share/doc/fontconfig/fontconfig-devel/r4144.html +#usr/share/doc/fontconfig/fontconfig-devel/r4176.html +#usr/share/doc/fontconfig/fontconfig-devel/r418.html +#usr/share/doc/fontconfig/fontconfig-devel/r4209.html +#usr/share/doc/fontconfig/fontconfig-devel/r4245.html +#usr/share/doc/fontconfig/fontconfig-devel/r4267.html +#usr/share/doc/fontconfig/fontconfig-devel/r4289.html +#usr/share/doc/fontconfig/fontconfig-devel/r4311.html +#usr/share/doc/fontconfig/fontconfig-devel/r4334.html +#usr/share/doc/fontconfig/fontconfig-devel/r4356.html +#usr/share/doc/fontconfig/fontconfig-devel/r4380.html +#usr/share/doc/fontconfig/fontconfig-devel/r4405.html +#usr/share/doc/fontconfig/fontconfig-devel/r4430.html +#usr/share/doc/fontconfig/fontconfig-devel/r4457.html +#usr/share/doc/fontconfig/fontconfig-devel/r446.html +#usr/share/doc/fontconfig/fontconfig-devel/r4484.html +#usr/share/doc/fontconfig/fontconfig-devel/r4509.html +#usr/share/doc/fontconfig/fontconfig-devel/r4530.html +#usr/share/doc/fontconfig/fontconfig-devel/r475.html +#usr/share/doc/fontconfig/fontconfig-devel/r570.html +#usr/share/doc/fontconfig/fontconfig-devel/r600.html +#usr/share/doc/fontconfig/fontconfig-devel/r707.html +#usr/share/doc/fontconfig/fontconfig-devel/r759.html +#usr/share/doc/fontconfig/fontconfig-devel/r782.html +#usr/share/doc/fontconfig/fontconfig-devel/r807.html +#usr/share/doc/fontconfig/fontconfig-devel/r828.html +#usr/share/doc/fontconfig/fontconfig-devel/r856.html +#usr/share/doc/fontconfig/fontconfig-devel/r878.html +#usr/share/doc/fontconfig/fontconfig-devel/r902.html +#usr/share/doc/fontconfig/fontconfig-devel/r923.html +#usr/share/doc/fontconfig/fontconfig-devel/r944.html +#usr/share/doc/fontconfig/fontconfig-devel/r967.html +#usr/share/doc/fontconfig/fontconfig-devel/r999.html +#usr/share/doc/fontconfig/fontconfig-devel/x102.html +#usr/share/doc/fontconfig/fontconfig-devel/x19.html +#usr/share/doc/fontconfig/fontconfig-devel/x31.html +#usr/share/doc/fontconfig/fontconfig-user.html +#usr/share/doc/fontconfig/fontconfig-user.pdf +#usr/share/doc/fontconfig/fontconfig-user.txt +#usr/share/man/man1/fc-cache.1 +#usr/share/man/man1/fc-cat.1 +#usr/share/man/man1/fc-list.1 +#usr/share/man/man1/fc-match.1 +#usr/share/man/man3/FcAtomicCreate.3 +#usr/share/man/man3/FcAtomicDeleteNew.3 +#usr/share/man/man3/FcAtomicDestroy.3 +#usr/share/man/man3/FcAtomicLock.3 +#usr/share/man/man3/FcAtomicNewFile.3 +#usr/share/man/man3/FcAtomicOrigFile.3 +#usr/share/man/man3/FcAtomicReplaceOrig.3 +#usr/share/man/man3/FcAtomicUnlock.3 +#usr/share/man/man3/FcBlanksAdd.3 +#usr/share/man/man3/FcBlanksCreate.3 +#usr/share/man/man3/FcBlanksDestroy.3 +#usr/share/man/man3/FcBlanksIsMember.3 +#usr/share/man/man3/FcCacheCopySet.3 +#usr/share/man/man3/FcCacheDir.3 +#usr/share/man/man3/FcCacheNumFont.3 +#usr/share/man/man3/FcCacheNumSubdir.3 +#usr/share/man/man3/FcCacheSubdir.3 +#usr/share/man/man3/FcCharSetAddChar.3 +#usr/share/man/man3/FcCharSetCopy.3 +#usr/share/man/man3/FcCharSetCount.3 +#usr/share/man/man3/FcCharSetCoverage.3 +#usr/share/man/man3/FcCharSetCreate.3 +#usr/share/man/man3/FcCharSetDestroy.3 +#usr/share/man/man3/FcCharSetEqual.3 +#usr/share/man/man3/FcCharSetFirstPage.3 +#usr/share/man/man3/FcCharSetHasChar.3 +#usr/share/man/man3/FcCharSetIntersect.3 +#usr/share/man/man3/FcCharSetIntersectCount.3 +#usr/share/man/man3/FcCharSetIsSubset.3 +#usr/share/man/man3/FcCharSetNew.3 +#usr/share/man/man3/FcCharSetNextPage.3 +#usr/share/man/man3/FcCharSetSubtract.3 +#usr/share/man/man3/FcCharSetSubtractCount.3 +#usr/share/man/man3/FcCharSetUnion.3 +#usr/share/man/man3/FcConfigAppFontAddDir.3 +#usr/share/man/man3/FcConfigAppFontAddFile.3 +#usr/share/man/man3/FcConfigAppFontClear.3 +#usr/share/man/man3/FcConfigBuildFonts.3 +#usr/share/man/man3/FcConfigCreate.3 +#usr/share/man/man3/FcConfigDestroy.3 +#usr/share/man/man3/FcConfigEnableHome.3 +#usr/share/man/man3/FcConfigFilename.3 +#usr/share/man/man3/FcConfigGetBlanks.3 +#usr/share/man/man3/FcConfigGetCache.3 +#usr/share/man/man3/FcConfigGetCacheDirs.3 +#usr/share/man/man3/FcConfigGetConfigDirs.3 +#usr/share/man/man3/FcConfigGetConfigFiles.3 +#usr/share/man/man3/FcConfigGetCurrent.3 +#usr/share/man/man3/FcConfigGetFontDirs.3 +#usr/share/man/man3/FcConfigGetFonts.3 +#usr/share/man/man3/FcConfigGetRescanInterval.3 +#usr/share/man/man3/FcConfigHome.3 +#usr/share/man/man3/FcConfigParseAndLoad.3 +#usr/share/man/man3/FcConfigSetCurrent.3 +#usr/share/man/man3/FcConfigSetRescanInterval.3 +#usr/share/man/man3/FcConfigSubstitute.3 +#usr/share/man/man3/FcConfigSubstituteWithPat.3 +#usr/share/man/man3/FcConfigUptoDate.3 +#usr/share/man/man3/FcDefaultSubstitute.3 +#usr/share/man/man3/FcDirCacheLoad.3 +#usr/share/man/man3/FcDirCacheLoadFile.3 +#usr/share/man/man3/FcDirCacheRead.3 +#usr/share/man/man3/FcDirCacheUnlink.3 +#usr/share/man/man3/FcDirCacheUnload.3 +#usr/share/man/man3/FcDirCacheValid.3 +#usr/share/man/man3/FcDirSave.3 +#usr/share/man/man3/FcDirScan.3 +#usr/share/man/man3/FcFileIsDir.3 +#usr/share/man/man3/FcFileScan.3 +#usr/share/man/man3/FcFini.3 +#usr/share/man/man3/FcFontList.3 +#usr/share/man/man3/FcFontMatch.3 +#usr/share/man/man3/FcFontRenderPrepare.3 +#usr/share/man/man3/FcFontSetAdd.3 +#usr/share/man/man3/FcFontSetCreate.3 +#usr/share/man/man3/FcFontSetDestroy.3 +#usr/share/man/man3/FcFontSetList.3 +#usr/share/man/man3/FcFontSetMatch.3 +#usr/share/man/man3/FcFontSetPrint.3 +#usr/share/man/man3/FcFontSetSort.3 +#usr/share/man/man3/FcFontSetSortDestroy.3 +#usr/share/man/man3/FcFontSort.3 +#usr/share/man/man3/FcFreeTypeCharIndex.3 +#usr/share/man/man3/FcFreeTypeCharSet.3 +#usr/share/man/man3/FcFreeTypeCharSetAndSpacing.3 +#usr/share/man/man3/FcFreeTypeQuery.3 +#usr/share/man/man3/FcFreeTypeQueryFace.3 +#usr/share/man/man3/FcGetLangs.3 +#usr/share/man/man3/FcGetVersion.3 +#usr/share/man/man3/FcInit.3 +#usr/share/man/man3/FcInitBringUptoDate.3 +#usr/share/man/man3/FcInitLoadConfig.3 +#usr/share/man/man3/FcInitLoadConfigAndFonts.3 +#usr/share/man/man3/FcInitReinitialize.3 +#usr/share/man/man3/FcIsLower.3 +#usr/share/man/man3/FcIsUpper.3 +#usr/share/man/man3/FcLangGetCharSet.3 +#usr/share/man/man3/FcLangSetAdd.3 +#usr/share/man/man3/FcLangSetCompare.3 +#usr/share/man/man3/FcLangSetContains.3 +#usr/share/man/man3/FcLangSetCopy.3 +#usr/share/man/man3/FcLangSetCreate.3 +#usr/share/man/man3/FcLangSetDestroy.3 +#usr/share/man/man3/FcLangSetEqual.3 +#usr/share/man/man3/FcLangSetHasLang.3 +#usr/share/man/man3/FcLangSetHash.3 +#usr/share/man/man3/FcMatrixCopy.3 +#usr/share/man/man3/FcMatrixEqual.3 +#usr/share/man/man3/FcMatrixInit.3 +#usr/share/man/man3/FcMatrixMultiply.3 +#usr/share/man/man3/FcMatrixRotate.3 +#usr/share/man/man3/FcMatrixScale.3 +#usr/share/man/man3/FcMatrixShear.3 +#usr/share/man/man3/FcNameConstant.3 +#usr/share/man/man3/FcNameGetConstant.3 +#usr/share/man/man3/FcNameGetObjectType.3 +#usr/share/man/man3/FcNameParse.3 +#usr/share/man/man3/FcNameRegisterConstants.3 +#usr/share/man/man3/FcNameRegisterObjectTypes.3 +#usr/share/man/man3/FcNameUnparse.3 +#usr/share/man/man3/FcNameUnregisterConstants.3 +#usr/share/man/man3/FcNameUnregisterObjectTypes.3 +#usr/share/man/man3/FcObjectSetAdd.3 +#usr/share/man/man3/FcObjectSetBuild.3 +#usr/share/man/man3/FcObjectSetCreate.3 +#usr/share/man/man3/FcObjectSetDestroy.3 +#usr/share/man/man3/FcPatternAdd-Type.3 +#usr/share/man/man3/FcPatternAdd.3 +#usr/share/man/man3/FcPatternAddWeak.3 +#usr/share/man/man3/FcPatternBuild.3 +#usr/share/man/man3/FcPatternCreate.3 +#usr/share/man/man3/FcPatternDel.3 +#usr/share/man/man3/FcPatternDestroy.3 +#usr/share/man/man3/FcPatternDuplicate.3 +#usr/share/man/man3/FcPatternEqual.3 +#usr/share/man/man3/FcPatternEqualSubset.3 +#usr/share/man/man3/FcPatternGet-Type.3 +#usr/share/man/man3/FcPatternGet.3 +#usr/share/man/man3/FcPatternHash.3 +#usr/share/man/man3/FcPatternPrint.3 +#usr/share/man/man3/FcPatternReference.3 +#usr/share/man/man3/FcPatternRemove.3 +#usr/share/man/man3/FcStrBasename.3 +#usr/share/man/man3/FcStrCmp.3 +#usr/share/man/man3/FcStrCmpIgnoreCase.3 +#usr/share/man/man3/FcStrCopy.3 +#usr/share/man/man3/FcStrCopyFilename.3 +#usr/share/man/man3/FcStrDowncase.3 +#usr/share/man/man3/FcStrFree.3 +#usr/share/man/man3/FcStrListCreate.3 +#usr/share/man/man3/FcStrListDone.3 +#usr/share/man/man3/FcStrListNext.3 +#usr/share/man/man3/FcStrPlus.3 +#usr/share/man/man3/FcStrSetAdd.3 +#usr/share/man/man3/FcStrSetAddFilename.3 +#usr/share/man/man3/FcStrSetCreate.3 +#usr/share/man/man3/FcStrSetDel.3 +#usr/share/man/man3/FcStrSetDestroy.3 +#usr/share/man/man3/FcStrSetEqual.3 +#usr/share/man/man3/FcStrSetMember.3 +#usr/share/man/man3/FcStrStr.3 +#usr/share/man/man3/FcStrStrIgnoreCase.3 +#usr/share/man/man3/FcToLower.3 +#usr/share/man/man3/FcUcs4ToUtf8.3 +#usr/share/man/man3/FcUtf16Len.3 +#usr/share/man/man3/FcUtf16ToUcs4.3 +#usr/share/man/man3/FcUtf8Len.3 +#usr/share/man/man3/FcUtf8ToUcs4.3 +#usr/share/man/man3/FcValueDestroy.3 +#usr/share/man/man3/FcValueEqual.3 +#usr/share/man/man3/FcValuePrint.3 +#usr/share/man/man3/FcValueSave.3 +#usr/share/man/man5/fonts-conf.5 +#usr/var +#usr/var/cache +usr/var/cache/fontconfig diff --git a/config/rootfiles/common/fstrim b/config/rootfiles/common/fstrim new file mode 100644 index 0000000..775fa92 --- /dev/null +++ b/config/rootfiles/common/fstrim @@ -0,0 +1,2 @@ +etc/fcron.daily/trim +usr/bin/fstrim diff --git a/config/rootfiles/common/fw_ath9k_htc b/config/rootfiles/common/fw_ath9k_htc deleted file mode 100644 index a841a11..0000000 --- a/config/rootfiles/common/fw_ath9k_htc +++ /dev/null @@ -1,2 +0,0 @@ -lib/firmware/htc_7010.fw -lib/firmware/htc_9271.fw diff --git a/config/rootfiles/common/gettext b/config/rootfiles/common/gettext index 915985b..e740441 100644 --- a/config/rootfiles/common/gettext +++ b/config/rootfiles/common/gettext @@ -1,28 +1,27 @@ -usr/bin/autopoint -usr/bin/envsubst -usr/bin/gettext -usr/bin/gettext.sh -usr/bin/gettextize -usr/bin/msgattrib -usr/bin/msgcat -usr/bin/msgcmp -usr/bin/msgcomm -usr/bin/msgconv -usr/bin/msgen -usr/bin/msgexec -usr/bin/msgfilter -usr/bin/msgfmt -usr/bin/msggrep -usr/bin/msginit -usr/bin/msgmerge -usr/bin/msgunfmt -usr/bin/msguniq -usr/bin/ngettext -usr/bin/xgettext +#usr/bin/autopoint +#usr/bin/envsubst +#usr/bin/gettext +#usr/bin/gettext.sh +#usr/bin/gettextize +#usr/bin/msgattrib +#usr/bin/msgcat +#usr/bin/msgcmp +#usr/bin/msgcomm +#usr/bin/msgconv +#usr/bin/msgen +#usr/bin/msgexec +#usr/bin/msgfilter +#usr/bin/msgfmt +#usr/bin/msggrep +#usr/bin/msginit +#usr/bin/msgmerge +#usr/bin/msgunfmt +#usr/bin/msguniq +#usr/bin/ngettext +#usr/bin/recode-sr-latin +#usr/bin/xgettext #usr/include/autosprintf.h #usr/include/gettext-po.h -#usr/info/autosprintf.info -#usr/info/gettext.info #usr/lib/gettext #usr/lib/gettext/hostname #usr/lib/gettext/project-id @@ -30,47 +29,49 @@ usr/bin/xgettext #usr/lib/gettext/user-email #usr/lib/libasprintf.a #usr/lib/libasprintf.la -usr/lib/libasprintf.so +#usr/lib/libasprintf.so usr/lib/libasprintf.so.0 usr/lib/libasprintf.so.0.0.0 -usr/lib/libgettextlib-0.14.5.so +usr/lib/libgettextlib-0.18.1.so #usr/lib/libgettextlib.la -usr/lib/libgettextlib.so +#usr/lib/libgettextlib.so #usr/lib/libgettextpo.a #usr/lib/libgettextpo.la -usr/lib/libgettextpo.so +#usr/lib/libgettextpo.so usr/lib/libgettextpo.so.0 -usr/lib/libgettextpo.so.0.1.0 -usr/lib/libgettextsrc-0.14.5.so +usr/lib/libgettextpo.so.0.5.1 +usr/lib/libgettextsrc-0.18.1.so #usr/lib/libgettextsrc.la usr/lib/libgettextsrc.so usr/lib/preloadable_libintl.so #usr/share/aclocal/codeset.m4 +#usr/share/aclocal/fcntl-o.m4 #usr/share/aclocal/gettext.m4 #usr/share/aclocal/glibc2.m4 #usr/share/aclocal/glibc21.m4 #usr/share/aclocal/iconv.m4 #usr/share/aclocal/intdiv0.m4 +#usr/share/aclocal/intl.m4 +#usr/share/aclocal/intldir.m4 +#usr/share/aclocal/intlmacosx.m4 #usr/share/aclocal/intmax.m4 #usr/share/aclocal/inttypes-pri.m4 -#usr/share/aclocal/inttypes.m4 #usr/share/aclocal/inttypes_h.m4 -#usr/share/aclocal/isc-posix.m4 #usr/share/aclocal/lcmessage.m4 #usr/share/aclocal/lib-ld.m4 #usr/share/aclocal/lib-link.m4 #usr/share/aclocal/lib-prefix.m4 -#usr/share/aclocal/longdouble.m4 +#usr/share/aclocal/lock.m4 #usr/share/aclocal/longlong.m4 #usr/share/aclocal/nls.m4 #usr/share/aclocal/po.m4 #usr/share/aclocal/printf-posix.m4 #usr/share/aclocal/progtest.m4 -#usr/share/aclocal/signed.m4 #usr/share/aclocal/size_max.m4 #usr/share/aclocal/stdint_h.m4 +#usr/share/aclocal/threadlib.m4 #usr/share/aclocal/uintmax_t.m4 -#usr/share/aclocal/ulonglong.m4 +#usr/share/aclocal/visibility.m4 #usr/share/aclocal/wchar_t.m4 #usr/share/aclocal/wint_t.m4 #usr/share/aclocal/xsize.m4 @@ -92,6 +93,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/build-aux #usr/share/doc/gettext/examples/build-aux/csharpcomp.m4 #usr/share/doc/gettext/examples/build-aux/csharpcomp.sh.in +#usr/share/doc/gettext/examples/build-aux/csharpexec-test.exe #usr/share/doc/gettext/examples/build-aux/csharpexec.m4 #usr/share/doc/gettext/examples/build-aux/csharpexec.sh.in #usr/share/doc/gettext/examples/build-aux/gcj.m4 @@ -120,25 +122,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++-gnome/po/Makevars #usr/share/doc/gettext/examples/hello-c++-gnome/po/POTFILES.in #usr/share/doc/gettext/examples/hello-c++-gnome/po/af.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/ast.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/bg.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ca.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/de.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/el.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/eo.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/es.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/fi.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/fr.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ga.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/hu.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/id.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/it.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/ky.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/lv.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/ms.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/mt.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/nl.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/pl.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/pt.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ro.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ru.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/sk.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/sl.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/sr.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/sv.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/tr.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/uk.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/vi.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_TW.po #usr/share/doc/gettext/examples/hello-c++-kde #usr/share/doc/gettext/examples/hello-c++-kde/BUGS @@ -182,25 +197,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++-kde/po/Makevars #usr/share/doc/gettext/examples/hello-c++-kde/po/POTFILES.in #usr/share/doc/gettext/examples/hello-c++-kde/po/af.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/ast.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/bg.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ca.po #usr/share/doc/gettext/examples/hello-c++-kde/po/de.po #usr/share/doc/gettext/examples/hello-c++-kde/po/el.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/eo.po #usr/share/doc/gettext/examples/hello-c++-kde/po/es.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/fi.po #usr/share/doc/gettext/examples/hello-c++-kde/po/fr.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ga.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/hu.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/id.po #usr/share/doc/gettext/examples/hello-c++-kde/po/it.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/ky.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/lv.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/ms.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/mt.po #usr/share/doc/gettext/examples/hello-c++-kde/po/nl.po #usr/share/doc/gettext/examples/hello-c++-kde/po/pl.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/pt.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ro.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ru.po #usr/share/doc/gettext/examples/hello-c++-kde/po/sk.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/sl.po #usr/share/doc/gettext/examples/hello-c++-kde/po/sr.po #usr/share/doc/gettext/examples/hello-c++-kde/po/sv.po #usr/share/doc/gettext/examples/hello-c++-kde/po/tr.po #usr/share/doc/gettext/examples/hello-c++-kde/po/uk.po #usr/share/doc/gettext/examples/hello-c++-kde/po/vi.po #usr/share/doc/gettext/examples/hello-c++-kde/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c++-kde/po/zh_TW.po #usr/share/doc/gettext/examples/hello-c++-qt #usr/share/doc/gettext/examples/hello-c++-qt/BUGS @@ -217,26 +245,86 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++-qt/po/LINGUAS #usr/share/doc/gettext/examples/hello-c++-qt/po/Makefile.am #usr/share/doc/gettext/examples/hello-c++-qt/po/af.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/ast.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/bg.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ca.po #usr/share/doc/gettext/examples/hello-c++-qt/po/de.po #usr/share/doc/gettext/examples/hello-c++-qt/po/el.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/eo.po #usr/share/doc/gettext/examples/hello-c++-qt/po/es.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/fi.po #usr/share/doc/gettext/examples/hello-c++-qt/po/fr.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ga.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/hu.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/id.po #usr/share/doc/gettext/examples/hello-c++-qt/po/it.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/ky.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/lv.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/ms.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/mt.po #usr/share/doc/gettext/examples/hello-c++-qt/po/nl.po #usr/share/doc/gettext/examples/hello-c++-qt/po/pl.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/pt.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ro.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ru.po #usr/share/doc/gettext/examples/hello-c++-qt/po/sk.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/sl.po #usr/share/doc/gettext/examples/hello-c++-qt/po/sr.po #usr/share/doc/gettext/examples/hello-c++-qt/po/sv.po #usr/share/doc/gettext/examples/hello-c++-qt/po/tr.po #usr/share/doc/gettext/examples/hello-c++-qt/po/uk.po #usr/share/doc/gettext/examples/hello-c++-qt/po/vi.po #usr/share/doc/gettext/examples/hello-c++-qt/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c++-qt/po/zh_TW.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/INSTALL +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/Makefile.am +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/autoclean.sh +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/autogen.sh +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/configure.ac +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/hello.cc +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4 +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4/Makefile.am +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4/wxwidgets.m4 +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/LINGUAS +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/Makefile.am +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/af.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ast.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/bg.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ca.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/de.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/el.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/eo.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/es.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/fi.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/fr.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ga.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/hu.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/id.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/it.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ky.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/lv.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ms.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/mt.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/nl.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/pl.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/pt.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ro.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ru.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sk.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sl.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sr.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sv.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/tr.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/uk.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/vi.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_HK.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_TW.po #usr/share/doc/gettext/examples/hello-c++/INSTALL #usr/share/doc/gettext/examples/hello-c++/Makefile.am #usr/share/doc/gettext/examples/hello-c++/autoclean.sh @@ -250,25 +338,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++/po/Makevars #usr/share/doc/gettext/examples/hello-c++/po/POTFILES.in #usr/share/doc/gettext/examples/hello-c++/po/af.po +#usr/share/doc/gettext/examples/hello-c++/po/ast.po +#usr/share/doc/gettext/examples/hello-c++/po/bg.po #usr/share/doc/gettext/examples/hello-c++/po/ca.po #usr/share/doc/gettext/examples/hello-c++/po/de.po #usr/share/doc/gettext/examples/hello-c++/po/el.po +#usr/share/doc/gettext/examples/hello-c++/po/eo.po #usr/share/doc/gettext/examples/hello-c++/po/es.po +#usr/share/doc/gettext/examples/hello-c++/po/fi.po #usr/share/doc/gettext/examples/hello-c++/po/fr.po #usr/share/doc/gettext/examples/hello-c++/po/ga.po +#usr/share/doc/gettext/examples/hello-c++/po/hu.po +#usr/share/doc/gettext/examples/hello-c++/po/id.po #usr/share/doc/gettext/examples/hello-c++/po/it.po #usr/share/doc/gettext/examples/hello-c++/po/ja.po +#usr/share/doc/gettext/examples/hello-c++/po/ky.po +#usr/share/doc/gettext/examples/hello-c++/po/lv.po +#usr/share/doc/gettext/examples/hello-c++/po/ms.po +#usr/share/doc/gettext/examples/hello-c++/po/mt.po #usr/share/doc/gettext/examples/hello-c++/po/nl.po #usr/share/doc/gettext/examples/hello-c++/po/pl.po +#usr/share/doc/gettext/examples/hello-c++/po/pt.po #usr/share/doc/gettext/examples/hello-c++/po/ro.po #usr/share/doc/gettext/examples/hello-c++/po/ru.po #usr/share/doc/gettext/examples/hello-c++/po/sk.po +#usr/share/doc/gettext/examples/hello-c++/po/sl.po #usr/share/doc/gettext/examples/hello-c++/po/sr.po #usr/share/doc/gettext/examples/hello-c++/po/sv.po #usr/share/doc/gettext/examples/hello-c++/po/tr.po #usr/share/doc/gettext/examples/hello-c++/po/uk.po #usr/share/doc/gettext/examples/hello-c++/po/vi.po #usr/share/doc/gettext/examples/hello-c++/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c++/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c++/po/zh_TW.po #usr/share/doc/gettext/examples/hello-c-gnome #usr/share/doc/gettext/examples/hello-c-gnome/INSTALL @@ -287,25 +388,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c-gnome/po/Makevars #usr/share/doc/gettext/examples/hello-c-gnome/po/POTFILES.in #usr/share/doc/gettext/examples/hello-c-gnome/po/af.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/ast.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/bg.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ca.po #usr/share/doc/gettext/examples/hello-c-gnome/po/de.po #usr/share/doc/gettext/examples/hello-c-gnome/po/el.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/eo.po #usr/share/doc/gettext/examples/hello-c-gnome/po/es.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/fi.po #usr/share/doc/gettext/examples/hello-c-gnome/po/fr.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ga.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/hu.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/id.po #usr/share/doc/gettext/examples/hello-c-gnome/po/it.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ja.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/ky.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/lv.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/ms.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/mt.po #usr/share/doc/gettext/examples/hello-c-gnome/po/nl.po #usr/share/doc/gettext/examples/hello-c-gnome/po/pl.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/pt.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ro.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ru.po #usr/share/doc/gettext/examples/hello-c-gnome/po/sk.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/sl.po #usr/share/doc/gettext/examples/hello-c-gnome/po/sr.po #usr/share/doc/gettext/examples/hello-c-gnome/po/sv.po #usr/share/doc/gettext/examples/hello-c-gnome/po/tr.po #usr/share/doc/gettext/examples/hello-c-gnome/po/uk.po #usr/share/doc/gettext/examples/hello-c-gnome/po/vi.po #usr/share/doc/gettext/examples/hello-c-gnome/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c-gnome/po/zh_TW.po #usr/share/doc/gettext/examples/hello-c/INSTALL #usr/share/doc/gettext/examples/hello-c/Makefile.am @@ -320,25 +434,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c/po/Makevars #usr/share/doc/gettext/examples/hello-c/po/POTFILES.in #usr/share/doc/gettext/examples/hello-c/po/af.po +#usr/share/doc/gettext/examples/hello-c/po/ast.po +#usr/share/doc/gettext/examples/hello-c/po/bg.po #usr/share/doc/gettext/examples/hello-c/po/ca.po #usr/share/doc/gettext/examples/hello-c/po/de.po #usr/share/doc/gettext/examples/hello-c/po/el.po +#usr/share/doc/gettext/examples/hello-c/po/eo.po #usr/share/doc/gettext/examples/hello-c/po/es.po +#usr/share/doc/gettext/examples/hello-c/po/fi.po #usr/share/doc/gettext/examples/hello-c/po/fr.po #usr/share/doc/gettext/examples/hello-c/po/ga.po +#usr/share/doc/gettext/examples/hello-c/po/hu.po +#usr/share/doc/gettext/examples/hello-c/po/id.po #usr/share/doc/gettext/examples/hello-c/po/it.po #usr/share/doc/gettext/examples/hello-c/po/ja.po +#usr/share/doc/gettext/examples/hello-c/po/ky.po +#usr/share/doc/gettext/examples/hello-c/po/lv.po +#usr/share/doc/gettext/examples/hello-c/po/ms.po +#usr/share/doc/gettext/examples/hello-c/po/mt.po #usr/share/doc/gettext/examples/hello-c/po/nl.po #usr/share/doc/gettext/examples/hello-c/po/pl.po +#usr/share/doc/gettext/examples/hello-c/po/pt.po #usr/share/doc/gettext/examples/hello-c/po/ro.po #usr/share/doc/gettext/examples/hello-c/po/ru.po #usr/share/doc/gettext/examples/hello-c/po/sk.po +#usr/share/doc/gettext/examples/hello-c/po/sl.po #usr/share/doc/gettext/examples/hello-c/po/sr.po #usr/share/doc/gettext/examples/hello-c/po/sv.po #usr/share/doc/gettext/examples/hello-c/po/tr.po #usr/share/doc/gettext/examples/hello-c/po/uk.po #usr/share/doc/gettext/examples/hello-c/po/vi.po #usr/share/doc/gettext/examples/hello-c/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c/po/zh_TW.po #usr/share/doc/gettext/examples/hello-clisp #usr/share/doc/gettext/examples/hello-clisp/INSTALL @@ -353,31 +480,45 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-clisp/po/LINGUAS #usr/share/doc/gettext/examples/hello-clisp/po/Makefile.am #usr/share/doc/gettext/examples/hello-clisp/po/af.po +#usr/share/doc/gettext/examples/hello-clisp/po/ast.po +#usr/share/doc/gettext/examples/hello-clisp/po/bg.po #usr/share/doc/gettext/examples/hello-clisp/po/ca.po #usr/share/doc/gettext/examples/hello-clisp/po/de.po #usr/share/doc/gettext/examples/hello-clisp/po/el.po +#usr/share/doc/gettext/examples/hello-clisp/po/eo.po #usr/share/doc/gettext/examples/hello-clisp/po/es.po +#usr/share/doc/gettext/examples/hello-clisp/po/fi.po #usr/share/doc/gettext/examples/hello-clisp/po/fr.po #usr/share/doc/gettext/examples/hello-clisp/po/ga.po +#usr/share/doc/gettext/examples/hello-clisp/po/hu.po +#usr/share/doc/gettext/examples/hello-clisp/po/id.po #usr/share/doc/gettext/examples/hello-clisp/po/it.po #usr/share/doc/gettext/examples/hello-clisp/po/ja.po +#usr/share/doc/gettext/examples/hello-clisp/po/ky.po +#usr/share/doc/gettext/examples/hello-clisp/po/lv.po +#usr/share/doc/gettext/examples/hello-clisp/po/ms.po +#usr/share/doc/gettext/examples/hello-clisp/po/mt.po #usr/share/doc/gettext/examples/hello-clisp/po/nl.po #usr/share/doc/gettext/examples/hello-clisp/po/pl.po +#usr/share/doc/gettext/examples/hello-clisp/po/pt.po #usr/share/doc/gettext/examples/hello-clisp/po/ro.po #usr/share/doc/gettext/examples/hello-clisp/po/ru.po #usr/share/doc/gettext/examples/hello-clisp/po/sk.po +#usr/share/doc/gettext/examples/hello-clisp/po/sl.po #usr/share/doc/gettext/examples/hello-clisp/po/sr.po #usr/share/doc/gettext/examples/hello-clisp/po/sv.po #usr/share/doc/gettext/examples/hello-clisp/po/tr.po #usr/share/doc/gettext/examples/hello-clisp/po/uk.po #usr/share/doc/gettext/examples/hello-clisp/po/vi.po #usr/share/doc/gettext/examples/hello-clisp/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-clisp/po/zh_HK.po #usr/share/doc/gettext/examples/hello-clisp/po/zh_TW.po #usr/share/doc/gettext/examples/hello-csharp #usr/share/doc/gettext/examples/hello-csharp-forms #usr/share/doc/gettext/examples/hello-csharp-forms/BUGS #usr/share/doc/gettext/examples/hello-csharp-forms/INSTALL #usr/share/doc/gettext/examples/hello-csharp-forms/Makefile.am +#usr/share/doc/gettext/examples/hello-csharp-forms/README #usr/share/doc/gettext/examples/hello-csharp-forms/autoclean.sh #usr/share/doc/gettext/examples/hello-csharp-forms/autogen.sh #usr/share/doc/gettext/examples/hello-csharp-forms/configure.ac @@ -388,25 +529,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-csharp-forms/po/LINGUAS #usr/share/doc/gettext/examples/hello-csharp-forms/po/Makefile.am #usr/share/doc/gettext/examples/hello-csharp-forms/po/af.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/ast.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/bg.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ca.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/de.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/el.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/eo.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/es.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/fi.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/fr.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ga.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/hu.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/id.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/it.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ja.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/ky.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/lv.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/ms.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/mt.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/nl.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/pl.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/pt.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ro.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ru.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/sk.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/sl.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/sr.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/sv.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/tr.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/uk.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/vi.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_HK.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_TW.po #usr/share/doc/gettext/examples/hello-csharp/INSTALL #usr/share/doc/gettext/examples/hello-csharp/Makefile.am @@ -420,25 +574,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-csharp/po/LINGUAS #usr/share/doc/gettext/examples/hello-csharp/po/Makefile.am #usr/share/doc/gettext/examples/hello-csharp/po/af.po +#usr/share/doc/gettext/examples/hello-csharp/po/ast.po +#usr/share/doc/gettext/examples/hello-csharp/po/bg.po #usr/share/doc/gettext/examples/hello-csharp/po/ca.po #usr/share/doc/gettext/examples/hello-csharp/po/de.po #usr/share/doc/gettext/examples/hello-csharp/po/el.po +#usr/share/doc/gettext/examples/hello-csharp/po/eo.po #usr/share/doc/gettext/examples/hello-csharp/po/es.po +#usr/share/doc/gettext/examples/hello-csharp/po/fi.po #usr/share/doc/gettext/examples/hello-csharp/po/fr.po #usr/share/doc/gettext/examples/hello-csharp/po/ga.po +#usr/share/doc/gettext/examples/hello-csharp/po/hu.po +#usr/share/doc/gettext/examples/hello-csharp/po/id.po #usr/share/doc/gettext/examples/hello-csharp/po/it.po #usr/share/doc/gettext/examples/hello-csharp/po/ja.po +#usr/share/doc/gettext/examples/hello-csharp/po/ky.po +#usr/share/doc/gettext/examples/hello-csharp/po/lv.po +#usr/share/doc/gettext/examples/hello-csharp/po/ms.po +#usr/share/doc/gettext/examples/hello-csharp/po/mt.po #usr/share/doc/gettext/examples/hello-csharp/po/nl.po #usr/share/doc/gettext/examples/hello-csharp/po/pl.po +#usr/share/doc/gettext/examples/hello-csharp/po/pt.po #usr/share/doc/gettext/examples/hello-csharp/po/ro.po #usr/share/doc/gettext/examples/hello-csharp/po/ru.po #usr/share/doc/gettext/examples/hello-csharp/po/sk.po +#usr/share/doc/gettext/examples/hello-csharp/po/sl.po #usr/share/doc/gettext/examples/hello-csharp/po/sr.po #usr/share/doc/gettext/examples/hello-csharp/po/sv.po #usr/share/doc/gettext/examples/hello-csharp/po/tr.po #usr/share/doc/gettext/examples/hello-csharp/po/uk.po #usr/share/doc/gettext/examples/hello-csharp/po/vi.po #usr/share/doc/gettext/examples/hello-csharp/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-csharp/po/zh_HK.po #usr/share/doc/gettext/examples/hello-csharp/po/zh_TW.po #usr/share/doc/gettext/examples/hello-gawk #usr/share/doc/gettext/examples/hello-gawk/INSTALL @@ -453,25 +620,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-gawk/po/LINGUAS #usr/share/doc/gettext/examples/hello-gawk/po/Makefile.am #usr/share/doc/gettext/examples/hello-gawk/po/af.po +#usr/share/doc/gettext/examples/hello-gawk/po/ast.po +#usr/share/doc/gettext/examples/hello-gawk/po/bg.po #usr/share/doc/gettext/examples/hello-gawk/po/ca.po #usr/share/doc/gettext/examples/hello-gawk/po/de.po #usr/share/doc/gettext/examples/hello-gawk/po/el.po +#usr/share/doc/gettext/examples/hello-gawk/po/eo.po #usr/share/doc/gettext/examples/hello-gawk/po/es.po +#usr/share/doc/gettext/examples/hello-gawk/po/fi.po #usr/share/doc/gettext/examples/hello-gawk/po/fr.po #usr/share/doc/gettext/examples/hello-gawk/po/ga.po +#usr/share/doc/gettext/examples/hello-gawk/po/hu.po +#usr/share/doc/gettext/examples/hello-gawk/po/id.po #usr/share/doc/gettext/examples/hello-gawk/po/it.po #usr/share/doc/gettext/examples/hello-gawk/po/ja.po +#usr/share/doc/gettext/examples/hello-gawk/po/ky.po +#usr/share/doc/gettext/examples/hello-gawk/po/lv.po +#usr/share/doc/gettext/examples/hello-gawk/po/ms.po +#usr/share/doc/gettext/examples/hello-gawk/po/mt.po #usr/share/doc/gettext/examples/hello-gawk/po/nl.po #usr/share/doc/gettext/examples/hello-gawk/po/pl.po +#usr/share/doc/gettext/examples/hello-gawk/po/pt.po #usr/share/doc/gettext/examples/hello-gawk/po/ro.po #usr/share/doc/gettext/examples/hello-gawk/po/ru.po #usr/share/doc/gettext/examples/hello-gawk/po/sk.po +#usr/share/doc/gettext/examples/hello-gawk/po/sl.po #usr/share/doc/gettext/examples/hello-gawk/po/sr.po #usr/share/doc/gettext/examples/hello-gawk/po/sv.po #usr/share/doc/gettext/examples/hello-gawk/po/tr.po #usr/share/doc/gettext/examples/hello-gawk/po/uk.po #usr/share/doc/gettext/examples/hello-gawk/po/vi.po #usr/share/doc/gettext/examples/hello-gawk/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-gawk/po/zh_HK.po #usr/share/doc/gettext/examples/hello-gawk/po/zh_TW.po #usr/share/doc/gettext/examples/hello-guile #usr/share/doc/gettext/examples/hello-guile/INSTALL @@ -486,25 +666,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-guile/po/LINGUAS #usr/share/doc/gettext/examples/hello-guile/po/Makefile.am #usr/share/doc/gettext/examples/hello-guile/po/af.po +#usr/share/doc/gettext/examples/hello-guile/po/ast.po +#usr/share/doc/gettext/examples/hello-guile/po/bg.po #usr/share/doc/gettext/examples/hello-guile/po/ca.po #usr/share/doc/gettext/examples/hello-guile/po/de.po #usr/share/doc/gettext/examples/hello-guile/po/el.po +#usr/share/doc/gettext/examples/hello-guile/po/eo.po #usr/share/doc/gettext/examples/hello-guile/po/es.po +#usr/share/doc/gettext/examples/hello-guile/po/fi.po #usr/share/doc/gettext/examples/hello-guile/po/fr.po #usr/share/doc/gettext/examples/hello-guile/po/ga.po +#usr/share/doc/gettext/examples/hello-guile/po/hu.po +#usr/share/doc/gettext/examples/hello-guile/po/id.po #usr/share/doc/gettext/examples/hello-guile/po/it.po #usr/share/doc/gettext/examples/hello-guile/po/ja.po +#usr/share/doc/gettext/examples/hello-guile/po/ky.po +#usr/share/doc/gettext/examples/hello-guile/po/lv.po +#usr/share/doc/gettext/examples/hello-guile/po/ms.po +#usr/share/doc/gettext/examples/hello-guile/po/mt.po #usr/share/doc/gettext/examples/hello-guile/po/nl.po #usr/share/doc/gettext/examples/hello-guile/po/pl.po +#usr/share/doc/gettext/examples/hello-guile/po/pt.po #usr/share/doc/gettext/examples/hello-guile/po/ro.po #usr/share/doc/gettext/examples/hello-guile/po/ru.po #usr/share/doc/gettext/examples/hello-guile/po/sk.po +#usr/share/doc/gettext/examples/hello-guile/po/sl.po #usr/share/doc/gettext/examples/hello-guile/po/sr.po #usr/share/doc/gettext/examples/hello-guile/po/sv.po #usr/share/doc/gettext/examples/hello-guile/po/tr.po #usr/share/doc/gettext/examples/hello-guile/po/uk.po #usr/share/doc/gettext/examples/hello-guile/po/vi.po #usr/share/doc/gettext/examples/hello-guile/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-guile/po/zh_HK.po #usr/share/doc/gettext/examples/hello-guile/po/zh_TW.po #usr/share/doc/gettext/examples/hello-java #usr/share/doc/gettext/examples/hello-java-awt @@ -523,26 +716,88 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-java-awt/po/LINGUAS #usr/share/doc/gettext/examples/hello-java-awt/po/Makefile.am #usr/share/doc/gettext/examples/hello-java-awt/po/af.po +#usr/share/doc/gettext/examples/hello-java-awt/po/ast.po +#usr/share/doc/gettext/examples/hello-java-awt/po/bg.po #usr/share/doc/gettext/examples/hello-java-awt/po/ca.po #usr/share/doc/gettext/examples/hello-java-awt/po/de.po #usr/share/doc/gettext/examples/hello-java-awt/po/el.po +#usr/share/doc/gettext/examples/hello-java-awt/po/eo.po #usr/share/doc/gettext/examples/hello-java-awt/po/es.po +#usr/share/doc/gettext/examples/hello-java-awt/po/fi.po #usr/share/doc/gettext/examples/hello-java-awt/po/fr.po #usr/share/doc/gettext/examples/hello-java-awt/po/ga.po +#usr/share/doc/gettext/examples/hello-java-awt/po/hu.po +#usr/share/doc/gettext/examples/hello-java-awt/po/id.po #usr/share/doc/gettext/examples/hello-java-awt/po/it.po #usr/share/doc/gettext/examples/hello-java-awt/po/ja.po +#usr/share/doc/gettext/examples/hello-java-awt/po/ky.po +#usr/share/doc/gettext/examples/hello-java-awt/po/lv.po +#usr/share/doc/gettext/examples/hello-java-awt/po/ms.po +#usr/share/doc/gettext/examples/hello-java-awt/po/mt.po #usr/share/doc/gettext/examples/hello-java-awt/po/nl.po #usr/share/doc/gettext/examples/hello-java-awt/po/pl.po +#usr/share/doc/gettext/examples/hello-java-awt/po/pt.po #usr/share/doc/gettext/examples/hello-java-awt/po/ro.po #usr/share/doc/gettext/examples/hello-java-awt/po/ru.po #usr/share/doc/gettext/examples/hello-java-awt/po/sk.po +#usr/share/doc/gettext/examples/hello-java-awt/po/sl.po #usr/share/doc/gettext/examples/hello-java-awt/po/sr.po #usr/share/doc/gettext/examples/hello-java-awt/po/sv.po #usr/share/doc/gettext/examples/hello-java-awt/po/tr.po #usr/share/doc/gettext/examples/hello-java-awt/po/uk.po #usr/share/doc/gettext/examples/hello-java-awt/po/vi.po #usr/share/doc/gettext/examples/hello-java-awt/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-java-awt/po/zh_HK.po #usr/share/doc/gettext/examples/hello-java-awt/po/zh_TW.po +#usr/share/doc/gettext/examples/hello-java-qtjambi +#usr/share/doc/gettext/examples/hello-java-qtjambi/BUGS +#usr/share/doc/gettext/examples/hello-java-qtjambi/Hello.java +#usr/share/doc/gettext/examples/hello-java-qtjambi/INSTALL +#usr/share/doc/gettext/examples/hello-java-qtjambi/Makefile.am +#usr/share/doc/gettext/examples/hello-java-qtjambi/autoclean.sh +#usr/share/doc/gettext/examples/hello-java-qtjambi/autogen.sh +#usr/share/doc/gettext/examples/hello-java-qtjambi/configure.ac +#usr/share/doc/gettext/examples/hello-java-qtjambi/m4 +#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Makefile.am +#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.class +#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.java +#usr/share/doc/gettext/examples/hello-java-qtjambi/po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/LINGUAS +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/Makefile.am +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/af.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ast.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/bg.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ca.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/de.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/el.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/eo.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/es.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/fi.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/fr.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ga.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/hu.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/id.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/it.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ja.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ky.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/lv.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ms.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/mt.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/nl.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/pl.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/pt.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ro.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ru.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sk.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sl.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sr.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sv.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/tr.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/uk.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/vi.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_HK.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_TW.po #usr/share/doc/gettext/examples/hello-java-swing #usr/share/doc/gettext/examples/hello-java-swing/BUGS #usr/share/doc/gettext/examples/hello-java-swing/Hello.java @@ -559,25 +814,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-java-swing/po/LINGUAS #usr/share/doc/gettext/examples/hello-java-swing/po/Makefile.am #usr/share/doc/gettext/examples/hello-java-swing/po/af.po +#usr/share/doc/gettext/examples/hello-java-swing/po/ast.po +#usr/share/doc/gettext/examples/hello-java-swing/po/bg.po #usr/share/doc/gettext/examples/hello-java-swing/po/ca.po #usr/share/doc/gettext/examples/hello-java-swing/po/de.po #usr/share/doc/gettext/examples/hello-java-swing/po/el.po +#usr/share/doc/gettext/examples/hello-java-swing/po/eo.po #usr/share/doc/gettext/examples/hello-java-swing/po/es.po +#usr/share/doc/gettext/examples/hello-java-swing/po/fi.po #usr/share/doc/gettext/examples/hello-java-swing/po/fr.po #usr/share/doc/gettext/examples/hello-java-swing/po/ga.po +#usr/share/doc/gettext/examples/hello-java-swing/po/hu.po +#usr/share/doc/gettext/examples/hello-java-swing/po/id.po #usr/share/doc/gettext/examples/hello-java-swing/po/it.po #usr/share/doc/gettext/examples/hello-java-swing/po/ja.po +#usr/share/doc/gettext/examples/hello-java-swing/po/ky.po +#usr/share/doc/gettext/examples/hello-java-swing/po/lv.po +#usr/share/doc/gettext/examples/hello-java-swing/po/ms.po +#usr/share/doc/gettext/examples/hello-java-swing/po/mt.po #usr/share/doc/gettext/examples/hello-java-swing/po/nl.po #usr/share/doc/gettext/examples/hello-java-swing/po/pl.po +#usr/share/doc/gettext/examples/hello-java-swing/po/pt.po #usr/share/doc/gettext/examples/hello-java-swing/po/ro.po #usr/share/doc/gettext/examples/hello-java-swing/po/ru.po #usr/share/doc/gettext/examples/hello-java-swing/po/sk.po +#usr/share/doc/gettext/examples/hello-java-swing/po/sl.po #usr/share/doc/gettext/examples/hello-java-swing/po/sr.po #usr/share/doc/gettext/examples/hello-java-swing/po/sv.po #usr/share/doc/gettext/examples/hello-java-swing/po/tr.po #usr/share/doc/gettext/examples/hello-java-swing/po/uk.po #usr/share/doc/gettext/examples/hello-java-swing/po/vi.po #usr/share/doc/gettext/examples/hello-java-swing/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-java-swing/po/zh_HK.po #usr/share/doc/gettext/examples/hello-java-swing/po/zh_TW.po #usr/share/doc/gettext/examples/hello-java/Hello.java #usr/share/doc/gettext/examples/hello-java/INSTALL @@ -591,25 +859,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-java/po/LINGUAS #usr/share/doc/gettext/examples/hello-java/po/Makefile.am #usr/share/doc/gettext/examples/hello-java/po/af.po +#usr/share/doc/gettext/examples/hello-java/po/ast.po +#usr/share/doc/gettext/examples/hello-java/po/bg.po #usr/share/doc/gettext/examples/hello-java/po/ca.po #usr/share/doc/gettext/examples/hello-java/po/de.po #usr/share/doc/gettext/examples/hello-java/po/el.po +#usr/share/doc/gettext/examples/hello-java/po/eo.po #usr/share/doc/gettext/examples/hello-java/po/es.po +#usr/share/doc/gettext/examples/hello-java/po/fi.po #usr/share/doc/gettext/examples/hello-java/po/fr.po #usr/share/doc/gettext/examples/hello-java/po/ga.po +#usr/share/doc/gettext/examples/hello-java/po/hu.po +#usr/share/doc/gettext/examples/hello-java/po/id.po #usr/share/doc/gettext/examples/hello-java/po/it.po #usr/share/doc/gettext/examples/hello-java/po/ja.po +#usr/share/doc/gettext/examples/hello-java/po/ky.po +#usr/share/doc/gettext/examples/hello-java/po/lv.po +#usr/share/doc/gettext/examples/hello-java/po/ms.po +#usr/share/doc/gettext/examples/hello-java/po/mt.po #usr/share/doc/gettext/examples/hello-java/po/nl.po #usr/share/doc/gettext/examples/hello-java/po/pl.po +#usr/share/doc/gettext/examples/hello-java/po/pt.po #usr/share/doc/gettext/examples/hello-java/po/ro.po #usr/share/doc/gettext/examples/hello-java/po/ru.po #usr/share/doc/gettext/examples/hello-java/po/sk.po +#usr/share/doc/gettext/examples/hello-java/po/sl.po #usr/share/doc/gettext/examples/hello-java/po/sr.po #usr/share/doc/gettext/examples/hello-java/po/sv.po #usr/share/doc/gettext/examples/hello-java/po/tr.po #usr/share/doc/gettext/examples/hello-java/po/uk.po #usr/share/doc/gettext/examples/hello-java/po/vi.po #usr/share/doc/gettext/examples/hello-java/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-java/po/zh_HK.po #usr/share/doc/gettext/examples/hello-java/po/zh_TW.po #usr/share/doc/gettext/examples/hello-librep #usr/share/doc/gettext/examples/hello-librep/INSTALL @@ -624,25 +905,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-librep/po/LINGUAS #usr/share/doc/gettext/examples/hello-librep/po/Makefile.am #usr/share/doc/gettext/examples/hello-librep/po/af.po +#usr/share/doc/gettext/examples/hello-librep/po/ast.po +#usr/share/doc/gettext/examples/hello-librep/po/bg.po #usr/share/doc/gettext/examples/hello-librep/po/ca.po #usr/share/doc/gettext/examples/hello-librep/po/de.po #usr/share/doc/gettext/examples/hello-librep/po/el.po +#usr/share/doc/gettext/examples/hello-librep/po/eo.po #usr/share/doc/gettext/examples/hello-librep/po/es.po +#usr/share/doc/gettext/examples/hello-librep/po/fi.po #usr/share/doc/gettext/examples/hello-librep/po/fr.po #usr/share/doc/gettext/examples/hello-librep/po/ga.po +#usr/share/doc/gettext/examples/hello-librep/po/hu.po +#usr/share/doc/gettext/examples/hello-librep/po/id.po #usr/share/doc/gettext/examples/hello-librep/po/it.po #usr/share/doc/gettext/examples/hello-librep/po/ja.po +#usr/share/doc/gettext/examples/hello-librep/po/ky.po +#usr/share/doc/gettext/examples/hello-librep/po/lv.po +#usr/share/doc/gettext/examples/hello-librep/po/ms.po +#usr/share/doc/gettext/examples/hello-librep/po/mt.po #usr/share/doc/gettext/examples/hello-librep/po/nl.po #usr/share/doc/gettext/examples/hello-librep/po/pl.po +#usr/share/doc/gettext/examples/hello-librep/po/pt.po #usr/share/doc/gettext/examples/hello-librep/po/ro.po #usr/share/doc/gettext/examples/hello-librep/po/ru.po #usr/share/doc/gettext/examples/hello-librep/po/sk.po +#usr/share/doc/gettext/examples/hello-librep/po/sl.po #usr/share/doc/gettext/examples/hello-librep/po/sr.po #usr/share/doc/gettext/examples/hello-librep/po/sv.po #usr/share/doc/gettext/examples/hello-librep/po/tr.po #usr/share/doc/gettext/examples/hello-librep/po/uk.po #usr/share/doc/gettext/examples/hello-librep/po/vi.po #usr/share/doc/gettext/examples/hello-librep/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-librep/po/zh_HK.po #usr/share/doc/gettext/examples/hello-librep/po/zh_TW.po #usr/share/doc/gettext/examples/hello-objc #usr/share/doc/gettext/examples/hello-objc-gnome @@ -662,25 +956,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-objc-gnome/po/Makevars #usr/share/doc/gettext/examples/hello-objc-gnome/po/POTFILES.in #usr/share/doc/gettext/examples/hello-objc-gnome/po/af.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/ast.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/bg.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ca.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/de.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/el.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/eo.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/es.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/fi.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/fr.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ga.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/hu.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/id.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/it.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ja.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/ky.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/lv.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/ms.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/mt.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/nl.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/pl.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/pt.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ro.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ru.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/sk.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/sl.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/sr.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/sv.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/tr.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/uk.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/vi.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_HK.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_TW.po #usr/share/doc/gettext/examples/hello-objc-gnustep #usr/share/doc/gettext/examples/hello-objc-gnustep/AppController.h @@ -698,25 +1005,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-objc-gnustep/po/LINGUAS #usr/share/doc/gettext/examples/hello-objc-gnustep/po/LocaleAliases #usr/share/doc/gettext/examples/hello-objc-gnustep/po/af.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ast.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/bg.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ca.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/de.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/el.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/eo.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/es.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/fi.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/fr.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ga.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/hu.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/id.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/it.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ja.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ky.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/lv.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ms.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/mt.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/nl.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/pl.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/pt.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ro.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ru.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sk.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/sl.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sr.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sv.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/tr.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/uk.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/vi.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_HK.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_TW.po #usr/share/doc/gettext/examples/hello-objc/INSTALL #usr/share/doc/gettext/examples/hello-objc/Makefile.am @@ -731,25 +1051,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-objc/po/Makevars #usr/share/doc/gettext/examples/hello-objc/po/POTFILES.in #usr/share/doc/gettext/examples/hello-objc/po/af.po +#usr/share/doc/gettext/examples/hello-objc/po/ast.po +#usr/share/doc/gettext/examples/hello-objc/po/bg.po #usr/share/doc/gettext/examples/hello-objc/po/ca.po #usr/share/doc/gettext/examples/hello-objc/po/de.po #usr/share/doc/gettext/examples/hello-objc/po/el.po +#usr/share/doc/gettext/examples/hello-objc/po/eo.po #usr/share/doc/gettext/examples/hello-objc/po/es.po +#usr/share/doc/gettext/examples/hello-objc/po/fi.po #usr/share/doc/gettext/examples/hello-objc/po/fr.po #usr/share/doc/gettext/examples/hello-objc/po/ga.po +#usr/share/doc/gettext/examples/hello-objc/po/hu.po +#usr/share/doc/gettext/examples/hello-objc/po/id.po #usr/share/doc/gettext/examples/hello-objc/po/it.po #usr/share/doc/gettext/examples/hello-objc/po/ja.po +#usr/share/doc/gettext/examples/hello-objc/po/ky.po +#usr/share/doc/gettext/examples/hello-objc/po/lv.po +#usr/share/doc/gettext/examples/hello-objc/po/ms.po +#usr/share/doc/gettext/examples/hello-objc/po/mt.po #usr/share/doc/gettext/examples/hello-objc/po/nl.po #usr/share/doc/gettext/examples/hello-objc/po/pl.po +#usr/share/doc/gettext/examples/hello-objc/po/pt.po #usr/share/doc/gettext/examples/hello-objc/po/ro.po #usr/share/doc/gettext/examples/hello-objc/po/ru.po #usr/share/doc/gettext/examples/hello-objc/po/sk.po +#usr/share/doc/gettext/examples/hello-objc/po/sl.po #usr/share/doc/gettext/examples/hello-objc/po/sr.po #usr/share/doc/gettext/examples/hello-objc/po/sv.po #usr/share/doc/gettext/examples/hello-objc/po/tr.po #usr/share/doc/gettext/examples/hello-objc/po/uk.po #usr/share/doc/gettext/examples/hello-objc/po/vi.po #usr/share/doc/gettext/examples/hello-objc/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-objc/po/zh_HK.po #usr/share/doc/gettext/examples/hello-objc/po/zh_TW.po #usr/share/doc/gettext/examples/hello-pascal #usr/share/doc/gettext/examples/hello-pascal/INSTALL @@ -765,25 +1098,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-pascal/po/LINGUAS #usr/share/doc/gettext/examples/hello-pascal/po/Makefile.am #usr/share/doc/gettext/examples/hello-pascal/po/af.po +#usr/share/doc/gettext/examples/hello-pascal/po/ast.po +#usr/share/doc/gettext/examples/hello-pascal/po/bg.po #usr/share/doc/gettext/examples/hello-pascal/po/ca.po #usr/share/doc/gettext/examples/hello-pascal/po/de.po #usr/share/doc/gettext/examples/hello-pascal/po/el.po +#usr/share/doc/gettext/examples/hello-pascal/po/eo.po #usr/share/doc/gettext/examples/hello-pascal/po/es.po +#usr/share/doc/gettext/examples/hello-pascal/po/fi.po #usr/share/doc/gettext/examples/hello-pascal/po/fr.po #usr/share/doc/gettext/examples/hello-pascal/po/ga.po +#usr/share/doc/gettext/examples/hello-pascal/po/hu.po +#usr/share/doc/gettext/examples/hello-pascal/po/id.po #usr/share/doc/gettext/examples/hello-pascal/po/it.po #usr/share/doc/gettext/examples/hello-pascal/po/ja.po +#usr/share/doc/gettext/examples/hello-pascal/po/ky.po +#usr/share/doc/gettext/examples/hello-pascal/po/lv.po +#usr/share/doc/gettext/examples/hello-pascal/po/ms.po +#usr/share/doc/gettext/examples/hello-pascal/po/mt.po #usr/share/doc/gettext/examples/hello-pascal/po/nl.po #usr/share/doc/gettext/examples/hello-pascal/po/pl.po +#usr/share/doc/gettext/examples/hello-pascal/po/pt.po #usr/share/doc/gettext/examples/hello-pascal/po/ro.po #usr/share/doc/gettext/examples/hello-pascal/po/ru.po #usr/share/doc/gettext/examples/hello-pascal/po/sk.po +#usr/share/doc/gettext/examples/hello-pascal/po/sl.po #usr/share/doc/gettext/examples/hello-pascal/po/sr.po #usr/share/doc/gettext/examples/hello-pascal/po/sv.po #usr/share/doc/gettext/examples/hello-pascal/po/tr.po #usr/share/doc/gettext/examples/hello-pascal/po/uk.po #usr/share/doc/gettext/examples/hello-pascal/po/vi.po #usr/share/doc/gettext/examples/hello-pascal/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-pascal/po/zh_HK.po #usr/share/doc/gettext/examples/hello-pascal/po/zh_TW.po #usr/share/doc/gettext/examples/hello-perl #usr/share/doc/gettext/examples/hello-perl/INSTALL @@ -799,25 +1145,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-perl/po/LINGUAS #usr/share/doc/gettext/examples/hello-perl/po/Makefile.am #usr/share/doc/gettext/examples/hello-perl/po/af.po +#usr/share/doc/gettext/examples/hello-perl/po/ast.po +#usr/share/doc/gettext/examples/hello-perl/po/bg.po #usr/share/doc/gettext/examples/hello-perl/po/ca.po #usr/share/doc/gettext/examples/hello-perl/po/de.po #usr/share/doc/gettext/examples/hello-perl/po/el.po +#usr/share/doc/gettext/examples/hello-perl/po/eo.po #usr/share/doc/gettext/examples/hello-perl/po/es.po +#usr/share/doc/gettext/examples/hello-perl/po/fi.po #usr/share/doc/gettext/examples/hello-perl/po/fr.po #usr/share/doc/gettext/examples/hello-perl/po/ga.po +#usr/share/doc/gettext/examples/hello-perl/po/hu.po +#usr/share/doc/gettext/examples/hello-perl/po/id.po #usr/share/doc/gettext/examples/hello-perl/po/it.po #usr/share/doc/gettext/examples/hello-perl/po/ja.po +#usr/share/doc/gettext/examples/hello-perl/po/ky.po +#usr/share/doc/gettext/examples/hello-perl/po/lv.po +#usr/share/doc/gettext/examples/hello-perl/po/ms.po +#usr/share/doc/gettext/examples/hello-perl/po/mt.po #usr/share/doc/gettext/examples/hello-perl/po/nl.po #usr/share/doc/gettext/examples/hello-perl/po/pl.po +#usr/share/doc/gettext/examples/hello-perl/po/pt.po #usr/share/doc/gettext/examples/hello-perl/po/ro.po #usr/share/doc/gettext/examples/hello-perl/po/ru.po #usr/share/doc/gettext/examples/hello-perl/po/sk.po +#usr/share/doc/gettext/examples/hello-perl/po/sl.po #usr/share/doc/gettext/examples/hello-perl/po/sr.po #usr/share/doc/gettext/examples/hello-perl/po/sv.po #usr/share/doc/gettext/examples/hello-perl/po/tr.po #usr/share/doc/gettext/examples/hello-perl/po/uk.po #usr/share/doc/gettext/examples/hello-perl/po/vi.po #usr/share/doc/gettext/examples/hello-perl/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-perl/po/zh_HK.po #usr/share/doc/gettext/examples/hello-perl/po/zh_TW.po #usr/share/doc/gettext/examples/hello-php #usr/share/doc/gettext/examples/hello-php/INSTALL @@ -833,25 +1192,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-php/po/LINGUAS #usr/share/doc/gettext/examples/hello-php/po/Makefile.am #usr/share/doc/gettext/examples/hello-php/po/af.po +#usr/share/doc/gettext/examples/hello-php/po/ast.po +#usr/share/doc/gettext/examples/hello-php/po/bg.po #usr/share/doc/gettext/examples/hello-php/po/ca.po #usr/share/doc/gettext/examples/hello-php/po/de.po #usr/share/doc/gettext/examples/hello-php/po/el.po +#usr/share/doc/gettext/examples/hello-php/po/eo.po #usr/share/doc/gettext/examples/hello-php/po/es.po +#usr/share/doc/gettext/examples/hello-php/po/fi.po #usr/share/doc/gettext/examples/hello-php/po/fr.po #usr/share/doc/gettext/examples/hello-php/po/ga.po +#usr/share/doc/gettext/examples/hello-php/po/hu.po +#usr/share/doc/gettext/examples/hello-php/po/id.po #usr/share/doc/gettext/examples/hello-php/po/it.po #usr/share/doc/gettext/examples/hello-php/po/ja.po +#usr/share/doc/gettext/examples/hello-php/po/ky.po +#usr/share/doc/gettext/examples/hello-php/po/lv.po +#usr/share/doc/gettext/examples/hello-php/po/ms.po +#usr/share/doc/gettext/examples/hello-php/po/mt.po #usr/share/doc/gettext/examples/hello-php/po/nl.po #usr/share/doc/gettext/examples/hello-php/po/pl.po +#usr/share/doc/gettext/examples/hello-php/po/pt.po #usr/share/doc/gettext/examples/hello-php/po/ro.po #usr/share/doc/gettext/examples/hello-php/po/ru.po #usr/share/doc/gettext/examples/hello-php/po/sk.po +#usr/share/doc/gettext/examples/hello-php/po/sl.po #usr/share/doc/gettext/examples/hello-php/po/sr.po #usr/share/doc/gettext/examples/hello-php/po/sv.po #usr/share/doc/gettext/examples/hello-php/po/tr.po #usr/share/doc/gettext/examples/hello-php/po/uk.po #usr/share/doc/gettext/examples/hello-php/po/vi.po #usr/share/doc/gettext/examples/hello-php/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-php/po/zh_HK.po #usr/share/doc/gettext/examples/hello-php/po/zh_TW.po #usr/share/doc/gettext/examples/hello-python #usr/share/doc/gettext/examples/hello-python/INSTALL @@ -866,25 +1238,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-python/po/LINGUAS #usr/share/doc/gettext/examples/hello-python/po/Makefile.am #usr/share/doc/gettext/examples/hello-python/po/af.po +#usr/share/doc/gettext/examples/hello-python/po/ast.po +#usr/share/doc/gettext/examples/hello-python/po/bg.po #usr/share/doc/gettext/examples/hello-python/po/ca.po #usr/share/doc/gettext/examples/hello-python/po/de.po #usr/share/doc/gettext/examples/hello-python/po/el.po +#usr/share/doc/gettext/examples/hello-python/po/eo.po #usr/share/doc/gettext/examples/hello-python/po/es.po +#usr/share/doc/gettext/examples/hello-python/po/fi.po #usr/share/doc/gettext/examples/hello-python/po/fr.po #usr/share/doc/gettext/examples/hello-python/po/ga.po +#usr/share/doc/gettext/examples/hello-python/po/hu.po +#usr/share/doc/gettext/examples/hello-python/po/id.po #usr/share/doc/gettext/examples/hello-python/po/it.po #usr/share/doc/gettext/examples/hello-python/po/ja.po +#usr/share/doc/gettext/examples/hello-python/po/ky.po +#usr/share/doc/gettext/examples/hello-python/po/lv.po +#usr/share/doc/gettext/examples/hello-python/po/ms.po +#usr/share/doc/gettext/examples/hello-python/po/mt.po #usr/share/doc/gettext/examples/hello-python/po/nl.po #usr/share/doc/gettext/examples/hello-python/po/pl.po +#usr/share/doc/gettext/examples/hello-python/po/pt.po #usr/share/doc/gettext/examples/hello-python/po/ro.po #usr/share/doc/gettext/examples/hello-python/po/ru.po #usr/share/doc/gettext/examples/hello-python/po/sk.po +#usr/share/doc/gettext/examples/hello-python/po/sl.po #usr/share/doc/gettext/examples/hello-python/po/sr.po #usr/share/doc/gettext/examples/hello-python/po/sv.po #usr/share/doc/gettext/examples/hello-python/po/tr.po #usr/share/doc/gettext/examples/hello-python/po/uk.po #usr/share/doc/gettext/examples/hello-python/po/vi.po #usr/share/doc/gettext/examples/hello-python/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-python/po/zh_HK.po #usr/share/doc/gettext/examples/hello-python/po/zh_TW.po #usr/share/doc/gettext/examples/hello-sh #usr/share/doc/gettext/examples/hello-sh/INSTALL @@ -899,25 +1284,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-sh/po/LINGUAS #usr/share/doc/gettext/examples/hello-sh/po/Makefile.am #usr/share/doc/gettext/examples/hello-sh/po/af.po +#usr/share/doc/gettext/examples/hello-sh/po/ast.po +#usr/share/doc/gettext/examples/hello-sh/po/bg.po #usr/share/doc/gettext/examples/hello-sh/po/ca.po #usr/share/doc/gettext/examples/hello-sh/po/de.po #usr/share/doc/gettext/examples/hello-sh/po/el.po +#usr/share/doc/gettext/examples/hello-sh/po/eo.po #usr/share/doc/gettext/examples/hello-sh/po/es.po +#usr/share/doc/gettext/examples/hello-sh/po/fi.po #usr/share/doc/gettext/examples/hello-sh/po/fr.po #usr/share/doc/gettext/examples/hello-sh/po/ga.po +#usr/share/doc/gettext/examples/hello-sh/po/hu.po +#usr/share/doc/gettext/examples/hello-sh/po/id.po #usr/share/doc/gettext/examples/hello-sh/po/it.po #usr/share/doc/gettext/examples/hello-sh/po/ja.po +#usr/share/doc/gettext/examples/hello-sh/po/ky.po +#usr/share/doc/gettext/examples/hello-sh/po/lv.po +#usr/share/doc/gettext/examples/hello-sh/po/ms.po +#usr/share/doc/gettext/examples/hello-sh/po/mt.po #usr/share/doc/gettext/examples/hello-sh/po/nl.po #usr/share/doc/gettext/examples/hello-sh/po/pl.po +#usr/share/doc/gettext/examples/hello-sh/po/pt.po #usr/share/doc/gettext/examples/hello-sh/po/ro.po #usr/share/doc/gettext/examples/hello-sh/po/ru.po #usr/share/doc/gettext/examples/hello-sh/po/sk.po +#usr/share/doc/gettext/examples/hello-sh/po/sl.po #usr/share/doc/gettext/examples/hello-sh/po/sr.po #usr/share/doc/gettext/examples/hello-sh/po/sv.po #usr/share/doc/gettext/examples/hello-sh/po/tr.po #usr/share/doc/gettext/examples/hello-sh/po/uk.po #usr/share/doc/gettext/examples/hello-sh/po/vi.po #usr/share/doc/gettext/examples/hello-sh/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-sh/po/zh_HK.po #usr/share/doc/gettext/examples/hello-sh/po/zh_TW.po #usr/share/doc/gettext/examples/hello-smalltalk #usr/share/doc/gettext/examples/hello-smalltalk/INSTALL @@ -932,25 +1330,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-smalltalk/po/LINGUAS #usr/share/doc/gettext/examples/hello-smalltalk/po/Makefile.am #usr/share/doc/gettext/examples/hello-smalltalk/po/af.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/ast.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/bg.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ca.po #usr/share/doc/gettext/examples/hello-smalltalk/po/de.po #usr/share/doc/gettext/examples/hello-smalltalk/po/el.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/eo.po #usr/share/doc/gettext/examples/hello-smalltalk/po/es.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/fi.po #usr/share/doc/gettext/examples/hello-smalltalk/po/fr.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ga.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/hu.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/id.po #usr/share/doc/gettext/examples/hello-smalltalk/po/it.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ja.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/ky.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/lv.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/ms.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/mt.po #usr/share/doc/gettext/examples/hello-smalltalk/po/nl.po #usr/share/doc/gettext/examples/hello-smalltalk/po/pl.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/pt.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ro.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ru.po #usr/share/doc/gettext/examples/hello-smalltalk/po/sk.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/sl.po #usr/share/doc/gettext/examples/hello-smalltalk/po/sr.po #usr/share/doc/gettext/examples/hello-smalltalk/po/sv.po #usr/share/doc/gettext/examples/hello-smalltalk/po/tr.po #usr/share/doc/gettext/examples/hello-smalltalk/po/uk.po #usr/share/doc/gettext/examples/hello-smalltalk/po/vi.po #usr/share/doc/gettext/examples/hello-smalltalk/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/zh_HK.po #usr/share/doc/gettext/examples/hello-smalltalk/po/zh_TW.po #usr/share/doc/gettext/examples/hello-tcl #usr/share/doc/gettext/examples/hello-tcl-tk @@ -966,25 +1377,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-tcl-tk/po/LINGUAS #usr/share/doc/gettext/examples/hello-tcl-tk/po/Makefile.am #usr/share/doc/gettext/examples/hello-tcl-tk/po/af.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/ast.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/bg.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ca.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/de.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/el.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/eo.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/es.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/fi.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/fr.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ga.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/hu.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/id.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/it.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ja.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/ky.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/lv.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/ms.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/mt.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/nl.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/pl.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/pt.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ro.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ru.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/sk.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/sl.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/sr.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/sv.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/tr.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/uk.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/vi.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_HK.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_TW.po #usr/share/doc/gettext/examples/hello-tcl/INSTALL #usr/share/doc/gettext/examples/hello-tcl/Makefile.am @@ -998,25 +1422,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-tcl/po/LINGUAS #usr/share/doc/gettext/examples/hello-tcl/po/Makefile.am #usr/share/doc/gettext/examples/hello-tcl/po/af.po +#usr/share/doc/gettext/examples/hello-tcl/po/ast.po +#usr/share/doc/gettext/examples/hello-tcl/po/bg.po #usr/share/doc/gettext/examples/hello-tcl/po/ca.po #usr/share/doc/gettext/examples/hello-tcl/po/de.po #usr/share/doc/gettext/examples/hello-tcl/po/el.po +#usr/share/doc/gettext/examples/hello-tcl/po/eo.po #usr/share/doc/gettext/examples/hello-tcl/po/es.po +#usr/share/doc/gettext/examples/hello-tcl/po/fi.po #usr/share/doc/gettext/examples/hello-tcl/po/fr.po #usr/share/doc/gettext/examples/hello-tcl/po/ga.po +#usr/share/doc/gettext/examples/hello-tcl/po/hu.po +#usr/share/doc/gettext/examples/hello-tcl/po/id.po #usr/share/doc/gettext/examples/hello-tcl/po/it.po #usr/share/doc/gettext/examples/hello-tcl/po/ja.po +#usr/share/doc/gettext/examples/hello-tcl/po/ky.po +#usr/share/doc/gettext/examples/hello-tcl/po/lv.po +#usr/share/doc/gettext/examples/hello-tcl/po/ms.po +#usr/share/doc/gettext/examples/hello-tcl/po/mt.po #usr/share/doc/gettext/examples/hello-tcl/po/nl.po #usr/share/doc/gettext/examples/hello-tcl/po/pl.po +#usr/share/doc/gettext/examples/hello-tcl/po/pt.po #usr/share/doc/gettext/examples/hello-tcl/po/ro.po #usr/share/doc/gettext/examples/hello-tcl/po/ru.po #usr/share/doc/gettext/examples/hello-tcl/po/sk.po +#usr/share/doc/gettext/examples/hello-tcl/po/sl.po #usr/share/doc/gettext/examples/hello-tcl/po/sr.po #usr/share/doc/gettext/examples/hello-tcl/po/sv.po #usr/share/doc/gettext/examples/hello-tcl/po/tr.po #usr/share/doc/gettext/examples/hello-tcl/po/uk.po #usr/share/doc/gettext/examples/hello-tcl/po/vi.po #usr/share/doc/gettext/examples/hello-tcl/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-tcl/po/zh_HK.po #usr/share/doc/gettext/examples/hello-tcl/po/zh_TW.po #usr/share/doc/gettext/examples/hello-ycp #usr/share/doc/gettext/examples/hello-ycp/INSTALL @@ -1031,25 +1468,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-ycp/po/LINGUAS #usr/share/doc/gettext/examples/hello-ycp/po/Makefile.am #usr/share/doc/gettext/examples/hello-ycp/po/af.po +#usr/share/doc/gettext/examples/hello-ycp/po/ast.po +#usr/share/doc/gettext/examples/hello-ycp/po/bg.po #usr/share/doc/gettext/examples/hello-ycp/po/ca.po #usr/share/doc/gettext/examples/hello-ycp/po/de.po #usr/share/doc/gettext/examples/hello-ycp/po/el.po +#usr/share/doc/gettext/examples/hello-ycp/po/eo.po #usr/share/doc/gettext/examples/hello-ycp/po/es.po +#usr/share/doc/gettext/examples/hello-ycp/po/fi.po #usr/share/doc/gettext/examples/hello-ycp/po/fr.po #usr/share/doc/gettext/examples/hello-ycp/po/ga.po +#usr/share/doc/gettext/examples/hello-ycp/po/hu.po +#usr/share/doc/gettext/examples/hello-ycp/po/id.po #usr/share/doc/gettext/examples/hello-ycp/po/it.po #usr/share/doc/gettext/examples/hello-ycp/po/ja.po +#usr/share/doc/gettext/examples/hello-ycp/po/ky.po +#usr/share/doc/gettext/examples/hello-ycp/po/lv.po +#usr/share/doc/gettext/examples/hello-ycp/po/ms.po +#usr/share/doc/gettext/examples/hello-ycp/po/mt.po #usr/share/doc/gettext/examples/hello-ycp/po/nl.po #usr/share/doc/gettext/examples/hello-ycp/po/pl.po +#usr/share/doc/gettext/examples/hello-ycp/po/pt.po #usr/share/doc/gettext/examples/hello-ycp/po/ro.po #usr/share/doc/gettext/examples/hello-ycp/po/ru.po #usr/share/doc/gettext/examples/hello-ycp/po/sk.po +#usr/share/doc/gettext/examples/hello-ycp/po/sl.po #usr/share/doc/gettext/examples/hello-ycp/po/sr.po #usr/share/doc/gettext/examples/hello-ycp/po/sv.po #usr/share/doc/gettext/examples/hello-ycp/po/tr.po #usr/share/doc/gettext/examples/hello-ycp/po/uk.po #usr/share/doc/gettext/examples/hello-ycp/po/vi.po #usr/share/doc/gettext/examples/hello-ycp/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-ycp/po/zh_HK.po #usr/share/doc/gettext/examples/hello-ycp/po/zh_TW.po #usr/share/doc/gettext/examples/installpaths #usr/share/doc/gettext/gettext.1.html @@ -1069,6 +1519,9 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/gettext_20.html #usr/share/doc/gettext/gettext_21.html #usr/share/doc/gettext/gettext_22.html +#usr/share/doc/gettext/gettext_23.html +#usr/share/doc/gettext/gettext_24.html +#usr/share/doc/gettext/gettext_25.html #usr/share/doc/gettext/gettext_3.html #usr/share/doc/gettext/gettext_4.html #usr/share/doc/gettext/gettext_5.html @@ -1079,35 +1532,6 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/gettext_foot.html #usr/share/doc/gettext/gettext_toc.html #usr/share/doc/gettext/gettextize.1.html -#usr/share/doc/gettext/javadoc1 -#usr/share/doc/gettext/javadoc1/AllNames.html -#usr/share/doc/gettext/javadoc1/gnu.gettext.GettextResource.html -#usr/share/doc/gettext/javadoc1/images -#usr/share/doc/gettext/javadoc1/images/blue-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/blue-ball.gif -#usr/share/doc/gettext/javadoc1/images/class-index.gif -#usr/share/doc/gettext/javadoc1/images/constructor-index.gif -#usr/share/doc/gettext/javadoc1/images/constructors.gif -#usr/share/doc/gettext/javadoc1/images/cyan-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/cyan-ball.gif -#usr/share/doc/gettext/javadoc1/images/error-index.gif -#usr/share/doc/gettext/javadoc1/images/exception-index.gif -#usr/share/doc/gettext/javadoc1/images/green-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/green-ball.gif -#usr/share/doc/gettext/javadoc1/images/interface-index.gif -#usr/share/doc/gettext/javadoc1/images/magenta-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/magenta-ball.gif -#usr/share/doc/gettext/javadoc1/images/method-index.gif -#usr/share/doc/gettext/javadoc1/images/methods.gif -#usr/share/doc/gettext/javadoc1/images/package-index.gif -#usr/share/doc/gettext/javadoc1/images/red-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/red-ball.gif -#usr/share/doc/gettext/javadoc1/images/variable-index.gif -#usr/share/doc/gettext/javadoc1/images/variables.gif -#usr/share/doc/gettext/javadoc1/images/yellow-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/yellow-ball.gif -#usr/share/doc/gettext/javadoc1/packages.html -#usr/share/doc/gettext/javadoc1/tree.html #usr/share/doc/gettext/javadoc2 #usr/share/doc/gettext/javadoc2/allclasses-frame.html #usr/share/doc/gettext/javadoc2/deprecated-list.html @@ -1141,14 +1565,15 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/msguniq.1.html #usr/share/doc/gettext/ngettext.1.html #usr/share/doc/gettext/ngettext.3.html +#usr/share/doc/gettext/recode-sr-latin.1.html #usr/share/doc/gettext/textdomain.3.html #usr/share/doc/gettext/tutorial.html #usr/share/doc/gettext/xgettext.1.html #usr/share/doc/libasprintf -#usr/share/doc/libasprintf/autosprintf.html +#usr/share/doc/libasprintf/autosprintf_all.html #usr/share/gettext #usr/share/gettext/ABOUT-NLS -#usr/share/gettext/archive.tar.gz +#usr/share/gettext/archive.dir.tar.gz #usr/share/gettext/config.rpath #usr/share/gettext/gettext.h #usr/share/gettext/intl @@ -1166,15 +1591,19 @@ usr/lib/preloadable_libintl.so #usr/share/gettext/intl/dngettext.c #usr/share/gettext/intl/eval-plural.h #usr/share/gettext/intl/explodename.c +#usr/share/gettext/intl/export.h #usr/share/gettext/intl/finddomain.c #usr/share/gettext/intl/gettext.c #usr/share/gettext/intl/gettextP.h #usr/share/gettext/intl/gmo.h +#usr/share/gettext/intl/hash-string.c #usr/share/gettext/intl/hash-string.h #usr/share/gettext/intl/intl-compat.c +#usr/share/gettext/intl/intl-exports.c #usr/share/gettext/intl/l10nflist.c #usr/share/gettext/intl/langprefs.c #usr/share/gettext/intl/libgnuintl.h.in +#usr/share/gettext/intl/libintl.rc #usr/share/gettext/intl/loadinfo.h #usr/share/gettext/intl/loadmsgcat.c #usr/share/gettext/intl/localcharset.c @@ -1182,6 +1611,8 @@ usr/lib/preloadable_libintl.so #usr/share/gettext/intl/locale.alias #usr/share/gettext/intl/localealias.c #usr/share/gettext/intl/localename.c +#usr/share/gettext/intl/lock.c +#usr/share/gettext/intl/lock.h #usr/share/gettext/intl/log.c #usr/share/gettext/intl/ngettext.c #usr/share/gettext/intl/os2compat.c @@ -1200,13 +1631,18 @@ usr/lib/preloadable_libintl.so #usr/share/gettext/intl/ref-del.sin #usr/share/gettext/intl/relocatable.c #usr/share/gettext/intl/relocatable.h +#usr/share/gettext/intl/setlocale.c #usr/share/gettext/intl/textdomain.c +#usr/share/gettext/intl/threadlib.c +#usr/share/gettext/intl/tsearch.c +#usr/share/gettext/intl/tsearch.h #usr/share/gettext/intl/vasnprintf.c #usr/share/gettext/intl/vasnprintf.h #usr/share/gettext/intl/vasnwprintf.h +#usr/share/gettext/intl/version.c #usr/share/gettext/intl/wprintf-parse.h #usr/share/gettext/intl/xsize.h -#usr/share/gettext/mkinstalldirs +#usr/share/gettext/javaversion.class #usr/share/gettext/msgunfmt.tcl #usr/share/gettext/po #usr/share/gettext/po/Makefile.in.in @@ -1236,6 +1672,15 @@ usr/lib/preloadable_libintl.so #usr/share/gettext/projects/TP/trigger #usr/share/gettext/projects/index #usr/share/gettext/projects/team-address +#usr/share/gettext/styles +#usr/share/gettext/styles/po-default.css +#usr/share/gettext/styles/po-emacs-x.css +#usr/share/gettext/styles/po-emacs-xterm.css +#usr/share/gettext/styles/po-emacs-xterm16.css +#usr/share/gettext/styles/po-emacs-xterm256.css +#usr/share/gettext/styles/po-vim.css +#usr/share/info/autosprintf.info +#usr/share/info/gettext.info #usr/share/man/man1/autopoint.1 #usr/share/man/man1/envsubst.1 #usr/share/man/man1/gettext.1 @@ -1255,6 +1700,7 @@ usr/lib/preloadable_libintl.so #usr/share/man/man1/msgunfmt.1 #usr/share/man/man1/msguniq.1 #usr/share/man/man1/ngettext.1 +#usr/share/man/man1/recode-sr-latin.1 #usr/share/man/man1/xgettext.1 #usr/share/man/man3/bind_textdomain_codeset.3 #usr/share/man/man3/bindtextdomain.3 diff --git a/config/rootfiles/common/glib b/config/rootfiles/common/glib new file mode 100644 index 0000000..be6d57d --- /dev/null +++ b/config/rootfiles/common/glib @@ -0,0 +1,970 @@ +#etc/bash_completion.d +#etc/bash_completion.d/gdbus-bash-completion.sh +#etc/bash_completion.d/gresource-bash-completion.sh +#etc/bash_completion.d/gsettings-bash-completion.sh +#usr/bin/gdbus +#usr/bin/gdbus-codegen +#usr/bin/gio-querymodules +#usr/bin/glib-compile-resources +#usr/bin/glib-compile-schemas +#usr/bin/glib-genmarshal +#usr/bin/glib-gettextize +#usr/bin/glib-mkenums +#usr/bin/gobject-query +#usr/bin/gresource +#usr/bin/gsettings +#usr/bin/gtester +#usr/bin/gtester-report +#usr/include/gio-unix-2.0 +#usr/include/gio-unix-2.0/gio +#usr/include/gio-unix-2.0/gio/gdesktopappinfo.h +#usr/include/gio-unix-2.0/gio/gfiledescriptorbased.h +#usr/include/gio-unix-2.0/gio/gunixconnection.h +#usr/include/gio-unix-2.0/gio/gunixcredentialsmessage.h +#usr/include/gio-unix-2.0/gio/gunixfdlist.h +#usr/include/gio-unix-2.0/gio/gunixfdmessage.h +#usr/include/gio-unix-2.0/gio/gunixinputstream.h +#usr/include/gio-unix-2.0/gio/gunixmounts.h +#usr/include/gio-unix-2.0/gio/gunixoutputstream.h +#usr/include/gio-unix-2.0/gio/gunixsocketaddress.h +#usr/include/glib-2.0 +#usr/include/glib-2.0/gio +#usr/include/glib-2.0/gio/gaction.h +#usr/include/glib-2.0/gio/gactiongroup.h +#usr/include/glib-2.0/gio/gactiongroupexporter.h +#usr/include/glib-2.0/gio/gactionmap.h +#usr/include/glib-2.0/gio/gappinfo.h +#usr/include/glib-2.0/gio/gapplication.h +#usr/include/glib-2.0/gio/gapplicationcommandline.h +#usr/include/glib-2.0/gio/gasyncinitable.h +#usr/include/glib-2.0/gio/gasyncresult.h +#usr/include/glib-2.0/gio/gbufferedinputstream.h +#usr/include/glib-2.0/gio/gbufferedoutputstream.h +#usr/include/glib-2.0/gio/gcancellable.h +#usr/include/glib-2.0/gio/gcharsetconverter.h +#usr/include/glib-2.0/gio/gcontenttype.h +#usr/include/glib-2.0/gio/gconverter.h +#usr/include/glib-2.0/gio/gconverterinputstream.h +#usr/include/glib-2.0/gio/gconverteroutputstream.h +#usr/include/glib-2.0/gio/gcredentials.h +#usr/include/glib-2.0/gio/gdatainputstream.h +#usr/include/glib-2.0/gio/gdataoutputstream.h +#usr/include/glib-2.0/gio/gdbusactiongroup.h +#usr/include/glib-2.0/gio/gdbusaddress.h +#usr/include/glib-2.0/gio/gdbusauthobserver.h +#usr/include/glib-2.0/gio/gdbusconnection.h +#usr/include/glib-2.0/gio/gdbuserror.h +#usr/include/glib-2.0/gio/gdbusinterface.h +#usr/include/glib-2.0/gio/gdbusinterfaceskeleton.h +#usr/include/glib-2.0/gio/gdbusintrospection.h +#usr/include/glib-2.0/gio/gdbusmenumodel.h +#usr/include/glib-2.0/gio/gdbusmessage.h +#usr/include/glib-2.0/gio/gdbusmethodinvocation.h +#usr/include/glib-2.0/gio/gdbusnameowning.h +#usr/include/glib-2.0/gio/gdbusnamewatching.h +#usr/include/glib-2.0/gio/gdbusobject.h +#usr/include/glib-2.0/gio/gdbusobjectmanager.h +#usr/include/glib-2.0/gio/gdbusobjectmanagerclient.h +#usr/include/glib-2.0/gio/gdbusobjectmanagerserver.h +#usr/include/glib-2.0/gio/gdbusobjectproxy.h +#usr/include/glib-2.0/gio/gdbusobjectskeleton.h +#usr/include/glib-2.0/gio/gdbusproxy.h +#usr/include/glib-2.0/gio/gdbusserver.h +#usr/include/glib-2.0/gio/gdbusutils.h +#usr/include/glib-2.0/gio/gdrive.h +#usr/include/glib-2.0/gio/gemblem.h +#usr/include/glib-2.0/gio/gemblemedicon.h +#usr/include/glib-2.0/gio/gfile.h +#usr/include/glib-2.0/gio/gfileattribute.h +#usr/include/glib-2.0/gio/gfileenumerator.h +#usr/include/glib-2.0/gio/gfileicon.h +#usr/include/glib-2.0/gio/gfileinfo.h +#usr/include/glib-2.0/gio/gfileinputstream.h +#usr/include/glib-2.0/gio/gfileiostream.h +#usr/include/glib-2.0/gio/gfilemonitor.h +#usr/include/glib-2.0/gio/gfilenamecompleter.h +#usr/include/glib-2.0/gio/gfileoutputstream.h +#usr/include/glib-2.0/gio/gfilterinputstream.h +#usr/include/glib-2.0/gio/gfilteroutputstream.h +#usr/include/glib-2.0/gio/gicon.h +#usr/include/glib-2.0/gio/ginetaddress.h +#usr/include/glib-2.0/gio/ginetaddressmask.h +#usr/include/glib-2.0/gio/ginetsocketaddress.h +#usr/include/glib-2.0/gio/ginitable.h +#usr/include/glib-2.0/gio/ginputstream.h +#usr/include/glib-2.0/gio/gio.h +#usr/include/glib-2.0/gio/gioenums.h +#usr/include/glib-2.0/gio/gioenumtypes.h +#usr/include/glib-2.0/gio/gioerror.h +#usr/include/glib-2.0/gio/giomodule.h +#usr/include/glib-2.0/gio/gioscheduler.h +#usr/include/glib-2.0/gio/giostream.h +#usr/include/glib-2.0/gio/giotypes.h +#usr/include/glib-2.0/gio/gloadableicon.h +#usr/include/glib-2.0/gio/gmemoryinputstream.h +#usr/include/glib-2.0/gio/gmemoryoutputstream.h +#usr/include/glib-2.0/gio/gmenu.h +#usr/include/glib-2.0/gio/gmenuexporter.h +#usr/include/glib-2.0/gio/gmenumodel.h +#usr/include/glib-2.0/gio/gmount.h +#usr/include/glib-2.0/gio/gmountoperation.h +#usr/include/glib-2.0/gio/gnativevolumemonitor.h +#usr/include/glib-2.0/gio/gnetworkaddress.h +#usr/include/glib-2.0/gio/gnetworkmonitor.h +#usr/include/glib-2.0/gio/gnetworkservice.h +#usr/include/glib-2.0/gio/goutputstream.h +#usr/include/glib-2.0/gio/gpermission.h +#usr/include/glib-2.0/gio/gpollableinputstream.h +#usr/include/glib-2.0/gio/gpollableoutputstream.h +#usr/include/glib-2.0/gio/gproxy.h +#usr/include/glib-2.0/gio/gproxyaddress.h +#usr/include/glib-2.0/gio/gproxyaddressenumerator.h +#usr/include/glib-2.0/gio/gproxyresolver.h +#usr/include/glib-2.0/gio/gremoteactiongroup.h +#usr/include/glib-2.0/gio/gresolver.h +#usr/include/glib-2.0/gio/gresource.h +#usr/include/glib-2.0/gio/gseekable.h +#usr/include/glib-2.0/gio/gsettings.h +#usr/include/glib-2.0/gio/gsettingsbackend.h +#usr/include/glib-2.0/gio/gsettingsschema.h +#usr/include/glib-2.0/gio/gsimpleaction.h +#usr/include/glib-2.0/gio/gsimpleactiongroup.h +#usr/include/glib-2.0/gio/gsimpleasyncresult.h +#usr/include/glib-2.0/gio/gsimplepermission.h +#usr/include/glib-2.0/gio/gsocket.h +#usr/include/glib-2.0/gio/gsocketaddress.h +#usr/include/glib-2.0/gio/gsocketaddressenumerator.h +#usr/include/glib-2.0/gio/gsocketclient.h +#usr/include/glib-2.0/gio/gsocketconnectable.h +#usr/include/glib-2.0/gio/gsocketconnection.h +#usr/include/glib-2.0/gio/gsocketcontrolmessage.h +#usr/include/glib-2.0/gio/gsocketlistener.h +#usr/include/glib-2.0/gio/gsocketservice.h +#usr/include/glib-2.0/gio/gsrvtarget.h +#usr/include/glib-2.0/gio/gtcpconnection.h +#usr/include/glib-2.0/gio/gtcpwrapperconnection.h +#usr/include/glib-2.0/gio/gthemedicon.h +#usr/include/glib-2.0/gio/gthreadedsocketservice.h +#usr/include/glib-2.0/gio/gtlsbackend.h +#usr/include/glib-2.0/gio/gtlscertificate.h +#usr/include/glib-2.0/gio/gtlsclientconnection.h +#usr/include/glib-2.0/gio/gtlsconnection.h +#usr/include/glib-2.0/gio/gtlsdatabase.h +#usr/include/glib-2.0/gio/gtlsfiledatabase.h +#usr/include/glib-2.0/gio/gtlsinteraction.h +#usr/include/glib-2.0/gio/gtlspassword.h +#usr/include/glib-2.0/gio/gtlsserverconnection.h +#usr/include/glib-2.0/gio/gvfs.h +#usr/include/glib-2.0/gio/gvolume.h +#usr/include/glib-2.0/gio/gvolumemonitor.h +#usr/include/glib-2.0/gio/gzlibcompressor.h +#usr/include/glib-2.0/gio/gzlibdecompressor.h +#usr/include/glib-2.0/glib +#usr/include/glib-2.0/glib-object.h +#usr/include/glib-2.0/glib-unix.h +#usr/include/glib-2.0/glib.h +#usr/include/glib-2.0/glib/deprecated +#usr/include/glib-2.0/glib/deprecated/gallocator.h +#usr/include/glib-2.0/glib/deprecated/gcache.h +#usr/include/glib-2.0/glib/deprecated/gcompletion.h +#usr/include/glib-2.0/glib/deprecated/gmain.h +#usr/include/glib-2.0/glib/deprecated/grel.h +#usr/include/glib-2.0/glib/deprecated/gthread.h +#usr/include/glib-2.0/glib/galloca.h +#usr/include/glib-2.0/glib/garray.h +#usr/include/glib-2.0/glib/gasyncqueue.h +#usr/include/glib-2.0/glib/gatomic.h +#usr/include/glib-2.0/glib/gbacktrace.h +#usr/include/glib-2.0/glib/gbase64.h +#usr/include/glib-2.0/glib/gbitlock.h +#usr/include/glib-2.0/glib/gbookmarkfile.h +#usr/include/glib-2.0/glib/gbytes.h +#usr/include/glib-2.0/glib/gcharset.h +#usr/include/glib-2.0/glib/gchecksum.h +#usr/include/glib-2.0/glib/gconvert.h +#usr/include/glib-2.0/glib/gdataset.h +#usr/include/glib-2.0/glib/gdate.h +#usr/include/glib-2.0/glib/gdatetime.h +#usr/include/glib-2.0/glib/gdir.h +#usr/include/glib-2.0/glib/genviron.h +#usr/include/glib-2.0/glib/gerror.h +#usr/include/glib-2.0/glib/gfileutils.h +#usr/include/glib-2.0/glib/ggettext.h +#usr/include/glib-2.0/glib/ghash.h +#usr/include/glib-2.0/glib/ghmac.h +#usr/include/glib-2.0/glib/ghook.h +#usr/include/glib-2.0/glib/ghostutils.h +#usr/include/glib-2.0/glib/gi18n-lib.h +#usr/include/glib-2.0/glib/gi18n.h +#usr/include/glib-2.0/glib/giochannel.h +#usr/include/glib-2.0/glib/gkeyfile.h +#usr/include/glib-2.0/glib/glist.h +#usr/include/glib-2.0/glib/gmacros.h +#usr/include/glib-2.0/glib/gmain.h +#usr/include/glib-2.0/glib/gmappedfile.h +#usr/include/glib-2.0/glib/gmarkup.h +#usr/include/glib-2.0/glib/gmem.h +#usr/include/glib-2.0/glib/gmessages.h +#usr/include/glib-2.0/glib/gnode.h +#usr/include/glib-2.0/glib/goption.h +#usr/include/glib-2.0/glib/gpattern.h +#usr/include/glib-2.0/glib/gpoll.h +#usr/include/glib-2.0/glib/gprimes.h +#usr/include/glib-2.0/glib/gprintf.h +#usr/include/glib-2.0/glib/gqsort.h +#usr/include/glib-2.0/glib/gquark.h +#usr/include/glib-2.0/glib/gqueue.h +#usr/include/glib-2.0/glib/grand.h +#usr/include/glib-2.0/glib/gregex.h +#usr/include/glib-2.0/glib/gscanner.h +#usr/include/glib-2.0/glib/gsequence.h +#usr/include/glib-2.0/glib/gshell.h +#usr/include/glib-2.0/glib/gslice.h +#usr/include/glib-2.0/glib/gslist.h +#usr/include/glib-2.0/glib/gspawn.h +#usr/include/glib-2.0/glib/gstdio.h +#usr/include/glib-2.0/glib/gstrfuncs.h +#usr/include/glib-2.0/glib/gstring.h +#usr/include/glib-2.0/glib/gstringchunk.h +#usr/include/glib-2.0/glib/gtestutils.h +#usr/include/glib-2.0/glib/gthread.h +#usr/include/glib-2.0/glib/gthreadpool.h +#usr/include/glib-2.0/glib/gtimer.h +#usr/include/glib-2.0/glib/gtimezone.h +#usr/include/glib-2.0/glib/gtrashstack.h +#usr/include/glib-2.0/glib/gtree.h +#usr/include/glib-2.0/glib/gtypes.h +#usr/include/glib-2.0/glib/gunicode.h +#usr/include/glib-2.0/glib/gurifuncs.h +#usr/include/glib-2.0/glib/gutils.h +#usr/include/glib-2.0/glib/gvariant.h +#usr/include/glib-2.0/glib/gvarianttype.h +#usr/include/glib-2.0/glib/gversion.h +#usr/include/glib-2.0/glib/gversionmacros.h +#usr/include/glib-2.0/glib/gwin32.h +#usr/include/glib-2.0/gmodule.h +#usr/include/glib-2.0/gobject +#usr/include/glib-2.0/gobject/gbinding.h +#usr/include/glib-2.0/gobject/gboxed.h +#usr/include/glib-2.0/gobject/gclosure.h +#usr/include/glib-2.0/gobject/genums.h +#usr/include/glib-2.0/gobject/glib-types.h +#usr/include/glib-2.0/gobject/gmarshal.h +#usr/include/glib-2.0/gobject/gobject.h +#usr/include/glib-2.0/gobject/gobjectnotifyqueue.c +#usr/include/glib-2.0/gobject/gparam.h +#usr/include/glib-2.0/gobject/gparamspecs.h +#usr/include/glib-2.0/gobject/gsignal.h +#usr/include/glib-2.0/gobject/gsourceclosure.h +#usr/include/glib-2.0/gobject/gtype.h +#usr/include/glib-2.0/gobject/gtypemodule.h +#usr/include/glib-2.0/gobject/gtypeplugin.h +#usr/include/glib-2.0/gobject/gvalue.h +#usr/include/glib-2.0/gobject/gvaluearray.h +#usr/include/glib-2.0/gobject/gvaluecollector.h +#usr/include/glib-2.0/gobject/gvaluetypes.h +#usr/lib/gdbus-2.0 +#usr/lib/gdbus-2.0/codegen +#usr/lib/gdbus-2.0/codegen/__init__.py +#usr/lib/gdbus-2.0/codegen/__init__.pyc +#usr/lib/gdbus-2.0/codegen/__init__.pyo +#usr/lib/gdbus-2.0/codegen/codegen.py +#usr/lib/gdbus-2.0/codegen/codegen.pyc +#usr/lib/gdbus-2.0/codegen/codegen.pyo +#usr/lib/gdbus-2.0/codegen/codegen_docbook.py +#usr/lib/gdbus-2.0/codegen/codegen_docbook.pyc +#usr/lib/gdbus-2.0/codegen/codegen_docbook.pyo +#usr/lib/gdbus-2.0/codegen/codegen_main.py +#usr/lib/gdbus-2.0/codegen/codegen_main.pyc +#usr/lib/gdbus-2.0/codegen/codegen_main.pyo +#usr/lib/gdbus-2.0/codegen/config.py +#usr/lib/gdbus-2.0/codegen/config.pyc +#usr/lib/gdbus-2.0/codegen/config.pyo +#usr/lib/gdbus-2.0/codegen/dbustypes.py +#usr/lib/gdbus-2.0/codegen/dbustypes.pyc +#usr/lib/gdbus-2.0/codegen/dbustypes.pyo +#usr/lib/gdbus-2.0/codegen/parser.py +#usr/lib/gdbus-2.0/codegen/parser.pyc +#usr/lib/gdbus-2.0/codegen/parser.pyo +#usr/lib/gdbus-2.0/codegen/utils.py +#usr/lib/gdbus-2.0/codegen/utils.pyc +#usr/lib/gdbus-2.0/codegen/utils.pyo +#usr/lib/gio +#usr/lib/gio/modules +#usr/lib/glib-2.0 +#usr/lib/glib-2.0/include +#usr/lib/glib-2.0/include/glibconfig.h +#usr/lib/libgio-2.0.la +#usr/lib/libgio-2.0.so +usr/lib/libgio-2.0.so.0 +usr/lib/libgio-2.0.so.0.3200.3 +#usr/lib/libglib-2.0.la +#usr/lib/libglib-2.0.so +usr/lib/libglib-2.0.so.0 +usr/lib/libglib-2.0.so.0.3200.3 +#usr/lib/libgmodule-2.0.la +#usr/lib/libgmodule-2.0.so +usr/lib/libgmodule-2.0.so.0 +usr/lib/libgmodule-2.0.so.0.3200.3 +#usr/lib/libgobject-2.0.la +#usr/lib/libgobject-2.0.so +usr/lib/libgobject-2.0.so.0 +usr/lib/libgobject-2.0.so.0.3200.3 +#usr/lib/libgthread-2.0.la +#usr/lib/libgthread-2.0.so +usr/lib/libgthread-2.0.so.0 +usr/lib/libgthread-2.0.so.0.3200.3 +#usr/lib/pkgconfig/gio-2.0.pc +#usr/lib/pkgconfig/gio-unix-2.0.pc +#usr/lib/pkgconfig/glib-2.0.pc +#usr/lib/pkgconfig/gmodule-2.0.pc +#usr/lib/pkgconfig/gmodule-export-2.0.pc +#usr/lib/pkgconfig/gmodule-no-export-2.0.pc +#usr/lib/pkgconfig/gobject-2.0.pc +#usr/lib/pkgconfig/gthread-2.0.pc +#usr/share/aclocal/glib-2.0.m4 +#usr/share/aclocal/glib-gettext.m4 +#usr/share/aclocal/gsettings.m4 +#usr/share/gdb +#usr/share/gdb/auto-load +#usr/share/gdb/auto-load/libglib-2.0.so.0.3200.3-gdb.py +#usr/share/gdb/auto-load/libgobject-2.0.so.0.3200.3-gdb.py +#usr/share/glib-2.0 +#usr/share/glib-2.0/gdb +#usr/share/glib-2.0/gdb/glib.py +#usr/share/glib-2.0/gdb/gobject.py +#usr/share/glib-2.0/gettext +#usr/share/glib-2.0/gettext/mkinstalldirs +#usr/share/glib-2.0/gettext/po +#usr/share/glib-2.0/gettext/po/Makefile.in.in +#usr/share/glib-2.0/schemas +#usr/share/glib-2.0/schemas/gschema.dtd +#usr/share/gtk-doc/html/gio +#usr/share/gtk-doc/html/gio/ExampleAnimal.html +#usr/share/gtk-doc/html/gio/ExampleCat.html +#usr/share/gtk-doc/html/gio/ExampleObject.html +#usr/share/gtk-doc/html/gio/ExampleObjectManagerClient.html +#usr/share/gtk-doc/html/gio/GAction.html +#usr/share/gtk-doc/html/gio/GActionGroup.html +#usr/share/gtk-doc/html/gio/GActionMap.html +#usr/share/gtk-doc/html/gio/GAppInfo.html +#usr/share/gtk-doc/html/gio/GApplication.html +#usr/share/gtk-doc/html/gio/GApplicationCommandLine.html +#usr/share/gtk-doc/html/gio/GAsyncInitable.html +#usr/share/gtk-doc/html/gio/GAsyncResult.html +#usr/share/gtk-doc/html/gio/GBufferedInputStream.html +#usr/share/gtk-doc/html/gio/GBufferedOutputStream.html +#usr/share/gtk-doc/html/gio/GCancellable.html +#usr/share/gtk-doc/html/gio/GCharsetConverter.html +#usr/share/gtk-doc/html/gio/GConverter.html +#usr/share/gtk-doc/html/gio/GCredentials.html +#usr/share/gtk-doc/html/gio/GDBusActionGroup.html +#usr/share/gtk-doc/html/gio/GDBusAuthObserver.html +#usr/share/gtk-doc/html/gio/GDBusConnection.html +#usr/share/gtk-doc/html/gio/GDBusInterface.html +#usr/share/gtk-doc/html/gio/GDBusInterfaceSkeleton.html +#usr/share/gtk-doc/html/gio/GDBusMenuModel.html +#usr/share/gtk-doc/html/gio/GDBusMessage.html +#usr/share/gtk-doc/html/gio/GDBusMethodInvocation.html +#usr/share/gtk-doc/html/gio/GDBusObject.html +#usr/share/gtk-doc/html/gio/GDBusObjectManager.html +#usr/share/gtk-doc/html/gio/GDBusObjectManagerClient.html +#usr/share/gtk-doc/html/gio/GDBusObjectManagerServer.html +#usr/share/gtk-doc/html/gio/GDBusObjectProxy.html +#usr/share/gtk-doc/html/gio/GDBusObjectSkeleton.html +#usr/share/gtk-doc/html/gio/GDBusProxy.html +#usr/share/gtk-doc/html/gio/GDBusServer.html +#usr/share/gtk-doc/html/gio/GDataInputStream.html +#usr/share/gtk-doc/html/gio/GDataOutputStream.html +#usr/share/gtk-doc/html/gio/GDrive.html +#usr/share/gtk-doc/html/gio/GEmblem.html +#usr/share/gtk-doc/html/gio/GEmblemedIcon.html +#usr/share/gtk-doc/html/gio/GFile.html +#usr/share/gtk-doc/html/gio/GFileDescriptorBased.html +#usr/share/gtk-doc/html/gio/GFileEnumerator.html +#usr/share/gtk-doc/html/gio/GFileIOStream.html +#usr/share/gtk-doc/html/gio/GFileIcon.html +#usr/share/gtk-doc/html/gio/GFileInfo.html +#usr/share/gtk-doc/html/gio/GFileInputStream.html +#usr/share/gtk-doc/html/gio/GFileMonitor.html +#usr/share/gtk-doc/html/gio/GFileOutputStream.html +#usr/share/gtk-doc/html/gio/GFilenameCompleter.html +#usr/share/gtk-doc/html/gio/GFilterInputStream.html +#usr/share/gtk-doc/html/gio/GFilterOutputStream.html +#usr/share/gtk-doc/html/gio/GIOModule.html +#usr/share/gtk-doc/html/gio/GIOStream.html +#usr/share/gtk-doc/html/gio/GIcon.html +#usr/share/gtk-doc/html/gio/GInetAddress.html +#usr/share/gtk-doc/html/gio/GInetSocketAddress.html +#usr/share/gtk-doc/html/gio/GInitable.html +#usr/share/gtk-doc/html/gio/GInputStream.html +#usr/share/gtk-doc/html/gio/GLoadableIcon.html +#usr/share/gtk-doc/html/gio/GMemoryInputStream.html +#usr/share/gtk-doc/html/gio/GMemoryOutputStream.html +#usr/share/gtk-doc/html/gio/GMenu.html +#usr/share/gtk-doc/html/gio/GMenuModel.html +#usr/share/gtk-doc/html/gio/GMount.html +#usr/share/gtk-doc/html/gio/GMountOperation.html +#usr/share/gtk-doc/html/gio/GNetworkAddress.html +#usr/share/gtk-doc/html/gio/GNetworkMonitor.html +#usr/share/gtk-doc/html/gio/GNetworkService.html +#usr/share/gtk-doc/html/gio/GOutputStream.html +#usr/share/gtk-doc/html/gio/GPermission.html +#usr/share/gtk-doc/html/gio/GPollableInputStream.html +#usr/share/gtk-doc/html/gio/GPollableOutputStream.html +#usr/share/gtk-doc/html/gio/GProxy.html +#usr/share/gtk-doc/html/gio/GProxyAddress.html +#usr/share/gtk-doc/html/gio/GProxyResolver.html +#usr/share/gtk-doc/html/gio/GRemoteActionGroup.html +#usr/share/gtk-doc/html/gio/GResolver.html +#usr/share/gtk-doc/html/gio/GSeekable.html +#usr/share/gtk-doc/html/gio/GSettings.html +#usr/share/gtk-doc/html/gio/GSettingsBackend.html +#usr/share/gtk-doc/html/gio/GSimpleAction.html +#usr/share/gtk-doc/html/gio/GSimpleActionGroup.html +#usr/share/gtk-doc/html/gio/GSimpleAsyncResult.html +#usr/share/gtk-doc/html/gio/GSimplePermission.html +#usr/share/gtk-doc/html/gio/GSocket.html +#usr/share/gtk-doc/html/gio/GSocketAddress.html +#usr/share/gtk-doc/html/gio/GSocketClient.html +#usr/share/gtk-doc/html/gio/GSocketConnectable.html +#usr/share/gtk-doc/html/gio/GSocketConnection.html +#usr/share/gtk-doc/html/gio/GSocketControlMessage.html +#usr/share/gtk-doc/html/gio/GSocketListener.html +#usr/share/gtk-doc/html/gio/GSocketService.html +#usr/share/gtk-doc/html/gio/GSrvTarget.html +#usr/share/gtk-doc/html/gio/GTcpConnection.html +#usr/share/gtk-doc/html/gio/GTcpWrapperConnection.html +#usr/share/gtk-doc/html/gio/GThemedIcon.html +#usr/share/gtk-doc/html/gio/GThreadedSocketService.html +#usr/share/gtk-doc/html/gio/GTlsBackend.html +#usr/share/gtk-doc/html/gio/GTlsCertificate.html +#usr/share/gtk-doc/html/gio/GTlsClientConnection.html +#usr/share/gtk-doc/html/gio/GTlsConnection.html +#usr/share/gtk-doc/html/gio/GTlsDatabase.html +#usr/share/gtk-doc/html/gio/GTlsFileDatabase.html +#usr/share/gtk-doc/html/gio/GTlsInteraction.html +#usr/share/gtk-doc/html/gio/GTlsPassword.html +#usr/share/gtk-doc/html/gio/GTlsServerConnection.html +#usr/share/gtk-doc/html/gio/GUnixConnection.html +#usr/share/gtk-doc/html/gio/GUnixCredentialsMessage.html +#usr/share/gtk-doc/html/gio/GUnixFDList.html +#usr/share/gtk-doc/html/gio/GUnixFDMessage.html +#usr/share/gtk-doc/html/gio/GUnixInputStream.html +#usr/share/gtk-doc/html/gio/GUnixOutputStream.html +#usr/share/gtk-doc/html/gio/GUnixSocketAddress.html +#usr/share/gtk-doc/html/gio/GVfs.html +#usr/share/gtk-doc/html/gio/GVolume.html +#usr/share/gtk-doc/html/gio/GVolumeMonitor.html +#usr/share/gtk-doc/html/gio/GZlibCompressor.html +#usr/share/gtk-doc/html/gio/GZlibDecompressor.html +#usr/share/gtk-doc/html/gio/annotation-glossary.html +#usr/share/gtk-doc/html/gio/api-index-2-18.html +#usr/share/gtk-doc/html/gio/api-index-2-20.html +#usr/share/gtk-doc/html/gio/api-index-2-22.html +#usr/share/gtk-doc/html/gio/api-index-2-24.html +#usr/share/gtk-doc/html/gio/api-index-2-26.html +#usr/share/gtk-doc/html/gio/api-index-2-28.html +#usr/share/gtk-doc/html/gio/api-index-2-30.html +#usr/share/gtk-doc/html/gio/api-index-2-32.html +#usr/share/gtk-doc/html/gio/api-index-deprecated.html +#usr/share/gtk-doc/html/gio/api-index-full.html +#usr/share/gtk-doc/html/gio/application.html +#usr/share/gtk-doc/html/gio/async.html +#usr/share/gtk-doc/html/gio/ch01.html +#usr/share/gtk-doc/html/gio/ch02.html +#usr/share/gtk-doc/html/gio/ch03.html +#usr/share/gtk-doc/html/gio/ch27.html +#usr/share/gtk-doc/html/gio/ch28.html +#usr/share/gtk-doc/html/gio/ch28s02.html +#usr/share/gtk-doc/html/gio/ch28s03.html +#usr/share/gtk-doc/html/gio/ch29.html +#usr/share/gtk-doc/html/gio/ch29s02.html +#usr/share/gtk-doc/html/gio/ch29s03.html +#usr/share/gtk-doc/html/gio/ch29s04.html +#usr/share/gtk-doc/html/gio/ch29s05.html +#usr/share/gtk-doc/html/gio/ch29s06.html +#usr/share/gtk-doc/html/gio/ch29s07.html +#usr/share/gtk-doc/html/gio/ch30.html +#usr/share/gtk-doc/html/gio/ch30s02.html +#usr/share/gtk-doc/html/gio/ch30s03.html +#usr/share/gtk-doc/html/gio/ch30s04.html +#usr/share/gtk-doc/html/gio/ch30s05.html +#usr/share/gtk-doc/html/gio/conversion.html +#usr/share/gtk-doc/html/gio/extending-gio.html +#usr/share/gtk-doc/html/gio/extending.html +#usr/share/gtk-doc/html/gio/failable_initialization.html +#usr/share/gtk-doc/html/gio/file_mon.html +#usr/share/gtk-doc/html/gio/file_ops.html +#usr/share/gtk-doc/html/gio/gdbus-codegen.html +#usr/share/gtk-doc/html/gio/gdbus-convenience.html +#usr/share/gtk-doc/html/gio/gdbus-lowlevel.html +#usr/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Animal.html +#usr/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Cat.html +#usr/share/gtk-doc/html/gio/gdbus.html +#usr/share/gtk-doc/html/gio/gio-D-Bus-Addresses.html +#usr/share/gtk-doc/html/gio/gio-D-Bus-Introspection-Data.html +#usr/share/gtk-doc/html/gio/gio-D-Bus-Utilities.html +#usr/share/gtk-doc/html/gio/gio-Desktop-file-based-GAppInfo.html +#usr/share/gtk-doc/html/gio/gio-Extension-Points.html +#usr/share/gtk-doc/html/gio/gio-GActionGroup-exporter.html +#usr/share/gtk-doc/html/gio/gio-GContentType.html +#usr/share/gtk-doc/html/gio/gio-GConverterInputstream.html +#usr/share/gtk-doc/html/gio/gio-GConverterOutputstream.html +#usr/share/gtk-doc/html/gio/gio-GDBusError.html +#usr/share/gtk-doc/html/gio/gio-GFileAttribute.html +#usr/share/gtk-doc/html/gio/gio-GIOError.html +#usr/share/gtk-doc/html/gio/gio-GIOScheduler.html +#usr/share/gtk-doc/html/gio/gio-GInetAddressMask.html +#usr/share/gtk-doc/html/gio/gio-GMenuModel-exporter.html +#usr/share/gtk-doc/html/gio/gio-GResource.html +#usr/share/gtk-doc/html/gio/gio-GSettingsSchema-GSettingsSchemaSource.html +#usr/share/gtk-doc/html/gio/gio-GWin32InputStream.html +#usr/share/gtk-doc/html/gio/gio-GWin32OutputStream.html +#usr/share/gtk-doc/html/gio/gio-Owning-Bus-Names.html +#usr/share/gtk-doc/html/gio/gio-TLS-Overview.html +#usr/share/gtk-doc/html/gio/gio-Unix-Mounts.html +#usr/share/gtk-doc/html/gio/gio-Watching-Bus-Names.html +#usr/share/gtk-doc/html/gio/gio-hierarchy.html +#usr/share/gtk-doc/html/gio/gio-querymodules.html +#usr/share/gtk-doc/html/gio/gio.devhelp2 +#usr/share/gtk-doc/html/gio/glib-compile-resources.html +#usr/share/gtk-doc/html/gio/glib-compile-schemas.html +#usr/share/gtk-doc/html/gio/gresource-tool.html +#usr/share/gtk-doc/html/gio/gsettings-tool.html +#usr/share/gtk-doc/html/gio/gvfs-overview.png +#usr/share/gtk-doc/html/gio/highlevel-socket.html +#usr/share/gtk-doc/html/gio/home.png +#usr/share/gtk-doc/html/gio/icons.html +#usr/share/gtk-doc/html/gio/index.html +#usr/share/gtk-doc/html/gio/index.sgml +#usr/share/gtk-doc/html/gio/left.png +#usr/share/gtk-doc/html/gio/menu-example.png +#usr/share/gtk-doc/html/gio/menu-model.png +#usr/share/gtk-doc/html/gio/migrating.html +#usr/share/gtk-doc/html/gio/networking.html +#usr/share/gtk-doc/html/gio/permissions.html +#usr/share/gtk-doc/html/gio/pt01.html +#usr/share/gtk-doc/html/gio/pt02.html +#usr/share/gtk-doc/html/gio/resolver.html +#usr/share/gtk-doc/html/gio/resources.html +#usr/share/gtk-doc/html/gio/right.png +#usr/share/gtk-doc/html/gio/settings.html +#usr/share/gtk-doc/html/gio/streaming.html +#usr/share/gtk-doc/html/gio/style.css +#usr/share/gtk-doc/html/gio/tls.html +#usr/share/gtk-doc/html/gio/tools.html +#usr/share/gtk-doc/html/gio/types.html +#usr/share/gtk-doc/html/gio/up.png +#usr/share/gtk-doc/html/gio/utils.html +#usr/share/gtk-doc/html/gio/volume_mon.html +#usr/share/gtk-doc/html/glib +#usr/share/gtk-doc/html/glib/annotation-glossary.html +#usr/share/gtk-doc/html/glib/api-index-2-10.html +#usr/share/gtk-doc/html/glib/api-index-2-12.html +#usr/share/gtk-doc/html/glib/api-index-2-14.html +#usr/share/gtk-doc/html/glib/api-index-2-16.html +#usr/share/gtk-doc/html/glib/api-index-2-18.html +#usr/share/gtk-doc/html/glib/api-index-2-2.html +#usr/share/gtk-doc/html/glib/api-index-2-20.html +#usr/share/gtk-doc/html/glib/api-index-2-22.html +#usr/share/gtk-doc/html/glib/api-index-2-24.html +#usr/share/gtk-doc/html/glib/api-index-2-26.html +#usr/share/gtk-doc/html/glib/api-index-2-28.html +#usr/share/gtk-doc/html/glib/api-index-2-30.html +#usr/share/gtk-doc/html/glib/api-index-2-32.html +#usr/share/gtk-doc/html/glib/api-index-2-4.html +#usr/share/gtk-doc/html/glib/api-index-2-6.html +#usr/share/gtk-doc/html/glib/api-index-2-8.html +#usr/share/gtk-doc/html/glib/api-index-deprecated.html +#usr/share/gtk-doc/html/glib/api-index-full.html +#usr/share/gtk-doc/html/glib/deprecated.html +#usr/share/gtk-doc/html/glib/file-name-encodings.png +#usr/share/gtk-doc/html/glib/glib-Arrays.html +#usr/share/gtk-doc/html/glib/glib-Asynchronous-Queues.html +#usr/share/gtk-doc/html/glib/glib-Atomic-Operations.html +#usr/share/gtk-doc/html/glib/glib-Automatic-String-Completion.html +#usr/share/gtk-doc/html/glib/glib-Balanced-Binary-Trees.html +#usr/share/gtk-doc/html/glib/glib-Base64-Encoding.html +#usr/share/gtk-doc/html/glib/glib-Basic-Types.html +#usr/share/gtk-doc/html/glib/glib-Bookmark-file-parser.html +#usr/share/gtk-doc/html/glib/glib-Byte-Arrays.html +#usr/share/gtk-doc/html/glib/glib-Byte-Order-Macros.html +#usr/share/gtk-doc/html/glib/glib-Caches.html +#usr/share/gtk-doc/html/glib/glib-Character-Set-Conversion.html +#usr/share/gtk-doc/html/glib/glib-Commandline-option-parser.html +#usr/share/gtk-doc/html/glib/glib-Data-Checksums.html +#usr/share/gtk-doc/html/glib/glib-Data-HMACs.html +#usr/share/gtk-doc/html/glib/glib-Datasets.html +#usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html +#usr/share/gtk-doc/html/glib/glib-Deprecated-Thread-APIs.html +#usr/share/gtk-doc/html/glib/glib-Double-ended-Queues.html +#usr/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html +#usr/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.html +#usr/share/gtk-doc/html/glib/glib-Error-Reporting.html +#usr/share/gtk-doc/html/glib/glib-File-Utilities.html +#usr/share/gtk-doc/html/glib/glib-GDateTime.html +#usr/share/gtk-doc/html/glib/glib-GTimeZone.html +#usr/share/gtk-doc/html/glib/glib-GVariant.html +#usr/share/gtk-doc/html/glib/glib-GVariantType.html +#usr/share/gtk-doc/html/glib/glib-Glob-style-pattern-matching.html +#usr/share/gtk-doc/html/glib/glib-Hash-Tables.html +#usr/share/gtk-doc/html/glib/glib-Hook-Functions.html +#usr/share/gtk-doc/html/glib/glib-Hostname-Utilities.html +#usr/share/gtk-doc/html/glib/glib-I18N.html +#usr/share/gtk-doc/html/glib/glib-IO-Channels.html +#usr/share/gtk-doc/html/glib/glib-Key-value-file-parser.html +#usr/share/gtk-doc/html/glib/glib-Keyed-Data-Lists.html +#usr/share/gtk-doc/html/glib/glib-Lexical-Scanner.html +#usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html +#usr/share/gtk-doc/html/glib/glib-Memory-Slices.html +#usr/share/gtk-doc/html/glib/glib-Message-Logging.html +#usr/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html +#usr/share/gtk-doc/html/glib/glib-Miscellaneous-Utility-Functions.html +#usr/share/gtk-doc/html/glib/glib-N-ary-Trees.html +#usr/share/gtk-doc/html/glib/glib-Numerical-Definitions.html +#usr/share/gtk-doc/html/glib/glib-Perl-compatible-regular-expressions.html +#usr/share/gtk-doc/html/glib/glib-Pointer-Arrays.html +#usr/share/gtk-doc/html/glib/glib-Quarks.html +#usr/share/gtk-doc/html/glib/glib-Random-Numbers.html +#usr/share/gtk-doc/html/glib/glib-Relations-and-Tuples.html +#usr/share/gtk-doc/html/glib/glib-Sequences.html +#usr/share/gtk-doc/html/glib/glib-Shell-related-Utilities.html +#usr/share/gtk-doc/html/glib/glib-Simple-XML-Subset-Parser.html +#usr/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html +#usr/share/gtk-doc/html/glib/glib-Spawning-Processes.html +#usr/share/gtk-doc/html/glib/glib-Standard-Macros.html +#usr/share/gtk-doc/html/glib/glib-String-Chunks.html +#usr/share/gtk-doc/html/glib/glib-String-Utility-Functions.html +#usr/share/gtk-doc/html/glib/glib-Strings.html +#usr/share/gtk-doc/html/glib/glib-Testing.html +#usr/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html +#usr/share/gtk-doc/html/glib/glib-Thread-Pools.html +#usr/share/gtk-doc/html/glib/glib-Threads.html +#usr/share/gtk-doc/html/glib/glib-Timers.html +#usr/share/gtk-doc/html/glib/glib-Trash-Stacks.html +#usr/share/gtk-doc/html/glib/glib-Type-Conversion-Macros.html +#usr/share/gtk-doc/html/glib/glib-UNIX-specific-utilities-and-integration.html +#usr/share/gtk-doc/html/glib/glib-URI-Functions.html +#usr/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html +#usr/share/gtk-doc/html/glib/glib-Version-Information.html +#usr/share/gtk-doc/html/glib/glib-Warnings-and-Assertions.html +#usr/share/gtk-doc/html/glib/glib-Windows-Compatibility-Functions.html +#usr/share/gtk-doc/html/glib/glib-building.html +#usr/share/gtk-doc/html/glib/glib-changes.html +#usr/share/gtk-doc/html/glib/glib-compiling.html +#usr/share/gtk-doc/html/glib/glib-core.html +#usr/share/gtk-doc/html/glib/glib-cross-compiling.html +#usr/share/gtk-doc/html/glib/glib-data-types.html +#usr/share/gtk-doc/html/glib/glib-fundamentals.html +#usr/share/gtk-doc/html/glib/glib-gettextize.html +#usr/share/gtk-doc/html/glib/glib-regex-syntax.html +#usr/share/gtk-doc/html/glib/glib-resources.html +#usr/share/gtk-doc/html/glib/glib-running.html +#usr/share/gtk-doc/html/glib/glib-utilities.html +#usr/share/gtk-doc/html/glib/glib.devhelp2 +#usr/share/gtk-doc/html/glib/glib.html +#usr/share/gtk-doc/html/glib/gtester-report.html +#usr/share/gtk-doc/html/glib/gtester.html +#usr/share/gtk-doc/html/glib/gvariant-format-strings.html +#usr/share/gtk-doc/html/glib/gvariant-text.html +#usr/share/gtk-doc/html/glib/home.png +#usr/share/gtk-doc/html/glib/index.html +#usr/share/gtk-doc/html/glib/index.sgml +#usr/share/gtk-doc/html/glib/left.png +#usr/share/gtk-doc/html/glib/mainloop-states.gif +#usr/share/gtk-doc/html/glib/right.png +#usr/share/gtk-doc/html/glib/style.css +#usr/share/gtk-doc/html/glib/tools.html +#usr/share/gtk-doc/html/glib/up.png +#usr/share/gtk-doc/html/gobject +#usr/share/gtk-doc/html/gobject/GBinding.html +#usr/share/gtk-doc/html/gobject/GTypeModule.html +#usr/share/gtk-doc/html/gobject/GTypePlugin.html +#usr/share/gtk-doc/html/gobject/annotation-glossary.html +#usr/share/gtk-doc/html/gobject/api-index-2-10.html +#usr/share/gtk-doc/html/gobject/api-index-2-12.html +#usr/share/gtk-doc/html/gobject/api-index-2-14.html +#usr/share/gtk-doc/html/gobject/api-index-2-18.html +#usr/share/gtk-doc/html/gobject/api-index-2-2.html +#usr/share/gtk-doc/html/gobject/api-index-2-22.html +#usr/share/gtk-doc/html/gobject/api-index-2-24.html +#usr/share/gtk-doc/html/gobject/api-index-2-26.html +#usr/share/gtk-doc/html/gobject/api-index-2-28.html +#usr/share/gtk-doc/html/gobject/api-index-2-30.html +#usr/share/gtk-doc/html/gobject/api-index-2-32.html +#usr/share/gtk-doc/html/gobject/api-index-2-4.html +#usr/share/gtk-doc/html/gobject/api-index-2-6.html +#usr/share/gtk-doc/html/gobject/api-index-2-8.html +#usr/share/gtk-doc/html/gobject/api-index-deprecated.html +#usr/share/gtk-doc/html/gobject/api-index-full.html +#usr/share/gtk-doc/html/gobject/ch01s02.html +#usr/share/gtk-doc/html/gobject/ch06s03.html +#usr/share/gtk-doc/html/gobject/chapter-gobject.html +#usr/share/gtk-doc/html/gobject/chapter-gtype.html +#usr/share/gtk-doc/html/gobject/chapter-intro.html +#usr/share/gtk-doc/html/gobject/chapter-signal.html +#usr/share/gtk-doc/html/gobject/glib-genmarshal.html +#usr/share/gtk-doc/html/gobject/glib-mkenums.html +#usr/share/gtk-doc/html/gobject/glue.png +#usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html +#usr/share/gtk-doc/html/gobject/gobject-Closures.html +#usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html +#usr/share/gtk-doc/html/gobject/gobject-GParamSpec.html +#usr/share/gtk-doc/html/gobject/gobject-Generic-values.html +#usr/share/gtk-doc/html/gobject/gobject-Signals.html +#usr/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html +#usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html +#usr/share/gtk-doc/html/gobject/gobject-Type-Information.html +#usr/share/gtk-doc/html/gobject/gobject-Value-arrays.html +#usr/share/gtk-doc/html/gobject/gobject-Varargs-Value-Collection.html +#usr/share/gtk-doc/html/gobject/gobject-memory.html +#usr/share/gtk-doc/html/gobject/gobject-properties.html +#usr/share/gtk-doc/html/gobject/gobject-query.html +#usr/share/gtk-doc/html/gobject/gobject.devhelp2 +#usr/share/gtk-doc/html/gobject/gtype-conventions.html +#usr/share/gtk-doc/html/gobject/gtype-instantiable-classed.html +#usr/share/gtk-doc/html/gobject/gtype-non-instantiable-classed.html +#usr/share/gtk-doc/html/gobject/gtype-non-instantiable.html +#usr/share/gtk-doc/html/gobject/home.png +#usr/share/gtk-doc/html/gobject/howto-gobject-chainup.html +#usr/share/gtk-doc/html/gobject/howto-gobject-code.html +#usr/share/gtk-doc/html/gobject/howto-gobject-construction.html +#usr/share/gtk-doc/html/gobject/howto-gobject-destruction.html +#usr/share/gtk-doc/html/gobject/howto-gobject-methods.html +#usr/share/gtk-doc/html/gobject/howto-gobject.html +#usr/share/gtk-doc/html/gobject/howto-interface-implement.html +#usr/share/gtk-doc/html/gobject/howto-interface-properties.html +#usr/share/gtk-doc/html/gobject/howto-interface.html +#usr/share/gtk-doc/html/gobject/howto-signals.html +#usr/share/gtk-doc/html/gobject/index.html +#usr/share/gtk-doc/html/gobject/index.sgml +#usr/share/gtk-doc/html/gobject/left.png +#usr/share/gtk-doc/html/gobject/pr01.html +#usr/share/gtk-doc/html/gobject/pt01.html +#usr/share/gtk-doc/html/gobject/pt02.html +#usr/share/gtk-doc/html/gobject/pt03.html +#usr/share/gtk-doc/html/gobject/right.png +#usr/share/gtk-doc/html/gobject/rn01.html +#usr/share/gtk-doc/html/gobject/rn02.html +#usr/share/gtk-doc/html/gobject/signal.html +#usr/share/gtk-doc/html/gobject/style.css +#usr/share/gtk-doc/html/gobject/tools-ginspector.html +#usr/share/gtk-doc/html/gobject/tools-gob.html +#usr/share/gtk-doc/html/gobject/tools-gtkdoc.html +#usr/share/gtk-doc/html/gobject/tools-refdb.html +#usr/share/gtk-doc/html/gobject/tools-vala.html +#usr/share/gtk-doc/html/gobject/up.png +#usr/share/locale/af +#usr/share/locale/af/LC_MESSAGES +#usr/share/locale/af/LC_MESSAGES/glib20.mo +#usr/share/locale/am +#usr/share/locale/am/LC_MESSAGES +#usr/share/locale/am/LC_MESSAGES/glib20.mo +#usr/share/locale/ar +#usr/share/locale/ar/LC_MESSAGES +#usr/share/locale/ar/LC_MESSAGES/glib20.mo +#usr/share/locale/as +#usr/share/locale/as/LC_MESSAGES +#usr/share/locale/as/LC_MESSAGES/glib20.mo +#usr/share/locale/ast +#usr/share/locale/ast/LC_MESSAGES +#usr/share/locale/ast/LC_MESSAGES/glib20.mo +#usr/share/locale/az +#usr/share/locale/az/LC_MESSAGES +#usr/share/locale/az/LC_MESSAGES/glib20.mo +#usr/share/locale/be/LC_MESSAGES/glib20.mo +#usr/share/locale/be@latin +#usr/share/locale/be@latin/LC_MESSAGES +#usr/share/locale/be@latin/LC_MESSAGES/glib20.mo +#usr/share/locale/bg/LC_MESSAGES/glib20.mo +#usr/share/locale/bn +#usr/share/locale/bn/LC_MESSAGES +#usr/share/locale/bn/LC_MESSAGES/glib20.mo +#usr/share/locale/bn_IN +#usr/share/locale/bn_IN/LC_MESSAGES +#usr/share/locale/bn_IN/LC_MESSAGES/glib20.mo +#usr/share/locale/bs/LC_MESSAGES/glib20.mo +#usr/share/locale/ca/LC_MESSAGES/glib20.mo +#usr/share/locale/ca@valencia +#usr/share/locale/ca@valencia/LC_MESSAGES +#usr/share/locale/ca@valencia/LC_MESSAGES/glib20.mo +#usr/share/locale/cs/LC_MESSAGES/glib20.mo +#usr/share/locale/cy +#usr/share/locale/cy/LC_MESSAGES +#usr/share/locale/cy/LC_MESSAGES/glib20.mo +#usr/share/locale/da/LC_MESSAGES/glib20.mo +#usr/share/locale/de/LC_MESSAGES/glib20.mo +#usr/share/locale/dz +#usr/share/locale/dz/LC_MESSAGES +#usr/share/locale/dz/LC_MESSAGES/glib20.mo +#usr/share/locale/el/LC_MESSAGES/glib20.mo +#usr/share/locale/en@shaw +#usr/share/locale/en@shaw/LC_MESSAGES +#usr/share/locale/en@shaw/LC_MESSAGES/glib20.mo +#usr/share/locale/en_CA/LC_MESSAGES/glib20.mo +#usr/share/locale/en_GB/LC_MESSAGES/glib20.mo +#usr/share/locale/eo +#usr/share/locale/eo/LC_MESSAGES +#usr/share/locale/eo/LC_MESSAGES/glib20.mo +#usr/share/locale/es/LC_MESSAGES/glib20.mo +#usr/share/locale/et/LC_MESSAGES/glib20.mo +#usr/share/locale/eu +#usr/share/locale/eu/LC_MESSAGES +#usr/share/locale/eu/LC_MESSAGES/glib20.mo +#usr/share/locale/fa +#usr/share/locale/fa/LC_MESSAGES +#usr/share/locale/fa/LC_MESSAGES/glib20.mo +#usr/share/locale/fi/LC_MESSAGES/glib20.mo +#usr/share/locale/fr/LC_MESSAGES/glib20.mo +#usr/share/locale/ga/LC_MESSAGES/glib20.mo +#usr/share/locale/gl/LC_MESSAGES/glib20.mo +#usr/share/locale/gu +#usr/share/locale/gu/LC_MESSAGES +#usr/share/locale/gu/LC_MESSAGES/glib20.mo +#usr/share/locale/he +#usr/share/locale/he/LC_MESSAGES +#usr/share/locale/he/LC_MESSAGES/glib20.mo +#usr/share/locale/hi +#usr/share/locale/hi/LC_MESSAGES +#usr/share/locale/hi/LC_MESSAGES/glib20.mo +#usr/share/locale/hr/LC_MESSAGES/glib20.mo +#usr/share/locale/hu/LC_MESSAGES/glib20.mo +#usr/share/locale/hy +#usr/share/locale/hy/LC_MESSAGES +#usr/share/locale/hy/LC_MESSAGES/glib20.mo +#usr/share/locale/id/LC_MESSAGES/glib20.mo +#usr/share/locale/is +#usr/share/locale/is/LC_MESSAGES +#usr/share/locale/is/LC_MESSAGES/glib20.mo +#usr/share/locale/it/LC_MESSAGES/glib20.mo +#usr/share/locale/ja/LC_MESSAGES/glib20.mo +#usr/share/locale/ka +#usr/share/locale/ka/LC_MESSAGES +#usr/share/locale/ka/LC_MESSAGES/glib20.mo +#usr/share/locale/kk +#usr/share/locale/kk/LC_MESSAGES +#usr/share/locale/kk/LC_MESSAGES/glib20.mo +#usr/share/locale/kn +#usr/share/locale/kn/LC_MESSAGES +#usr/share/locale/kn/LC_MESSAGES/glib20.mo +#usr/share/locale/ko/LC_MESSAGES/glib20.mo +#usr/share/locale/ku +#usr/share/locale/ku/LC_MESSAGES +#usr/share/locale/ku/LC_MESSAGES/glib20.mo +#usr/share/locale/lt/LC_MESSAGES/glib20.mo +#usr/share/locale/lv +#usr/share/locale/lv/LC_MESSAGES +#usr/share/locale/lv/LC_MESSAGES/glib20.mo +#usr/share/locale/mai +#usr/share/locale/mai/LC_MESSAGES +#usr/share/locale/mai/LC_MESSAGES/glib20.mo +#usr/share/locale/mg +#usr/share/locale/mg/LC_MESSAGES +#usr/share/locale/mg/LC_MESSAGES/glib20.mo +#usr/share/locale/mk +#usr/share/locale/mk/LC_MESSAGES +#usr/share/locale/mk/LC_MESSAGES/glib20.mo +#usr/share/locale/ml +#usr/share/locale/ml/LC_MESSAGES +#usr/share/locale/ml/LC_MESSAGES/glib20.mo +#usr/share/locale/mn +#usr/share/locale/mn/LC_MESSAGES +#usr/share/locale/mn/LC_MESSAGES/glib20.mo +#usr/share/locale/mr +#usr/share/locale/mr/LC_MESSAGES +#usr/share/locale/mr/LC_MESSAGES/glib20.mo +#usr/share/locale/ms +#usr/share/locale/ms/LC_MESSAGES +#usr/share/locale/ms/LC_MESSAGES/glib20.mo +#usr/share/locale/nb/LC_MESSAGES/glib20.mo +#usr/share/locale/nds +#usr/share/locale/nds/LC_MESSAGES +#usr/share/locale/nds/LC_MESSAGES/glib20.mo +#usr/share/locale/ne +#usr/share/locale/ne/LC_MESSAGES +#usr/share/locale/ne/LC_MESSAGES/glib20.mo +#usr/share/locale/nl/LC_MESSAGES/glib20.mo +#usr/share/locale/nn +#usr/share/locale/nn/LC_MESSAGES +#usr/share/locale/nn/LC_MESSAGES/glib20.mo +#usr/share/locale/oc +#usr/share/locale/oc/LC_MESSAGES +#usr/share/locale/oc/LC_MESSAGES/glib20.mo +#usr/share/locale/or +#usr/share/locale/or/LC_MESSAGES +#usr/share/locale/or/LC_MESSAGES/glib20.mo +#usr/share/locale/pa +#usr/share/locale/pa/LC_MESSAGES +#usr/share/locale/pa/LC_MESSAGES/glib20.mo +#usr/share/locale/pl/LC_MESSAGES/glib20.mo +#usr/share/locale/ps +#usr/share/locale/ps/LC_MESSAGES +#usr/share/locale/ps/LC_MESSAGES/glib20.mo +#usr/share/locale/pt/LC_MESSAGES/glib20.mo +#usr/share/locale/pt_BR/LC_MESSAGES/glib20.mo +#usr/share/locale/ro/LC_MESSAGES/glib20.mo +#usr/share/locale/ru/LC_MESSAGES/glib20.mo +#usr/share/locale/rw/LC_MESSAGES/glib20.mo +#usr/share/locale/si +#usr/share/locale/si/LC_MESSAGES +#usr/share/locale/si/LC_MESSAGES/glib20.mo +#usr/share/locale/sk/LC_MESSAGES/glib20.mo +#usr/share/locale/sl/LC_MESSAGES/glib20.mo +#usr/share/locale/sq/LC_MESSAGES/glib20.mo +#usr/share/locale/sr/LC_MESSAGES/glib20.mo +#usr/share/locale/sr@ije +#usr/share/locale/sr@ije/LC_MESSAGES +#usr/share/locale/sr@ije/LC_MESSAGES/glib20.mo +#usr/share/locale/sr@latin +#usr/share/locale/sr@latin/LC_MESSAGES +#usr/share/locale/sr@latin/LC_MESSAGES/glib20.mo +#usr/share/locale/sv/LC_MESSAGES/glib20.mo +#usr/share/locale/ta +#usr/share/locale/ta/LC_MESSAGES +#usr/share/locale/ta/LC_MESSAGES/glib20.mo +#usr/share/locale/te +#usr/share/locale/te/LC_MESSAGES +#usr/share/locale/te/LC_MESSAGES/glib20.mo +#usr/share/locale/th +#usr/share/locale/th/LC_MESSAGES +#usr/share/locale/th/LC_MESSAGES/glib20.mo +#usr/share/locale/tl +#usr/share/locale/tl/LC_MESSAGES +#usr/share/locale/tl/LC_MESSAGES/glib20.mo +#usr/share/locale/tr/LC_MESSAGES/glib20.mo +#usr/share/locale/tt +#usr/share/locale/tt/LC_MESSAGES +#usr/share/locale/tt/LC_MESSAGES/glib20.mo +#usr/share/locale/ug +#usr/share/locale/ug/LC_MESSAGES +#usr/share/locale/ug/LC_MESSAGES/glib20.mo +#usr/share/locale/uk/LC_MESSAGES/glib20.mo +#usr/share/locale/vi/LC_MESSAGES/glib20.mo +#usr/share/locale/wa +#usr/share/locale/wa/LC_MESSAGES +#usr/share/locale/wa/LC_MESSAGES/glib20.mo +#usr/share/locale/xh +#usr/share/locale/xh/LC_MESSAGES +#usr/share/locale/xh/LC_MESSAGES/glib20.mo +#usr/share/locale/yi +#usr/share/locale/yi/LC_MESSAGES +#usr/share/locale/yi/LC_MESSAGES/glib20.mo +#usr/share/locale/zh_CN/LC_MESSAGES/glib20.mo +#usr/share/locale/zh_HK +#usr/share/locale/zh_HK/LC_MESSAGES +#usr/share/locale/zh_HK/LC_MESSAGES/glib20.mo +#usr/share/locale/zh_TW/LC_MESSAGES/glib20.mo +#usr/share/man/man1/gdbus-codegen.1 +#usr/share/man/man1/gdbus.1 +#usr/share/man/man1/gio-querymodules.1 +#usr/share/man/man1/glib-compile-resources.1 +#usr/share/man/man1/glib-compile-schemas.1 +#usr/share/man/man1/glib-genmarshal.1 +#usr/share/man/man1/glib-gettextize.1 +#usr/share/man/man1/glib-mkenums.1 +#usr/share/man/man1/gobject-query.1 +#usr/share/man/man1/gresource.1 +#usr/share/man/man1/gsettings.1 +#usr/share/man/man1/gtester-report.1 +#usr/share/man/man1/gtester.1 diff --git a/config/rootfiles/common/gmp b/config/rootfiles/common/gmp index 669d191..67f557f 100644 --- a/config/rootfiles/common/gmp +++ b/config/rootfiles/common/gmp @@ -1,21 +1,21 @@ #usr/include/gmp.h #usr/include/gmpxx.h #usr/include/mp.h -#usr/info/gmp.info -#usr/info/gmp.info-1 -#usr/info/gmp.info-2 #usr/lib/libgmp.a #usr/lib/libgmp.la -usr/lib/libgmp.so -usr/lib/libgmp.so.3 -usr/lib/libgmp.so.3.4.4 +#usr/lib/libgmp.so +usr/lib/libgmp.so.10 +usr/lib/libgmp.so.10.0.5 #usr/lib/libgmpxx.a #usr/lib/libgmpxx.la #usr/lib/libgmpxx.so -#usr/lib/libgmpxx.so.4 -#usr/lib/libgmpxx.so.4.0.4 +usr/lib/libgmpxx.so.4 +usr/lib/libgmpxx.so.4.2.5 #usr/lib/libmp.a #usr/lib/libmp.la #usr/lib/libmp.so -#usr/lib/libmp.so.3 -#usr/lib/libmp.so.3.1.13 +usr/lib/libmp.so.3 +usr/lib/libmp.so.3.1.25 +#usr/share/info/gmp.info +#usr/share/info/gmp.info-1 +#usr/share/info/gmp.info-2 diff --git a/config/rootfiles/common/gmp-compat b/config/rootfiles/common/gmp-compat new file mode 100644 index 0000000..a4b82f2 --- /dev/null +++ b/config/rootfiles/common/gmp-compat @@ -0,0 +1,2 @@ +usr/lib/libgmp.so.3 +usr/lib/libgmp.so.3.5.2 diff --git a/config/rootfiles/common/gnupg b/config/rootfiles/common/gnupg index 616ed05..9aecc41 100644 --- a/config/rootfiles/common/gnupg +++ b/config/rootfiles/common/gnupg @@ -2,18 +2,17 @@ usr/bin/gpg #usr/bin/gpg-zip #usr/bin/gpgsplit #usr/bin/gpgv -#usr/info/gpg.info -#usr/info/gpgv.info #usr/lib/gnupg usr/lib/gnupg/gpgkeys_curl usr/lib/gnupg/gpgkeys_finger usr/lib/gnupg/gpgkeys_hkp usr/lib/gnupg/gpgkeys_ldap -#usr/man/man1/gpg.1 -#usr/man/man1/gpg.ru.1 -#usr/man/man1/gpgv.1 -#usr/man/man7/gnupg.7 #usr/share/gnupg #usr/share/gnupg/FAQ -#usr/share/gnupg/faq.html #usr/share/gnupg/options.skel +#usr/share/info/gnupg1.info +#usr/share/man/man1/gpg-zip.1 +#usr/share/man/man1/gpg.1 +#usr/share/man/man1/gpg.ru.1 +#usr/share/man/man1/gpgv.1 +#usr/share/man/man7/gnupg.7 diff --git a/config/rootfiles/common/grep b/config/rootfiles/common/grep index 5d5db68..a00737d 100644 --- a/config/rootfiles/common/grep +++ b/config/rootfiles/common/grep @@ -1,7 +1,7 @@ bin/egrep bin/fgrep bin/grep -#usr/info/grep.info -#usr/man/man1/egrep.1 -#usr/man/man1/fgrep.1 -#usr/man/man1/grep.1 +#usr/share/info/grep.info +#usr/share/man/man1/egrep.1 +#usr/share/man/man1/fgrep.1 +#usr/share/man/man1/grep.1 diff --git a/config/rootfiles/common/hddtemp b/config/rootfiles/common/hddtemp deleted file mode 100644 index bc4c8d7..0000000 --- a/config/rootfiles/common/hddtemp +++ /dev/null @@ -1,4 +0,0 @@ -#usr/man/man8/hddtemp.8 -usr/sbin/hddtemp -#usr/share/locale/fr/LC_MESSAGES/hddtemp.mo -#usr/share/locale/ru/LC_MESSAGES/hddtemp.mo diff --git a/config/rootfiles/common/i586/acpid b/config/rootfiles/common/i586/acpid new file mode 100644 index 0000000..535e2bd --- /dev/null +++ b/config/rootfiles/common/i586/acpid @@ -0,0 +1,17 @@ +etc/acpi +etc/acpi/actions +etc/acpi/actions/power.sh +etc/acpi/events +etc/acpi/events/power +usr/bin/acpi_listen +usr/sbin/acpid +#usr/sbin/kacpimon +#usr/share/doc/acpid +#usr/share/doc/acpid/COPYING +#usr/share/doc/acpid/Changelog +#usr/share/doc/acpid/README +#usr/share/doc/acpid/TESTPLAN +#usr/share/doc/acpid/TODO +#usr/share/man/man8/acpi_listen.8 +#usr/share/man/man8/acpid.8 +#usr/share/man/man8/kacpimon.8 diff --git a/config/rootfiles/common/i586/binutils b/config/rootfiles/common/i586/binutils index 0cd5af9..48f20e9 100644 --- a/config/rootfiles/common/i586/binutils +++ b/config/rootfiles/common/i586/binutils @@ -2,8 +2,10 @@ #usr/bin/ar #usr/bin/as #usr/bin/c++filt +#usr/bin/elfedit #usr/bin/gprof #usr/bin/ld +#usr/bin/ld.bfd #usr/bin/nm #usr/bin/objcopy #usr/bin/objdump @@ -18,14 +20,20 @@ #usr/include/dis-asm.h #usr/include/libiberty.h #usr/include/symcat.h -#usr/info/as.info -#usr/info/bfd.info -#usr/info/binutils.info -#usr/info/configure.info -#usr/info/gprof.info -#usr/info/ld.info -#usr/info/standards.info #usr/lib/ldscripts +#usr/lib/ldscripts/elf32_x86_64.x +#usr/lib/ldscripts/elf32_x86_64.xbn +#usr/lib/ldscripts/elf32_x86_64.xc +#usr/lib/ldscripts/elf32_x86_64.xd +#usr/lib/ldscripts/elf32_x86_64.xdc +#usr/lib/ldscripts/elf32_x86_64.xdw +#usr/lib/ldscripts/elf32_x86_64.xn +#usr/lib/ldscripts/elf32_x86_64.xr +#usr/lib/ldscripts/elf32_x86_64.xs +#usr/lib/ldscripts/elf32_x86_64.xsc +#usr/lib/ldscripts/elf32_x86_64.xsw +#usr/lib/ldscripts/elf32_x86_64.xu +#usr/lib/ldscripts/elf32_x86_64.xw #usr/lib/ldscripts/elf_i386.x #usr/lib/ldscripts/elf_i386.xbn #usr/lib/ldscripts/elf_i386.xc @@ -44,32 +52,38 @@ #usr/lib/ldscripts/i386linux.xn #usr/lib/ldscripts/i386linux.xr #usr/lib/ldscripts/i386linux.xu -#usr/lib/libbfd-2.18.so +usr/lib/libbfd-2.22.so #usr/lib/libbfd.a #usr/lib/libbfd.la #usr/lib/libbfd.so #usr/lib/libiberty.a -#usr/lib/libopcodes-2.18.so +usr/lib/libopcodes-2.22.so #usr/lib/libopcodes.a #usr/lib/libopcodes.la #usr/lib/libopcodes.so -#usr/man -#usr/man/man1 -#usr/man/man1/addr2line.1 -#usr/man/man1/ar.1 -#usr/man/man1/as.1 -#usr/man/man1/c++filt.1 -#usr/man/man1/dlltool.1 -#usr/man/man1/gprof.1 -#usr/man/man1/ld.1 -#usr/man/man1/nlmconv.1 -#usr/man/man1/nm.1 -#usr/man/man1/objcopy.1 -#usr/man/man1/objdump.1 -#usr/man/man1/ranlib.1 -#usr/man/man1/readelf.1 -#usr/man/man1/size.1 -#usr/man/man1/strings.1 -#usr/man/man1/strip.1 -#usr/man/man1/windmc.1 -#usr/man/man1/windres.1 +#usr/share/info/as.info +#usr/share/info/bfd.info +#usr/share/info/binutils.info +#usr/share/info/configure.info +#usr/share/info/gprof.info +#usr/share/info/ld.info +#usr/share/info/standards.info +#usr/share/man/man1/addr2line.1 +#usr/share/man/man1/ar.1 +#usr/share/man/man1/as.1 +#usr/share/man/man1/c++filt.1 +#usr/share/man/man1/dlltool.1 +#usr/share/man/man1/elfedit.1 +#usr/share/man/man1/gprof.1 +#usr/share/man/man1/ld.1 +#usr/share/man/man1/nlmconv.1 +#usr/share/man/man1/nm.1 +#usr/share/man/man1/objcopy.1 +#usr/share/man/man1/objdump.1 +#usr/share/man/man1/ranlib.1 +#usr/share/man/man1/readelf.1 +#usr/share/man/man1/size.1 +#usr/share/man/man1/strings.1 +#usr/share/man/man1/strip.1 +#usr/share/man/man1/windmc.1 +#usr/share/man/man1/windres.1 diff --git a/config/rootfiles/common/i586/dracut b/config/rootfiles/common/i586/dracut new file mode 100644 index 0000000..cb57182 --- /dev/null +++ b/config/rootfiles/common/i586/dracut @@ -0,0 +1,62 @@ +#boot/ipfirerd-KVER.img +etc/dracut.conf +etc/dracut.conf.d +#etc/dracut.conf.d/dracut.conf +sbin/dracut +sbin/dracut-catimages +sbin/dracut-gencmdline +sbin/lsinitrd +sbin/mkinitrd +sbin/switch_root +usr/share/dracut +usr/share/dracut/dracut-functions +usr/share/dracut/modules.d +usr/share/dracut/modules.d/60xen +usr/share/dracut/modules.d/60xen/check +usr/share/dracut/modules.d/60xen/install +usr/share/dracut/modules.d/60xen/installkernel +usr/share/dracut/modules.d/60xen/xen-pre-udev.sh +usr/share/dracut/modules.d/90kernel-modules +usr/share/dracut/modules.d/90kernel-modules/install +usr/share/dracut/modules.d/90kernel-modules/installkernel +usr/share/dracut/modules.d/90kernel-modules/parse-kernel.sh +usr/share/dracut/modules.d/95debug +usr/share/dracut/modules.d/95debug/check +usr/share/dracut/modules.d/95debug/install +usr/share/dracut/modules.d/95rootfs-block +usr/share/dracut/modules.d/95rootfs-block/block-genrules.sh +usr/share/dracut/modules.d/95rootfs-block/install +usr/share/dracut/modules.d/95rootfs-block/mount-root.sh +usr/share/dracut/modules.d/95rootfs-block/parse-block.sh +usr/share/dracut/modules.d/95terminfo +usr/share/dracut/modules.d/95terminfo/install +usr/share/dracut/modules.d/95udev-rules +usr/share/dracut/modules.d/95udev-rules/01-ignore.rules +usr/share/dracut/modules.d/95udev-rules/59-persistent-storage-volid.rules +usr/share/dracut/modules.d/95udev-rules/59-persistent-storage.rules +usr/share/dracut/modules.d/95udev-rules/61-persistent-storage.rules +usr/share/dracut/modules.d/95udev-rules/install +usr/share/dracut/modules.d/95udev-rules/load-modules.sh +usr/share/dracut/modules.d/98syslog +usr/share/dracut/modules.d/98syslog/README +usr/share/dracut/modules.d/98syslog/check +usr/share/dracut/modules.d/98syslog/install +usr/share/dracut/modules.d/98syslog/parse-syslog-opts.sh +usr/share/dracut/modules.d/98syslog/rsyslog.conf +usr/share/dracut/modules.d/98syslog/rsyslogd-start.sh +usr/share/dracut/modules.d/98syslog/rsyslogd-stop.sh +usr/share/dracut/modules.d/98syslog/syslog-cleanup.sh +usr/share/dracut/modules.d/98syslog/syslog-genrules.sh +usr/share/dracut/modules.d/99base +usr/share/dracut/modules.d/99base/check +usr/share/dracut/modules.d/99base/dracut-lib.sh +usr/share/dracut/modules.d/99base/init +usr/share/dracut/modules.d/99base/initqueue +usr/share/dracut/modules.d/99base/install +usr/share/dracut/modules.d/99base/loginit +usr/share/dracut/modules.d/99base/parse-blacklist.sh +usr/share/dracut/modules.d/99base/parse-root-opts.sh +#usr/share/man/man5/dracut.conf.5 +#usr/share/man/man8/dracut-catimages.8 +#usr/share/man/man8/dracut-gencmdline.8 +#usr/share/man/man8/dracut.8 diff --git a/config/rootfiles/common/i586/gcc b/config/rootfiles/common/i586/gcc index cde9e4f..10c712a 100644 --- a/config/rootfiles/common/i586/gcc +++ b/config/rootfiles/common/i586/gcc @@ -9,581 +9,788 @@ #usr/bin/i586-pc-linux-gnu-c++ #usr/bin/i586-pc-linux-gnu-g++ #usr/bin/i586-pc-linux-gnu-gcc -#usr/bin/i586-pc-linux-gnu-gcc-4.1.2 +#usr/bin/i586-pc-linux-gnu-gcc-4.4.7 #usr/include/c++ -#usr/include/c++/4.1.2 -#usr/include/c++/4.1.2/algorithm -#usr/include/c++/4.1.2/backward -#usr/include/c++/4.1.2/backward/algo.h -#usr/include/c++/4.1.2/backward/algobase.h -#usr/include/c++/4.1.2/backward/alloc.h -#usr/include/c++/4.1.2/backward/backward_warning.h -#usr/include/c++/4.1.2/backward/bvector.h -#usr/include/c++/4.1.2/backward/complex.h -#usr/include/c++/4.1.2/backward/defalloc.h -#usr/include/c++/4.1.2/backward/deque.h -#usr/include/c++/4.1.2/backward/fstream.h -#usr/include/c++/4.1.2/backward/function.h -#usr/include/c++/4.1.2/backward/hash_map.h -#usr/include/c++/4.1.2/backward/hash_set.h -#usr/include/c++/4.1.2/backward/hashtable.h -#usr/include/c++/4.1.2/backward/heap.h -#usr/include/c++/4.1.2/backward/iomanip.h -#usr/include/c++/4.1.2/backward/iostream.h -#usr/include/c++/4.1.2/backward/istream.h -#usr/include/c++/4.1.2/backward/iterator.h -#usr/include/c++/4.1.2/backward/list.h -#usr/include/c++/4.1.2/backward/map.h -#usr/include/c++/4.1.2/backward/multimap.h -#usr/include/c++/4.1.2/backward/multiset.h -#usr/include/c++/4.1.2/backward/new.h -#usr/include/c++/4.1.2/backward/ostream.h -#usr/include/c++/4.1.2/backward/pair.h -#usr/include/c++/4.1.2/backward/queue.h -#usr/include/c++/4.1.2/backward/rope.h -#usr/include/c++/4.1.2/backward/set.h -#usr/include/c++/4.1.2/backward/slist.h -#usr/include/c++/4.1.2/backward/stack.h -#usr/include/c++/4.1.2/backward/stream.h -#usr/include/c++/4.1.2/backward/streambuf.h -#usr/include/c++/4.1.2/backward/strstream -#usr/include/c++/4.1.2/backward/tempbuf.h -#usr/include/c++/4.1.2/backward/tree.h -#usr/include/c++/4.1.2/backward/vector.h -#usr/include/c++/4.1.2/bits -#usr/include/c++/4.1.2/bits/allocator.h -#usr/include/c++/4.1.2/bits/atomicity.h -#usr/include/c++/4.1.2/bits/basic_ios.h -#usr/include/c++/4.1.2/bits/basic_ios.tcc -#usr/include/c++/4.1.2/bits/basic_string.h -#usr/include/c++/4.1.2/bits/basic_string.tcc -#usr/include/c++/4.1.2/bits/boost_concept_check.h -#usr/include/c++/4.1.2/bits/char_traits.h -#usr/include/c++/4.1.2/bits/cmath.tcc -#usr/include/c++/4.1.2/bits/codecvt.h -#usr/include/c++/4.1.2/bits/concept_check.h -#usr/include/c++/4.1.2/bits/concurrence.h -#usr/include/c++/4.1.2/bits/cpp_type_traits.h -#usr/include/c++/4.1.2/bits/deque.tcc -#usr/include/c++/4.1.2/bits/fstream.tcc -#usr/include/c++/4.1.2/bits/functexcept.h -#usr/include/c++/4.1.2/bits/gslice.h -#usr/include/c++/4.1.2/bits/gslice_array.h -#usr/include/c++/4.1.2/bits/indirect_array.h -#usr/include/c++/4.1.2/bits/ios_base.h -#usr/include/c++/4.1.2/bits/istream.tcc -#usr/include/c++/4.1.2/bits/list.tcc -#usr/include/c++/4.1.2/bits/locale_classes.h -#usr/include/c++/4.1.2/bits/locale_facets.h -#usr/include/c++/4.1.2/bits/locale_facets.tcc -#usr/include/c++/4.1.2/bits/localefwd.h -#usr/include/c++/4.1.2/bits/mask_array.h -#usr/include/c++/4.1.2/bits/ostream.tcc -#usr/include/c++/4.1.2/bits/postypes.h -#usr/include/c++/4.1.2/bits/slice_array.h -#usr/include/c++/4.1.2/bits/sstream.tcc -#usr/include/c++/4.1.2/bits/stl_algo.h -#usr/include/c++/4.1.2/bits/stl_algobase.h -#usr/include/c++/4.1.2/bits/stl_bvector.h -#usr/include/c++/4.1.2/bits/stl_construct.h -#usr/include/c++/4.1.2/bits/stl_deque.h -#usr/include/c++/4.1.2/bits/stl_function.h -#usr/include/c++/4.1.2/bits/stl_heap.h -#usr/include/c++/4.1.2/bits/stl_iterator.h -#usr/include/c++/4.1.2/bits/stl_iterator_base_funcs.h -#usr/include/c++/4.1.2/bits/stl_iterator_base_types.h -#usr/include/c++/4.1.2/bits/stl_list.h -#usr/include/c++/4.1.2/bits/stl_map.h -#usr/include/c++/4.1.2/bits/stl_multimap.h -#usr/include/c++/4.1.2/bits/stl_multiset.h -#usr/include/c++/4.1.2/bits/stl_numeric.h -#usr/include/c++/4.1.2/bits/stl_pair.h -#usr/include/c++/4.1.2/bits/stl_queue.h -#usr/include/c++/4.1.2/bits/stl_raw_storage_iter.h -#usr/include/c++/4.1.2/bits/stl_relops.h -#usr/include/c++/4.1.2/bits/stl_set.h -#usr/include/c++/4.1.2/bits/stl_stack.h -#usr/include/c++/4.1.2/bits/stl_tempbuf.h -#usr/include/c++/4.1.2/bits/stl_tree.h -#usr/include/c++/4.1.2/bits/stl_uninitialized.h -#usr/include/c++/4.1.2/bits/stl_vector.h -#usr/include/c++/4.1.2/bits/stream_iterator.h -#usr/include/c++/4.1.2/bits/streambuf.tcc -#usr/include/c++/4.1.2/bits/streambuf_iterator.h -#usr/include/c++/4.1.2/bits/stringfwd.h -#usr/include/c++/4.1.2/bits/valarray_after.h -#usr/include/c++/4.1.2/bits/valarray_array.h -#usr/include/c++/4.1.2/bits/valarray_array.tcc -#usr/include/c++/4.1.2/bits/valarray_before.h -#usr/include/c++/4.1.2/bits/vector.tcc -#usr/include/c++/4.1.2/bitset -#usr/include/c++/4.1.2/cassert -#usr/include/c++/4.1.2/cctype -#usr/include/c++/4.1.2/cerrno -#usr/include/c++/4.1.2/cfloat -#usr/include/c++/4.1.2/ciso646 -#usr/include/c++/4.1.2/climits -#usr/include/c++/4.1.2/clocale -#usr/include/c++/4.1.2/cmath -#usr/include/c++/4.1.2/complex -#usr/include/c++/4.1.2/csetjmp -#usr/include/c++/4.1.2/csignal -#usr/include/c++/4.1.2/cstdarg -#usr/include/c++/4.1.2/cstddef -#usr/include/c++/4.1.2/cstdio -#usr/include/c++/4.1.2/cstdlib -#usr/include/c++/4.1.2/cstring -#usr/include/c++/4.1.2/ctime -#usr/include/c++/4.1.2/cwchar -#usr/include/c++/4.1.2/cwctype -#usr/include/c++/4.1.2/cxxabi.h -#usr/include/c++/4.1.2/debug -#usr/include/c++/4.1.2/debug/bitset -#usr/include/c++/4.1.2/debug/debug.h -#usr/include/c++/4.1.2/debug/deque -#usr/include/c++/4.1.2/debug/formatter.h -#usr/include/c++/4.1.2/debug/functions.h -#usr/include/c++/4.1.2/debug/hash_map -#usr/include/c++/4.1.2/debug/hash_map.h -#usr/include/c++/4.1.2/debug/hash_multimap.h -#usr/include/c++/4.1.2/debug/hash_multiset.h -#usr/include/c++/4.1.2/debug/hash_set -#usr/include/c++/4.1.2/debug/hash_set.h -#usr/include/c++/4.1.2/debug/list -#usr/include/c++/4.1.2/debug/macros.h -#usr/include/c++/4.1.2/debug/map -#usr/include/c++/4.1.2/debug/map.h -#usr/include/c++/4.1.2/debug/multimap.h -#usr/include/c++/4.1.2/debug/multiset.h -#usr/include/c++/4.1.2/debug/safe_base.h -#usr/include/c++/4.1.2/debug/safe_iterator.h -#usr/include/c++/4.1.2/debug/safe_iterator.tcc -#usr/include/c++/4.1.2/debug/safe_sequence.h -#usr/include/c++/4.1.2/debug/set -#usr/include/c++/4.1.2/debug/set.h -#usr/include/c++/4.1.2/debug/string -#usr/include/c++/4.1.2/debug/vector -#usr/include/c++/4.1.2/deque -#usr/include/c++/4.1.2/exception -#usr/include/c++/4.1.2/exception_defines.h -#usr/include/c++/4.1.2/ext -#usr/include/c++/4.1.2/ext/algorithm -#usr/include/c++/4.1.2/ext/array_allocator.h -#usr/include/c++/4.1.2/ext/bitmap_allocator.h -#usr/include/c++/4.1.2/ext/codecvt_specializations.h -#usr/include/c++/4.1.2/ext/debug_allocator.h -#usr/include/c++/4.1.2/ext/functional -#usr/include/c++/4.1.2/ext/hash_fun.h -#usr/include/c++/4.1.2/ext/hash_map -#usr/include/c++/4.1.2/ext/hash_set -#usr/include/c++/4.1.2/ext/hashtable.h -#usr/include/c++/4.1.2/ext/iterator -#usr/include/c++/4.1.2/ext/malloc_allocator.h -#usr/include/c++/4.1.2/ext/memory -#usr/include/c++/4.1.2/ext/mt_allocator.h -#usr/include/c++/4.1.2/ext/new_allocator.h -#usr/include/c++/4.1.2/ext/numeric -#usr/include/c++/4.1.2/ext/pb_assoc -#usr/include/c++/4.1.2/ext/pb_assoc/assoc_cntnr.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/data_type.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail -#usr/include/c++/4.1.2/ext/pb_assoc/detail/assoc_cntnr_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cond_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ds_trait_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_types_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/lu_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/map_debug_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/mapping_level_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_category_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_trait_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/order_statistics_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/node.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/size_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/node.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_policies.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_sizes.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/type_utils.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_append.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_apply.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_at_index.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_contains.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_filter.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_transform.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/types_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/ds_trait.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/exception.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/hash_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/lu_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/ms_trait.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/tree_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/trivial_iterator_def.hpp -#usr/include/c++/4.1.2/ext/pod_char_traits.h -#usr/include/c++/4.1.2/ext/pool_allocator.h -#usr/include/c++/4.1.2/ext/rb_tree -#usr/include/c++/4.1.2/ext/rc_string_base.h -#usr/include/c++/4.1.2/ext/rope -#usr/include/c++/4.1.2/ext/ropeimpl.h -#usr/include/c++/4.1.2/ext/slist -#usr/include/c++/4.1.2/ext/sso_string_base.h -#usr/include/c++/4.1.2/ext/stdio_filebuf.h -#usr/include/c++/4.1.2/ext/stdio_sync_filebuf.h -#usr/include/c++/4.1.2/ext/typelist.h -#usr/include/c++/4.1.2/ext/vstring.h -#usr/include/c++/4.1.2/ext/vstring.tcc -#usr/include/c++/4.1.2/ext/vstring_fwd.h -#usr/include/c++/4.1.2/ext/vstring_util.h -#usr/include/c++/4.1.2/fstream -#usr/include/c++/4.1.2/functional -#usr/include/c++/4.1.2/i586-pc-linux-gnu -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/atomic_word.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/basic_file.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++allocator.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++config.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++io.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++locale.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/cpu_defines.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_base.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_inline.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_noninline.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/cxxabi_tweaks.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-default.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-posix.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-single.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-tpf.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/messages_members.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/os_defines.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch/O0g.gch -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch/O2g.gch -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/time_members.h -#usr/include/c++/4.1.2/iomanip -#usr/include/c++/4.1.2/ios -#usr/include/c++/4.1.2/iosfwd -#usr/include/c++/4.1.2/iostream -#usr/include/c++/4.1.2/istream -#usr/include/c++/4.1.2/iterator -#usr/include/c++/4.1.2/limits -#usr/include/c++/4.1.2/list -#usr/include/c++/4.1.2/locale -#usr/include/c++/4.1.2/map -#usr/include/c++/4.1.2/memory -#usr/include/c++/4.1.2/new -#usr/include/c++/4.1.2/numeric -#usr/include/c++/4.1.2/ostream -#usr/include/c++/4.1.2/queue -#usr/include/c++/4.1.2/set -#usr/include/c++/4.1.2/sstream -#usr/include/c++/4.1.2/stack -#usr/include/c++/4.1.2/stdexcept -#usr/include/c++/4.1.2/streambuf -#usr/include/c++/4.1.2/string -#usr/include/c++/4.1.2/tr1 -#usr/include/c++/4.1.2/tr1/array -#usr/include/c++/4.1.2/tr1/bind_iterate.h -#usr/include/c++/4.1.2/tr1/bind_repeat.h -#usr/include/c++/4.1.2/tr1/boost_shared_ptr.h -#usr/include/c++/4.1.2/tr1/functional -#usr/include/c++/4.1.2/tr1/functional_iterate.h -#usr/include/c++/4.1.2/tr1/hashtable -#usr/include/c++/4.1.2/tr1/memory -#usr/include/c++/4.1.2/tr1/mu_iterate.h -#usr/include/c++/4.1.2/tr1/ref_fwd.h -#usr/include/c++/4.1.2/tr1/ref_wrap_iterate.h -#usr/include/c++/4.1.2/tr1/repeat.h -#usr/include/c++/4.1.2/tr1/tuple -#usr/include/c++/4.1.2/tr1/tuple_iterate.h -#usr/include/c++/4.1.2/tr1/type_traits -#usr/include/c++/4.1.2/tr1/type_traits_fwd.h -#usr/include/c++/4.1.2/tr1/unordered_map -#usr/include/c++/4.1.2/tr1/unordered_set -#usr/include/c++/4.1.2/tr1/utility -#usr/include/c++/4.1.2/typeinfo -#usr/include/c++/4.1.2/utility -#usr/include/c++/4.1.2/valarray -#usr/include/c++/4.1.2/vector -#usr/include/mf-runtime.h +#usr/include/c++/4.4.7 +#usr/include/c++/4.4.7/algorithm +#usr/include/c++/4.4.7/array +#usr/include/c++/4.4.7/backward +#usr/include/c++/4.4.7/backward/auto_ptr.h +#usr/include/c++/4.4.7/backward/backward_warning.h +#usr/include/c++/4.4.7/backward/binders.h +#usr/include/c++/4.4.7/backward/hash_fun.h +#usr/include/c++/4.4.7/backward/hash_map +#usr/include/c++/4.4.7/backward/hash_set +#usr/include/c++/4.4.7/backward/hashtable.h +#usr/include/c++/4.4.7/backward/strstream +#usr/include/c++/4.4.7/bits +#usr/include/c++/4.4.7/bits/algorithmfwd.h +#usr/include/c++/4.4.7/bits/allocator.h +#usr/include/c++/4.4.7/bits/atomic_0.h +#usr/include/c++/4.4.7/bits/atomic_2.h +#usr/include/c++/4.4.7/bits/atomicfwd_c.h +#usr/include/c++/4.4.7/bits/atomicfwd_cxx.h +#usr/include/c++/4.4.7/bits/basic_ios.h +#usr/include/c++/4.4.7/bits/basic_ios.tcc +#usr/include/c++/4.4.7/bits/basic_string.h +#usr/include/c++/4.4.7/bits/basic_string.tcc +#usr/include/c++/4.4.7/bits/boost_concept_check.h +#usr/include/c++/4.4.7/bits/char_traits.h +#usr/include/c++/4.4.7/bits/cmath.tcc +#usr/include/c++/4.4.7/bits/codecvt.h +#usr/include/c++/4.4.7/bits/concept_check.h +#usr/include/c++/4.4.7/bits/cpp_type_traits.h +#usr/include/c++/4.4.7/bits/deque.tcc +#usr/include/c++/4.4.7/bits/forward_list.h +#usr/include/c++/4.4.7/bits/forward_list.tcc +#usr/include/c++/4.4.7/bits/fstream.tcc +#usr/include/c++/4.4.7/bits/functexcept.h +#usr/include/c++/4.4.7/bits/functional_hash.h +#usr/include/c++/4.4.7/bits/gslice.h +#usr/include/c++/4.4.7/bits/gslice_array.h +#usr/include/c++/4.4.7/bits/hashtable.h +#usr/include/c++/4.4.7/bits/indirect_array.h +#usr/include/c++/4.4.7/bits/ios_base.h +#usr/include/c++/4.4.7/bits/istream.tcc +#usr/include/c++/4.4.7/bits/list.tcc +#usr/include/c++/4.4.7/bits/locale_classes.h +#usr/include/c++/4.4.7/bits/locale_classes.tcc +#usr/include/c++/4.4.7/bits/locale_facets.h +#usr/include/c++/4.4.7/bits/locale_facets.tcc +#usr/include/c++/4.4.7/bits/locale_facets_nonio.h +#usr/include/c++/4.4.7/bits/locale_facets_nonio.tcc +#usr/include/c++/4.4.7/bits/localefwd.h +#usr/include/c++/4.4.7/bits/mask_array.h +#usr/include/c++/4.4.7/bits/move.h +#usr/include/c++/4.4.7/bits/ostream.tcc +#usr/include/c++/4.4.7/bits/ostream_insert.h +#usr/include/c++/4.4.7/bits/postypes.h +#usr/include/c++/4.4.7/bits/shared_ptr.h +#usr/include/c++/4.4.7/bits/slice_array.h +#usr/include/c++/4.4.7/bits/sstream.tcc +#usr/include/c++/4.4.7/bits/stl_algo.h +#usr/include/c++/4.4.7/bits/stl_algobase.h +#usr/include/c++/4.4.7/bits/stl_bvector.h +#usr/include/c++/4.4.7/bits/stl_construct.h +#usr/include/c++/4.4.7/bits/stl_deque.h +#usr/include/c++/4.4.7/bits/stl_function.h +#usr/include/c++/4.4.7/bits/stl_heap.h +#usr/include/c++/4.4.7/bits/stl_iterator.h +#usr/include/c++/4.4.7/bits/stl_iterator_base_funcs.h +#usr/include/c++/4.4.7/bits/stl_iterator_base_types.h +#usr/include/c++/4.4.7/bits/stl_list.h +#usr/include/c++/4.4.7/bits/stl_map.h +#usr/include/c++/4.4.7/bits/stl_multimap.h +#usr/include/c++/4.4.7/bits/stl_multiset.h +#usr/include/c++/4.4.7/bits/stl_numeric.h +#usr/include/c++/4.4.7/bits/stl_pair.h +#usr/include/c++/4.4.7/bits/stl_queue.h +#usr/include/c++/4.4.7/bits/stl_raw_storage_iter.h +#usr/include/c++/4.4.7/bits/stl_relops.h +#usr/include/c++/4.4.7/bits/stl_set.h +#usr/include/c++/4.4.7/bits/stl_stack.h +#usr/include/c++/4.4.7/bits/stl_tempbuf.h +#usr/include/c++/4.4.7/bits/stl_tree.h +#usr/include/c++/4.4.7/bits/stl_uninitialized.h +#usr/include/c++/4.4.7/bits/stl_vector.h +#usr/include/c++/4.4.7/bits/stream_iterator.h +#usr/include/c++/4.4.7/bits/streambuf.tcc +#usr/include/c++/4.4.7/bits/streambuf_iterator.h +#usr/include/c++/4.4.7/bits/stringfwd.h +#usr/include/c++/4.4.7/bits/unique_ptr.h +#usr/include/c++/4.4.7/bits/valarray_after.h +#usr/include/c++/4.4.7/bits/valarray_array.h +#usr/include/c++/4.4.7/bits/valarray_array.tcc +#usr/include/c++/4.4.7/bits/valarray_before.h +#usr/include/c++/4.4.7/bits/vector.tcc +#usr/include/c++/4.4.7/bitset +#usr/include/c++/4.4.7/c++0x_warning.h +#usr/include/c++/4.4.7/cassert +#usr/include/c++/4.4.7/ccomplex +#usr/include/c++/4.4.7/cctype +#usr/include/c++/4.4.7/cerrno +#usr/include/c++/4.4.7/cfenv +#usr/include/c++/4.4.7/cfloat +#usr/include/c++/4.4.7/chrono +#usr/include/c++/4.4.7/cinttypes +#usr/include/c++/4.4.7/ciso646 +#usr/include/c++/4.4.7/climits +#usr/include/c++/4.4.7/clocale +#usr/include/c++/4.4.7/cmath +#usr/include/c++/4.4.7/complex +#usr/include/c++/4.4.7/complex.h +#usr/include/c++/4.4.7/condition_variable +#usr/include/c++/4.4.7/csetjmp +#usr/include/c++/4.4.7/csignal +#usr/include/c++/4.4.7/cstdarg +#usr/include/c++/4.4.7/cstdatomic +#usr/include/c++/4.4.7/cstdbool +#usr/include/c++/4.4.7/cstddef +#usr/include/c++/4.4.7/cstdint +#usr/include/c++/4.4.7/cstdio +#usr/include/c++/4.4.7/cstdlib +#usr/include/c++/4.4.7/cstring +#usr/include/c++/4.4.7/ctgmath +#usr/include/c++/4.4.7/ctime +#usr/include/c++/4.4.7/cwchar +#usr/include/c++/4.4.7/cwctype +#usr/include/c++/4.4.7/cxxabi-forced.h +#usr/include/c++/4.4.7/cxxabi.h +#usr/include/c++/4.4.7/debug +#usr/include/c++/4.4.7/debug/bitset +#usr/include/c++/4.4.7/debug/debug.h +#usr/include/c++/4.4.7/debug/deque +#usr/include/c++/4.4.7/debug/formatter.h +#usr/include/c++/4.4.7/debug/functions.h +#usr/include/c++/4.4.7/debug/list +#usr/include/c++/4.4.7/debug/macros.h +#usr/include/c++/4.4.7/debug/map +#usr/include/c++/4.4.7/debug/map.h +#usr/include/c++/4.4.7/debug/multimap.h +#usr/include/c++/4.4.7/debug/multiset.h +#usr/include/c++/4.4.7/debug/safe_base.h +#usr/include/c++/4.4.7/debug/safe_iterator.h +#usr/include/c++/4.4.7/debug/safe_iterator.tcc +#usr/include/c++/4.4.7/debug/safe_sequence.h +#usr/include/c++/4.4.7/debug/set +#usr/include/c++/4.4.7/debug/set.h +#usr/include/c++/4.4.7/debug/string +#usr/include/c++/4.4.7/debug/unordered_map +#usr/include/c++/4.4.7/debug/unordered_set +#usr/include/c++/4.4.7/debug/vector +#usr/include/c++/4.4.7/deque +#usr/include/c++/4.4.7/exception +#usr/include/c++/4.4.7/exception_defines.h +#usr/include/c++/4.4.7/exception_ptr.h +#usr/include/c++/4.4.7/ext +#usr/include/c++/4.4.7/ext/algorithm +#usr/include/c++/4.4.7/ext/array_allocator.h +#usr/include/c++/4.4.7/ext/atomicity.h +#usr/include/c++/4.4.7/ext/bitmap_allocator.h +#usr/include/c++/4.4.7/ext/cast.h +#usr/include/c++/4.4.7/ext/codecvt_specializations.h +#usr/include/c++/4.4.7/ext/concurrence.h +#usr/include/c++/4.4.7/ext/debug_allocator.h +#usr/include/c++/4.4.7/ext/enc_filebuf.h +#usr/include/c++/4.4.7/ext/extptr_allocator.h +#usr/include/c++/4.4.7/ext/functional +#usr/include/c++/4.4.7/ext/hash_map +#usr/include/c++/4.4.7/ext/hash_set +#usr/include/c++/4.4.7/ext/iterator +#usr/include/c++/4.4.7/ext/malloc_allocator.h +#usr/include/c++/4.4.7/ext/memory +#usr/include/c++/4.4.7/ext/mt_allocator.h +#usr/include/c++/4.4.7/ext/new_allocator.h +#usr/include/c++/4.4.7/ext/numeric +#usr/include/c++/4.4.7/ext/numeric_traits.h +#usr/include/c++/4.4.7/ext/pb_ds +#usr/include/c++/4.4.7/ext/pb_ds/assoc_container.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_types.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_pred.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/resize_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cond_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/container_base_dispatch.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/debug_map_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/eq_by_less.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/lu_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/child_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/head.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/internal_node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/leaf.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/point_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/priority_queue_base_dispatch.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_trace_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/type_utils.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/types_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/exception.hpp +#usr/include/c++/4.4.7/ext/pb_ds/hash_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/list_update_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/priority_queue.hpp +#usr/include/c++/4.4.7/ext/pb_ds/tag_and_trait.hpp +#usr/include/c++/4.4.7/ext/pb_ds/tree_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/trie_policy.hpp +#usr/include/c++/4.4.7/ext/pod_char_traits.h +#usr/include/c++/4.4.7/ext/pointer.h +#usr/include/c++/4.4.7/ext/pool_allocator.h +#usr/include/c++/4.4.7/ext/rb_tree +#usr/include/c++/4.4.7/ext/rc_string_base.h +#usr/include/c++/4.4.7/ext/rope +#usr/include/c++/4.4.7/ext/ropeimpl.h +#usr/include/c++/4.4.7/ext/slist +#usr/include/c++/4.4.7/ext/sso_string_base.h +#usr/include/c++/4.4.7/ext/stdio_filebuf.h +#usr/include/c++/4.4.7/ext/stdio_sync_filebuf.h +#usr/include/c++/4.4.7/ext/string_conversions.h +#usr/include/c++/4.4.7/ext/throw_allocator.h +#usr/include/c++/4.4.7/ext/type_traits.h +#usr/include/c++/4.4.7/ext/typelist.h +#usr/include/c++/4.4.7/ext/vstring.h +#usr/include/c++/4.4.7/ext/vstring.tcc +#usr/include/c++/4.4.7/ext/vstring_fwd.h +#usr/include/c++/4.4.7/ext/vstring_util.h +#usr/include/c++/4.4.7/fenv.h +#usr/include/c++/4.4.7/forward_list +#usr/include/c++/4.4.7/fstream +#usr/include/c++/4.4.7/functional +#usr/include/c++/4.4.7/i586-pc-linux-gnu +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/atomic_word.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/basic_file.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++allocator.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++config.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++io.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++locale.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/cpu_defines.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_base.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_inline.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_noninline.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/cxxabi_tweaks.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/error_constants.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/extc++.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-default.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-posix.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-single.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-tpf.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/messages_members.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/os_defines.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/stdc++.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/stdtr1c++.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/time_members.h +#usr/include/c++/4.4.7/initializer_list +#usr/include/c++/4.4.7/iomanip +#usr/include/c++/4.4.7/ios +#usr/include/c++/4.4.7/iosfwd +#usr/include/c++/4.4.7/iostream +#usr/include/c++/4.4.7/istream +#usr/include/c++/4.4.7/iterator +#usr/include/c++/4.4.7/limits +#usr/include/c++/4.4.7/list +#usr/include/c++/4.4.7/locale +#usr/include/c++/4.4.7/map +#usr/include/c++/4.4.7/memory +#usr/include/c++/4.4.7/mutex +#usr/include/c++/4.4.7/new +#usr/include/c++/4.4.7/numeric +#usr/include/c++/4.4.7/ostream +#usr/include/c++/4.4.7/parallel +#usr/include/c++/4.4.7/parallel/algo.h +#usr/include/c++/4.4.7/parallel/algobase.h +#usr/include/c++/4.4.7/parallel/algorithm +#usr/include/c++/4.4.7/parallel/algorithmfwd.h +#usr/include/c++/4.4.7/parallel/balanced_quicksort.h +#usr/include/c++/4.4.7/parallel/base.h +#usr/include/c++/4.4.7/parallel/basic_iterator.h +#usr/include/c++/4.4.7/parallel/checkers.h +#usr/include/c++/4.4.7/parallel/compatibility.h +#usr/include/c++/4.4.7/parallel/compiletime_settings.h +#usr/include/c++/4.4.7/parallel/equally_split.h +#usr/include/c++/4.4.7/parallel/features.h +#usr/include/c++/4.4.7/parallel/find.h +#usr/include/c++/4.4.7/parallel/find_selectors.h +#usr/include/c++/4.4.7/parallel/for_each.h +#usr/include/c++/4.4.7/parallel/for_each_selectors.h +#usr/include/c++/4.4.7/parallel/iterator.h +#usr/include/c++/4.4.7/parallel/list_partition.h +#usr/include/c++/4.4.7/parallel/losertree.h +#usr/include/c++/4.4.7/parallel/merge.h +#usr/include/c++/4.4.7/parallel/multiseq_selection.h +#usr/include/c++/4.4.7/parallel/multiway_merge.h +#usr/include/c++/4.4.7/parallel/multiway_mergesort.h +#usr/include/c++/4.4.7/parallel/numeric +#usr/include/c++/4.4.7/parallel/numericfwd.h +#usr/include/c++/4.4.7/parallel/omp_loop.h +#usr/include/c++/4.4.7/parallel/omp_loop_static.h +#usr/include/c++/4.4.7/parallel/par_loop.h +#usr/include/c++/4.4.7/parallel/parallel.h +#usr/include/c++/4.4.7/parallel/partial_sum.h +#usr/include/c++/4.4.7/parallel/partition.h +#usr/include/c++/4.4.7/parallel/queue.h +#usr/include/c++/4.4.7/parallel/quicksort.h +#usr/include/c++/4.4.7/parallel/random_number.h +#usr/include/c++/4.4.7/parallel/random_shuffle.h +#usr/include/c++/4.4.7/parallel/search.h +#usr/include/c++/4.4.7/parallel/set_operations.h +#usr/include/c++/4.4.7/parallel/settings.h +#usr/include/c++/4.4.7/parallel/sort.h +#usr/include/c++/4.4.7/parallel/tags.h +#usr/include/c++/4.4.7/parallel/types.h +#usr/include/c++/4.4.7/parallel/unique_copy.h +#usr/include/c++/4.4.7/parallel/workstealing.h +#usr/include/c++/4.4.7/queue +#usr/include/c++/4.4.7/random +#usr/include/c++/4.4.7/ratio +#usr/include/c++/4.4.7/regex +#usr/include/c++/4.4.7/set +#usr/include/c++/4.4.7/sstream +#usr/include/c++/4.4.7/stack +#usr/include/c++/4.4.7/stdatomic.h +#usr/include/c++/4.4.7/stdexcept +#usr/include/c++/4.4.7/streambuf +#usr/include/c++/4.4.7/string +#usr/include/c++/4.4.7/system_error +#usr/include/c++/4.4.7/tgmath.h +#usr/include/c++/4.4.7/thread +#usr/include/c++/4.4.7/tr1 +#usr/include/c++/4.4.7/tr1/array +#usr/include/c++/4.4.7/tr1/bessel_function.tcc +#usr/include/c++/4.4.7/tr1/beta_function.tcc +#usr/include/c++/4.4.7/tr1/ccomplex +#usr/include/c++/4.4.7/tr1/cctype +#usr/include/c++/4.4.7/tr1/cfenv +#usr/include/c++/4.4.7/tr1/cfloat +#usr/include/c++/4.4.7/tr1/cinttypes +#usr/include/c++/4.4.7/tr1/climits +#usr/include/c++/4.4.7/tr1/cmath +#usr/include/c++/4.4.7/tr1/complex +#usr/include/c++/4.4.7/tr1/complex.h +#usr/include/c++/4.4.7/tr1/cstdarg +#usr/include/c++/4.4.7/tr1/cstdbool +#usr/include/c++/4.4.7/tr1/cstdint +#usr/include/c++/4.4.7/tr1/cstdio +#usr/include/c++/4.4.7/tr1/cstdlib +#usr/include/c++/4.4.7/tr1/ctgmath +#usr/include/c++/4.4.7/tr1/ctime +#usr/include/c++/4.4.7/tr1/ctype.h +#usr/include/c++/4.4.7/tr1/cwchar +#usr/include/c++/4.4.7/tr1/cwctype +#usr/include/c++/4.4.7/tr1/ell_integral.tcc +#usr/include/c++/4.4.7/tr1/exp_integral.tcc +#usr/include/c++/4.4.7/tr1/fenv.h +#usr/include/c++/4.4.7/tr1/float.h +#usr/include/c++/4.4.7/tr1/functional +#usr/include/c++/4.4.7/tr1/functional_hash.h +#usr/include/c++/4.4.7/tr1/gamma.tcc +#usr/include/c++/4.4.7/tr1/hashtable.h +#usr/include/c++/4.4.7/tr1/hypergeometric.tcc +#usr/include/c++/4.4.7/tr1/inttypes.h +#usr/include/c++/4.4.7/tr1/legendre_function.tcc +#usr/include/c++/4.4.7/tr1/limits.h +#usr/include/c++/4.4.7/tr1/math.h +#usr/include/c++/4.4.7/tr1/memory +#usr/include/c++/4.4.7/tr1/modified_bessel_func.tcc +#usr/include/c++/4.4.7/tr1/poly_hermite.tcc +#usr/include/c++/4.4.7/tr1/poly_laguerre.tcc +#usr/include/c++/4.4.7/tr1/random +#usr/include/c++/4.4.7/tr1/regex +#usr/include/c++/4.4.7/tr1/riemann_zeta.tcc +#usr/include/c++/4.4.7/tr1/shared_ptr.h +#usr/include/c++/4.4.7/tr1/special_function_util.h +#usr/include/c++/4.4.7/tr1/stdarg.h +#usr/include/c++/4.4.7/tr1/stdbool.h +#usr/include/c++/4.4.7/tr1/stdint.h +#usr/include/c++/4.4.7/tr1/stdio.h +#usr/include/c++/4.4.7/tr1/stdlib.h +#usr/include/c++/4.4.7/tr1/tgmath.h +#usr/include/c++/4.4.7/tr1/tuple +#usr/include/c++/4.4.7/tr1/type_traits +#usr/include/c++/4.4.7/tr1/unordered_map +#usr/include/c++/4.4.7/tr1/unordered_set +#usr/include/c++/4.4.7/tr1/utility +#usr/include/c++/4.4.7/tr1/wchar.h +#usr/include/c++/4.4.7/tr1/wctype.h +#usr/include/c++/4.4.7/tr1_impl +#usr/include/c++/4.4.7/tr1_impl/array +#usr/include/c++/4.4.7/tr1_impl/boost_sp_counted_base.h +#usr/include/c++/4.4.7/tr1_impl/cctype +#usr/include/c++/4.4.7/tr1_impl/cfenv +#usr/include/c++/4.4.7/tr1_impl/cinttypes +#usr/include/c++/4.4.7/tr1_impl/cmath +#usr/include/c++/4.4.7/tr1_impl/complex +#usr/include/c++/4.4.7/tr1_impl/cstdint +#usr/include/c++/4.4.7/tr1_impl/cstdio +#usr/include/c++/4.4.7/tr1_impl/cstdlib +#usr/include/c++/4.4.7/tr1_impl/cwchar +#usr/include/c++/4.4.7/tr1_impl/cwctype +#usr/include/c++/4.4.7/tr1_impl/functional +#usr/include/c++/4.4.7/tr1_impl/functional_hash.h +#usr/include/c++/4.4.7/tr1_impl/hashtable +#usr/include/c++/4.4.7/tr1_impl/hashtable_policy.h +#usr/include/c++/4.4.7/tr1_impl/random +#usr/include/c++/4.4.7/tr1_impl/random.tcc +#usr/include/c++/4.4.7/tr1_impl/regex +#usr/include/c++/4.4.7/tr1_impl/type_traits +#usr/include/c++/4.4.7/tr1_impl/unordered_map +#usr/include/c++/4.4.7/tr1_impl/unordered_set +#usr/include/c++/4.4.7/tr1_impl/utility +#usr/include/c++/4.4.7/tuple +#usr/include/c++/4.4.7/type_traits +#usr/include/c++/4.4.7/typeinfo +#usr/include/c++/4.4.7/unordered_map +#usr/include/c++/4.4.7/unordered_set +#usr/include/c++/4.4.7/utility +#usr/include/c++/4.4.7/valarray +#usr/include/c++/4.4.7/vector +#usr/info #usr/info/cpp.info #usr/info/cppinternals.info +#usr/info/dir #usr/info/gcc.info #usr/info/gccinstall.info #usr/info/gccint.info +#usr/info/libgomp.info #usr/lib/gcc #usr/lib/gcc/i586-pc-linux-gnu -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2 -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/cc1 -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/cc1plus -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/collect2 -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbegin.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbeginS.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbeginT.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtend.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtendS.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtfastmath.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/README -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/emmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/float.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/iso646.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/limits.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mm3dnow.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mm_malloc.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/pmmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/ssp.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/stdio.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/string.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/unistd.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stdarg.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stdbool.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stddef.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/syslimits.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/unwind.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/varargs.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/xmmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/fixinc.sh -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/fixincl -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/gsyslimits.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/README -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/emmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/float.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/iso646.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/limits.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mm3dnow.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mm_malloc.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/pmmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stdarg.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stdbool.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stddef.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/unwind.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/varargs.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/xmmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/macro_list -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/mkheaders -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/mkheaders.conf -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcc.a -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcc_eh.a -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcov.a +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7 +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/cc1 +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/cc1plus +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/collect2 +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbegin.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbeginS.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbeginT.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtend.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtendS.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtfastmath.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec32.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec64.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec80.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/finclude +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/README +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/limits.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/syslimits.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ammintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/avxintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/bmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/cpuid.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/cross-stdarg.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/emmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/float.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/immintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/iso646.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mf-runtime.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mm3dnow.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mm_malloc.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mmintrin-common.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/nmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/omp.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/pmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/smmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/ssp.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/stdio.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/string.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/unistd.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdarg.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdbool.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stddef.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdfix.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/tmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/unwind.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/varargs.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/wmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/x86intrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/xmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixinc.sh +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixinc_list +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixincl +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/gsyslimits.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include/README +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include/limits.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/macro_list +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkheaders +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkheaders.conf +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkinstalldirs +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcc.a +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcc_eh.a +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcov.a +#usr/lib/libgomp.a +#usr/lib/libgomp.la +#usr/lib/libgomp.so +usr/lib/libgomp.so.1 +usr/lib/libgomp.so.1.0.0 +#usr/lib/libgomp.spec #usr/lib/libmudflap.a #usr/lib/libmudflap.la -usr/lib/libmudflap.so +#usr/lib/libmudflap.so usr/lib/libmudflap.so.0 usr/lib/libmudflap.so.0.0.0 #usr/lib/libmudflapth.a #usr/lib/libmudflapth.la -usr/lib/libmudflapth.so +#usr/lib/libmudflapth.so usr/lib/libmudflapth.so.0 usr/lib/libmudflapth.so.0.0.0 #usr/lib/libssp.a #usr/lib/libssp.la -usr/lib/libssp.so +#usr/lib/libssp.so usr/lib/libssp.so.0 usr/lib/libssp.so.0.0.0 #usr/lib/libssp_nonshared.a #usr/lib/libssp_nonshared.la #usr/lib/libstdc++.a -#usr/lib/libstdc++.la -usr/lib/libstdc++.so -usr/lib/libstdc++.so.6 -usr/lib/libstdc++.so.6.0.8 +usr/lib/libstdc++.so.6.0.13 #usr/lib/libsupc++.a #usr/lib/libsupc++.la +#usr/man +#usr/man/man1 #usr/man/man1/cpp.1 #usr/man/man1/g++.1 #usr/man/man1/gcc.1 diff --git a/config/rootfiles/common/i586/glibc b/config/rootfiles/common/i586/glibc index 2b0d06e..ca62948 100644 --- a/config/rootfiles/common/i586/glibc +++ b/config/rootfiles/common/i586/glibc @@ -1,46 +1,48 @@ -etc/ld.so.cache +#etc/ld.so.cache etc/localtime -#etc/rpc -lib/ld-2.3.6.so +etc/rpc +lib/ld-2.12.so lib/ld-linux.so.2 -#lib/libBrokenLocale-2.3.6.so -#lib/libBrokenLocale.so.1 +lib/libBrokenLocale-2.12.so +lib/libBrokenLocale.so.1 #lib/libSegFault.so -#lib/libanl-2.3.6.so -#lib/libanl.so.1 -lib/libc-2.3.6.so +lib/libanl-2.12.so +lib/libanl.so.1 +lib/libc-2.12.so lib/libc.so.6 -lib/libcrypt-2.3.6.so +lib/libcidn-2.12.so +lib/libcidn.so.1 +lib/libcrypt-2.12.so lib/libcrypt.so.1 -lib/libdl-2.3.6.so +lib/libdl-2.12.so lib/libdl.so.2 -lib/libm-2.3.6.so +lib/libm-2.12.so lib/libm.so.6 #lib/libmemusage.so -lib/libnsl-2.3.6.so +lib/libnsl-2.12.so lib/libnsl.so.1 -lib/libnss_compat-2.3.6.so +lib/libnss_compat-2.12.so lib/libnss_compat.so.2 -lib/libnss_dns-2.3.6.so +lib/libnss_dns-2.12.so lib/libnss_dns.so.2 -lib/libnss_files-2.3.6.so +lib/libnss_files-2.12.so lib/libnss_files.so.2 -#lib/libnss_hesiod-2.3.6.so -#lib/libnss_hesiod.so.2 -#lib/libnss_nis-2.3.6.so -#lib/libnss_nis.so.2 -#lib/libnss_nisplus-2.3.6.so -#lib/libnss_nisplus.so.2 +lib/libnss_hesiod-2.12.so +lib/libnss_hesiod.so.2 +lib/libnss_nis-2.12.so +lib/libnss_nis.so.2 +lib/libnss_nisplus-2.12.so +lib/libnss_nisplus.so.2 #lib/libpcprofile.so -lib/libpthread-2.3.6.so +lib/libpthread-2.12.so lib/libpthread.so.0 -lib/libresolv-2.3.6.so +lib/libresolv-2.12.so lib/libresolv.so.2 -lib/librt-2.3.6.so +lib/librt-2.12.so lib/librt.so.1 -#lib/libthread_db-1.0.so -#lib/libthread_db.so.1 -lib/libutil-2.3.6.so +lib/libthread_db-1.0.so +lib/libthread_db.so.1 +lib/libutil-2.12.so lib/libutil.so.1 sbin/ldconfig #sbin/sln @@ -86,7 +88,9 @@ usr/bin/ldd #usr/include/bits/endian.h #usr/include/bits/environments.h #usr/include/bits/errno.h +#usr/include/bits/error.h #usr/include/bits/fcntl.h +#usr/include/bits/fcntl2.h #usr/include/bits/fenv.h #usr/include/bits/fenvinline.h #usr/include/bits/huge_val.h @@ -100,13 +104,17 @@ usr/bin/ldd #usr/include/bits/ipc.h #usr/include/bits/ipctypes.h #usr/include/bits/libc-lock.h +#usr/include/bits/libio-ldbl.h +#usr/include/bits/link.h #usr/include/bits/local_lim.h #usr/include/bits/locale.h #usr/include/bits/mathcalls.h #usr/include/bits/mathdef.h #usr/include/bits/mathinline.h #usr/include/bits/mman.h +#usr/include/bits/monetary-ldbl.h #usr/include/bits/mqueue.h +#usr/include/bits/mqueue2.h #usr/include/bits/msq.h #usr/include/bits/nan.h #usr/include/bits/netdb.h @@ -114,6 +122,7 @@ usr/bin/ldd #usr/include/bits/posix1_lim.h #usr/include/bits/posix2_lim.h #usr/include/bits/posix_opt.h +#usr/include/bits/printf-ldbl.h #usr/include/bits/pthreadtypes.h #usr/include/bits/resource.h #usr/include/bits/sched.h @@ -121,6 +130,7 @@ usr/bin/ldd #usr/include/bits/sem.h #usr/include/bits/semaphore.h #usr/include/bits/setjmp.h +#usr/include/bits/setjmp2.h #usr/include/bits/shm.h #usr/include/bits/sigaction.h #usr/include/bits/sigcontext.h @@ -131,35 +141,43 @@ usr/bin/ldd #usr/include/bits/sigthread.h #usr/include/bits/sockaddr.h #usr/include/bits/socket.h +#usr/include/bits/socket2.h #usr/include/bits/stab.def #usr/include/bits/stat.h #usr/include/bits/statfs.h #usr/include/bits/statvfs.h +#usr/include/bits/stdio-ldbl.h #usr/include/bits/stdio-lock.h #usr/include/bits/stdio.h #usr/include/bits/stdio2.h #usr/include/bits/stdio_lim.h +#usr/include/bits/stdlib-ldbl.h +#usr/include/bits/stdlib.h #usr/include/bits/string.h #usr/include/bits/string2.h #usr/include/bits/string3.h -#usr/include/bits/stropts.h #usr/include/bits/sys_errlist.h #usr/include/bits/syscall.h +#usr/include/bits/syslog-ldbl.h +#usr/include/bits/syslog-path.h +#usr/include/bits/syslog.h #usr/include/bits/termios.h #usr/include/bits/time.h #usr/include/bits/types.h #usr/include/bits/typesizes.h #usr/include/bits/uio.h +#usr/include/bits/unistd.h #usr/include/bits/ustat.h #usr/include/bits/utmp.h #usr/include/bits/utmpx.h #usr/include/bits/utsname.h #usr/include/bits/waitflags.h #usr/include/bits/waitstatus.h +#usr/include/bits/wchar-ldbl.h #usr/include/bits/wchar.h +#usr/include/bits/wchar2.h #usr/include/bits/wordsize.h #usr/include/bits/xopen_lim.h -#usr/include/bits/xtitypes.h #usr/include/byteswap.h #usr/include/complex.h #usr/include/cpio.h @@ -190,8 +208,10 @@ usr/bin/ldd #usr/include/gnu-versions.h #usr/include/gnu/lib-names.h #usr/include/gnu/libc-version.h +#usr/include/gnu/stubs-32.h #usr/include/gnu/stubs.h #usr/include/grp.h +#usr/include/gshadow.h #usr/include/iconv.h #usr/include/ieee754.h #usr/include/ifaddrs.h @@ -247,6 +267,8 @@ usr/bin/ldd #usr/include/netinet/udp.h #usr/include/netipx #usr/include/netipx/ipx.h +#usr/include/netiucv +#usr/include/netiucv/iucv.h #usr/include/netpacket #usr/include/netpacket/packet.h #usr/include/netrom @@ -332,7 +354,6 @@ usr/bin/ldd #usr/include/rpcsvc/yppasswd.x #usr/include/rpcsvc/ypupd.h #usr/include/sched.h -#usr/include/scsi #usr/include/scsi/scsi.h #usr/include/scsi/scsi_ioctl.h #usr/include/scsi/sg.h @@ -350,7 +371,6 @@ usr/bin/ldd #usr/include/stdlib.h #usr/include/string.h #usr/include/strings.h -#usr/include/stropts.h #usr/include/sys #usr/include/sys/acct.h #usr/include/sys/bitypes.h @@ -360,6 +380,7 @@ usr/bin/ldd #usr/include/sys/elf.h #usr/include/sys/epoll.h #usr/include/sys/errno.h +#usr/include/sys/eventfd.h #usr/include/sys/fcntl.h #usr/include/sys/file.h #usr/include/sys/fsuid.h @@ -396,13 +417,13 @@ usr/bin/ldd #usr/include/sys/sendfile.h #usr/include/sys/shm.h #usr/include/sys/signal.h +#usr/include/sys/signalfd.h #usr/include/sys/socket.h #usr/include/sys/socketvar.h #usr/include/sys/soundcard.h #usr/include/sys/stat.h #usr/include/sys/statfs.h #usr/include/sys/statvfs.h -#usr/include/sys/stropts.h #usr/include/sys/swap.h #usr/include/sys/syscall.h #usr/include/sys/sysctl.h @@ -412,6 +433,7 @@ usr/bin/ldd #usr/include/sys/termios.h #usr/include/sys/time.h #usr/include/sys/timeb.h +#usr/include/sys/timerfd.h #usr/include/sys/times.h #usr/include/sys/timex.h #usr/include/sys/ttychars.h @@ -455,20 +477,6 @@ usr/bin/ldd #usr/include/wctype.h #usr/include/wordexp.h #usr/include/xlocale.h -#usr/info -#usr/info/dir -#usr/info/libc.info -#usr/info/libc.info-1 -#usr/info/libc.info-10 -#usr/info/libc.info-11 -#usr/info/libc.info-2 -#usr/info/libc.info-3 -#usr/info/libc.info-4 -#usr/info/libc.info-5 -#usr/info/libc.info-6 -#usr/info/libc.info-7 -#usr/info/libc.info-8 -#usr/info/libc.info-9 #usr/lib/Mcrt1.o #usr/lib/Scrt1.o #usr/lib/crt1.o @@ -480,6 +488,7 @@ usr/lib/gconv #usr/lib/gconv/ASMO_449.so #usr/lib/gconv/BIG5.so #usr/lib/gconv/BIG5HKSCS.so +#usr/lib/gconv/BRF.so #usr/lib/gconv/CP10007.so #usr/lib/gconv/CP1125.so #usr/lib/gconv/CP1250.so @@ -530,22 +539,60 @@ usr/lib/gconv #usr/lib/gconv/GREEK-CCITT.so #usr/lib/gconv/GREEK7-OLD.so #usr/lib/gconv/GREEK7.so +#usr/lib/gconv/HP-GREEK8.so #usr/lib/gconv/HP-ROMAN8.so +#usr/lib/gconv/HP-ROMAN9.so +#usr/lib/gconv/HP-THAI8.so +#usr/lib/gconv/HP-TURKISH8.so #usr/lib/gconv/IBM037.so #usr/lib/gconv/IBM038.so #usr/lib/gconv/IBM1004.so +#usr/lib/gconv/IBM1008.so +#usr/lib/gconv/IBM1008_420.so +#usr/lib/gconv/IBM1025.so #usr/lib/gconv/IBM1026.so #usr/lib/gconv/IBM1046.so #usr/lib/gconv/IBM1047.so +#usr/lib/gconv/IBM1097.so +#usr/lib/gconv/IBM1112.so +#usr/lib/gconv/IBM1122.so +#usr/lib/gconv/IBM1123.so #usr/lib/gconv/IBM1124.so #usr/lib/gconv/IBM1129.so +#usr/lib/gconv/IBM1130.so #usr/lib/gconv/IBM1132.so #usr/lib/gconv/IBM1133.so +#usr/lib/gconv/IBM1137.so +#usr/lib/gconv/IBM1140.so +#usr/lib/gconv/IBM1141.so +#usr/lib/gconv/IBM1142.so +#usr/lib/gconv/IBM1143.so +#usr/lib/gconv/IBM1144.so +#usr/lib/gconv/IBM1145.so +#usr/lib/gconv/IBM1146.so +#usr/lib/gconv/IBM1147.so +#usr/lib/gconv/IBM1148.so +#usr/lib/gconv/IBM1149.so +#usr/lib/gconv/IBM1153.so +#usr/lib/gconv/IBM1154.so +#usr/lib/gconv/IBM1155.so +#usr/lib/gconv/IBM1156.so +#usr/lib/gconv/IBM1157.so +#usr/lib/gconv/IBM1158.so #usr/lib/gconv/IBM1160.so #usr/lib/gconv/IBM1161.so #usr/lib/gconv/IBM1162.so #usr/lib/gconv/IBM1163.so #usr/lib/gconv/IBM1164.so +#usr/lib/gconv/IBM1166.so +#usr/lib/gconv/IBM1167.so +#usr/lib/gconv/IBM12712.so +#usr/lib/gconv/IBM1364.so +#usr/lib/gconv/IBM1371.so +#usr/lib/gconv/IBM1388.so +#usr/lib/gconv/IBM1390.so +#usr/lib/gconv/IBM1399.so +#usr/lib/gconv/IBM16804.so #usr/lib/gconv/IBM256.so #usr/lib/gconv/IBM273.so #usr/lib/gconv/IBM274.so @@ -562,7 +609,13 @@ usr/lib/gconv #usr/lib/gconv/IBM423.so #usr/lib/gconv/IBM424.so #usr/lib/gconv/IBM437.so +#usr/lib/gconv/IBM4517.so +#usr/lib/gconv/IBM4899.so +#usr/lib/gconv/IBM4909.so +#usr/lib/gconv/IBM4971.so #usr/lib/gconv/IBM500.so +#usr/lib/gconv/IBM5347.so +#usr/lib/gconv/IBM803.so #usr/lib/gconv/IBM850.so #usr/lib/gconv/IBM851.so #usr/lib/gconv/IBM852.so @@ -585,10 +638,15 @@ usr/lib/gconv #usr/lib/gconv/IBM875.so #usr/lib/gconv/IBM880.so #usr/lib/gconv/IBM891.so +#usr/lib/gconv/IBM901.so +#usr/lib/gconv/IBM902.so #usr/lib/gconv/IBM903.so +#usr/lib/gconv/IBM9030.so #usr/lib/gconv/IBM904.so #usr/lib/gconv/IBM905.so +#usr/lib/gconv/IBM9066.so #usr/lib/gconv/IBM918.so +#usr/lib/gconv/IBM921.so #usr/lib/gconv/IBM922.so #usr/lib/gconv/IBM930.so #usr/lib/gconv/IBM932.so @@ -597,6 +655,7 @@ usr/lib/gconv #usr/lib/gconv/IBM937.so #usr/lib/gconv/IBM939.so #usr/lib/gconv/IBM943.so +#usr/lib/gconv/IBM9448.so #usr/lib/gconv/IEC_P27-1.so #usr/lib/gconv/INIS-8.so #usr/lib/gconv/INIS-CYRILLIC.so @@ -625,7 +684,9 @@ usr/lib/gconv #usr/lib/gconv/ISO8859-7.so #usr/lib/gconv/ISO8859-8.so #usr/lib/gconv/ISO8859-9.so +#usr/lib/gconv/ISO8859-9E.so #usr/lib/gconv/ISO_10367-BOX.so +#usr/lib/gconv/ISO_11548-1.so #usr/lib/gconv/ISO_2033.so #usr/lib/gconv/ISO_5427-EXT.so #usr/lib/gconv/ISO_5427.so @@ -635,14 +696,17 @@ usr/lib/gconv #usr/lib/gconv/JOHAB.so #usr/lib/gconv/KOI-8.so #usr/lib/gconv/KOI8-R.so +#usr/lib/gconv/KOI8-RU.so #usr/lib/gconv/KOI8-T.so #usr/lib/gconv/KOI8-U.so #usr/lib/gconv/LATIN-GREEK-1.so #usr/lib/gconv/LATIN-GREEK.so +#usr/lib/gconv/MAC-CENTRALEUROPE.so #usr/lib/gconv/MAC-IS.so #usr/lib/gconv/MAC-SAMI.so #usr/lib/gconv/MAC-UK.so #usr/lib/gconv/MACINTOSH.so +#usr/lib/gconv/MIK.so #usr/lib/gconv/NATS-DANO.so #usr/lib/gconv/NATS-SEFI.so #usr/lib/gconv/PT154.so @@ -672,6 +736,8 @@ usr/lib/gconv #usr/lib/glibc/getconf #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFF32 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFFBIG +#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFF32 +#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFFBIG #usr/lib/glibc/pt_chown #usr/lib/libBrokenLocale.a #usr/lib/libBrokenLocale.so @@ -681,6 +747,7 @@ usr/lib/gconv #usr/lib/libc.a #usr/lib/libc.so #usr/lib/libc_nonshared.a +#usr/lib/libcidn.so #usr/lib/libcrypt.a #usr/lib/libcrypt.so #usr/lib/libdl.a @@ -713,7 +780,6 @@ usr/lib/gconv usr/lib/locale/locale-archive #usr/sbin/iconvconfig #usr/sbin/nscd -#usr/sbin/nscd_nischeck #usr/sbin/rpcinfo #usr/sbin/zdump #usr/sbin/zic @@ -725,6 +791,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/ASMO_449.gz #usr/share/i18n/charmaps/BIG5-HKSCS.gz #usr/share/i18n/charmaps/BIG5.gz +#usr/share/i18n/charmaps/BRF.gz #usr/share/i18n/charmaps/BS_4730.gz #usr/share/i18n/charmaps/BS_VIEWDATA.gz #usr/share/i18n/charmaps/CP10007.gz @@ -783,7 +850,11 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/GREEK-CCITT.gz #usr/share/i18n/charmaps/GREEK7-OLD.gz #usr/share/i18n/charmaps/GREEK7.gz +#usr/share/i18n/charmaps/HP-GREEK8.gz #usr/share/i18n/charmaps/HP-ROMAN8.gz +#usr/share/i18n/charmaps/HP-ROMAN9.gz +#usr/share/i18n/charmaps/HP-THAI8.gz +#usr/share/i18n/charmaps/HP-TURKISH8.gz #usr/share/i18n/charmaps/IBM037.gz #usr/share/i18n/charmaps/IBM038.gz #usr/share/i18n/charmaps/IBM1004.gz @@ -863,11 +934,13 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/ISO-8859-7.gz #usr/share/i18n/charmaps/ISO-8859-8.gz #usr/share/i18n/charmaps/ISO-8859-9.gz +#usr/share/i18n/charmaps/ISO-8859-9E.gz #usr/share/i18n/charmaps/ISO-IR-197.gz #usr/share/i18n/charmaps/ISO-IR-209.gz #usr/share/i18n/charmaps/ISO-IR-90.gz #usr/share/i18n/charmaps/ISO_10367-BOX.gz #usr/share/i18n/charmaps/ISO_10646.gz +#usr/share/i18n/charmaps/ISO_11548-1.gz #usr/share/i18n/charmaps/ISO_2033-1983.gz #usr/share/i18n/charmaps/ISO_5427-EXT.gz #usr/share/i18n/charmaps/ISO_5427.gz @@ -895,16 +968,19 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/JUS_I.B1.003-SERB.gz #usr/share/i18n/charmaps/KOI-8.gz #usr/share/i18n/charmaps/KOI8-R.gz +#usr/share/i18n/charmaps/KOI8-RU.gz #usr/share/i18n/charmaps/KOI8-T.gz #usr/share/i18n/charmaps/KOI8-U.gz #usr/share/i18n/charmaps/KSC5636.gz #usr/share/i18n/charmaps/LATIN-GREEK-1.gz #usr/share/i18n/charmaps/LATIN-GREEK.gz +#usr/share/i18n/charmaps/MAC-CENTRALEUROPE.gz #usr/share/i18n/charmaps/MAC-CYRILLIC.gz #usr/share/i18n/charmaps/MAC-IS.gz #usr/share/i18n/charmaps/MAC-SAMI.gz #usr/share/i18n/charmaps/MAC-UK.gz #usr/share/i18n/charmaps/MACINTOSH.gz +#usr/share/i18n/charmaps/MIK.gz #usr/share/i18n/charmaps/MSZ_7795.3.gz #usr/share/i18n/charmaps/NATS-DANO-ADD.gz #usr/share/i18n/charmaps/NATS-DANO.gz @@ -963,18 +1039,31 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ar_SY #usr/share/i18n/locales/ar_TN #usr/share/i18n/locales/ar_YE +#usr/share/i18n/locales/as_IN +#usr/share/i18n/locales/ast_ES #usr/share/i18n/locales/az_AZ #usr/share/i18n/locales/be_BY +#usr/share/i18n/locales/be_BY@latin +#usr/share/i18n/locales/ber_DZ +#usr/share/i18n/locales/ber_MA #usr/share/i18n/locales/bg_BG #usr/share/i18n/locales/bn_BD #usr/share/i18n/locales/bn_IN +#usr/share/i18n/locales/bo_CN +#usr/share/i18n/locales/bo_IN #usr/share/i18n/locales/br_FR #usr/share/i18n/locales/br_FR@euro #usr/share/i18n/locales/bs_BA #usr/share/i18n/locales/byn_ER +#usr/share/i18n/locales/ca_AD #usr/share/i18n/locales/ca_ES #usr/share/i18n/locales/ca_ES@euro +#usr/share/i18n/locales/ca_FR +#usr/share/i18n/locales/ca_IT +#usr/share/i18n/locales/crh_UA #usr/share/i18n/locales/cs_CZ +#usr/share/i18n/locales/csb_PL +#usr/share/i18n/locales/cv_RU #usr/share/i18n/locales/cy_GB #usr/share/i18n/locales/da_DK #usr/share/i18n/locales/de_AT @@ -986,8 +1075,12 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/de_DE@euro #usr/share/i18n/locales/de_LU #usr/share/i18n/locales/de_LU@euro +#usr/share/i18n/locales/dv_MV +#usr/share/i18n/locales/dz_BT +#usr/share/i18n/locales/el_CY #usr/share/i18n/locales/el_GR #usr/share/i18n/locales/el_GR@euro +#usr/share/i18n/locales/en_AG #usr/share/i18n/locales/en_AU #usr/share/i18n/locales/en_BW #usr/share/i18n/locales/en_CA @@ -997,6 +1090,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/en_IE #usr/share/i18n/locales/en_IE@euro #usr/share/i18n/locales/en_IN +#usr/share/i18n/locales/en_NG #usr/share/i18n/locales/en_NZ #usr/share/i18n/locales/en_PH #usr/share/i18n/locales/en_SG @@ -1030,6 +1124,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/fa_IR #usr/share/i18n/locales/fi_FI #usr/share/i18n/locales/fi_FI@euro +#usr/share/i18n/locales/fil_PH #usr/share/i18n/locales/fo_FO #usr/share/i18n/locales/fr_BE #usr/share/i18n/locales/fr_BE@euro @@ -1039,6 +1134,9 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/fr_FR@euro #usr/share/i18n/locales/fr_LU #usr/share/i18n/locales/fr_LU@euro +#usr/share/i18n/locales/fur_IT +#usr/share/i18n/locales/fy_DE +#usr/share/i18n/locales/fy_NL #usr/share/i18n/locales/ga_IE #usr/share/i18n/locales/ga_IE@euro #usr/share/i18n/locales/gd_GB @@ -1050,30 +1148,49 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/gl_ES@euro #usr/share/i18n/locales/gu_IN #usr/share/i18n/locales/gv_GB +#usr/share/i18n/locales/ha_NG #usr/share/i18n/locales/he_IL #usr/share/i18n/locales/hi_IN +#usr/share/i18n/locales/hne_IN #usr/share/i18n/locales/hr_HR +#usr/share/i18n/locales/hsb_DE +#usr/share/i18n/locales/ht_HT #usr/share/i18n/locales/hu_HU #usr/share/i18n/locales/hy_AM #usr/share/i18n/locales/i18n #usr/share/i18n/locales/id_ID +#usr/share/i18n/locales/ig_NG +#usr/share/i18n/locales/ik_CA #usr/share/i18n/locales/is_IS #usr/share/i18n/locales/iso14651_t1 +#usr/share/i18n/locales/iso14651_t1_common +#usr/share/i18n/locales/iso14651_t1_pinyin #usr/share/i18n/locales/it_CH #usr/share/i18n/locales/it_IT #usr/share/i18n/locales/it_IT@euro +#usr/share/i18n/locales/iu_CA #usr/share/i18n/locales/iw_IL #usr/share/i18n/locales/ja_JP #usr/share/i18n/locales/ka_GE #usr/share/i18n/locales/kk_KZ #usr/share/i18n/locales/kl_GL +#usr/share/i18n/locales/km_KH #usr/share/i18n/locales/kn_IN #usr/share/i18n/locales/ko_KR +#usr/share/i18n/locales/kok_IN +#usr/share/i18n/locales/ks_IN +#usr/share/i18n/locales/ks_IN@devanagari +#usr/share/i18n/locales/ku_TR #usr/share/i18n/locales/kw_GB +#usr/share/i18n/locales/ky_KG #usr/share/i18n/locales/lg_UG +#usr/share/i18n/locales/li_BE +#usr/share/i18n/locales/li_NL #usr/share/i18n/locales/lo_LA #usr/share/i18n/locales/lt_LT #usr/share/i18n/locales/lv_LV +#usr/share/i18n/locales/mai_IN +#usr/share/i18n/locales/mg_MG #usr/share/i18n/locales/mi_NZ #usr/share/i18n/locales/mk_MK #usr/share/i18n/locales/ml_IN @@ -1081,25 +1198,44 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/mr_IN #usr/share/i18n/locales/ms_MY #usr/share/i18n/locales/mt_MT +#usr/share/i18n/locales/my_MM +#usr/share/i18n/locales/nan_TW@latin #usr/share/i18n/locales/nb_NO +#usr/share/i18n/locales/nds_DE +#usr/share/i18n/locales/nds_NL #usr/share/i18n/locales/ne_NP +#usr/share/i18n/locales/nl_AW #usr/share/i18n/locales/nl_BE #usr/share/i18n/locales/nl_BE@euro #usr/share/i18n/locales/nl_NL #usr/share/i18n/locales/nl_NL@euro #usr/share/i18n/locales/nn_NO +#usr/share/i18n/locales/no_NO +#usr/share/i18n/locales/nr_ZA +#usr/share/i18n/locales/nso_ZA #usr/share/i18n/locales/oc_FR #usr/share/i18n/locales/om_ET #usr/share/i18n/locales/om_KE +#usr/share/i18n/locales/or_IN #usr/share/i18n/locales/pa_IN +#usr/share/i18n/locales/pa_PK +#usr/share/i18n/locales/pap_AN #usr/share/i18n/locales/pl_PL +#usr/share/i18n/locales/ps_AF #usr/share/i18n/locales/pt_BR #usr/share/i18n/locales/pt_PT #usr/share/i18n/locales/pt_PT@euro #usr/share/i18n/locales/ro_RO #usr/share/i18n/locales/ru_RU #usr/share/i18n/locales/ru_UA +#usr/share/i18n/locales/rw_RW +#usr/share/i18n/locales/sa_IN +#usr/share/i18n/locales/sc_IT +#usr/share/i18n/locales/sd_IN +#usr/share/i18n/locales/sd_IN@devanagari #usr/share/i18n/locales/se_NO +#usr/share/i18n/locales/shs_CA +#usr/share/i18n/locales/si_LK #usr/share/i18n/locales/sid_ET #usr/share/i18n/locales/sk_SK #usr/share/i18n/locales/sl_SI @@ -1108,7 +1244,11 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/so_KE #usr/share/i18n/locales/so_SO #usr/share/i18n/locales/sq_AL -#usr/share/i18n/locales/sr_CS +#usr/share/i18n/locales/sq_MK +#usr/share/i18n/locales/sr_ME +#usr/share/i18n/locales/sr_RS +#usr/share/i18n/locales/sr_RS@latin +#usr/share/i18n/locales/ss_ZA #usr/share/i18n/locales/st_ZA #usr/share/i18n/locales/sv_FI #usr/share/i18n/locales/sv_FI@euro @@ -1120,7 +1260,10 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ti_ER #usr/share/i18n/locales/ti_ET #usr/share/i18n/locales/tig_ER +#usr/share/i18n/locales/tk_TM #usr/share/i18n/locales/tl_PH +#usr/share/i18n/locales/tn_ZA +#usr/share/i18n/locales/tr_CY #usr/share/i18n/locales/tr_TR #usr/share/i18n/locales/translit_circle #usr/share/i18n/locales/translit_cjk_compat @@ -1134,25 +1277,48 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/translit_neutral #usr/share/i18n/locales/translit_small #usr/share/i18n/locales/translit_wide +#usr/share/i18n/locales/ts_ZA #usr/share/i18n/locales/tt_RU +#usr/share/i18n/locales/tt_RU@iqtelif +#usr/share/i18n/locales/ug_CN #usr/share/i18n/locales/uk_UA +#usr/share/i18n/locales/ur_IN #usr/share/i18n/locales/ur_PK #usr/share/i18n/locales/uz_UZ #usr/share/i18n/locales/uz_UZ@cyrillic +#usr/share/i18n/locales/ve_ZA #usr/share/i18n/locales/vi_VN #usr/share/i18n/locales/wa_BE #usr/share/i18n/locales/wa_BE@euro #usr/share/i18n/locales/wal_ET +#usr/share/i18n/locales/wo_SN #usr/share/i18n/locales/xh_ZA #usr/share/i18n/locales/yi_US +#usr/share/i18n/locales/yo_NG #usr/share/i18n/locales/zh_CN #usr/share/i18n/locales/zh_HK #usr/share/i18n/locales/zh_SG #usr/share/i18n/locales/zh_TW #usr/share/i18n/locales/zu_ZA +#usr/share/info/dir +#usr/share/info/libc.info +#usr/share/info/libc.info-1 +#usr/share/info/libc.info-10 +#usr/share/info/libc.info-11 +#usr/share/info/libc.info-2 +#usr/share/info/libc.info-3 +#usr/share/info/libc.info-4 +#usr/share/info/libc.info-5 +#usr/share/info/libc.info-6 +#usr/share/info/libc.info-7 +#usr/share/info/libc.info-8 +#usr/share/info/libc.info-9 #usr/share/locale/be #usr/share/locale/be/LC_MESSAGES #usr/share/locale/be/LC_MESSAGES/libc.mo +#usr/share/locale/bg +#usr/share/locale/bg/LC_MESSAGES +#usr/share/locale/bg/LC_MESSAGES/libc.mo #usr/share/locale/ca #usr/share/locale/ca/LC_MESSAGES #usr/share/locale/ca/LC_MESSAGES/libc.mo @@ -1189,6 +1355,9 @@ usr/lib/locale/locale-archive #usr/share/locale/hu #usr/share/locale/hu/LC_MESSAGES #usr/share/locale/hu/LC_MESSAGES/libc.mo +#usr/share/locale/id +#usr/share/locale/id/LC_MESSAGES +#usr/share/locale/id/LC_MESSAGES/libc.mo #usr/share/locale/it #usr/share/locale/it/LC_MESSAGES #usr/share/locale/it/LC_MESSAGES/libc.mo @@ -1199,6 +1368,9 @@ usr/lib/locale/locale-archive #usr/share/locale/ko/LC_MESSAGES #usr/share/locale/ko/LC_MESSAGES/libc.mo #usr/share/locale/locale.alias +#usr/share/locale/lt +#usr/share/locale/lt/LC_MESSAGES +#usr/share/locale/lt/LC_MESSAGES/libc.mo #usr/share/locale/nb #usr/share/locale/nb/LC_MESSAGES #usr/share/locale/nb/LC_MESSAGES/libc.mo @@ -1211,6 +1383,12 @@ usr/lib/locale/locale-archive #usr/share/locale/pt_BR #usr/share/locale/pt_BR/LC_MESSAGES #usr/share/locale/pt_BR/LC_MESSAGES/libc.mo +#usr/share/locale/ru +#usr/share/locale/ru/LC_MESSAGES +#usr/share/locale/ru/LC_MESSAGES/libc.mo +#usr/share/locale/rw +#usr/share/locale/rw/LC_MESSAGES +#usr/share/locale/rw/LC_MESSAGES/libc.mo #usr/share/locale/sk #usr/share/locale/sk/LC_MESSAGES #usr/share/locale/sk/LC_MESSAGES/libc.mo @@ -1220,1739 +1398,14 @@ usr/lib/locale/locale-archive #usr/share/locale/tr #usr/share/locale/tr/LC_MESSAGES #usr/share/locale/tr/LC_MESSAGES/libc.mo +#usr/share/locale/vi +#usr/share/locale/vi/LC_MESSAGES +#usr/share/locale/vi/LC_MESSAGES/libc.mo #usr/share/locale/zh_CN #usr/share/locale/zh_CN/LC_MESSAGES #usr/share/locale/zh_CN/LC_MESSAGES/libc.mo #usr/share/locale/zh_TW #usr/share/locale/zh_TW/LC_MESSAGES #usr/share/locale/zh_TW/LC_MESSAGES/libc.mo -#usr/share/zoneinfo/Africa -#usr/share/zoneinfo/Africa/Abidjan -#usr/share/zoneinfo/Africa/Accra -#usr/share/zoneinfo/Africa/Addis_Ababa -#usr/share/zoneinfo/Africa/Algiers -#usr/share/zoneinfo/Africa/Asmera -#usr/share/zoneinfo/Africa/Bamako -#usr/share/zoneinfo/Africa/Bangui -#usr/share/zoneinfo/Africa/Banjul -#usr/share/zoneinfo/Africa/Bissau -#usr/share/zoneinfo/Africa/Blantyre -#usr/share/zoneinfo/Africa/Brazzaville -#usr/share/zoneinfo/Africa/Bujumbura -#usr/share/zoneinfo/Africa/Cairo -#usr/share/zoneinfo/Africa/Casablanca -#usr/share/zoneinfo/Africa/Ceuta -#usr/share/zoneinfo/Africa/Conakry -#usr/share/zoneinfo/Africa/Dakar -#usr/share/zoneinfo/Africa/Dar_es_Salaam -#usr/share/zoneinfo/Africa/Djibouti -#usr/share/zoneinfo/Africa/Douala -#usr/share/zoneinfo/Africa/El_Aaiun -#usr/share/zoneinfo/Africa/Freetown -#usr/share/zoneinfo/Africa/Gaborone -#usr/share/zoneinfo/Africa/Harare -#usr/share/zoneinfo/Africa/Johannesburg -#usr/share/zoneinfo/Africa/Kampala -#usr/share/zoneinfo/Africa/Khartoum -#usr/share/zoneinfo/Africa/Kigali -#usr/share/zoneinfo/Africa/Kinshasa -#usr/share/zoneinfo/Africa/Lagos -#usr/share/zoneinfo/Africa/Libreville -#usr/share/zoneinfo/Africa/Lome -#usr/share/zoneinfo/Africa/Luanda -#usr/share/zoneinfo/Africa/Lubumbashi -#usr/share/zoneinfo/Africa/Lusaka -#usr/share/zoneinfo/Africa/Malabo -#usr/share/zoneinfo/Africa/Maputo -#usr/share/zoneinfo/Africa/Maseru -#usr/share/zoneinfo/Africa/Mbabane -#usr/share/zoneinfo/Africa/Mogadishu -#usr/share/zoneinfo/Africa/Monrovia -#usr/share/zoneinfo/Africa/Nairobi -#usr/share/zoneinfo/Africa/Ndjamena -#usr/share/zoneinfo/Africa/Niamey -#usr/share/zoneinfo/Africa/Nouakchott -#usr/share/zoneinfo/Africa/Ouagadougou -#usr/share/zoneinfo/Africa/Porto-Novo -#usr/share/zoneinfo/Africa/Sao_Tome -#usr/share/zoneinfo/Africa/Timbuktu -#usr/share/zoneinfo/Africa/Tripoli -#usr/share/zoneinfo/Africa/Tunis -#usr/share/zoneinfo/Africa/Windhoek -#usr/share/zoneinfo/America -#usr/share/zoneinfo/America/Adak -#usr/share/zoneinfo/America/Anchorage -#usr/share/zoneinfo/America/Anguilla -#usr/share/zoneinfo/America/Antigua -#usr/share/zoneinfo/America/Araguaina -#usr/share/zoneinfo/America/Argentina -#usr/share/zoneinfo/America/Argentina/Buenos_Aires -#usr/share/zoneinfo/America/Argentina/Catamarca -#usr/share/zoneinfo/America/Argentina/ComodRivadavia -#usr/share/zoneinfo/America/Argentina/Cordoba -#usr/share/zoneinfo/America/Argentina/Jujuy -#usr/share/zoneinfo/America/Argentina/La_Rioja -#usr/share/zoneinfo/America/Argentina/Mendoza -#usr/share/zoneinfo/America/Argentina/Rio_Gallegos -#usr/share/zoneinfo/America/Argentina/San_Juan -#usr/share/zoneinfo/America/Argentina/Tucuman -#usr/share/zoneinfo/America/Argentina/Ushuaia -#usr/share/zoneinfo/America/Aruba -#usr/share/zoneinfo/America/Asuncion -#usr/share/zoneinfo/America/Atka -#usr/share/zoneinfo/America/Bahia -#usr/share/zoneinfo/America/Barbados -#usr/share/zoneinfo/America/Belem -#usr/share/zoneinfo/America/Belize -#usr/share/zoneinfo/America/Boa_Vista -#usr/share/zoneinfo/America/Bogota -#usr/share/zoneinfo/America/Boise -#usr/share/zoneinfo/America/Buenos_Aires -#usr/share/zoneinfo/America/Cambridge_Bay -#usr/share/zoneinfo/America/Campo_Grande -#usr/share/zoneinfo/America/Cancun -#usr/share/zoneinfo/America/Caracas -#usr/share/zoneinfo/America/Catamarca -#usr/share/zoneinfo/America/Cayenne -#usr/share/zoneinfo/America/Cayman -#usr/share/zoneinfo/America/Chicago -#usr/share/zoneinfo/America/Chihuahua -#usr/share/zoneinfo/America/Coral_Harbour -#usr/share/zoneinfo/America/Cordoba -#usr/share/zoneinfo/America/Costa_Rica -#usr/share/zoneinfo/America/Cuiaba -#usr/share/zoneinfo/America/Curacao -#usr/share/zoneinfo/America/Danmarkshavn -#usr/share/zoneinfo/America/Dawson -#usr/share/zoneinfo/America/Dawson_Creek -#usr/share/zoneinfo/America/Denver -#usr/share/zoneinfo/America/Detroit -#usr/share/zoneinfo/America/Dominica -#usr/share/zoneinfo/America/Edmonton -#usr/share/zoneinfo/America/Eirunepe -#usr/share/zoneinfo/America/El_Salvador -#usr/share/zoneinfo/America/Ensenada -#usr/share/zoneinfo/America/Fort_Wayne -#usr/share/zoneinfo/America/Fortaleza -#usr/share/zoneinfo/America/Glace_Bay -#usr/share/zoneinfo/America/Godthab -#usr/share/zoneinfo/America/Goose_Bay -#usr/share/zoneinfo/America/Grand_Turk -#usr/share/zoneinfo/America/Grenada -#usr/share/zoneinfo/America/Guadeloupe -#usr/share/zoneinfo/America/Guatemala -#usr/share/zoneinfo/America/Guayaquil -#usr/share/zoneinfo/America/Guyana -#usr/share/zoneinfo/America/Halifax -#usr/share/zoneinfo/America/Havana -#usr/share/zoneinfo/America/Hermosillo -#usr/share/zoneinfo/America/Indiana -#usr/share/zoneinfo/America/Indiana/Indianapolis -#usr/share/zoneinfo/America/Indiana/Knox -#usr/share/zoneinfo/America/Indiana/Marengo -#usr/share/zoneinfo/America/Indiana/Vevay -#usr/share/zoneinfo/America/Indianapolis -#usr/share/zoneinfo/America/Inuvik -#usr/share/zoneinfo/America/Iqaluit -#usr/share/zoneinfo/America/Jamaica -#usr/share/zoneinfo/America/Jujuy -#usr/share/zoneinfo/America/Juneau -#usr/share/zoneinfo/America/Kentucky -#usr/share/zoneinfo/America/Kentucky/Louisville -#usr/share/zoneinfo/America/Kentucky/Monticello -#usr/share/zoneinfo/America/Knox_IN -#usr/share/zoneinfo/America/La_Paz -#usr/share/zoneinfo/America/Lima -#usr/share/zoneinfo/America/Los_Angeles -#usr/share/zoneinfo/America/Louisville -#usr/share/zoneinfo/America/Maceio -#usr/share/zoneinfo/America/Managua -#usr/share/zoneinfo/America/Manaus -#usr/share/zoneinfo/America/Martinique -#usr/share/zoneinfo/America/Mazatlan -#usr/share/zoneinfo/America/Mendoza -#usr/share/zoneinfo/America/Menominee -#usr/share/zoneinfo/America/Merida -#usr/share/zoneinfo/America/Mexico_City -#usr/share/zoneinfo/America/Miquelon -#usr/share/zoneinfo/America/Monterrey -#usr/share/zoneinfo/America/Montevideo -#usr/share/zoneinfo/America/Montreal -#usr/share/zoneinfo/America/Montserrat -#usr/share/zoneinfo/America/Nassau -#usr/share/zoneinfo/America/New_York -#usr/share/zoneinfo/America/Nipigon -#usr/share/zoneinfo/America/Nome -#usr/share/zoneinfo/America/Noronha -#usr/share/zoneinfo/America/North_Dakota -#usr/share/zoneinfo/America/North_Dakota/Center -#usr/share/zoneinfo/America/Panama -#usr/share/zoneinfo/America/Pangnirtung -#usr/share/zoneinfo/America/Paramaribo -#usr/share/zoneinfo/America/Phoenix -#usr/share/zoneinfo/America/Port-au-Prince -#usr/share/zoneinfo/America/Port_of_Spain -#usr/share/zoneinfo/America/Porto_Acre -#usr/share/zoneinfo/America/Porto_Velho -#usr/share/zoneinfo/America/Puerto_Rico -#usr/share/zoneinfo/America/Rainy_River -#usr/share/zoneinfo/America/Rankin_Inlet -#usr/share/zoneinfo/America/Recife -#usr/share/zoneinfo/America/Regina -#usr/share/zoneinfo/America/Rio_Branco -#usr/share/zoneinfo/America/Rosario -#usr/share/zoneinfo/America/Santiago -#usr/share/zoneinfo/America/Santo_Domingo -#usr/share/zoneinfo/America/Sao_Paulo -#usr/share/zoneinfo/America/Scoresbysund -#usr/share/zoneinfo/America/Shiprock -#usr/share/zoneinfo/America/St_Johns -#usr/share/zoneinfo/America/St_Kitts -#usr/share/zoneinfo/America/St_Lucia -#usr/share/zoneinfo/America/St_Thomas -#usr/share/zoneinfo/America/St_Vincent -#usr/share/zoneinfo/America/Swift_Current -#usr/share/zoneinfo/America/Tegucigalpa -#usr/share/zoneinfo/America/Thule -#usr/share/zoneinfo/America/Thunder_Bay -#usr/share/zoneinfo/America/Tijuana -#usr/share/zoneinfo/America/Toronto -#usr/share/zoneinfo/America/Tortola -#usr/share/zoneinfo/America/Vancouver -#usr/share/zoneinfo/America/Virgin -#usr/share/zoneinfo/America/Whitehorse -#usr/share/zoneinfo/America/Winnipeg -#usr/share/zoneinfo/America/Yakutat -#usr/share/zoneinfo/America/Yellowknife -#usr/share/zoneinfo/Antarctica -#usr/share/zoneinfo/Antarctica/Casey -#usr/share/zoneinfo/Antarctica/Davis -#usr/share/zoneinfo/Antarctica/DumontDUrville -#usr/share/zoneinfo/Antarctica/Mawson -#usr/share/zoneinfo/Antarctica/McMurdo -#usr/share/zoneinfo/Antarctica/Palmer -#usr/share/zoneinfo/Antarctica/Rothera -#usr/share/zoneinfo/Antarctica/South_Pole -#usr/share/zoneinfo/Antarctica/Syowa -#usr/share/zoneinfo/Antarctica/Vostok -#usr/share/zoneinfo/Arctic -#usr/share/zoneinfo/Arctic/Longyearbyen -#usr/share/zoneinfo/Asia -#usr/share/zoneinfo/Asia/Aden -#usr/share/zoneinfo/Asia/Almaty -#usr/share/zoneinfo/Asia/Amman -#usr/share/zoneinfo/Asia/Anadyr -#usr/share/zoneinfo/Asia/Aqtau -#usr/share/zoneinfo/Asia/Aqtobe -#usr/share/zoneinfo/Asia/Ashgabat -#usr/share/zoneinfo/Asia/Ashkhabad -#usr/share/zoneinfo/Asia/Baghdad -#usr/share/zoneinfo/Asia/Bahrain -#usr/share/zoneinfo/Asia/Baku -#usr/share/zoneinfo/Asia/Bangkok -#usr/share/zoneinfo/Asia/Beirut -#usr/share/zoneinfo/Asia/Bishkek -#usr/share/zoneinfo/Asia/Brunei -#usr/share/zoneinfo/Asia/Calcutta -#usr/share/zoneinfo/Asia/Choibalsan -#usr/share/zoneinfo/Asia/Chongqing -#usr/share/zoneinfo/Asia/Chungking -#usr/share/zoneinfo/Asia/Colombo -#usr/share/zoneinfo/Asia/Dacca -#usr/share/zoneinfo/Asia/Damascus -#usr/share/zoneinfo/Asia/Dhaka -#usr/share/zoneinfo/Asia/Dili -#usr/share/zoneinfo/Asia/Dubai -#usr/share/zoneinfo/Asia/Dushanbe -#usr/share/zoneinfo/Asia/Gaza -#usr/share/zoneinfo/Asia/Harbin -#usr/share/zoneinfo/Asia/Hong_Kong -#usr/share/zoneinfo/Asia/Hovd -#usr/share/zoneinfo/Asia/Irkutsk -#usr/share/zoneinfo/Asia/Istanbul -#usr/share/zoneinfo/Asia/Jakarta -#usr/share/zoneinfo/Asia/Jayapura -#usr/share/zoneinfo/Asia/Jerusalem -#usr/share/zoneinfo/Asia/Kabul -#usr/share/zoneinfo/Asia/Kamchatka -#usr/share/zoneinfo/Asia/Karachi -#usr/share/zoneinfo/Asia/Kashgar -#usr/share/zoneinfo/Asia/Katmandu -#usr/share/zoneinfo/Asia/Krasnoyarsk -#usr/share/zoneinfo/Asia/Kuala_Lumpur -#usr/share/zoneinfo/Asia/Kuching -#usr/share/zoneinfo/Asia/Kuwait -#usr/share/zoneinfo/Asia/Macao -#usr/share/zoneinfo/Asia/Macau -#usr/share/zoneinfo/Asia/Magadan -#usr/share/zoneinfo/Asia/Makassar -#usr/share/zoneinfo/Asia/Manila -#usr/share/zoneinfo/Asia/Muscat -#usr/share/zoneinfo/Asia/Nicosia -#usr/share/zoneinfo/Asia/Novosibirsk -#usr/share/zoneinfo/Asia/Omsk -#usr/share/zoneinfo/Asia/Oral -#usr/share/zoneinfo/Asia/Phnom_Penh -#usr/share/zoneinfo/Asia/Pontianak -#usr/share/zoneinfo/Asia/Pyongyang -#usr/share/zoneinfo/Asia/Qatar -#usr/share/zoneinfo/Asia/Qyzylorda -#usr/share/zoneinfo/Asia/Rangoon -#usr/share/zoneinfo/Asia/Riyadh -#usr/share/zoneinfo/Asia/Riyadh87 -#usr/share/zoneinfo/Asia/Riyadh88 -#usr/share/zoneinfo/Asia/Riyadh89 -#usr/share/zoneinfo/Asia/Saigon -#usr/share/zoneinfo/Asia/Sakhalin -#usr/share/zoneinfo/Asia/Samarkand -#usr/share/zoneinfo/Asia/Seoul -#usr/share/zoneinfo/Asia/Shanghai -#usr/share/zoneinfo/Asia/Singapore -#usr/share/zoneinfo/Asia/Taipei -#usr/share/zoneinfo/Asia/Tashkent -#usr/share/zoneinfo/Asia/Tbilisi -#usr/share/zoneinfo/Asia/Tehran -#usr/share/zoneinfo/Asia/Tel_Aviv -#usr/share/zoneinfo/Asia/Thimbu -#usr/share/zoneinfo/Asia/Thimphu -#usr/share/zoneinfo/Asia/Tokyo -#usr/share/zoneinfo/Asia/Ujung_Pandang -#usr/share/zoneinfo/Asia/Ulaanbaatar -#usr/share/zoneinfo/Asia/Ulan_Bator -#usr/share/zoneinfo/Asia/Urumqi -#usr/share/zoneinfo/Asia/Vientiane -#usr/share/zoneinfo/Asia/Vladivostok -#usr/share/zoneinfo/Asia/Yakutsk -#usr/share/zoneinfo/Asia/Yekaterinburg -#usr/share/zoneinfo/Asia/Yerevan -#usr/share/zoneinfo/Atlantic -#usr/share/zoneinfo/Atlantic/Azores -#usr/share/zoneinfo/Atlantic/Bermuda -#usr/share/zoneinfo/Atlantic/Canary -#usr/share/zoneinfo/Atlantic/Cape_Verde -#usr/share/zoneinfo/Atlantic/Faeroe -#usr/share/zoneinfo/Atlantic/Jan_Mayen -#usr/share/zoneinfo/Atlantic/Madeira -#usr/share/zoneinfo/Atlantic/Reykjavik -#usr/share/zoneinfo/Atlantic/South_Georgia -#usr/share/zoneinfo/Atlantic/St_Helena -#usr/share/zoneinfo/Atlantic/Stanley -#usr/share/zoneinfo/Australia -#usr/share/zoneinfo/Australia/ACT -#usr/share/zoneinfo/Australia/Adelaide -#usr/share/zoneinfo/Australia/Brisbane -#usr/share/zoneinfo/Australia/Broken_Hill -#usr/share/zoneinfo/Australia/Canberra -#usr/share/zoneinfo/Australia/Currie -#usr/share/zoneinfo/Australia/Darwin -#usr/share/zoneinfo/Australia/Hobart -#usr/share/zoneinfo/Australia/LHI -#usr/share/zoneinfo/Australia/Lindeman -#usr/share/zoneinfo/Australia/Lord_Howe -#usr/share/zoneinfo/Australia/Melbourne -#usr/share/zoneinfo/Australia/NSW -#usr/share/zoneinfo/Australia/North -#usr/share/zoneinfo/Australia/Perth -#usr/share/zoneinfo/Australia/Queensland -#usr/share/zoneinfo/Australia/South -#usr/share/zoneinfo/Australia/Sydney -#usr/share/zoneinfo/Australia/Tasmania -#usr/share/zoneinfo/Australia/Victoria -#usr/share/zoneinfo/Australia/West -#usr/share/zoneinfo/Australia/Yancowinna -#usr/share/zoneinfo/Brazil -#usr/share/zoneinfo/Brazil/Acre -#usr/share/zoneinfo/Brazil/DeNoronha -#usr/share/zoneinfo/Brazil/East -#usr/share/zoneinfo/Brazil/West -#usr/share/zoneinfo/CET -#usr/share/zoneinfo/CST6CDT -#usr/share/zoneinfo/Canada -#usr/share/zoneinfo/Canada/Atlantic -#usr/share/zoneinfo/Canada/Central -#usr/share/zoneinfo/Canada/East-Saskatchewan -#usr/share/zoneinfo/Canada/Eastern -#usr/share/zoneinfo/Canada/Mountain -#usr/share/zoneinfo/Canada/Newfoundland -#usr/share/zoneinfo/Canada/Pacific -#usr/share/zoneinfo/Canada/Saskatchewan -#usr/share/zoneinfo/Canada/Yukon -#usr/share/zoneinfo/Chile -#usr/share/zoneinfo/Chile/Continental -#usr/share/zoneinfo/Chile/EasterIsland -#usr/share/zoneinfo/Cuba -#usr/share/zoneinfo/EET -#usr/share/zoneinfo/EST -#usr/share/zoneinfo/EST5EDT -#usr/share/zoneinfo/Egypt -#usr/share/zoneinfo/Eire -#usr/share/zoneinfo/Etc -#usr/share/zoneinfo/Etc/GMT -#usr/share/zoneinfo/Etc/GMT+0 -#usr/share/zoneinfo/Etc/GMT+1 -#usr/share/zoneinfo/Etc/GMT+10 -#usr/share/zoneinfo/Etc/GMT+11 -#usr/share/zoneinfo/Etc/GMT+12 -#usr/share/zoneinfo/Etc/GMT+2 -#usr/share/zoneinfo/Etc/GMT+3 -#usr/share/zoneinfo/Etc/GMT+4 -#usr/share/zoneinfo/Etc/GMT+5 -#usr/share/zoneinfo/Etc/GMT+6 -#usr/share/zoneinfo/Etc/GMT+7 -#usr/share/zoneinfo/Etc/GMT+8 -#usr/share/zoneinfo/Etc/GMT+9 -#usr/share/zoneinfo/Etc/GMT-0 -#usr/share/zoneinfo/Etc/GMT-1 -#usr/share/zoneinfo/Etc/GMT-10 -#usr/share/zoneinfo/Etc/GMT-11 -#usr/share/zoneinfo/Etc/GMT-12 -#usr/share/zoneinfo/Etc/GMT-13 -#usr/share/zoneinfo/Etc/GMT-14 -#usr/share/zoneinfo/Etc/GMT-2 -#usr/share/zoneinfo/Etc/GMT-3 -#usr/share/zoneinfo/Etc/GMT-4 -#usr/share/zoneinfo/Etc/GMT-5 -#usr/share/zoneinfo/Etc/GMT-6 -#usr/share/zoneinfo/Etc/GMT-7 -#usr/share/zoneinfo/Etc/GMT-8 -#usr/share/zoneinfo/Etc/GMT-9 -#usr/share/zoneinfo/Etc/GMT0 -#usr/share/zoneinfo/Etc/Greenwich -#usr/share/zoneinfo/Etc/UCT -#usr/share/zoneinfo/Etc/UTC -#usr/share/zoneinfo/Etc/Universal -#usr/share/zoneinfo/Etc/Zulu -#usr/share/zoneinfo/Europe -#usr/share/zoneinfo/Europe/Amsterdam -#usr/share/zoneinfo/Europe/Andorra -#usr/share/zoneinfo/Europe/Athens -#usr/share/zoneinfo/Europe/Belfast -#usr/share/zoneinfo/Europe/Belgrade -#usr/share/zoneinfo/Europe/Berlin -#usr/share/zoneinfo/Europe/Bratislava -#usr/share/zoneinfo/Europe/Brussels -#usr/share/zoneinfo/Europe/Bucharest -#usr/share/zoneinfo/Europe/Budapest -#usr/share/zoneinfo/Europe/Chisinau -#usr/share/zoneinfo/Europe/Copenhagen -#usr/share/zoneinfo/Europe/Dublin -#usr/share/zoneinfo/Europe/Gibraltar -#usr/share/zoneinfo/Europe/Helsinki -#usr/share/zoneinfo/Europe/Istanbul -#usr/share/zoneinfo/Europe/Kaliningrad -#usr/share/zoneinfo/Europe/Kiev -#usr/share/zoneinfo/Europe/Lisbon -#usr/share/zoneinfo/Europe/Ljubljana -#usr/share/zoneinfo/Europe/London -#usr/share/zoneinfo/Europe/Luxembourg -#usr/share/zoneinfo/Europe/Madrid -#usr/share/zoneinfo/Europe/Malta -#usr/share/zoneinfo/Europe/Mariehamn -#usr/share/zoneinfo/Europe/Minsk -#usr/share/zoneinfo/Europe/Monaco -#usr/share/zoneinfo/Europe/Moscow -#usr/share/zoneinfo/Europe/Nicosia -#usr/share/zoneinfo/Europe/Oslo -#usr/share/zoneinfo/Europe/Paris -#usr/share/zoneinfo/Europe/Prague -#usr/share/zoneinfo/Europe/Riga -#usr/share/zoneinfo/Europe/Rome -#usr/share/zoneinfo/Europe/Samara -#usr/share/zoneinfo/Europe/San_Marino -#usr/share/zoneinfo/Europe/Sarajevo -#usr/share/zoneinfo/Europe/Simferopol -#usr/share/zoneinfo/Europe/Skopje -#usr/share/zoneinfo/Europe/Sofia -#usr/share/zoneinfo/Europe/Stockholm -#usr/share/zoneinfo/Europe/Tallinn -#usr/share/zoneinfo/Europe/Tirane -#usr/share/zoneinfo/Europe/Tiraspol -#usr/share/zoneinfo/Europe/Uzhgorod -#usr/share/zoneinfo/Europe/Vaduz -#usr/share/zoneinfo/Europe/Vatican -#usr/share/zoneinfo/Europe/Vienna -#usr/share/zoneinfo/Europe/Vilnius -#usr/share/zoneinfo/Europe/Warsaw -#usr/share/zoneinfo/Europe/Zagreb -#usr/share/zoneinfo/Europe/Zaporozhye -#usr/share/zoneinfo/Europe/Zurich -#usr/share/zoneinfo/Factory -#usr/share/zoneinfo/GB -#usr/share/zoneinfo/GB-Eire -#usr/share/zoneinfo/GMT -#usr/share/zoneinfo/GMT+0 -#usr/share/zoneinfo/GMT-0 -#usr/share/zoneinfo/GMT0 -#usr/share/zoneinfo/Greenwich -#usr/share/zoneinfo/HST -#usr/share/zoneinfo/Hongkong -#usr/share/zoneinfo/Iceland -#usr/share/zoneinfo/Indian -#usr/share/zoneinfo/Indian/Antananarivo -#usr/share/zoneinfo/Indian/Chagos -#usr/share/zoneinfo/Indian/Christmas -#usr/share/zoneinfo/Indian/Cocos -#usr/share/zoneinfo/Indian/Comoro -#usr/share/zoneinfo/Indian/Kerguelen -#usr/share/zoneinfo/Indian/Mahe -#usr/share/zoneinfo/Indian/Maldives -#usr/share/zoneinfo/Indian/Mauritius -#usr/share/zoneinfo/Indian/Mayotte -#usr/share/zoneinfo/Indian/Reunion -#usr/share/zoneinfo/Iran -#usr/share/zoneinfo/Israel -#usr/share/zoneinfo/Jamaica -#usr/share/zoneinfo/Japan -#usr/share/zoneinfo/Kwajalein -#usr/share/zoneinfo/Libya -#usr/share/zoneinfo/MET -#usr/share/zoneinfo/MST -#usr/share/zoneinfo/MST7MDT -#usr/share/zoneinfo/Mexico -#usr/share/zoneinfo/Mexico/BajaNorte -#usr/share/zoneinfo/Mexico/BajaSur -#usr/share/zoneinfo/Mexico/General -#usr/share/zoneinfo/Mideast -#usr/share/zoneinfo/Mideast/Riyadh87 -#usr/share/zoneinfo/Mideast/Riyadh88 -#usr/share/zoneinfo/Mideast/Riyadh89 -#usr/share/zoneinfo/NZ -#usr/share/zoneinfo/NZ-CHAT -#usr/share/zoneinfo/Navajo -#usr/share/zoneinfo/PRC -#usr/share/zoneinfo/PST8PDT -#usr/share/zoneinfo/Pacific -#usr/share/zoneinfo/Pacific/Apia -#usr/share/zoneinfo/Pacific/Auckland -#usr/share/zoneinfo/Pacific/Chatham -#usr/share/zoneinfo/Pacific/Easter -#usr/share/zoneinfo/Pacific/Efate -#usr/share/zoneinfo/Pacific/Enderbury -#usr/share/zoneinfo/Pacific/Fakaofo -#usr/share/zoneinfo/Pacific/Fiji -#usr/share/zoneinfo/Pacific/Funafuti -#usr/share/zoneinfo/Pacific/Galapagos -#usr/share/zoneinfo/Pacific/Gambier -#usr/share/zoneinfo/Pacific/Guadalcanal -#usr/share/zoneinfo/Pacific/Guam -#usr/share/zoneinfo/Pacific/Honolulu -#usr/share/zoneinfo/Pacific/Johnston -#usr/share/zoneinfo/Pacific/Kiritimati -#usr/share/zoneinfo/Pacific/Kosrae -#usr/share/zoneinfo/Pacific/Kwajalein -#usr/share/zoneinfo/Pacific/Majuro -#usr/share/zoneinfo/Pacific/Marquesas -#usr/share/zoneinfo/Pacific/Midway -#usr/share/zoneinfo/Pacific/Nauru -#usr/share/zoneinfo/Pacific/Niue -#usr/share/zoneinfo/Pacific/Norfolk -#usr/share/zoneinfo/Pacific/Noumea -#usr/share/zoneinfo/Pacific/Pago_Pago -#usr/share/zoneinfo/Pacific/Palau -#usr/share/zoneinfo/Pacific/Pitcairn -#usr/share/zoneinfo/Pacific/Ponape -#usr/share/zoneinfo/Pacific/Port_Moresby -#usr/share/zoneinfo/Pacific/Rarotonga -#usr/share/zoneinfo/Pacific/Saipan -#usr/share/zoneinfo/Pacific/Samoa -#usr/share/zoneinfo/Pacific/Tahiti -#usr/share/zoneinfo/Pacific/Tarawa -#usr/share/zoneinfo/Pacific/Tongatapu -#usr/share/zoneinfo/Pacific/Truk -#usr/share/zoneinfo/Pacific/Wake -#usr/share/zoneinfo/Pacific/Wallis -#usr/share/zoneinfo/Pacific/Yap -#usr/share/zoneinfo/Poland -#usr/share/zoneinfo/Portugal -#usr/share/zoneinfo/ROC -#usr/share/zoneinfo/ROK -#usr/share/zoneinfo/Singapore -#usr/share/zoneinfo/SystemV -#usr/share/zoneinfo/SystemV/AST4 -#usr/share/zoneinfo/SystemV/AST4ADT -#usr/share/zoneinfo/SystemV/CST6 -#usr/share/zoneinfo/SystemV/CST6CDT -#usr/share/zoneinfo/SystemV/EST5 -#usr/share/zoneinfo/SystemV/EST5EDT -#usr/share/zoneinfo/SystemV/HST10 -#usr/share/zoneinfo/SystemV/MST7 -#usr/share/zoneinfo/SystemV/MST7MDT -#usr/share/zoneinfo/SystemV/PST8 -#usr/share/zoneinfo/SystemV/PST8PDT -#usr/share/zoneinfo/SystemV/YST9 -#usr/share/zoneinfo/SystemV/YST9YDT -#usr/share/zoneinfo/Turkey -#usr/share/zoneinfo/UCT -#usr/share/zoneinfo/US -#usr/share/zoneinfo/US/Alaska -#usr/share/zoneinfo/US/Aleutian -#usr/share/zoneinfo/US/Arizona -#usr/share/zoneinfo/US/Central -#usr/share/zoneinfo/US/East-Indiana -#usr/share/zoneinfo/US/Eastern -#usr/share/zoneinfo/US/Hawaii -#usr/share/zoneinfo/US/Indiana-Starke -#usr/share/zoneinfo/US/Michigan -#usr/share/zoneinfo/US/Mountain -#usr/share/zoneinfo/US/Pacific -#usr/share/zoneinfo/US/Samoa -#usr/share/zoneinfo/UTC -#usr/share/zoneinfo/Universal -#usr/share/zoneinfo/W-SU -#usr/share/zoneinfo/WET -#usr/share/zoneinfo/Zulu -#usr/share/zoneinfo/iso3166.tab -usr/share/zoneinfo/posix -#usr/share/zoneinfo/posix/Africa -#usr/share/zoneinfo/posix/Africa/Abidjan -#usr/share/zoneinfo/posix/Africa/Accra -#usr/share/zoneinfo/posix/Africa/Addis_Ababa -#usr/share/zoneinfo/posix/Africa/Algiers -#usr/share/zoneinfo/posix/Africa/Asmera -#usr/share/zoneinfo/posix/Africa/Bamako -#usr/share/zoneinfo/posix/Africa/Bangui -#usr/share/zoneinfo/posix/Africa/Banjul -#usr/share/zoneinfo/posix/Africa/Bissau -#usr/share/zoneinfo/posix/Africa/Blantyre -#usr/share/zoneinfo/posix/Africa/Brazzaville -#usr/share/zoneinfo/posix/Africa/Bujumbura -#usr/share/zoneinfo/posix/Africa/Cairo -#usr/share/zoneinfo/posix/Africa/Casablanca -#usr/share/zoneinfo/posix/Africa/Ceuta -#usr/share/zoneinfo/posix/Africa/Conakry -#usr/share/zoneinfo/posix/Africa/Dakar -#usr/share/zoneinfo/posix/Africa/Dar_es_Salaam -#usr/share/zoneinfo/posix/Africa/Djibouti -#usr/share/zoneinfo/posix/Africa/Douala -#usr/share/zoneinfo/posix/Africa/El_Aaiun -#usr/share/zoneinfo/posix/Africa/Freetown -#usr/share/zoneinfo/posix/Africa/Gaborone -#usr/share/zoneinfo/posix/Africa/Harare -#usr/share/zoneinfo/posix/Africa/Johannesburg -#usr/share/zoneinfo/posix/Africa/Kampala -#usr/share/zoneinfo/posix/Africa/Khartoum -#usr/share/zoneinfo/posix/Africa/Kigali -#usr/share/zoneinfo/posix/Africa/Kinshasa -#usr/share/zoneinfo/posix/Africa/Lagos -#usr/share/zoneinfo/posix/Africa/Libreville -#usr/share/zoneinfo/posix/Africa/Lome -#usr/share/zoneinfo/posix/Africa/Luanda -#usr/share/zoneinfo/posix/Africa/Lubumbashi -#usr/share/zoneinfo/posix/Africa/Lusaka -#usr/share/zoneinfo/posix/Africa/Malabo -#usr/share/zoneinfo/posix/Africa/Maputo -#usr/share/zoneinfo/posix/Africa/Maseru -#usr/share/zoneinfo/posix/Africa/Mbabane -#usr/share/zoneinfo/posix/Africa/Mogadishu -#usr/share/zoneinfo/posix/Africa/Monrovia -#usr/share/zoneinfo/posix/Africa/Nairobi -#usr/share/zoneinfo/posix/Africa/Ndjamena -#usr/share/zoneinfo/posix/Africa/Niamey -#usr/share/zoneinfo/posix/Africa/Nouakchott -#usr/share/zoneinfo/posix/Africa/Ouagadougou -#usr/share/zoneinfo/posix/Africa/Porto-Novo -#usr/share/zoneinfo/posix/Africa/Sao_Tome -#usr/share/zoneinfo/posix/Africa/Timbuktu -#usr/share/zoneinfo/posix/Africa/Tripoli -#usr/share/zoneinfo/posix/Africa/Tunis -#usr/share/zoneinfo/posix/Africa/Windhoek -#usr/share/zoneinfo/posix/America -#usr/share/zoneinfo/posix/America/Adak -#usr/share/zoneinfo/posix/America/Anchorage -#usr/share/zoneinfo/posix/America/Anguilla -#usr/share/zoneinfo/posix/America/Antigua -#usr/share/zoneinfo/posix/America/Araguaina -#usr/share/zoneinfo/posix/America/Argentina -#usr/share/zoneinfo/posix/America/Argentina/Buenos_Aires -#usr/share/zoneinfo/posix/America/Argentina/Catamarca -#usr/share/zoneinfo/posix/America/Argentina/ComodRivadavia -#usr/share/zoneinfo/posix/America/Argentina/Cordoba -#usr/share/zoneinfo/posix/America/Argentina/Jujuy -#usr/share/zoneinfo/posix/America/Argentina/La_Rioja -#usr/share/zoneinfo/posix/America/Argentina/Mendoza -#usr/share/zoneinfo/posix/America/Argentina/Rio_Gallegos -#usr/share/zoneinfo/posix/America/Argentina/San_Juan -#usr/share/zoneinfo/posix/America/Argentina/Tucuman -#usr/share/zoneinfo/posix/America/Argentina/Ushuaia -#usr/share/zoneinfo/posix/America/Aruba -#usr/share/zoneinfo/posix/America/Asuncion -#usr/share/zoneinfo/posix/America/Atka -#usr/share/zoneinfo/posix/America/Bahia -#usr/share/zoneinfo/posix/America/Barbados -#usr/share/zoneinfo/posix/America/Belem -#usr/share/zoneinfo/posix/America/Belize -#usr/share/zoneinfo/posix/America/Boa_Vista -#usr/share/zoneinfo/posix/America/Bogota -#usr/share/zoneinfo/posix/America/Boise -#usr/share/zoneinfo/posix/America/Buenos_Aires -#usr/share/zoneinfo/posix/America/Cambridge_Bay -#usr/share/zoneinfo/posix/America/Campo_Grande -#usr/share/zoneinfo/posix/America/Cancun -#usr/share/zoneinfo/posix/America/Caracas -#usr/share/zoneinfo/posix/America/Catamarca -#usr/share/zoneinfo/posix/America/Cayenne -#usr/share/zoneinfo/posix/America/Cayman -#usr/share/zoneinfo/posix/America/Chicago -#usr/share/zoneinfo/posix/America/Chihuahua -#usr/share/zoneinfo/posix/America/Coral_Harbour -#usr/share/zoneinfo/posix/America/Cordoba -#usr/share/zoneinfo/posix/America/Costa_Rica -#usr/share/zoneinfo/posix/America/Cuiaba -#usr/share/zoneinfo/posix/America/Curacao -#usr/share/zoneinfo/posix/America/Danmarkshavn -#usr/share/zoneinfo/posix/America/Dawson -#usr/share/zoneinfo/posix/America/Dawson_Creek -#usr/share/zoneinfo/posix/America/Denver -#usr/share/zoneinfo/posix/America/Detroit -#usr/share/zoneinfo/posix/America/Dominica -#usr/share/zoneinfo/posix/America/Edmonton -#usr/share/zoneinfo/posix/America/Eirunepe -#usr/share/zoneinfo/posix/America/El_Salvador -#usr/share/zoneinfo/posix/America/Ensenada -#usr/share/zoneinfo/posix/America/Fort_Wayne -#usr/share/zoneinfo/posix/America/Fortaleza -#usr/share/zoneinfo/posix/America/Glace_Bay -#usr/share/zoneinfo/posix/America/Godthab -#usr/share/zoneinfo/posix/America/Goose_Bay -#usr/share/zoneinfo/posix/America/Grand_Turk -#usr/share/zoneinfo/posix/America/Grenada -#usr/share/zoneinfo/posix/America/Guadeloupe -#usr/share/zoneinfo/posix/America/Guatemala -#usr/share/zoneinfo/posix/America/Guayaquil -#usr/share/zoneinfo/posix/America/Guyana -#usr/share/zoneinfo/posix/America/Halifax -#usr/share/zoneinfo/posix/America/Havana -#usr/share/zoneinfo/posix/America/Hermosillo -#usr/share/zoneinfo/posix/America/Indiana -#usr/share/zoneinfo/posix/America/Indiana/Indianapolis -#usr/share/zoneinfo/posix/America/Indiana/Knox -#usr/share/zoneinfo/posix/America/Indiana/Marengo -#usr/share/zoneinfo/posix/America/Indiana/Vevay -#usr/share/zoneinfo/posix/America/Indianapolis -#usr/share/zoneinfo/posix/America/Inuvik -#usr/share/zoneinfo/posix/America/Iqaluit -#usr/share/zoneinfo/posix/America/Jamaica -#usr/share/zoneinfo/posix/America/Jujuy -#usr/share/zoneinfo/posix/America/Juneau -#usr/share/zoneinfo/posix/America/Kentucky -#usr/share/zoneinfo/posix/America/Kentucky/Louisville -#usr/share/zoneinfo/posix/America/Kentucky/Monticello -#usr/share/zoneinfo/posix/America/Knox_IN -#usr/share/zoneinfo/posix/America/La_Paz -#usr/share/zoneinfo/posix/America/Lima -#usr/share/zoneinfo/posix/America/Los_Angeles -#usr/share/zoneinfo/posix/America/Louisville -#usr/share/zoneinfo/posix/America/Maceio -#usr/share/zoneinfo/posix/America/Managua -#usr/share/zoneinfo/posix/America/Manaus -#usr/share/zoneinfo/posix/America/Martinique -#usr/share/zoneinfo/posix/America/Mazatlan -#usr/share/zoneinfo/posix/America/Mendoza -#usr/share/zoneinfo/posix/America/Menominee -#usr/share/zoneinfo/posix/America/Merida -#usr/share/zoneinfo/posix/America/Mexico_City -#usr/share/zoneinfo/posix/America/Miquelon -#usr/share/zoneinfo/posix/America/Monterrey -#usr/share/zoneinfo/posix/America/Montevideo -#usr/share/zoneinfo/posix/America/Montreal -#usr/share/zoneinfo/posix/America/Montserrat -#usr/share/zoneinfo/posix/America/Nassau -#usr/share/zoneinfo/posix/America/New_York -#usr/share/zoneinfo/posix/America/Nipigon -#usr/share/zoneinfo/posix/America/Nome -#usr/share/zoneinfo/posix/America/Noronha -#usr/share/zoneinfo/posix/America/North_Dakota -#usr/share/zoneinfo/posix/America/North_Dakota/Center -#usr/share/zoneinfo/posix/America/Panama -#usr/share/zoneinfo/posix/America/Pangnirtung -#usr/share/zoneinfo/posix/America/Paramaribo -#usr/share/zoneinfo/posix/America/Phoenix -#usr/share/zoneinfo/posix/America/Port-au-Prince -#usr/share/zoneinfo/posix/America/Port_of_Spain -#usr/share/zoneinfo/posix/America/Porto_Acre -#usr/share/zoneinfo/posix/America/Porto_Velho -#usr/share/zoneinfo/posix/America/Puerto_Rico -#usr/share/zoneinfo/posix/America/Rainy_River -#usr/share/zoneinfo/posix/America/Rankin_Inlet -#usr/share/zoneinfo/posix/America/Recife -#usr/share/zoneinfo/posix/America/Regina -#usr/share/zoneinfo/posix/America/Rio_Branco -#usr/share/zoneinfo/posix/America/Rosario -#usr/share/zoneinfo/posix/America/Santiago -#usr/share/zoneinfo/posix/America/Santo_Domingo -#usr/share/zoneinfo/posix/America/Sao_Paulo -#usr/share/zoneinfo/posix/America/Scoresbysund -#usr/share/zoneinfo/posix/America/Shiprock -#usr/share/zoneinfo/posix/America/St_Johns -#usr/share/zoneinfo/posix/America/St_Kitts -#usr/share/zoneinfo/posix/America/St_Lucia -#usr/share/zoneinfo/posix/America/St_Thomas -#usr/share/zoneinfo/posix/America/St_Vincent -#usr/share/zoneinfo/posix/America/Swift_Current -#usr/share/zoneinfo/posix/America/Tegucigalpa -#usr/share/zoneinfo/posix/America/Thule -#usr/share/zoneinfo/posix/America/Thunder_Bay -#usr/share/zoneinfo/posix/America/Tijuana -#usr/share/zoneinfo/posix/America/Toronto -#usr/share/zoneinfo/posix/America/Tortola -#usr/share/zoneinfo/posix/America/Vancouver -#usr/share/zoneinfo/posix/America/Virgin -#usr/share/zoneinfo/posix/America/Whitehorse -#usr/share/zoneinfo/posix/America/Winnipeg -#usr/share/zoneinfo/posix/America/Yakutat -#usr/share/zoneinfo/posix/America/Yellowknife -#usr/share/zoneinfo/posix/Antarctica -#usr/share/zoneinfo/posix/Antarctica/Casey -#usr/share/zoneinfo/posix/Antarctica/Davis -#usr/share/zoneinfo/posix/Antarctica/DumontDUrville -#usr/share/zoneinfo/posix/Antarctica/Mawson -#usr/share/zoneinfo/posix/Antarctica/McMurdo -#usr/share/zoneinfo/posix/Antarctica/Palmer -#usr/share/zoneinfo/posix/Antarctica/Rothera -#usr/share/zoneinfo/posix/Antarctica/South_Pole -#usr/share/zoneinfo/posix/Antarctica/Syowa -#usr/share/zoneinfo/posix/Antarctica/Vostok -#usr/share/zoneinfo/posix/Arctic -#usr/share/zoneinfo/posix/Arctic/Longyearbyen -#usr/share/zoneinfo/posix/Asia -#usr/share/zoneinfo/posix/Asia/Aden -#usr/share/zoneinfo/posix/Asia/Almaty -#usr/share/zoneinfo/posix/Asia/Amman -#usr/share/zoneinfo/posix/Asia/Anadyr -#usr/share/zoneinfo/posix/Asia/Aqtau -#usr/share/zoneinfo/posix/Asia/Aqtobe -#usr/share/zoneinfo/posix/Asia/Ashgabat -#usr/share/zoneinfo/posix/Asia/Ashkhabad -#usr/share/zoneinfo/posix/Asia/Baghdad -#usr/share/zoneinfo/posix/Asia/Bahrain -#usr/share/zoneinfo/posix/Asia/Baku -#usr/share/zoneinfo/posix/Asia/Bangkok -#usr/share/zoneinfo/posix/Asia/Beirut -#usr/share/zoneinfo/posix/Asia/Bishkek -#usr/share/zoneinfo/posix/Asia/Brunei -#usr/share/zoneinfo/posix/Asia/Calcutta -#usr/share/zoneinfo/posix/Asia/Choibalsan -#usr/share/zoneinfo/posix/Asia/Chongqing -#usr/share/zoneinfo/posix/Asia/Chungking -#usr/share/zoneinfo/posix/Asia/Colombo -#usr/share/zoneinfo/posix/Asia/Dacca -#usr/share/zoneinfo/posix/Asia/Damascus -#usr/share/zoneinfo/posix/Asia/Dhaka -#usr/share/zoneinfo/posix/Asia/Dili -#usr/share/zoneinfo/posix/Asia/Dubai -#usr/share/zoneinfo/posix/Asia/Dushanbe -#usr/share/zoneinfo/posix/Asia/Gaza -#usr/share/zoneinfo/posix/Asia/Harbin -#usr/share/zoneinfo/posix/Asia/Hong_Kong -#usr/share/zoneinfo/posix/Asia/Hovd -#usr/share/zoneinfo/posix/Asia/Irkutsk -#usr/share/zoneinfo/posix/Asia/Istanbul -#usr/share/zoneinfo/posix/Asia/Jakarta -#usr/share/zoneinfo/posix/Asia/Jayapura -#usr/share/zoneinfo/posix/Asia/Jerusalem -#usr/share/zoneinfo/posix/Asia/Kabul -#usr/share/zoneinfo/posix/Asia/Kamchatka -#usr/share/zoneinfo/posix/Asia/Karachi -#usr/share/zoneinfo/posix/Asia/Kashgar -#usr/share/zoneinfo/posix/Asia/Katmandu -#usr/share/zoneinfo/posix/Asia/Krasnoyarsk -#usr/share/zoneinfo/posix/Asia/Kuala_Lumpur -#usr/share/zoneinfo/posix/Asia/Kuching -#usr/share/zoneinfo/posix/Asia/Kuwait -#usr/share/zoneinfo/posix/Asia/Macao -#usr/share/zoneinfo/posix/Asia/Macau -#usr/share/zoneinfo/posix/Asia/Magadan -#usr/share/zoneinfo/posix/Asia/Makassar -#usr/share/zoneinfo/posix/Asia/Manila -#usr/share/zoneinfo/posix/Asia/Muscat -#usr/share/zoneinfo/posix/Asia/Nicosia -#usr/share/zoneinfo/posix/Asia/Novosibirsk -#usr/share/zoneinfo/posix/Asia/Omsk -#usr/share/zoneinfo/posix/Asia/Oral -#usr/share/zoneinfo/posix/Asia/Phnom_Penh -#usr/share/zoneinfo/posix/Asia/Pontianak -#usr/share/zoneinfo/posix/Asia/Pyongyang -#usr/share/zoneinfo/posix/Asia/Qatar -#usr/share/zoneinfo/posix/Asia/Qyzylorda -#usr/share/zoneinfo/posix/Asia/Rangoon -#usr/share/zoneinfo/posix/Asia/Riyadh -#usr/share/zoneinfo/posix/Asia/Riyadh87 -#usr/share/zoneinfo/posix/Asia/Riyadh88 -#usr/share/zoneinfo/posix/Asia/Riyadh89 -#usr/share/zoneinfo/posix/Asia/Saigon -#usr/share/zoneinfo/posix/Asia/Sakhalin -#usr/share/zoneinfo/posix/Asia/Samarkand -#usr/share/zoneinfo/posix/Asia/Seoul -#usr/share/zoneinfo/posix/Asia/Shanghai -#usr/share/zoneinfo/posix/Asia/Singapore -#usr/share/zoneinfo/posix/Asia/Taipei -#usr/share/zoneinfo/posix/Asia/Tashkent -#usr/share/zoneinfo/posix/Asia/Tbilisi -#usr/share/zoneinfo/posix/Asia/Tehran -#usr/share/zoneinfo/posix/Asia/Tel_Aviv -#usr/share/zoneinfo/posix/Asia/Thimbu -#usr/share/zoneinfo/posix/Asia/Thimphu -#usr/share/zoneinfo/posix/Asia/Tokyo -#usr/share/zoneinfo/posix/Asia/Ujung_Pandang -#usr/share/zoneinfo/posix/Asia/Ulaanbaatar -#usr/share/zoneinfo/posix/Asia/Ulan_Bator -#usr/share/zoneinfo/posix/Asia/Urumqi -#usr/share/zoneinfo/posix/Asia/Vientiane -#usr/share/zoneinfo/posix/Asia/Vladivostok -#usr/share/zoneinfo/posix/Asia/Yakutsk -#usr/share/zoneinfo/posix/Asia/Yekaterinburg -#usr/share/zoneinfo/posix/Asia/Yerevan -#usr/share/zoneinfo/posix/Atlantic -#usr/share/zoneinfo/posix/Atlantic/Azores -#usr/share/zoneinfo/posix/Atlantic/Bermuda -#usr/share/zoneinfo/posix/Atlantic/Canary -#usr/share/zoneinfo/posix/Atlantic/Cape_Verde -#usr/share/zoneinfo/posix/Atlantic/Faeroe -#usr/share/zoneinfo/posix/Atlantic/Jan_Mayen -#usr/share/zoneinfo/posix/Atlantic/Madeira -#usr/share/zoneinfo/posix/Atlantic/Reykjavik -#usr/share/zoneinfo/posix/Atlantic/South_Georgia -#usr/share/zoneinfo/posix/Atlantic/St_Helena -#usr/share/zoneinfo/posix/Atlantic/Stanley -#usr/share/zoneinfo/posix/Australia -#usr/share/zoneinfo/posix/Australia/ACT -#usr/share/zoneinfo/posix/Australia/Adelaide -#usr/share/zoneinfo/posix/Australia/Brisbane -#usr/share/zoneinfo/posix/Australia/Broken_Hill -#usr/share/zoneinfo/posix/Australia/Canberra -#usr/share/zoneinfo/posix/Australia/Currie -#usr/share/zoneinfo/posix/Australia/Darwin -#usr/share/zoneinfo/posix/Australia/Hobart -#usr/share/zoneinfo/posix/Australia/LHI -#usr/share/zoneinfo/posix/Australia/Lindeman -#usr/share/zoneinfo/posix/Australia/Lord_Howe -#usr/share/zoneinfo/posix/Australia/Melbourne -#usr/share/zoneinfo/posix/Australia/NSW -#usr/share/zoneinfo/posix/Australia/North -#usr/share/zoneinfo/posix/Australia/Perth -#usr/share/zoneinfo/posix/Australia/Queensland -#usr/share/zoneinfo/posix/Australia/South -#usr/share/zoneinfo/posix/Australia/Sydney -#usr/share/zoneinfo/posix/Australia/Tasmania -#usr/share/zoneinfo/posix/Australia/Victoria -#usr/share/zoneinfo/posix/Australia/West -#usr/share/zoneinfo/posix/Australia/Yancowinna -#usr/share/zoneinfo/posix/Brazil -#usr/share/zoneinfo/posix/Brazil/Acre -#usr/share/zoneinfo/posix/Brazil/DeNoronha -#usr/share/zoneinfo/posix/Brazil/East -#usr/share/zoneinfo/posix/Brazil/West -#usr/share/zoneinfo/posix/CET -#usr/share/zoneinfo/posix/CST6CDT -#usr/share/zoneinfo/posix/Canada -#usr/share/zoneinfo/posix/Canada/Atlantic -#usr/share/zoneinfo/posix/Canada/Central -#usr/share/zoneinfo/posix/Canada/East-Saskatchewan -#usr/share/zoneinfo/posix/Canada/Eastern -#usr/share/zoneinfo/posix/Canada/Mountain -#usr/share/zoneinfo/posix/Canada/Newfoundland -#usr/share/zoneinfo/posix/Canada/Pacific -#usr/share/zoneinfo/posix/Canada/Saskatchewan -#usr/share/zoneinfo/posix/Canada/Yukon -#usr/share/zoneinfo/posix/Chile -#usr/share/zoneinfo/posix/Chile/Continental -#usr/share/zoneinfo/posix/Chile/EasterIsland -#usr/share/zoneinfo/posix/Cuba -#usr/share/zoneinfo/posix/EET -#usr/share/zoneinfo/posix/EST -#usr/share/zoneinfo/posix/EST5EDT -#usr/share/zoneinfo/posix/Egypt -#usr/share/zoneinfo/posix/Eire -#usr/share/zoneinfo/posix/Etc -#usr/share/zoneinfo/posix/Etc/GMT -#usr/share/zoneinfo/posix/Etc/GMT+0 -#usr/share/zoneinfo/posix/Etc/GMT+1 -#usr/share/zoneinfo/posix/Etc/GMT+10 -#usr/share/zoneinfo/posix/Etc/GMT+11 -#usr/share/zoneinfo/posix/Etc/GMT+12 -#usr/share/zoneinfo/posix/Etc/GMT+2 -#usr/share/zoneinfo/posix/Etc/GMT+3 -#usr/share/zoneinfo/posix/Etc/GMT+4 -#usr/share/zoneinfo/posix/Etc/GMT+5 -#usr/share/zoneinfo/posix/Etc/GMT+6 -#usr/share/zoneinfo/posix/Etc/GMT+7 -#usr/share/zoneinfo/posix/Etc/GMT+8 -#usr/share/zoneinfo/posix/Etc/GMT+9 -#usr/share/zoneinfo/posix/Etc/GMT-0 -#usr/share/zoneinfo/posix/Etc/GMT-1 -#usr/share/zoneinfo/posix/Etc/GMT-10 -#usr/share/zoneinfo/posix/Etc/GMT-11 -#usr/share/zoneinfo/posix/Etc/GMT-12 -#usr/share/zoneinfo/posix/Etc/GMT-13 -#usr/share/zoneinfo/posix/Etc/GMT-14 -#usr/share/zoneinfo/posix/Etc/GMT-2 -#usr/share/zoneinfo/posix/Etc/GMT-3 -#usr/share/zoneinfo/posix/Etc/GMT-4 -#usr/share/zoneinfo/posix/Etc/GMT-5 -#usr/share/zoneinfo/posix/Etc/GMT-6 -#usr/share/zoneinfo/posix/Etc/GMT-7 -#usr/share/zoneinfo/posix/Etc/GMT-8 -#usr/share/zoneinfo/posix/Etc/GMT-9 -#usr/share/zoneinfo/posix/Etc/GMT0 -#usr/share/zoneinfo/posix/Etc/Greenwich -#usr/share/zoneinfo/posix/Etc/UCT -#usr/share/zoneinfo/posix/Etc/UTC -#usr/share/zoneinfo/posix/Etc/Universal -#usr/share/zoneinfo/posix/Etc/Zulu -#usr/share/zoneinfo/posix/Europe -#usr/share/zoneinfo/posix/Europe/Amsterdam -#usr/share/zoneinfo/posix/Europe/Andorra -#usr/share/zoneinfo/posix/Europe/Athens -#usr/share/zoneinfo/posix/Europe/Belfast -#usr/share/zoneinfo/posix/Europe/Belgrade -#usr/share/zoneinfo/posix/Europe/Berlin -#usr/share/zoneinfo/posix/Europe/Bratislava -#usr/share/zoneinfo/posix/Europe/Brussels -#usr/share/zoneinfo/posix/Europe/Bucharest -#usr/share/zoneinfo/posix/Europe/Budapest -#usr/share/zoneinfo/posix/Europe/Chisinau -#usr/share/zoneinfo/posix/Europe/Copenhagen -#usr/share/zoneinfo/posix/Europe/Dublin -#usr/share/zoneinfo/posix/Europe/Gibraltar -#usr/share/zoneinfo/posix/Europe/Helsinki -#usr/share/zoneinfo/posix/Europe/Istanbul -#usr/share/zoneinfo/posix/Europe/Kaliningrad -#usr/share/zoneinfo/posix/Europe/Kiev -#usr/share/zoneinfo/posix/Europe/Lisbon -#usr/share/zoneinfo/posix/Europe/Ljubljana -#usr/share/zoneinfo/posix/Europe/London -#usr/share/zoneinfo/posix/Europe/Luxembourg -#usr/share/zoneinfo/posix/Europe/Madrid -#usr/share/zoneinfo/posix/Europe/Malta -#usr/share/zoneinfo/posix/Europe/Mariehamn -#usr/share/zoneinfo/posix/Europe/Minsk -#usr/share/zoneinfo/posix/Europe/Monaco -#usr/share/zoneinfo/posix/Europe/Moscow -#usr/share/zoneinfo/posix/Europe/Nicosia -#usr/share/zoneinfo/posix/Europe/Oslo -#usr/share/zoneinfo/posix/Europe/Paris -#usr/share/zoneinfo/posix/Europe/Prague -#usr/share/zoneinfo/posix/Europe/Riga -#usr/share/zoneinfo/posix/Europe/Rome -#usr/share/zoneinfo/posix/Europe/Samara -#usr/share/zoneinfo/posix/Europe/San_Marino -#usr/share/zoneinfo/posix/Europe/Sarajevo -#usr/share/zoneinfo/posix/Europe/Simferopol -#usr/share/zoneinfo/posix/Europe/Skopje -#usr/share/zoneinfo/posix/Europe/Sofia -#usr/share/zoneinfo/posix/Europe/Stockholm -#usr/share/zoneinfo/posix/Europe/Tallinn -#usr/share/zoneinfo/posix/Europe/Tirane -#usr/share/zoneinfo/posix/Europe/Tiraspol -#usr/share/zoneinfo/posix/Europe/Uzhgorod -#usr/share/zoneinfo/posix/Europe/Vaduz -#usr/share/zoneinfo/posix/Europe/Vatican -#usr/share/zoneinfo/posix/Europe/Vienna -#usr/share/zoneinfo/posix/Europe/Vilnius -#usr/share/zoneinfo/posix/Europe/Warsaw -#usr/share/zoneinfo/posix/Europe/Zagreb -#usr/share/zoneinfo/posix/Europe/Zaporozhye -#usr/share/zoneinfo/posix/Europe/Zurich -#usr/share/zoneinfo/posix/Factory -#usr/share/zoneinfo/posix/GB -#usr/share/zoneinfo/posix/GB-Eire -#usr/share/zoneinfo/posix/GMT -#usr/share/zoneinfo/posix/GMT+0 -#usr/share/zoneinfo/posix/GMT-0 -#usr/share/zoneinfo/posix/GMT0 -#usr/share/zoneinfo/posix/Greenwich -#usr/share/zoneinfo/posix/HST -#usr/share/zoneinfo/posix/Hongkong -#usr/share/zoneinfo/posix/Iceland -#usr/share/zoneinfo/posix/Indian -#usr/share/zoneinfo/posix/Indian/Antananarivo -#usr/share/zoneinfo/posix/Indian/Chagos -#usr/share/zoneinfo/posix/Indian/Christmas -#usr/share/zoneinfo/posix/Indian/Cocos -#usr/share/zoneinfo/posix/Indian/Comoro -#usr/share/zoneinfo/posix/Indian/Kerguelen -#usr/share/zoneinfo/posix/Indian/Mahe -#usr/share/zoneinfo/posix/Indian/Maldives -#usr/share/zoneinfo/posix/Indian/Mauritius -#usr/share/zoneinfo/posix/Indian/Mayotte -#usr/share/zoneinfo/posix/Indian/Reunion -#usr/share/zoneinfo/posix/Iran -#usr/share/zoneinfo/posix/Israel -#usr/share/zoneinfo/posix/Jamaica -#usr/share/zoneinfo/posix/Japan -#usr/share/zoneinfo/posix/Kwajalein -#usr/share/zoneinfo/posix/Libya -#usr/share/zoneinfo/posix/MET -#usr/share/zoneinfo/posix/MST -#usr/share/zoneinfo/posix/MST7MDT -#usr/share/zoneinfo/posix/Mexico -#usr/share/zoneinfo/posix/Mexico/BajaNorte -#usr/share/zoneinfo/posix/Mexico/BajaSur -#usr/share/zoneinfo/posix/Mexico/General -#usr/share/zoneinfo/posix/Mideast -#usr/share/zoneinfo/posix/Mideast/Riyadh87 -#usr/share/zoneinfo/posix/Mideast/Riyadh88 -#usr/share/zoneinfo/posix/Mideast/Riyadh89 -#usr/share/zoneinfo/posix/NZ -#usr/share/zoneinfo/posix/NZ-CHAT -#usr/share/zoneinfo/posix/Navajo -#usr/share/zoneinfo/posix/PRC -#usr/share/zoneinfo/posix/PST8PDT -#usr/share/zoneinfo/posix/Pacific -#usr/share/zoneinfo/posix/Pacific/Apia -#usr/share/zoneinfo/posix/Pacific/Auckland -#usr/share/zoneinfo/posix/Pacific/Chatham -#usr/share/zoneinfo/posix/Pacific/Easter -#usr/share/zoneinfo/posix/Pacific/Efate -#usr/share/zoneinfo/posix/Pacific/Enderbury -#usr/share/zoneinfo/posix/Pacific/Fakaofo -#usr/share/zoneinfo/posix/Pacific/Fiji -#usr/share/zoneinfo/posix/Pacific/Funafuti -#usr/share/zoneinfo/posix/Pacific/Galapagos -#usr/share/zoneinfo/posix/Pacific/Gambier -#usr/share/zoneinfo/posix/Pacific/Guadalcanal -#usr/share/zoneinfo/posix/Pacific/Guam -#usr/share/zoneinfo/posix/Pacific/Honolulu -#usr/share/zoneinfo/posix/Pacific/Johnston -#usr/share/zoneinfo/posix/Pacific/Kiritimati -#usr/share/zoneinfo/posix/Pacific/Kosrae -#usr/share/zoneinfo/posix/Pacific/Kwajalein -#usr/share/zoneinfo/posix/Pacific/Majuro -#usr/share/zoneinfo/posix/Pacific/Marquesas -#usr/share/zoneinfo/posix/Pacific/Midway -#usr/share/zoneinfo/posix/Pacific/Nauru -#usr/share/zoneinfo/posix/Pacific/Niue -#usr/share/zoneinfo/posix/Pacific/Norfolk -#usr/share/zoneinfo/posix/Pacific/Noumea -#usr/share/zoneinfo/posix/Pacific/Pago_Pago -#usr/share/zoneinfo/posix/Pacific/Palau -#usr/share/zoneinfo/posix/Pacific/Pitcairn -#usr/share/zoneinfo/posix/Pacific/Ponape -#usr/share/zoneinfo/posix/Pacific/Port_Moresby -#usr/share/zoneinfo/posix/Pacific/Rarotonga -#usr/share/zoneinfo/posix/Pacific/Saipan -#usr/share/zoneinfo/posix/Pacific/Samoa -#usr/share/zoneinfo/posix/Pacific/Tahiti -#usr/share/zoneinfo/posix/Pacific/Tarawa -#usr/share/zoneinfo/posix/Pacific/Tongatapu -#usr/share/zoneinfo/posix/Pacific/Truk -#usr/share/zoneinfo/posix/Pacific/Wake -#usr/share/zoneinfo/posix/Pacific/Wallis -#usr/share/zoneinfo/posix/Pacific/Yap -#usr/share/zoneinfo/posix/Poland -#usr/share/zoneinfo/posix/Portugal -#usr/share/zoneinfo/posix/ROC -#usr/share/zoneinfo/posix/ROK -#usr/share/zoneinfo/posix/Singapore -#usr/share/zoneinfo/posix/SystemV -#usr/share/zoneinfo/posix/SystemV/AST4 -#usr/share/zoneinfo/posix/SystemV/AST4ADT -#usr/share/zoneinfo/posix/SystemV/CST6 -#usr/share/zoneinfo/posix/SystemV/CST6CDT -#usr/share/zoneinfo/posix/SystemV/EST5 -#usr/share/zoneinfo/posix/SystemV/EST5EDT -#usr/share/zoneinfo/posix/SystemV/HST10 -#usr/share/zoneinfo/posix/SystemV/MST7 -#usr/share/zoneinfo/posix/SystemV/MST7MDT -#usr/share/zoneinfo/posix/SystemV/PST8 -#usr/share/zoneinfo/posix/SystemV/PST8PDT -#usr/share/zoneinfo/posix/SystemV/YST9 -#usr/share/zoneinfo/posix/SystemV/YST9YDT -#usr/share/zoneinfo/posix/Turkey -#usr/share/zoneinfo/posix/UCT -#usr/share/zoneinfo/posix/US -#usr/share/zoneinfo/posix/US/Alaska -#usr/share/zoneinfo/posix/US/Aleutian -#usr/share/zoneinfo/posix/US/Arizona -#usr/share/zoneinfo/posix/US/Central -#usr/share/zoneinfo/posix/US/East-Indiana -#usr/share/zoneinfo/posix/US/Eastern -#usr/share/zoneinfo/posix/US/Hawaii -#usr/share/zoneinfo/posix/US/Indiana-Starke -#usr/share/zoneinfo/posix/US/Michigan -#usr/share/zoneinfo/posix/US/Mountain -#usr/share/zoneinfo/posix/US/Pacific -#usr/share/zoneinfo/posix/US/Samoa -#usr/share/zoneinfo/posix/UTC -#usr/share/zoneinfo/posix/Universal -#usr/share/zoneinfo/posix/W-SU -#usr/share/zoneinfo/posix/WET -#usr/share/zoneinfo/posix/Zulu -#usr/share/zoneinfo/posixrules -#usr/share/zoneinfo/right -#usr/share/zoneinfo/right/Africa -#usr/share/zoneinfo/right/Africa/Abidjan -#usr/share/zoneinfo/right/Africa/Accra -#usr/share/zoneinfo/right/Africa/Addis_Ababa -#usr/share/zoneinfo/right/Africa/Algiers -#usr/share/zoneinfo/right/Africa/Asmera -#usr/share/zoneinfo/right/Africa/Bamako -#usr/share/zoneinfo/right/Africa/Bangui -#usr/share/zoneinfo/right/Africa/Banjul -#usr/share/zoneinfo/right/Africa/Bissau -#usr/share/zoneinfo/right/Africa/Blantyre -#usr/share/zoneinfo/right/Africa/Brazzaville -#usr/share/zoneinfo/right/Africa/Bujumbura -#usr/share/zoneinfo/right/Africa/Cairo -#usr/share/zoneinfo/right/Africa/Casablanca -#usr/share/zoneinfo/right/Africa/Ceuta -#usr/share/zoneinfo/right/Africa/Conakry -#usr/share/zoneinfo/right/Africa/Dakar -#usr/share/zoneinfo/right/Africa/Dar_es_Salaam -#usr/share/zoneinfo/right/Africa/Djibouti -#usr/share/zoneinfo/right/Africa/Douala -#usr/share/zoneinfo/right/Africa/El_Aaiun -#usr/share/zoneinfo/right/Africa/Freetown -#usr/share/zoneinfo/right/Africa/Gaborone -#usr/share/zoneinfo/right/Africa/Harare -#usr/share/zoneinfo/right/Africa/Johannesburg -#usr/share/zoneinfo/right/Africa/Kampala -#usr/share/zoneinfo/right/Africa/Khartoum -#usr/share/zoneinfo/right/Africa/Kigali -#usr/share/zoneinfo/right/Africa/Kinshasa -#usr/share/zoneinfo/right/Africa/Lagos -#usr/share/zoneinfo/right/Africa/Libreville -#usr/share/zoneinfo/right/Africa/Lome -#usr/share/zoneinfo/right/Africa/Luanda -#usr/share/zoneinfo/right/Africa/Lubumbashi -#usr/share/zoneinfo/right/Africa/Lusaka -#usr/share/zoneinfo/right/Africa/Malabo -#usr/share/zoneinfo/right/Africa/Maputo -#usr/share/zoneinfo/right/Africa/Maseru -#usr/share/zoneinfo/right/Africa/Mbabane -#usr/share/zoneinfo/right/Africa/Mogadishu -#usr/share/zoneinfo/right/Africa/Monrovia -#usr/share/zoneinfo/right/Africa/Nairobi -#usr/share/zoneinfo/right/Africa/Ndjamena -#usr/share/zoneinfo/right/Africa/Niamey -#usr/share/zoneinfo/right/Africa/Nouakchott -#usr/share/zoneinfo/right/Africa/Ouagadougou -#usr/share/zoneinfo/right/Africa/Porto-Novo -#usr/share/zoneinfo/right/Africa/Sao_Tome -#usr/share/zoneinfo/right/Africa/Timbuktu -#usr/share/zoneinfo/right/Africa/Tripoli -#usr/share/zoneinfo/right/Africa/Tunis -#usr/share/zoneinfo/right/Africa/Windhoek -#usr/share/zoneinfo/right/America -#usr/share/zoneinfo/right/America/Adak -#usr/share/zoneinfo/right/America/Anchorage -#usr/share/zoneinfo/right/America/Anguilla -#usr/share/zoneinfo/right/America/Antigua -#usr/share/zoneinfo/right/America/Araguaina -#usr/share/zoneinfo/right/America/Argentina -#usr/share/zoneinfo/right/America/Argentina/Buenos_Aires -#usr/share/zoneinfo/right/America/Argentina/Catamarca -#usr/share/zoneinfo/right/America/Argentina/ComodRivadavia -#usr/share/zoneinfo/right/America/Argentina/Cordoba -#usr/share/zoneinfo/right/America/Argentina/Jujuy -#usr/share/zoneinfo/right/America/Argentina/La_Rioja -#usr/share/zoneinfo/right/America/Argentina/Mendoza -#usr/share/zoneinfo/right/America/Argentina/Rio_Gallegos -#usr/share/zoneinfo/right/America/Argentina/San_Juan -#usr/share/zoneinfo/right/America/Argentina/Tucuman -#usr/share/zoneinfo/right/America/Argentina/Ushuaia -#usr/share/zoneinfo/right/America/Aruba -#usr/share/zoneinfo/right/America/Asuncion -#usr/share/zoneinfo/right/America/Atka -#usr/share/zoneinfo/right/America/Bahia -#usr/share/zoneinfo/right/America/Barbados -#usr/share/zoneinfo/right/America/Belem -#usr/share/zoneinfo/right/America/Belize -#usr/share/zoneinfo/right/America/Boa_Vista -#usr/share/zoneinfo/right/America/Bogota -#usr/share/zoneinfo/right/America/Boise -#usr/share/zoneinfo/right/America/Buenos_Aires -#usr/share/zoneinfo/right/America/Cambridge_Bay -#usr/share/zoneinfo/right/America/Campo_Grande -#usr/share/zoneinfo/right/America/Cancun -#usr/share/zoneinfo/right/America/Caracas -#usr/share/zoneinfo/right/America/Catamarca -#usr/share/zoneinfo/right/America/Cayenne -#usr/share/zoneinfo/right/America/Cayman -#usr/share/zoneinfo/right/America/Chicago -#usr/share/zoneinfo/right/America/Chihuahua -#usr/share/zoneinfo/right/America/Coral_Harbour -#usr/share/zoneinfo/right/America/Cordoba -#usr/share/zoneinfo/right/America/Costa_Rica -#usr/share/zoneinfo/right/America/Cuiaba -#usr/share/zoneinfo/right/America/Curacao -#usr/share/zoneinfo/right/America/Danmarkshavn -#usr/share/zoneinfo/right/America/Dawson -#usr/share/zoneinfo/right/America/Dawson_Creek -#usr/share/zoneinfo/right/America/Denver -#usr/share/zoneinfo/right/America/Detroit -#usr/share/zoneinfo/right/America/Dominica -#usr/share/zoneinfo/right/America/Edmonton -#usr/share/zoneinfo/right/America/Eirunepe -#usr/share/zoneinfo/right/America/El_Salvador -#usr/share/zoneinfo/right/America/Ensenada -#usr/share/zoneinfo/right/America/Fort_Wayne -#usr/share/zoneinfo/right/America/Fortaleza -#usr/share/zoneinfo/right/America/Glace_Bay -#usr/share/zoneinfo/right/America/Godthab -#usr/share/zoneinfo/right/America/Goose_Bay -#usr/share/zoneinfo/right/America/Grand_Turk -#usr/share/zoneinfo/right/America/Grenada -#usr/share/zoneinfo/right/America/Guadeloupe -#usr/share/zoneinfo/right/America/Guatemala -#usr/share/zoneinfo/right/America/Guayaquil -#usr/share/zoneinfo/right/America/Guyana -#usr/share/zoneinfo/right/America/Halifax -#usr/share/zoneinfo/right/America/Havana -#usr/share/zoneinfo/right/America/Hermosillo -#usr/share/zoneinfo/right/America/Indiana -#usr/share/zoneinfo/right/America/Indiana/Indianapolis -#usr/share/zoneinfo/right/America/Indiana/Knox -#usr/share/zoneinfo/right/America/Indiana/Marengo -#usr/share/zoneinfo/right/America/Indiana/Vevay -#usr/share/zoneinfo/right/America/Indianapolis -#usr/share/zoneinfo/right/America/Inuvik -#usr/share/zoneinfo/right/America/Iqaluit -#usr/share/zoneinfo/right/America/Jamaica -#usr/share/zoneinfo/right/America/Jujuy -#usr/share/zoneinfo/right/America/Juneau -#usr/share/zoneinfo/right/America/Kentucky -#usr/share/zoneinfo/right/America/Kentucky/Louisville -#usr/share/zoneinfo/right/America/Kentucky/Monticello -#usr/share/zoneinfo/right/America/Knox_IN -#usr/share/zoneinfo/right/America/La_Paz -#usr/share/zoneinfo/right/America/Lima -#usr/share/zoneinfo/right/America/Los_Angeles -#usr/share/zoneinfo/right/America/Louisville -#usr/share/zoneinfo/right/America/Maceio -#usr/share/zoneinfo/right/America/Managua -#usr/share/zoneinfo/right/America/Manaus -#usr/share/zoneinfo/right/America/Martinique -#usr/share/zoneinfo/right/America/Mazatlan -#usr/share/zoneinfo/right/America/Mendoza -#usr/share/zoneinfo/right/America/Menominee -#usr/share/zoneinfo/right/America/Merida -#usr/share/zoneinfo/right/America/Mexico_City -#usr/share/zoneinfo/right/America/Miquelon -#usr/share/zoneinfo/right/America/Monterrey -#usr/share/zoneinfo/right/America/Montevideo -#usr/share/zoneinfo/right/America/Montreal -#usr/share/zoneinfo/right/America/Montserrat -#usr/share/zoneinfo/right/America/Nassau -#usr/share/zoneinfo/right/America/New_York -#usr/share/zoneinfo/right/America/Nipigon -#usr/share/zoneinfo/right/America/Nome -#usr/share/zoneinfo/right/America/Noronha -#usr/share/zoneinfo/right/America/North_Dakota -#usr/share/zoneinfo/right/America/North_Dakota/Center -#usr/share/zoneinfo/right/America/Panama -#usr/share/zoneinfo/right/America/Pangnirtung -#usr/share/zoneinfo/right/America/Paramaribo -#usr/share/zoneinfo/right/America/Phoenix -#usr/share/zoneinfo/right/America/Port-au-Prince -#usr/share/zoneinfo/right/America/Port_of_Spain -#usr/share/zoneinfo/right/America/Porto_Acre -#usr/share/zoneinfo/right/America/Porto_Velho -#usr/share/zoneinfo/right/America/Puerto_Rico -#usr/share/zoneinfo/right/America/Rainy_River -#usr/share/zoneinfo/right/America/Rankin_Inlet -#usr/share/zoneinfo/right/America/Recife -#usr/share/zoneinfo/right/America/Regina -#usr/share/zoneinfo/right/America/Rio_Branco -#usr/share/zoneinfo/right/America/Rosario -#usr/share/zoneinfo/right/America/Santiago -#usr/share/zoneinfo/right/America/Santo_Domingo -#usr/share/zoneinfo/right/America/Sao_Paulo -#usr/share/zoneinfo/right/America/Scoresbysund -#usr/share/zoneinfo/right/America/Shiprock -#usr/share/zoneinfo/right/America/St_Johns -#usr/share/zoneinfo/right/America/St_Kitts -#usr/share/zoneinfo/right/America/St_Lucia -#usr/share/zoneinfo/right/America/St_Thomas -#usr/share/zoneinfo/right/America/St_Vincent -#usr/share/zoneinfo/right/America/Swift_Current -#usr/share/zoneinfo/right/America/Tegucigalpa -#usr/share/zoneinfo/right/America/Thule -#usr/share/zoneinfo/right/America/Thunder_Bay -#usr/share/zoneinfo/right/America/Tijuana -#usr/share/zoneinfo/right/America/Toronto -#usr/share/zoneinfo/right/America/Tortola -#usr/share/zoneinfo/right/America/Vancouver -#usr/share/zoneinfo/right/America/Virgin -#usr/share/zoneinfo/right/America/Whitehorse -#usr/share/zoneinfo/right/America/Winnipeg -#usr/share/zoneinfo/right/America/Yakutat -#usr/share/zoneinfo/right/America/Yellowknife -#usr/share/zoneinfo/right/Antarctica -#usr/share/zoneinfo/right/Antarctica/Casey -#usr/share/zoneinfo/right/Antarctica/Davis -#usr/share/zoneinfo/right/Antarctica/DumontDUrville -#usr/share/zoneinfo/right/Antarctica/Mawson -#usr/share/zoneinfo/right/Antarctica/McMurdo -#usr/share/zoneinfo/right/Antarctica/Palmer -#usr/share/zoneinfo/right/Antarctica/Rothera -#usr/share/zoneinfo/right/Antarctica/South_Pole -#usr/share/zoneinfo/right/Antarctica/Syowa -#usr/share/zoneinfo/right/Antarctica/Vostok -#usr/share/zoneinfo/right/Arctic -#usr/share/zoneinfo/right/Arctic/Longyearbyen -#usr/share/zoneinfo/right/Asia -#usr/share/zoneinfo/right/Asia/Aden -#usr/share/zoneinfo/right/Asia/Almaty -#usr/share/zoneinfo/right/Asia/Amman -#usr/share/zoneinfo/right/Asia/Anadyr -#usr/share/zoneinfo/right/Asia/Aqtau -#usr/share/zoneinfo/right/Asia/Aqtobe -#usr/share/zoneinfo/right/Asia/Ashgabat -#usr/share/zoneinfo/right/Asia/Ashkhabad -#usr/share/zoneinfo/right/Asia/Baghdad -#usr/share/zoneinfo/right/Asia/Bahrain -#usr/share/zoneinfo/right/Asia/Baku -#usr/share/zoneinfo/right/Asia/Bangkok -#usr/share/zoneinfo/right/Asia/Beirut -#usr/share/zoneinfo/right/Asia/Bishkek -#usr/share/zoneinfo/right/Asia/Brunei -#usr/share/zoneinfo/right/Asia/Calcutta -#usr/share/zoneinfo/right/Asia/Choibalsan -#usr/share/zoneinfo/right/Asia/Chongqing -#usr/share/zoneinfo/right/Asia/Chungking -#usr/share/zoneinfo/right/Asia/Colombo -#usr/share/zoneinfo/right/Asia/Dacca -#usr/share/zoneinfo/right/Asia/Damascus -#usr/share/zoneinfo/right/Asia/Dhaka -#usr/share/zoneinfo/right/Asia/Dili -#usr/share/zoneinfo/right/Asia/Dubai -#usr/share/zoneinfo/right/Asia/Dushanbe -#usr/share/zoneinfo/right/Asia/Gaza -#usr/share/zoneinfo/right/Asia/Harbin -#usr/share/zoneinfo/right/Asia/Hong_Kong -#usr/share/zoneinfo/right/Asia/Hovd -#usr/share/zoneinfo/right/Asia/Irkutsk -#usr/share/zoneinfo/right/Asia/Istanbul -#usr/share/zoneinfo/right/Asia/Jakarta -#usr/share/zoneinfo/right/Asia/Jayapura -#usr/share/zoneinfo/right/Asia/Jerusalem -#usr/share/zoneinfo/right/Asia/Kabul -#usr/share/zoneinfo/right/Asia/Kamchatka -#usr/share/zoneinfo/right/Asia/Karachi -#usr/share/zoneinfo/right/Asia/Kashgar -#usr/share/zoneinfo/right/Asia/Katmandu -#usr/share/zoneinfo/right/Asia/Krasnoyarsk -#usr/share/zoneinfo/right/Asia/Kuala_Lumpur -#usr/share/zoneinfo/right/Asia/Kuching -#usr/share/zoneinfo/right/Asia/Kuwait -#usr/share/zoneinfo/right/Asia/Macao -#usr/share/zoneinfo/right/Asia/Macau -#usr/share/zoneinfo/right/Asia/Magadan -#usr/share/zoneinfo/right/Asia/Makassar -#usr/share/zoneinfo/right/Asia/Manila -#usr/share/zoneinfo/right/Asia/Muscat -#usr/share/zoneinfo/right/Asia/Nicosia -#usr/share/zoneinfo/right/Asia/Novosibirsk -#usr/share/zoneinfo/right/Asia/Omsk -#usr/share/zoneinfo/right/Asia/Oral -#usr/share/zoneinfo/right/Asia/Phnom_Penh -#usr/share/zoneinfo/right/Asia/Pontianak -#usr/share/zoneinfo/right/Asia/Pyongyang -#usr/share/zoneinfo/right/Asia/Qatar -#usr/share/zoneinfo/right/Asia/Qyzylorda -#usr/share/zoneinfo/right/Asia/Rangoon -#usr/share/zoneinfo/right/Asia/Riyadh -#usr/share/zoneinfo/right/Asia/Riyadh87 -#usr/share/zoneinfo/right/Asia/Riyadh88 -#usr/share/zoneinfo/right/Asia/Riyadh89 -#usr/share/zoneinfo/right/Asia/Saigon -#usr/share/zoneinfo/right/Asia/Sakhalin -#usr/share/zoneinfo/right/Asia/Samarkand -#usr/share/zoneinfo/right/Asia/Seoul -#usr/share/zoneinfo/right/Asia/Shanghai -#usr/share/zoneinfo/right/Asia/Singapore -#usr/share/zoneinfo/right/Asia/Taipei -#usr/share/zoneinfo/right/Asia/Tashkent -#usr/share/zoneinfo/right/Asia/Tbilisi -#usr/share/zoneinfo/right/Asia/Tehran -#usr/share/zoneinfo/right/Asia/Tel_Aviv -#usr/share/zoneinfo/right/Asia/Thimbu -#usr/share/zoneinfo/right/Asia/Thimphu -#usr/share/zoneinfo/right/Asia/Tokyo -#usr/share/zoneinfo/right/Asia/Ujung_Pandang -#usr/share/zoneinfo/right/Asia/Ulaanbaatar -#usr/share/zoneinfo/right/Asia/Ulan_Bator -#usr/share/zoneinfo/right/Asia/Urumqi -#usr/share/zoneinfo/right/Asia/Vientiane -#usr/share/zoneinfo/right/Asia/Vladivostok -#usr/share/zoneinfo/right/Asia/Yakutsk -#usr/share/zoneinfo/right/Asia/Yekaterinburg -#usr/share/zoneinfo/right/Asia/Yerevan -#usr/share/zoneinfo/right/Atlantic -#usr/share/zoneinfo/right/Atlantic/Azores -#usr/share/zoneinfo/right/Atlantic/Bermuda -#usr/share/zoneinfo/right/Atlantic/Canary -#usr/share/zoneinfo/right/Atlantic/Cape_Verde -#usr/share/zoneinfo/right/Atlantic/Faeroe -#usr/share/zoneinfo/right/Atlantic/Jan_Mayen -#usr/share/zoneinfo/right/Atlantic/Madeira -#usr/share/zoneinfo/right/Atlantic/Reykjavik -#usr/share/zoneinfo/right/Atlantic/South_Georgia -#usr/share/zoneinfo/right/Atlantic/St_Helena -#usr/share/zoneinfo/right/Atlantic/Stanley -#usr/share/zoneinfo/right/Australia -#usr/share/zoneinfo/right/Australia/ACT -#usr/share/zoneinfo/right/Australia/Adelaide -#usr/share/zoneinfo/right/Australia/Brisbane -#usr/share/zoneinfo/right/Australia/Broken_Hill -#usr/share/zoneinfo/right/Australia/Canberra -#usr/share/zoneinfo/right/Australia/Currie -#usr/share/zoneinfo/right/Australia/Darwin -#usr/share/zoneinfo/right/Australia/Hobart -#usr/share/zoneinfo/right/Australia/LHI -#usr/share/zoneinfo/right/Australia/Lindeman -#usr/share/zoneinfo/right/Australia/Lord_Howe -#usr/share/zoneinfo/right/Australia/Melbourne -#usr/share/zoneinfo/right/Australia/NSW -#usr/share/zoneinfo/right/Australia/North -#usr/share/zoneinfo/right/Australia/Perth -#usr/share/zoneinfo/right/Australia/Queensland -#usr/share/zoneinfo/right/Australia/South -#usr/share/zoneinfo/right/Australia/Sydney -#usr/share/zoneinfo/right/Australia/Tasmania -#usr/share/zoneinfo/right/Australia/Victoria -#usr/share/zoneinfo/right/Australia/West -#usr/share/zoneinfo/right/Australia/Yancowinna -#usr/share/zoneinfo/right/Brazil -#usr/share/zoneinfo/right/Brazil/Acre -#usr/share/zoneinfo/right/Brazil/DeNoronha -#usr/share/zoneinfo/right/Brazil/East -#usr/share/zoneinfo/right/Brazil/West -#usr/share/zoneinfo/right/CET -#usr/share/zoneinfo/right/CST6CDT -#usr/share/zoneinfo/right/Canada -#usr/share/zoneinfo/right/Canada/Atlantic -#usr/share/zoneinfo/right/Canada/Central -#usr/share/zoneinfo/right/Canada/East-Saskatchewan -#usr/share/zoneinfo/right/Canada/Eastern -#usr/share/zoneinfo/right/Canada/Mountain -#usr/share/zoneinfo/right/Canada/Newfoundland -#usr/share/zoneinfo/right/Canada/Pacific -#usr/share/zoneinfo/right/Canada/Saskatchewan -#usr/share/zoneinfo/right/Canada/Yukon -#usr/share/zoneinfo/right/Chile -#usr/share/zoneinfo/right/Chile/Continental -#usr/share/zoneinfo/right/Chile/EasterIsland -#usr/share/zoneinfo/right/Cuba -#usr/share/zoneinfo/right/EET -#usr/share/zoneinfo/right/EST -#usr/share/zoneinfo/right/EST5EDT -#usr/share/zoneinfo/right/Egypt -#usr/share/zoneinfo/right/Eire -#usr/share/zoneinfo/right/Etc -#usr/share/zoneinfo/right/Etc/GMT -#usr/share/zoneinfo/right/Etc/GMT+0 -#usr/share/zoneinfo/right/Etc/GMT+1 -#usr/share/zoneinfo/right/Etc/GMT+10 -#usr/share/zoneinfo/right/Etc/GMT+11 -#usr/share/zoneinfo/right/Etc/GMT+12 -#usr/share/zoneinfo/right/Etc/GMT+2 -#usr/share/zoneinfo/right/Etc/GMT+3 -#usr/share/zoneinfo/right/Etc/GMT+4 -#usr/share/zoneinfo/right/Etc/GMT+5 -#usr/share/zoneinfo/right/Etc/GMT+6 -#usr/share/zoneinfo/right/Etc/GMT+7 -#usr/share/zoneinfo/right/Etc/GMT+8 -#usr/share/zoneinfo/right/Etc/GMT+9 -#usr/share/zoneinfo/right/Etc/GMT-0 -#usr/share/zoneinfo/right/Etc/GMT-1 -#usr/share/zoneinfo/right/Etc/GMT-10 -#usr/share/zoneinfo/right/Etc/GMT-11 -#usr/share/zoneinfo/right/Etc/GMT-12 -#usr/share/zoneinfo/right/Etc/GMT-13 -#usr/share/zoneinfo/right/Etc/GMT-14 -#usr/share/zoneinfo/right/Etc/GMT-2 -#usr/share/zoneinfo/right/Etc/GMT-3 -#usr/share/zoneinfo/right/Etc/GMT-4 -#usr/share/zoneinfo/right/Etc/GMT-5 -#usr/share/zoneinfo/right/Etc/GMT-6 -#usr/share/zoneinfo/right/Etc/GMT-7 -#usr/share/zoneinfo/right/Etc/GMT-8 -#usr/share/zoneinfo/right/Etc/GMT-9 -#usr/share/zoneinfo/right/Etc/GMT0 -#usr/share/zoneinfo/right/Etc/Greenwich -#usr/share/zoneinfo/right/Etc/UCT -#usr/share/zoneinfo/right/Etc/UTC -#usr/share/zoneinfo/right/Etc/Universal -#usr/share/zoneinfo/right/Etc/Zulu -#usr/share/zoneinfo/right/Europe -#usr/share/zoneinfo/right/Europe/Amsterdam -#usr/share/zoneinfo/right/Europe/Andorra -#usr/share/zoneinfo/right/Europe/Athens -#usr/share/zoneinfo/right/Europe/Belfast -#usr/share/zoneinfo/right/Europe/Belgrade -#usr/share/zoneinfo/right/Europe/Berlin -#usr/share/zoneinfo/right/Europe/Bratislava -#usr/share/zoneinfo/right/Europe/Brussels -#usr/share/zoneinfo/right/Europe/Bucharest -#usr/share/zoneinfo/right/Europe/Budapest -#usr/share/zoneinfo/right/Europe/Chisinau -#usr/share/zoneinfo/right/Europe/Copenhagen -#usr/share/zoneinfo/right/Europe/Dublin -#usr/share/zoneinfo/right/Europe/Gibraltar -#usr/share/zoneinfo/right/Europe/Helsinki -#usr/share/zoneinfo/right/Europe/Istanbul -#usr/share/zoneinfo/right/Europe/Kaliningrad -#usr/share/zoneinfo/right/Europe/Kiev -#usr/share/zoneinfo/right/Europe/Lisbon -#usr/share/zoneinfo/right/Europe/Ljubljana -#usr/share/zoneinfo/right/Europe/London -#usr/share/zoneinfo/right/Europe/Luxembourg -#usr/share/zoneinfo/right/Europe/Madrid -#usr/share/zoneinfo/right/Europe/Malta -#usr/share/zoneinfo/right/Europe/Mariehamn -#usr/share/zoneinfo/right/Europe/Minsk -#usr/share/zoneinfo/right/Europe/Monaco -#usr/share/zoneinfo/right/Europe/Moscow -#usr/share/zoneinfo/right/Europe/Nicosia -#usr/share/zoneinfo/right/Europe/Oslo -#usr/share/zoneinfo/right/Europe/Paris -#usr/share/zoneinfo/right/Europe/Prague -#usr/share/zoneinfo/right/Europe/Riga -#usr/share/zoneinfo/right/Europe/Rome -#usr/share/zoneinfo/right/Europe/Samara -#usr/share/zoneinfo/right/Europe/San_Marino -#usr/share/zoneinfo/right/Europe/Sarajevo -#usr/share/zoneinfo/right/Europe/Simferopol -#usr/share/zoneinfo/right/Europe/Skopje -#usr/share/zoneinfo/right/Europe/Sofia -#usr/share/zoneinfo/right/Europe/Stockholm -#usr/share/zoneinfo/right/Europe/Tallinn -#usr/share/zoneinfo/right/Europe/Tirane -#usr/share/zoneinfo/right/Europe/Tiraspol -#usr/share/zoneinfo/right/Europe/Uzhgorod -#usr/share/zoneinfo/right/Europe/Vaduz -#usr/share/zoneinfo/right/Europe/Vatican -#usr/share/zoneinfo/right/Europe/Vienna -#usr/share/zoneinfo/right/Europe/Vilnius -#usr/share/zoneinfo/right/Europe/Warsaw -#usr/share/zoneinfo/right/Europe/Zagreb -#usr/share/zoneinfo/right/Europe/Zaporozhye -#usr/share/zoneinfo/right/Europe/Zurich -#usr/share/zoneinfo/right/Factory -#usr/share/zoneinfo/right/GB -#usr/share/zoneinfo/right/GB-Eire -#usr/share/zoneinfo/right/GMT -#usr/share/zoneinfo/right/GMT+0 -#usr/share/zoneinfo/right/GMT-0 -#usr/share/zoneinfo/right/GMT0 -#usr/share/zoneinfo/right/Greenwich -#usr/share/zoneinfo/right/HST -#usr/share/zoneinfo/right/Hongkong -#usr/share/zoneinfo/right/Iceland -#usr/share/zoneinfo/right/Indian -#usr/share/zoneinfo/right/Indian/Antananarivo -#usr/share/zoneinfo/right/Indian/Chagos -#usr/share/zoneinfo/right/Indian/Christmas -#usr/share/zoneinfo/right/Indian/Cocos -#usr/share/zoneinfo/right/Indian/Comoro -#usr/share/zoneinfo/right/Indian/Kerguelen -#usr/share/zoneinfo/right/Indian/Mahe -#usr/share/zoneinfo/right/Indian/Maldives -#usr/share/zoneinfo/right/Indian/Mauritius -#usr/share/zoneinfo/right/Indian/Mayotte -#usr/share/zoneinfo/right/Indian/Reunion -#usr/share/zoneinfo/right/Iran -#usr/share/zoneinfo/right/Israel -#usr/share/zoneinfo/right/Jamaica -#usr/share/zoneinfo/right/Japan -#usr/share/zoneinfo/right/Kwajalein -#usr/share/zoneinfo/right/Libya -#usr/share/zoneinfo/right/MET -#usr/share/zoneinfo/right/MST -#usr/share/zoneinfo/right/MST7MDT -#usr/share/zoneinfo/right/Mexico -#usr/share/zoneinfo/right/Mexico/BajaNorte -#usr/share/zoneinfo/right/Mexico/BajaSur -#usr/share/zoneinfo/right/Mexico/General -#usr/share/zoneinfo/right/Mideast -#usr/share/zoneinfo/right/Mideast/Riyadh87 -#usr/share/zoneinfo/right/Mideast/Riyadh88 -#usr/share/zoneinfo/right/Mideast/Riyadh89 -#usr/share/zoneinfo/right/NZ -#usr/share/zoneinfo/right/NZ-CHAT -#usr/share/zoneinfo/right/Navajo -#usr/share/zoneinfo/right/PRC -#usr/share/zoneinfo/right/PST8PDT -#usr/share/zoneinfo/right/Pacific -#usr/share/zoneinfo/right/Pacific/Apia -#usr/share/zoneinfo/right/Pacific/Auckland -#usr/share/zoneinfo/right/Pacific/Chatham -#usr/share/zoneinfo/right/Pacific/Easter -#usr/share/zoneinfo/right/Pacific/Efate -#usr/share/zoneinfo/right/Pacific/Enderbury -#usr/share/zoneinfo/right/Pacific/Fakaofo -#usr/share/zoneinfo/right/Pacific/Fiji -#usr/share/zoneinfo/right/Pacific/Funafuti -#usr/share/zoneinfo/right/Pacific/Galapagos -#usr/share/zoneinfo/right/Pacific/Gambier -#usr/share/zoneinfo/right/Pacific/Guadalcanal -#usr/share/zoneinfo/right/Pacific/Guam -#usr/share/zoneinfo/right/Pacific/Honolulu -#usr/share/zoneinfo/right/Pacific/Johnston -#usr/share/zoneinfo/right/Pacific/Kiritimati -#usr/share/zoneinfo/right/Pacific/Kosrae -#usr/share/zoneinfo/right/Pacific/Kwajalein -#usr/share/zoneinfo/right/Pacific/Majuro -#usr/share/zoneinfo/right/Pacific/Marquesas -#usr/share/zoneinfo/right/Pacific/Midway -#usr/share/zoneinfo/right/Pacific/Nauru -#usr/share/zoneinfo/right/Pacific/Niue -#usr/share/zoneinfo/right/Pacific/Norfolk -#usr/share/zoneinfo/right/Pacific/Noumea -#usr/share/zoneinfo/right/Pacific/Pago_Pago -#usr/share/zoneinfo/right/Pacific/Palau -#usr/share/zoneinfo/right/Pacific/Pitcairn -#usr/share/zoneinfo/right/Pacific/Ponape -#usr/share/zoneinfo/right/Pacific/Port_Moresby -#usr/share/zoneinfo/right/Pacific/Rarotonga -#usr/share/zoneinfo/right/Pacific/Saipan -#usr/share/zoneinfo/right/Pacific/Samoa -#usr/share/zoneinfo/right/Pacific/Tahiti -#usr/share/zoneinfo/right/Pacific/Tarawa -#usr/share/zoneinfo/right/Pacific/Tongatapu -#usr/share/zoneinfo/right/Pacific/Truk -#usr/share/zoneinfo/right/Pacific/Wake -#usr/share/zoneinfo/right/Pacific/Wallis -#usr/share/zoneinfo/right/Pacific/Yap -#usr/share/zoneinfo/right/Poland -#usr/share/zoneinfo/right/Portugal -#usr/share/zoneinfo/right/ROC -#usr/share/zoneinfo/right/ROK -#usr/share/zoneinfo/right/Singapore -#usr/share/zoneinfo/right/SystemV -#usr/share/zoneinfo/right/SystemV/AST4 -#usr/share/zoneinfo/right/SystemV/AST4ADT -#usr/share/zoneinfo/right/SystemV/CST6 -#usr/share/zoneinfo/right/SystemV/CST6CDT -#usr/share/zoneinfo/right/SystemV/EST5 -#usr/share/zoneinfo/right/SystemV/EST5EDT -#usr/share/zoneinfo/right/SystemV/HST10 -#usr/share/zoneinfo/right/SystemV/MST7 -#usr/share/zoneinfo/right/SystemV/MST7MDT -#usr/share/zoneinfo/right/SystemV/PST8 -#usr/share/zoneinfo/right/SystemV/PST8PDT -#usr/share/zoneinfo/right/SystemV/YST9 -#usr/share/zoneinfo/right/SystemV/YST9YDT -#usr/share/zoneinfo/right/Turkey -#usr/share/zoneinfo/right/UCT -#usr/share/zoneinfo/right/US -#usr/share/zoneinfo/right/US/Alaska -#usr/share/zoneinfo/right/US/Aleutian -#usr/share/zoneinfo/right/US/Arizona -#usr/share/zoneinfo/right/US/Central -#usr/share/zoneinfo/right/US/East-Indiana -#usr/share/zoneinfo/right/US/Eastern -#usr/share/zoneinfo/right/US/Hawaii -#usr/share/zoneinfo/right/US/Indiana-Starke -#usr/share/zoneinfo/right/US/Michigan -#usr/share/zoneinfo/right/US/Mountain -#usr/share/zoneinfo/right/US/Pacific -#usr/share/zoneinfo/right/US/Samoa -#usr/share/zoneinfo/right/UTC -#usr/share/zoneinfo/right/Universal -#usr/share/zoneinfo/right/W-SU -#usr/share/zoneinfo/right/WET -#usr/share/zoneinfo/right/Zulu -#usr/share/zoneinfo/zone.tab +#var/cache/ldconfig +#var/cache/ldconfig/aux-cache diff --git a/config/rootfiles/common/i586/grub b/config/rootfiles/common/i586/grub index e466ff0..de6a53b 100644 --- a/config/rootfiles/common/i586/grub +++ b/config/rootfiles/common/i586/grub @@ -1,32 +1,34 @@ #boot/grub +boot/grub/default boot/grub/grub.conf boot/grub/ipfire.xpm.gz boot/grub/stage1 boot/grub/stage2 #usr/bin/mbchk -#usr/info/grub.info -#usr/info/multiboot.info -#usr/man/man1/mbchk.1 -#usr/man/man8/grub-install.8 -#usr/man/man8/grub-md5-crypt.8 -#usr/man/man8/grub-terminfo.8 -#usr/man/man8/grub.8 +usr/lib/grub +#usr/lib/grub/i386-pc +#usr/lib/grub/i386-pc/e2fs_stage1_5 +#usr/lib/grub/i386-pc/fat_stage1_5 +#usr/lib/grub/i386-pc/ffs_stage1_5 +#usr/lib/grub/i386-pc/iso9660_stage1_5 +#usr/lib/grub/i386-pc/jfs_stage1_5 +#usr/lib/grub/i386-pc/minix_stage1_5 +#usr/lib/grub/i386-pc/reiserfs_stage1_5 +#usr/lib/grub/i386-pc/stage1 +#usr/lib/grub/i386-pc/stage2 +#usr/lib/grub/i386-pc/stage2_eltorito +#usr/lib/grub/i386-pc/ufs2_stage1_5 +#usr/lib/grub/i386-pc/vstafs_stage1_5 +#usr/lib/grub/i386-pc/xfs_stage1_5 usr/sbin/grub usr/sbin/grub-install usr/sbin/grub-md5-crypt +usr/sbin/grub-set-default usr/sbin/grub-terminfo -usr/share/grub -#usr/share/grub/i386-pc -#usr/share/grub/i386-pc/e2fs_stage1_5 -#usr/share/grub/i386-pc/fat_stage1_5 -#usr/share/grub/i386-pc/ffs_stage1_5 -#usr/share/grub/i386-pc/iso9660_stage1_5 -#usr/share/grub/i386-pc/jfs_stage1_5 -#usr/share/grub/i386-pc/minix_stage1_5 -#usr/share/grub/i386-pc/reiserfs_stage1_5 -#usr/share/grub/i386-pc/stage1 -#usr/share/grub/i386-pc/stage2 -#usr/share/grub/i386-pc/stage2_eltorito -#usr/share/grub/i386-pc/ufs2_stage1_5 -#usr/share/grub/i386-pc/vstafs_stage1_5 -#usr/share/grub/i386-pc/xfs_stage1_5 +#usr/share/info/grub.info +#usr/share/info/multiboot.info +#usr/share/man/man1/mbchk.1 +#usr/share/man/man8/grub-install.8 +#usr/share/man/man8/grub-md5-crypt.8 +#usr/share/man/man8/grub-terminfo.8 +#usr/share/man/man8/grub.8 diff --git a/config/rootfiles/common/i586/initscripts b/config/rootfiles/common/i586/initscripts index 653060f..f26e244 100644 --- a/config/rootfiles/common/i586/initscripts +++ b/config/rootfiles/common/i586/initscripts @@ -3,6 +3,7 @@ etc/rc.d/helper/getdnsfromdhcpc.pl etc/rc.d/helper/writeipac.pl #etc/rc.d/init.d +etc/rc.d/init.d/acpid #etc/rc.d/init.d/alsa #etc/rc.d/init.d/amavisd etc/rc.d/init.d/apache @@ -37,7 +38,6 @@ etc/rc.d/init.d/halt #etc/rc.d/init.d/hostapd #etc/rc.d/init.d/icecream #etc/rc.d/init.d/imspector -#etc/rc.d/init.d/ipfireseeder etc/rc.d/init.d/ipsec #etc/rc.d/init.d/lcd4linux #etc/rc.d/init.d/lcr @@ -75,6 +75,7 @@ etc/rc.d/init.d/networking/red.down/10-ovpn etc/rc.d/init.d/networking/red.down/20-RL-firewall etc/rc.d/init.d/networking/red.down/99-D-dialctrl.pl #etc/rc.d/init.d/networking/red.up +etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq etc/rc.d/init.d/networking/red.up/10-miniupnpd etc/rc.d/init.d/networking/red.up/10-multicast @@ -89,6 +90,7 @@ etc/rc.d/init.d/networking/red.up/30-ddns etc/rc.d/init.d/networking/red.up/40-ipac etc/rc.d/init.d/networking/red.up/50-ipsec etc/rc.d/init.d/networking/red.up/50-ovpn +etc/rc.d/init.d/networking/red.up/98-leds etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl etc/rc.d/init.d/networking/red.up/99-fireinfo etc/rc.d/init.d/networking/red.up/99-pakfire-update @@ -143,6 +145,7 @@ etc/rc.d/rc0.d/K28apache etc/rc.d/rc0.d/K30sshd #etc/rc.d/rc0.d/K34client175 etc/rc.d/rc0.d/K45random +etc/rc.d/rc0.d/K47setclock etc/rc.d/rc0.d/K49cyrus-sasl etc/rc.d/rc0.d/K78snort etc/rc.d/rc0.d/K79leds @@ -150,6 +153,7 @@ etc/rc.d/rc0.d/K80network #etc/rc.d/rc0.d/K84bluetooth #etc/rc.d/rc0.d/K85messagebus etc/rc.d/rc0.d/K85tmpfs +etc/rc.d/rc0.d/K87acpid etc/rc.d/rc0.d/K90sysklogd etc/rc.d/rc0.d/S60sendsignals etc/rc.d/rc0.d/S70localnet @@ -159,6 +163,7 @@ etc/rc.d/rc0.d/S99halt #etc/rc.d/rc3.d etc/rc.d/rc3.d/S01tmpfs etc/rc.d/rc3.d/S10sysklogd +etc/rc.d/rc3.d/S12acpid #etc/rc.d/rc3.d/S15messagebus #etc/rc.d/rc3.d/S16bluetooth #etc/rc.d/rc3.d/S18cpufreq @@ -188,6 +193,7 @@ etc/rc.d/rc6.d/K28apache etc/rc.d/rc6.d/K30sshd #etc/rc.d/rc6.d/K34client175 etc/rc.d/rc6.d/K45random +etc/rc.d/rc6.d/K47setclock etc/rc.d/rc6.d/K49cyrus-sasl etc/rc.d/rc6.d/K78snort etc/rc.d/rc6.d/K79leds @@ -195,6 +201,7 @@ etc/rc.d/rc6.d/K80network #etc/rc.d/rc6.d/K84bluetooth #etc/rc.d/rc6.d/K85messagebus etc/rc.d/rc6.d/K85tmpfs +etc/rc.d/rc6.d/K87acpid etc/rc.d/rc6.d/K90sysklogd etc/rc.d/rc6.d/S60sendsignals etc/rc.d/rc6.d/S70mountfs diff --git a/config/rootfiles/common/i586/kqemu b/config/rootfiles/common/i586/kqemu deleted file mode 100644 index 88244ee..0000000 --- a/config/rootfiles/common/i586/kqemu +++ /dev/null @@ -1,2 +0,0 @@ -#lib/modules/KVER-ipfire/misc -lib/modules/KVER-ipfire/misc/kqemu.ko diff --git a/config/rootfiles/common/i586/linux b/config/rootfiles/common/i586/linux index 7b9fce4..750b61e 100644 --- a/config/rootfiles/common/i586/linux +++ b/config/rootfiles/common/i586/linux @@ -1,4 +1,3 @@ -boot/ipfirerd-KVER.img boot/System.map-KVER-ipfire boot/System.map-ipfire boot/config-KVER-ipfire @@ -13,39 +12,30 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/arch #lib/modules/KVER-ipfire/kernel/arch/x86 #lib/modules/KVER-ipfire/kernel/arch/x86/crypto -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aes-MACHINE.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aes-i586.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aesni-intel.ko #lib/modules/KVER-ipfire/kernel/arch/x86/crypto/crc32c-intel.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/salsa20-MACHINE.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/twofish-MACHINE.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/salsa20-i586.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/twofish-i586.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/apm.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/cpufreq-nforce2.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/e_powersaver.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/gx-suspmod.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/longhaul.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/longrun.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k6.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k7.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-ich.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-lib.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-smi.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/mcheck #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/microcode.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/msr.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/scx200.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm-amd.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm-intel.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/platform +#lib/modules/KVER-ipfire/kernel/arch/x86/platform/scx200 +#lib/modules/KVER-ipfire/kernel/arch/x86/platform/scx200/scx200.ko #lib/modules/KVER-ipfire/kernel/crypto #lib/modules/KVER-ipfire/kernel/crypto/aes_generic.ko +#lib/modules/KVER-ipfire/kernel/crypto/af_alg.ko +#lib/modules/KVER-ipfire/kernel/crypto/algif_hash.ko +#lib/modules/KVER-ipfire/kernel/crypto/algif_skcipher.ko #lib/modules/KVER-ipfire/kernel/crypto/ansi_cprng.ko #lib/modules/KVER-ipfire/kernel/crypto/anubis.ko #lib/modules/KVER-ipfire/kernel/crypto/arc4.ko @@ -57,7 +47,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/async_tx/async_xor.ko #lib/modules/KVER-ipfire/kernel/crypto/async_tx/raid6test.ko #lib/modules/KVER-ipfire/kernel/crypto/authenc.ko -#lib/modules/KVER-ipfire/kernel/crypto/blowfish.ko +#lib/modules/KVER-ipfire/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire/kernel/crypto/blowfish_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/camellia.ko #lib/modules/KVER-ipfire/kernel/crypto/cast5.ko #lib/modules/KVER-ipfire/kernel/crypto/cast6.ko @@ -65,6 +57,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/ccm.ko #lib/modules/KVER-ipfire/kernel/crypto/crc32c.ko #lib/modules/KVER-ipfire/kernel/crypto/cryptd.ko +#lib/modules/KVER-ipfire/kernel/crypto/crypto_user.ko #lib/modules/KVER-ipfire/kernel/crypto/ctr.ko #lib/modules/KVER-ipfire/kernel/crypto/cts.ko #lib/modules/KVER-ipfire/kernel/crypto/des_generic.ko @@ -76,9 +69,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/khazad.ko #lib/modules/KVER-ipfire/kernel/crypto/lrw.ko #lib/modules/KVER-ipfire/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire/kernel/crypto/md4.ko #lib/modules/KVER-ipfire/kernel/crypto/md5.ko #lib/modules/KVER-ipfire/kernel/crypto/michael_mic.ko #lib/modules/KVER-ipfire/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire/kernel/crypto/pcrypt.ko #lib/modules/KVER-ipfire/kernel/crypto/rmd128.ko #lib/modules/KVER-ipfire/kernel/crypto/rmd160.ko #lib/modules/KVER-ipfire/kernel/crypto/rmd256.ko @@ -92,8 +87,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/sha512_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/tea.ko #lib/modules/KVER-ipfire/kernel/crypto/tgr192.ko -#lib/modules/KVER-ipfire/kernel/crypto/twofish.ko #lib/modules/KVER-ipfire/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire/kernel/crypto/twofish_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/vmac.ko #lib/modules/KVER-ipfire/kernel/crypto/wp512.ko #lib/modules/KVER-ipfire/kernel/crypto/xcbc.ko @@ -103,26 +98,31 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers #lib/modules/KVER-ipfire/kernel/drivers/acpi #lib/modules/KVER-ipfire/kernel/drivers/acpi/ac.ko +#lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_ipmi.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_pad.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/battery.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/button.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/container.ko +#lib/modules/KVER-ipfire/kernel/drivers/acpi/ec_sys.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/fan.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/pci_slot.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/power_meter.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/processor.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/sbs.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/sbshc.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/thermal.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/video.ko #lib/modules/KVER-ipfire/kernel/drivers/ata +#lib/modules/KVER-ipfire/kernel/drivers/ata/acard-ahci.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/ahci.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/ahci_platform.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/ata_generic.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/ata_piix.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/libahci.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/libata.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_acpi.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_ali.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_amd.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_arasan_cf.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_artop.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_atiixp.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_atp867x.ko @@ -155,7 +155,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pcmcia.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pdc2027x.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pdc202xx_old.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_qdi.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_piccolo.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_radisys.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_rdc.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_rz1000.ko @@ -167,7 +167,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_sl82c105.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_triflex.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_via.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_winbond.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pdc_adma.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_inic162x.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_mv.ko @@ -199,6 +198,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/atm/suni.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/uPD98402.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/zatm.ko +#lib/modules/KVER-ipfire/kernel/drivers/base +#lib/modules/KVER-ipfire/kernel/drivers/base/regmap +#lib/modules/KVER-ipfire/kernel/drivers/base/regmap/regmap-i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/bcma +#lib/modules/KVER-ipfire/kernel/drivers/bcma/bcma.ko #lib/modules/KVER-ipfire/kernel/drivers/block #lib/modules/KVER-ipfire/kernel/drivers/block/DAC960.ko #lib/modules/KVER-ipfire/kernel/drivers/block/aoe @@ -209,9 +213,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/block/floppy.ko #lib/modules/KVER-ipfire/kernel/drivers/block/nbd.ko #lib/modules/KVER-ipfire/kernel/drivers/block/osdblk.ko +#lib/modules/KVER-ipfire/kernel/drivers/block/rbd.ko #lib/modules/KVER-ipfire/kernel/drivers/block/sx8.ko #lib/modules/KVER-ipfire/kernel/drivers/block/virtio_blk.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire/kernel/drivers/bluetooth/ath3k.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bcm203x.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bfusb.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bluecard_cs.ko @@ -222,6 +228,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btsdio.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btuart_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btwilink.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/dtl1_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/hci_uart.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/hci_vhci.ko @@ -236,11 +243,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/char/agp/ati-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/efficeon-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/intel-agp.ko +#lib/modules/KVER-ipfire/kernel/drivers/char/agp/intel-gtt.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/nvidia-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/sis-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/sworks-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/via-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/cs5535_gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hangcheck-timer.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/amd-rng.ko @@ -260,26 +267,40 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/char/lp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/mwave #lib/modules/KVER-ipfire/kernel/drivers/char/mwave/mwave.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/nozomi.ko #lib/modules/KVER-ipfire/kernel/drivers/char/nsc_gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/char/nvram.ko #lib/modules/KVER-ipfire/kernel/drivers/char/pc8736x_gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia -#lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia/ipwireless -#lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko #lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia/synclink_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/char/ppdev.ko #lib/modules/KVER-ipfire/kernel/drivers/char/scx200_gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/char/toshiba.ko #lib/modules/KVER-ipfire/kernel/drivers/clocksource +#lib/modules/KVER-ipfire/kernel/drivers/clocksource/cs5535-clockevt.ko #lib/modules/KVER-ipfire/kernel/drivers/clocksource/scx200_hrt.ko #lib/modules/KVER-ipfire/kernel/drivers/connector #lib/modules/KVER-ipfire/kernel/drivers/connector/cn.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/acpi-cpufreq.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq-nforce2.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_conservative.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_ondemand.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_powersave.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_userspace.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/e_powersaver.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/gx-suspmod.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/longhaul.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/longrun.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/mperf.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/p4-clockmod.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/pcc-cpufreq.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k6.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k7.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k8.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-centrino.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-ich.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-lib.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-smi.ko #lib/modules/KVER-ipfire/kernel/drivers/crypto #lib/modules/KVER-ipfire/kernel/drivers/crypto/geode-aes.ko.off #lib/modules/KVER-ipfire/kernel/drivers/crypto/hifn_795x.ko @@ -289,27 +310,49 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/dca/dca.ko #lib/modules/KVER-ipfire/kernel/drivers/dma #lib/modules/KVER-ipfire/kernel/drivers/dma/dmatest.ko +#lib/modules/KVER-ipfire/kernel/drivers/dma/intel_mid_dma.ko #lib/modules/KVER-ipfire/kernel/drivers/dma/ioat #lib/modules/KVER-ipfire/kernel/drivers/dma/ioat/ioatdma.ko +#lib/modules/KVER-ipfire/kernel/drivers/dma/pch_dma.ko +#lib/modules/KVER-ipfire/kernel/drivers/dma/timb_dma.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-core.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-net.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-ohci.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-sbp2.ko #lib/modules/KVER-ipfire/kernel/drivers/firmware +#lib/modules/KVER-ipfire/kernel/drivers/firmware/dmi-sysfs.ko #lib/modules/KVER-ipfire/kernel/drivers/firmware/iscsi_ibft.ko +#lib/modules/KVER-ipfire/kernel/drivers/firmware/sigma.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-adp5588.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-cs5535.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-generic.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-it8761e.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-janz-ttl.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max7300.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max730x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-mcp23s08.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-ml-ioh.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pca953x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pcf857x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pch.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-rdc321x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-sch.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-vx855.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm_kms_helper.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i810 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i810/i810.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i830 -#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i830/i830.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i915 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i915/i915.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mga #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/nouveau +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/nouveau/nouveau.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/r128 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/r128/r128.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/radeon @@ -324,39 +367,72 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/ttm/ttm.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/via #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/via/via.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/vmwgfx +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/stub +#lib/modules/KVER-ipfire/kernel/drivers/gpu/stub/poulsbo.ko #lib/modules/KVER-ipfire/kernel/drivers/hid #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-a4tech.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-apple.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-axff.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-belkin.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-cherry.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-chicony.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-drff.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-dr.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-elecom.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ezkey.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-gaff.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-holtekff.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-kensington.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-keytouch.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-kye.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-logitech-dj.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-logitech.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-magicmouse.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-microsoft.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-monterey.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-multitouch.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ortek.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-picolcd.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-pl.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-primax.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-prodikeys.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-quanta.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-samsung.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sjoy.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-speedlink.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sunplus.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-tmff.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-topseed.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-uclogic.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-wacom.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-waltop.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-wiimote.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-zpff.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-zydacron.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/usbhid #lib/modules/KVER-ipfire/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire/kernel/drivers/hv +#lib/modules/KVER-ipfire/kernel/drivers/hv/hv_utils.ko +#lib/modules/KVER-ipfire/kernel/drivers/hv/hv_vmbus.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon #lib/modules/KVER-ipfire/kernel/drivers/hwmon/abituguru.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/abituguru3.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/acpi_power_meter.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ad7414.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ad7418.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm1021.ko @@ -365,36 +441,46 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm1029.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm1031.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ads1015.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7411.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7462.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7470.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7473.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/amc6821.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/applesmc.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/asb100.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/asc7621.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/asus_atk0110.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/atxp1.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/coretemp.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/dme1737.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc2103.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc6w201.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f71805f.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f71882fg.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/fam15h_power.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/fschmd.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/g760a.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/gl518sm.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/hdaps.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/hp_accel.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/gpio-fan.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/hwmon-vid.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/hwmon.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/i5k_amb.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ibmaem.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ibmpex.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/jc42.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/k10temp.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/k8temp.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lis3lv02d.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lineage-pem.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm73.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm75.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm77.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm78.ko @@ -406,20 +492,48 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm92.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm93.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4151.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4215.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max16065.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6642.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ntc_thermistor.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pc87360.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pc87427.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ltc2978.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/zl6100.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sht21.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sis5595.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/smm665.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47b397.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47m1.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47m192.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/tmp102.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/tmp401.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/via-cputemp.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/via686a.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/vt1211.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/vt8231.ko @@ -429,10 +543,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83791d.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83792d.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83795.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83l785ts.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83l786ng.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/wm831x-hwmon.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/wm8350-hwmon.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c #lib/modules/KVER-ipfire/kernel/drivers/i2c/algos #lib/modules/KVER-ipfire/kernel/drivers/i2c/algos/i2c-algo-bit.ko @@ -444,7 +557,13 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd756.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-eg20t.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-i801.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-intel-mid.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-isch.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-nforce2.ko @@ -460,16 +579,20 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis630.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis96x.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-taos-evm.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-tiny-usb.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-via.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-voodoo3.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-xiic.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/scx200_acb.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/chips -#lib/modules/KVER-ipfire/kernel/drivers/i2c/chips/ds1682.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/chips/tsl2550.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-core.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-mux.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes +#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/gpio-i2cmux.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/pca9541.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/pca954x.ko #lib/modules/KVER-ipfire/kernel/drivers/ieee802154 #lib/modules/KVER-ipfire/kernel/drivers/ieee802154/fakehard.ko #lib/modules/KVER-ipfire/kernel/drivers/input @@ -477,33 +600,47 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/input/input-polldev.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/adp5589-keys.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/gpio_keys.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/gpio_keys_polled.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lkkbd.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/matrix_keypad.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/mcs_touchkey.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/mpr121_touchkey.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/newtonkbd.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/qt1070.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/qt2160.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/stowaway.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/tca6416-keypad.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/xtkbd.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ad714x-i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ad714x.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/apanel.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ati_remote.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/bma150.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/keyspan_remote.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcf8574_keypad.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcspkr.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/powermate.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/winbond-cir.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/wm831x-on.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/rotary_encoder.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/serio +#lib/modules/KVER-ipfire/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/sparse-keymap.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn #lib/modules/KVER-ipfire/kernel/drivers/isdn/act2000 #lib/modules/KVER-ipfire/kernel/drivers/isdn/act2000/act2000.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capi.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capidrv.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capifs.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/kernelcapi.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/divert #lib/modules/KVER-ipfire/kernel/drivers/isdn/divert/dss1_divert.ko @@ -529,6 +666,17 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon/divacapi.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon/divadidd.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon/divas.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/avmfritz.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/hfcpci.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/mISDNinfineon.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/mISDNipac.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/mISDNisar.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/netjet.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/speedfax.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/w6692.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/avma1_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/elsa_cs.ko @@ -548,56 +696,73 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/isdn/i4l/isdnhdlc.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/icn #lib/modules/KVER-ipfire/kernel/drivers/isdn/icn/icn.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN +#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/l1oip.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/mISDN_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/mISDN_dsp.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/pcbit #lib/modules/KVER-ipfire/kernel/drivers/isdn/pcbit/pcbit.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/sc #lib/modules/KVER-ipfire/kernel/drivers/isdn/sc/sc.ko #lib/modules/KVER-ipfire/kernel/drivers/leds -#lib/modules/KVER-ipfire/kernel/drivers/leds/led-class.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-alix2.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/dell-led.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-bd2802.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-clevo-mail.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-gpio.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lm3530.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lt3593.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-net48xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-net5501.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca9532.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-wm831x-status.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-wm8350.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-ss4200.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-wrap.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-backlight.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-default-on.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-heartbeat.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-netdev.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-timer.ko #lib/modules/KVER-ipfire/kernel/drivers/lguest #lib/modules/KVER-ipfire/kernel/drivers/lguest/lg.ko #lib/modules/KVER-ipfire/kernel/drivers/md +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-bufio.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-crypt.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-delay.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-flakey.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-log-userspace.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-log.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-mirror.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-mod.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-multipath.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-raid.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-region-hash.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-round-robin.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-service-time.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-snapshot.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-thin-pool.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-zero.ko #lib/modules/KVER-ipfire/kernel/drivers/md/linear.ko #lib/modules/KVER-ipfire/kernel/drivers/md/md-mod.ko #lib/modules/KVER-ipfire/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire/kernel/drivers/md/persistent-data/dm-persistent-data.ko #lib/modules/KVER-ipfire/kernel/drivers/md/raid0.ko #lib/modules/KVER-ipfire/kernel/drivers/md/raid1.ko #lib/modules/KVER-ipfire/kernel/drivers/md/raid10.ko #lib/modules/KVER-ipfire/kernel/drivers/md/raid456.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/raid6_pq.ko #lib/modules/KVER-ipfire/kernel/drivers/media #lib/modules/KVER-ipfire/kernel/drivers/media/common #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/mc44s803.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda18271.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda827x.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda8290.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda9887.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tea5761.ko @@ -605,12 +770,110 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-simple.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-types.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/xc4000.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/xc5000.ko #lib/modules/KVER-ipfire/kernel/drivers/media/dvb #lib/modules/KVER-ipfire/kernel/drivers/media/dvb/dvb-core #lib/modules/KVER-ipfire/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/rc-core.ko #lib/modules/KVER-ipfire/kernel/drivers/media/video -#lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l1-compat.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/video/ir-kbd-i2c.ko #lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l2-common.ko #lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l2-int-device.ko #lib/modules/KVER-ipfire/kernel/drivers/media/video/videodev.ko @@ -620,6 +883,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/memstick/core/mspro_block.ko #lib/modules/KVER-ipfire/kernel/drivers/memstick/host #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/jmb38x_ms.ko +#lib/modules/KVER-ipfire/kernel/drivers/memstick/host/r592.ko #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/tifm_ms.ko #lib/modules/KVER-ipfire/kernel/drivers/message #lib/modules/KVER-ipfire/kernel/drivers/message/fusion @@ -630,35 +894,61 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptscsih.ko #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptspi.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd -#lib/modules/KVER-ipfire/kernel/drivers/mfd/ab3100-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/ab3100-otp.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/cs5535-mfd.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/janz-cmodio.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/lpc_sch.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/mfd-core.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-core.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/rdc321x-southbridge.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/wm831x.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/wm8350-i2c.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/wm8350.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/timberdale.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps6105x.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps65010.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps6507x.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/vx855.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/wl1273-core.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/wm8400-core.ko #lib/modules/KVER-ipfire/kernel/drivers/misc +#lib/modules/KVER-ipfire/kernel/drivers/misc/apds9802als.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/apds990x.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/bh1770glc.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/bh1780gli.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/bmp085.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/c2port #lib/modules/KVER-ipfire/kernel/drivers/misc/c2port/c2port-duramar2150.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/c2port/core.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/cb710 #lib/modules/KVER-ipfire/kernel/drivers/misc/cb710/cb710.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/cs5535-mfgpt.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/ds1682.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/at24.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/eeprom.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/eeprom_93cx6.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/max6875.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/hmc6352.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/hpilo.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/ics932s401.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/isl29003.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/isl29020.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/iwmc3200top +#lib/modules/KVER-ipfire/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d +#lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/pch_phub.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st/st_drv.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/tifm_7xx1.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/tifm_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/tsl2550.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/vmw_balloon.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc #lib/modules/KVER-ipfire/kernel/drivers/mmc/card #lib/modules/KVER-ipfire/kernel/drivers/mmc/card/mmc_block.ko @@ -668,13 +958,14 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/mmc/core/mmc_core.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/cb710-mmc.ko -#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/ricoh_mmc.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pci.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pltfm.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdricoh_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/tifm_sd.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/ushc.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/via-sdmmc.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/vub300.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/wbsd.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd #lib/modules/KVER-ipfire/kernel/drivers/mtd/ar7part.ko @@ -689,8 +980,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/mtd/mtd_blkdevs.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdblock.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdconcat.ko +#lib/modules/KVER-ipfire/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire/kernel/drivers/mtd/nand/nand_ecc.ko +#lib/modules/KVER-ipfire/kernel/drivers/mtd/sm_ftl.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests +#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_nandecctest.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_oobtest.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_pagetest.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_readtest.ko @@ -701,83 +995,217 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/mtd/ubi #lib/modules/KVER-ipfire/kernel/drivers/mtd/ubi/ubi.ko #lib/modules/KVER-ipfire/kernel/drivers/net -#lib/modules/KVER-ipfire/kernel/drivers/net/3c501.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c503.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c505.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c507.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c509.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c515.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c523.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c527.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c59x.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/8139cp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/8139too.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/82596.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/8390.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/8390p.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ac3200.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/acenic.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/amd8111e.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/at1700.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/atl1c -#lib/modules/KVER-ipfire/kernel/drivers/net/atl1c/atl1c.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/atl1e -#lib/modules/KVER-ipfire/kernel/drivers/net/atl1e/atl1e.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/atlx -#lib/modules/KVER-ipfire/kernel/drivers/net/atlx/atl1.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/atlx/atl2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/atp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/b44.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/benet -#lib/modules/KVER-ipfire/kernel/drivers/net/benet/be2net.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/bnx2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/bnx2x.ko #lib/modules/KVER-ipfire/kernel/drivers/net/bonding #lib/modules/KVER-ipfire/kernel/drivers/net/bonding/bonding.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/bsd_comp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/cassini.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/chelsio -#lib/modules/KVER-ipfire/kernel/drivers/net/chelsio/cxgb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/cnic.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/cs89x0.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/cxgb3 -#lib/modules/KVER-ipfire/kernel/drivers/net/cxgb3/cxgb3.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/de600.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/de620.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/depca.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/dl2k.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/dnet.ko #lib/modules/KVER-ipfire/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/e100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/e1000 -#lib/modules/KVER-ipfire/kernel/drivers/net/e1000/e1000.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/e1000e -#lib/modules/KVER-ipfire/kernel/drivers/net/e1000e/e1000e.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/e2100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/eepro.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/eexpress.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/enic -#lib/modules/KVER-ipfire/kernel/drivers/net/enic/enic.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/epic100.ko #lib/modules/KVER-ipfire/kernel/drivers/net/eql.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/es3210.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/eth16i.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethoc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ewrk3.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/fealnx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/forcedeth.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/hamachi.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/hp-plus.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/hp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/hp100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ibmlana.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c501.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c509.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c515.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c574_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c589_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c59x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/typhoon.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/3c503.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/8390.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/8390p.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ac3200.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/axnet_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/e2100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/es3210.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/hp-plus.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/hp.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/lne390.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne2.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne2k-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne3210.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/pcnet_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-mca.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-ultra.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-ultra32.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/wd.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/adaptec +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/adaptec/starfire.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/alteon +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/alteon/acenic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/amd8111e.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/depca.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/lance.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/ni65.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/nmclan_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/pcnet32.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1c +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1e +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1e/atl1e.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atlx +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atlx/atl1.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/bnx2.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/bnx2x +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/cnic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/tg3.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade/bna +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb3 +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4 +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4vf +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cirrus +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cirrus/cs89x0.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco/enic +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco/enic/enic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/ewrk3.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/tulip.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/de600.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/de620.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/dl2k.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/sundance.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/emulex +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/emulex/benet +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/emulex/benet/be2net.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fealnx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/at1700.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/eth16i.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/hp +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/hp/hp100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c505.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c507.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c523.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c527.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/82596.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/eepro.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/eexpress.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/lp486e.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/ni52.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/znet.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/icplus +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/icplus/ipg.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000 +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000/e1000.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000e +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igb +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igb/igb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igbvf +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgb +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgb/ixgb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbe +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbevf +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/jme.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/skge.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/sky2.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox/mlx4 +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel/ksz884x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom/myri10ge +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/ibmlana.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/natsemi.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/ns83820.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion/s2io.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion/vxge +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion/vxge/vxge.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/nvidia +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/nvidia/forcedeth.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi/pch_gbe +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines/hamachi.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines/yellowfin.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/netxen +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qla3xxx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlcnic +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlge +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlge/qlge.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/rdc +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/rdc/r6040.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/8139cp.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/8139too.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/atp.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/r8169.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/seeq +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/seeq/seeq8005.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sfc +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sfc/sfc.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/silan +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/silan/sc92031.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sis +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sis/sis190.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sis/sis900.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/epic100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/smc9194.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/smsc9420.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/cassini.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/niu.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/sungem.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/sunhme.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/tehuti +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/tehuti/tehuti.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/ti +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/ti/tlan.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via/via-rhine.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/xircom +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ifb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/igb -#lib/modules/KVER-ipfire/kernel/drivers/net/igb/igb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/igbvf -#lib/modules/KVER-ipfire/kernel/drivers/net/igbvf/igbvf.ko #lib/modules/KVER-ipfire/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ipg.ko #lib/modules/KVER-ipfire/kernel/drivers/net/irda #lib/modules/KVER-ipfire/kernel/drivers/net/irda/ali-ircc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/irda/donauboe.ko @@ -794,137 +1222,74 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/irda/via-ircc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/irda/vlsi_ir.ko #lib/modules/KVER-ipfire/kernel/drivers/net/irda/w83977af_ir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ixgb -#lib/modules/KVER-ipfire/kernel/drivers/net/ixgb/ixgb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ixgbe -#lib/modules/KVER-ipfire/kernel/drivers/net/ixgbe/ixgbe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/jme.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ks8842.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ks8851_mll.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/lance.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/lne390.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/lp486e.ko #lib/modules/KVER-ipfire/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/macvtap.ko #lib/modules/KVER-ipfire/kernel/drivers/net/mdio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/mii.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/mlx4 -#lib/modules/KVER-ipfire/kernel/drivers/net/mlx4/mlx4_core.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/mlx4/mlx4_en.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/myri10ge -#lib/modules/KVER-ipfire/kernel/drivers/net/myri10ge/myri10ge.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/natsemi.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ne.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ne2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ne2k-pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ne3210.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/netxen -#lib/modules/KVER-ipfire/kernel/drivers/net/netxen/netxen_nic.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ni52.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ni65.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/niu.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ns83820.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/3c574_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/3c589_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/axnet_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/fmvj18x_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/nmclan_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/pcnet_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/smc91c92_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/xirc2ps_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcnet32.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy #lib/modules/KVER-ipfire/kernel/drivers/net/phy/broadcom.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/cicada.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/dp83640.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/et1011c.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/icplus.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/lxt.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/marvell.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/micrel.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/national.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/qsemi.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/realtek.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/smsc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/ste10Xp.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/vitesse.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_async.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_deflate.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_generic.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_mppe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_synctty.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pppoe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pppol2tp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pppox.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/qla3xxx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/qlge -#lib/modules/KVER-ipfire/kernel/drivers/net/qlge/qlge.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/r6040.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/r8169.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/s2io.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pptp.ko #lib/modules/KVER-ipfire/kernel/drivers/net/sb1000.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sc92031.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/seeq8005.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sfc -#lib/modules/KVER-ipfire/kernel/drivers/net/sfc/sfc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sis190.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sis900.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/skge.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sky2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/slhc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/slip.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/smc-mca.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/smc-ultra.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/smc-ultra32.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/smc9194.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/smsc9420.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/starfire.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sundance.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sungem.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/slip +#lib/modules/KVER-ipfire/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/slip/slip.ko #lib/modules/KVER-ipfire/kernel/drivers/net/sungem_phy.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sunhme.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tehuti.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tg3.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tlan.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/de2104x.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/de4x5.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/dmfe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/tulip.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/uli526x.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/winbond-840.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/xircom_cb.ko #lib/modules/KVER-ipfire/kernel/drivers/net/tun.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/typhoon.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb #lib/modules/KVER-ipfire/kernel/drivers/net/usb/asix.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/catc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc-phonet.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_eem.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_ncm.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/cx82310_eth.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/dm9601.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/gl620a.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/hso.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/kalmia.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/lg-vl600.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/mcs7830.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/net1080.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/pegasus.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/plusb.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/rndis_host.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/smsc75xx.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/smsc95xx.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/usbnet.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/zaurus.ko #lib/modules/KVER-ipfire/kernel/drivers/net/veth.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/via-rhine.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/via-velocity.ko #lib/modules/KVER-ipfire/kernel/drivers/net/virtio_net.ko #lib/modules/KVER-ipfire/kernel/drivers/net/vmxnet3 #lib/modules/KVER-ipfire/kernel/drivers/net/vmxnet3/vmxnet3.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/vxge -#lib/modules/KVER-ipfire/kernel/drivers/net/vxge/vxge.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wan #lib/modules/KVER-ipfire/kernel/drivers/net/wan/c101.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wan/cosa.ko @@ -948,94 +1313,22 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/wan/sealevel.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wan/wanxl.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wan/z85230.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wd.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wimax -#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m -#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m/i2400m.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/adm8211.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/airo.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/airo_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/at76c50x-usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ar9170 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath5k -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel_pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43/b43.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43legacy -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43legacy/b43legacy.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/libipw.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwmc3200wifi -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas_sdio.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/usb8xxx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwl8k.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54common.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/prism54 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/prism54/prism54.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ray_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rndis_wlan.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt61pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt73usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8180.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8187.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl12xx -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl12xx/wl1251.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl3501_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1201.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1211rw -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/yellowfin.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/znet.ko #lib/modules/KVER-ipfire/kernel/drivers/parport #lib/modules/KVER-ipfire/kernel/drivers/parport/parport.ko #lib/modules/KVER-ipfire/kernel/drivers/parport/parport_ax88796.ko @@ -1049,42 +1342,53 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/i82365.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pcmcia.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pcmcia_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pcmcia_rsrc.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pd6729.ko -#lib/modules/KVER-ipfire/kernel/drivers/pcmcia/rsrc_nonstatic.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/tcic.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/yenta_socket.ko #lib/modules/KVER-ipfire/kernel/drivers/platform #lib/modules/KVER-ipfire/kernel/drivers/platform/x86 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/acer-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/acerhdf.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus_acpi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/classmate-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/compal-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-wmi-aio.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/fujitsu-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hdaps.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hp-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hp_accel.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/ibm_rtl.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/ideapad-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_ips.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_menlow.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_oaktrail.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/msi-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/msi-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/mxm-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/panasonic-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/samsung-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/samsung-q10.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/sony-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/tc1100-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/thinkpad_acpi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/topstar-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/toshiba_acpi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/toshiba_bluetooth.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/wmi.ko -#lib/modules/KVER-ipfire/kernel/drivers/power -#lib/modules/KVER-ipfire/kernel/drivers/power/bq27x00_battery.ko -#lib/modules/KVER-ipfire/kernel/drivers/power/ds2782_battery.ko -#lib/modules/KVER-ipfire/kernel/drivers/power/max17040_battery.ko -#lib/modules/KVER-ipfire/kernel/drivers/power/pcf50633-charger.ko -#lib/modules/KVER-ipfire/kernel/drivers/power/wm831x_power.ko -#lib/modules/KVER-ipfire/kernel/drivers/power/wm8350_power.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/xo15-ebook.ko #lib/modules/KVER-ipfire/kernel/drivers/pps #lib/modules/KVER-ipfire/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/ptp +#lib/modules/KVER-ipfire/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire/kernel/drivers/regulator +#lib/modules/KVER-ipfire/kernel/drivers/regulator/fixed.ko +#lib/modules/KVER-ipfire/kernel/drivers/regulator/gpio-regulator.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ab3100.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-bq32k.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-bq4802.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-cmos.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-core.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1286.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1307.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1374.ko @@ -1092,29 +1396,32 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1553.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1672.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-em3027.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-isl12022.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-isl1208.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-lib.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m41t80.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t35.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t59.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t86.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-msm6242.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf50633.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8563.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rp5c01.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rv3029c2.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rx8025.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rx8581.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-s35390a.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-stk17ta8.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-test.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-v3020.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-wm831x.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-wm8350.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-x1205.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi #lib/modules/KVER-ipfire/kernel/drivers/scsi/3w-9xxx.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/3w-sas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/3w-xxxx.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/53c700.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/BusLogic.ko @@ -1140,11 +1447,17 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/be2iscsi/be2iscsi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/bfa #lib/modules/KVER-ipfire/kernel/drivers/scsi/bfa/bfa.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2fc +#lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2fc/bnx2fc.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2i #lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2i/bnx2i.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ch.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgb3i -#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb3i +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb4i +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb4i/cxgb4i.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/libcxgbi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/dc395x.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler/scsi_dh.ko @@ -1166,6 +1479,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/g_NCR5380.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/g_NCR5380_mmio.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/gdth.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/hpsa.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/hptiop.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ibmmca.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/imm.ko @@ -1173,6 +1487,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/initio.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ipr.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ips.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/isci +#lib/modules/KVER-ipfire/kernel/drivers/scsi/isci/isci.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/iscsi_boot_sysfs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/iscsi_tcp.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/libfc #lib/modules/KVER-ipfire/kernel/drivers/scsi/libfc/libfc.ko @@ -1191,6 +1508,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/mpt2sas/mpt2sas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvsas #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvsas/mvsas.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/mvumi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/nsp32.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd/libosd.ko @@ -1202,6 +1520,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/nsp_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/qlogic_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001 +#lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001/pm8001.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pmcraid.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ppa.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/qla1280.ko @@ -1211,6 +1531,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/qla4xxx/qla4xxx.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/qlogicfas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/qlogicfas408.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/raid_class.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_mod.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_fc.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_iscsi.ko @@ -1231,37 +1552,55 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/tmscsim.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/u14-34f.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ultrastor.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/vmw_pvscsi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/wd7000.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial -#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_accent.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_boca.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_exar_st16c554.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_fourport.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_hub6.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial/serial_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/ssb #lib/modules/KVER-ipfire/kernel/drivers/ssb/ssb.ko #lib/modules/KVER-ipfire/kernel/drivers/staging #lib/modules/KVER-ipfire/kernel/drivers/staging/et131x #lib/modules/KVER-ipfire/kernel/drivers/staging/et131x/et131x.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/hv -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_blkvsc.ko +#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_mouse.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_netvsc.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_storvsc.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_vmbus.ko +#lib/modules/KVER-ipfire/kernel/drivers/staging/mei +#lib/modules/KVER-ipfire/kernel/drivers/staging/mei/mei.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/phison #lib/modules/KVER-ipfire/kernel/drivers/staging/phison/phison.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/slicoss #lib/modules/KVER-ipfire/kernel/drivers/staging/slicoss/slicoss.ko +#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip +#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/usbip-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/usbip-host.ko +#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty +#lib/modules/KVER-ipfire/kernel/drivers/tty/ipwireless +#lib/modules/KVER-ipfire/kernel/drivers/tty/ipwireless/ipwireless.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_accent.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_boca.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_exar_st16c554.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_fourport.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_hub6.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/altera_jtaguart.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/altera_uart.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/mfd.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/pch_uart.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/serial_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/timbuart.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/uartlite.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/xilinx_uartps.ko #lib/modules/KVER-ipfire/kernel/drivers/uio #lib/modules/KVER-ipfire/kernel/drivers/uio/uio.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_aec.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_cif.ko +#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_netx.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pci_generic.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pdrv.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pdrv_genirq.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_sercos3.ko -#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_smx.ko #lib/modules/KVER-ipfire/kernel/drivers/usb #lib/modules/KVER-ipfire/kernel/drivers/usb/atm #lib/modules/KVER-ipfire/kernel/drivers/usb/atm/cxacru.ko @@ -1274,24 +1613,22 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/class/cdc-wdm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class/usblp.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class/usbtmc.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/core -#lib/modules/KVER-ipfire/kernel/drivers/usb/core/usbcore.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/ehci-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/hwa-hc.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/isp116x-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/ohci-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/oxu210hp-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/r8a66597-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/sl811-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/u132-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/uhci-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/whci #lib/modules/KVER-ipfire/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/xhci.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/host/xhci-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/berry_charge.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/cypress_cy7c63.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/cytherm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/emi26.ko @@ -1305,8 +1642,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usbled.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usbsevseg.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/uss720.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/vstusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/yurex.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/otg +#lib/modules/KVER-ipfire/kernel/drivers/usb/otg/gpio_vbus.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/otg/nop-usb-xceiv.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/aircable.ko @@ -1318,10 +1656,14 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/digi_acceleport.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/empeg.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/funsoft.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/garmin_gps.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/hp4x.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ipaq.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ir-usb.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/iuu_phoenix.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/keyspan_pda.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/mct_u232.ko @@ -1332,23 +1674,33 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/option.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/oti6858.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/qcaux.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/qcserial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/safe_serial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/siemens_mpi.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/sierra.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ssu100.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/symbolserial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/usb_wwan.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/vivopay-serial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/zio.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/uas.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-alauda.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-eneub6250.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-freecom.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-isd200.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-jumpshot.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-karma.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-realtek.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-sddr09.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-sddr55.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-usbat.ko @@ -1363,14 +1715,12 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/dfu #lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko #lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/i1480-est.ko -#lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/i1480u-wlp -#lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko #lib/modules/KVER-ipfire/kernel/drivers/uwb/umc.ko #lib/modules/KVER-ipfire/kernel/drivers/uwb/uwb.ko #lib/modules/KVER-ipfire/kernel/drivers/uwb/whc-rc.ko #lib/modules/KVER-ipfire/kernel/drivers/uwb/whci.ko -#lib/modules/KVER-ipfire/kernel/drivers/uwb/wlp -#lib/modules/KVER-ipfire/kernel/drivers/uwb/wlp/wlp.ko +#lib/modules/KVER-ipfire/kernel/drivers/vhost +#lib/modules/KVER-ipfire/kernel/drivers/vhost/vhost_net.ko #lib/modules/KVER-ipfire/kernel/drivers/video #lib/modules/KVER-ipfire/kernel/drivers/video/arkfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/aty @@ -1378,14 +1728,16 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/video/aty/atyfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/aty/radeonfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/adp8860_bl.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/adp8870_bl.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/apple_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/cr_bllcd.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/generic_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/kb3886_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/mbp_nvidia_bl.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/pcf50633-backlight.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/platform_lcd.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/wm831x_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/cirrusfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/cyber2000fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/display @@ -1427,6 +1779,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/video/sis #lib/modules/KVER-ipfire/kernel/drivers/video/sis/sisfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/sm501fb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/smscufx.ko #lib/modules/KVER-ipfire/kernel/drivers/video/sstfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/svgalib.ko #lib/modules/KVER-ipfire/kernel/drivers/video/syscopyarea.ko @@ -1445,17 +1798,23 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/video/vt8623fb.ko #lib/modules/KVER-ipfire/kernel/drivers/virtio #lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_balloon.ko +#lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_mmio.ko #lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/w1 #lib/modules/KVER-ipfire/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds1wm.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds2482.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds2490.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/matrox_w1.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/masters/w1-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2423.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2431.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2433.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2780.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_smem.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_therm.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/wire.ko @@ -1466,6 +1825,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/watchdog/alim7101_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/cpu5wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/eurotechwdt.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/f71808e_wdt.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/geodewdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/hpwdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/i6300esb.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/iTCO_wdt.ko @@ -1474,6 +1835,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/watchdog/it8712f_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/it87_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/machzwd.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/nv_tco.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pc87413_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_usb.ko @@ -1488,6 +1850,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/watchdog/scx200_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/smsc37b787_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sp5100_tco.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83627hf_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83697hf_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83697ug_wdt.ko @@ -1495,11 +1858,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83977f_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/wafer5823wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/wdt_pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/wm831x_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/wm8350_wdt.ko #lib/modules/KVER-ipfire/kernel/fs -#lib/modules/KVER-ipfire/kernel/fs/autofs -#lib/modules/KVER-ipfire/kernel/fs/autofs/autofs.ko #lib/modules/KVER-ipfire/kernel/fs/autofs4 #lib/modules/KVER-ipfire/kernel/fs/autofs4/autofs4.ko #lib/modules/KVER-ipfire/kernel/fs/cachefiles @@ -1510,12 +1869,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/fs/ecryptfs/ecryptfs.ko #lib/modules/KVER-ipfire/kernel/fs/exportfs #lib/modules/KVER-ipfire/kernel/fs/exportfs/exportfs.ko -#lib/modules/KVER-ipfire/kernel/fs/ext2 -#lib/modules/KVER-ipfire/kernel/fs/ext2/ext2.ko -#lib/modules/KVER-ipfire/kernel/fs/ext3 -#lib/modules/KVER-ipfire/kernel/fs/ext3/ext3.ko -#lib/modules/KVER-ipfire/kernel/fs/ext4 -#lib/modules/KVER-ipfire/kernel/fs/ext4/ext4.ko #lib/modules/KVER-ipfire/kernel/fs/fat #lib/modules/KVER-ipfire/kernel/fs/fat/fat.ko #lib/modules/KVER-ipfire/kernel/fs/fat/vfat.ko @@ -1526,17 +1879,12 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/fs/fuse/fuse.ko #lib/modules/KVER-ipfire/kernel/fs/isofs #lib/modules/KVER-ipfire/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire/kernel/fs/jbd -#lib/modules/KVER-ipfire/kernel/fs/jbd/jbd.ko -#lib/modules/KVER-ipfire/kernel/fs/jbd2 -#lib/modules/KVER-ipfire/kernel/fs/jbd2/jbd2.ko #lib/modules/KVER-ipfire/kernel/fs/jffs2 #lib/modules/KVER-ipfire/kernel/fs/jffs2/jffs2.ko #lib/modules/KVER-ipfire/kernel/fs/jfs #lib/modules/KVER-ipfire/kernel/fs/jfs/jfs.ko #lib/modules/KVER-ipfire/kernel/fs/lockd #lib/modules/KVER-ipfire/kernel/fs/lockd/lockd.ko -#lib/modules/KVER-ipfire/kernel/fs/mbcache.ko #lib/modules/KVER-ipfire/kernel/fs/nfs #lib/modules/KVER-ipfire/kernel/fs/nfs/nfs.ko #lib/modules/KVER-ipfire/kernel/fs/nfs_common @@ -1547,26 +1895,24 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/fs/quota/quota_tree.ko #lib/modules/KVER-ipfire/kernel/fs/quota/quota_v1.ko #lib/modules/KVER-ipfire/kernel/fs/quota/quota_v2.ko -#lib/modules/KVER-ipfire/kernel/fs/reiser4 -#lib/modules/KVER-ipfire/kernel/fs/reiser4/reiser4.ko #lib/modules/KVER-ipfire/kernel/fs/reiserfs #lib/modules/KVER-ipfire/kernel/fs/reiserfs/reiserfs.ko -#lib/modules/KVER-ipfire/kernel/fs/smbfs -#lib/modules/KVER-ipfire/kernel/fs/smbfs/smbfs.ko #lib/modules/KVER-ipfire/kernel/fs/udf #lib/modules/KVER-ipfire/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire/kernel/fs/ufs +#lib/modules/KVER-ipfire/kernel/fs/ufs/ufs.ko #lib/modules/KVER-ipfire/kernel/fs/xfs #lib/modules/KVER-ipfire/kernel/fs/xfs/xfs.ko #lib/modules/KVER-ipfire/kernel/lib +#lib/modules/KVER-ipfire/kernel/lib/cordic.ko #lib/modules/KVER-ipfire/kernel/lib/crc-ccitt.ko #lib/modules/KVER-ipfire/kernel/lib/crc-itu-t.ko #lib/modules/KVER-ipfire/kernel/lib/crc-t10dif.ko -#lib/modules/KVER-ipfire/kernel/lib/crc16.ko #lib/modules/KVER-ipfire/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire/kernel/lib/crc8.ko #lib/modules/KVER-ipfire/kernel/lib/libcrc32c.ko -#lib/modules/KVER-ipfire/kernel/lib/lzo -#lib/modules/KVER-ipfire/kernel/lib/lzo/lzo_compress.ko -#lib/modules/KVER-ipfire/kernel/lib/lzo/lzo_decompress.ko +#lib/modules/KVER-ipfire/kernel/lib/raid6 +#lib/modules/KVER-ipfire/kernel/lib/raid6/raid6_pq.ko #lib/modules/KVER-ipfire/kernel/lib/ts_bm.ko #lib/modules/KVER-ipfire/kernel/lib/ts_fsm.ko #lib/modules/KVER-ipfire/kernel/lib/ts_kmp.ko @@ -1583,6 +1929,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/atm/br2684.ko #lib/modules/KVER-ipfire/kernel/net/atm/clip.ko #lib/modules/KVER-ipfire/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire/kernel/net/batman-adv +#lib/modules/KVER-ipfire/kernel/net/batman-adv/batman-adv.ko #lib/modules/KVER-ipfire/kernel/net/bluetooth #lib/modules/KVER-ipfire/kernel/net/bluetooth/bluetooth.ko #lib/modules/KVER-ipfire/kernel/net/bluetooth/bnep @@ -1591,10 +1939,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/bluetooth/cmtp/cmtp.ko #lib/modules/KVER-ipfire/kernel/net/bluetooth/hidp #lib/modules/KVER-ipfire/kernel/net/bluetooth/hidp/hidp.ko -#lib/modules/KVER-ipfire/kernel/net/bluetooth/l2cap.ko #lib/modules/KVER-ipfire/kernel/net/bluetooth/rfcomm #lib/modules/KVER-ipfire/kernel/net/bluetooth/rfcomm/rfcomm.ko -#lib/modules/KVER-ipfire/kernel/net/bluetooth/sco.ko #lib/modules/KVER-ipfire/kernel/net/bridge #lib/modules/KVER-ipfire/kernel/net/bridge/bridge.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter @@ -1620,13 +1966,16 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_filter.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_nat.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire/kernel/net/ceph +#lib/modules/KVER-ipfire/kernel/net/ceph/libceph.ko #lib/modules/KVER-ipfire/kernel/net/ieee802154 +#lib/modules/KVER-ipfire/kernel/net/ieee802154/6lowpan.ko #lib/modules/KVER-ipfire/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire/kernel/net/ieee802154/nl802154.ko -#lib/modules/KVER-ipfire/kernel/net/ieee802154/wpan-class.ko +#lib/modules/KVER-ipfire/kernel/net/ieee802154/ieee802154.ko #lib/modules/KVER-ipfire/kernel/net/ipv4 #lib/modules/KVER-ipfire/kernel/net/ipv4/ah4.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/gre.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/inet_diag.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/ip_gre.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/ipcomp.ko @@ -1645,7 +1994,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_REJECT.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ULOG.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_addrtype.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ah.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ecn.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ipp2p.ko @@ -1688,7 +2036,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv6/esp6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/ip6_tunnel.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/ipcomp6.ko -#lib/modules/KVER-ipfire/kernel/net/ipv6/ipv6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/mip6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6_queue.ko @@ -1706,6 +2053,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_mangle.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_raw.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/sit.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/tunnel6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/xfrm6_mode_beet.ko @@ -1724,6 +2072,12 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/irda/irnet/irnet.ko #lib/modules/KVER-ipfire/kernel/net/key #lib/modules/KVER-ipfire/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ppp.ko #lib/modules/KVER-ipfire/kernel/net/llc #lib/modules/KVER-ipfire/kernel/net/llc/llc.ko #lib/modules/KVER-ipfire/kernel/net/mac80211 @@ -1733,6 +2087,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_broadcast.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_ftp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_h323.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_irc.ko @@ -1745,40 +2100,48 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_proto_udplite.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_sane.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_snmp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_tftp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_tproxy_core.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_log.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_queue.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/x_tables.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CHECKSUM.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CLASSIFY.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CONNMARK.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CT.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_DSCP.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_IDLETIMER.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_IMQ.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_LED.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_MARK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NFLOG.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NFQUEUE.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NOTRACK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_RATEEST.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TCPMSS.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TEE.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TPROXY.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_addrtype.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_cluster.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_comment.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connbytes.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connlimit.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connmark.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_cpu.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_devgroup.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_dscp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_esp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_hashlimit.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_helper.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_hl.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_ipvs.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_layer7.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_length.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_limit.ko @@ -1803,24 +2166,21 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_tcpudp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_time.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_u32.ko -#lib/modules/KVER-ipfire/kernel/net/phonet -#lib/modules/KVER-ipfire/kernel/net/phonet/phonet.ko -#lib/modules/KVER-ipfire/kernel/net/phonet/pn_pep.ko -#lib/modules/KVER-ipfire/kernel/net/rds -#lib/modules/KVER-ipfire/kernel/net/rds/rds.ko -#lib/modules/KVER-ipfire/kernel/net/rds/rds_tcp.ko #lib/modules/KVER-ipfire/kernel/net/rfkill +#lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill-regulator.ko #lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill.ko #lib/modules/KVER-ipfire/kernel/net/rxrpc #lib/modules/KVER-ipfire/kernel/net/rxrpc/af-rxrpc.ko #lib/modules/KVER-ipfire/kernel/net/rxrpc/rxkad.ko #lib/modules/KVER-ipfire/kernel/net/sched +#lib/modules/KVER-ipfire/kernel/net/sched/act_csum.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_gact.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_ipt.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_mirred.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_nat.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_pedit.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire/kernel/net/sched/act_simple.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_skbedit.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_basic.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_flow.ko @@ -1837,16 +2197,20 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/em_u32.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_atm.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_choke.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_drr.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_dsmark.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_gred.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_hfsc.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_htb.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_mqprio.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_multiq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_netem.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_qfq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_sfb.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_sfq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_tbf.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_teql.ko @@ -1855,8 +2219,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko #lib/modules/KVER-ipfire/kernel/net/sunrpc/sunrpc.ko -#lib/modules/KVER-ipfire/kernel/net/wimax -#lib/modules/KVER-ipfire/kernel/net/wimax/wimax.ko #lib/modules/KVER-ipfire/kernel/net/wireless #lib/modules/KVER-ipfire/kernel/net/wireless/cfg80211.ko #lib/modules/KVER-ipfire/kernel/net/wireless/lib80211.ko @@ -1867,6 +2229,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/xfrm/xfrm_ipcomp.ko #lib/modules/KVER-ipfire/kernel/net/xfrm/xfrm_user.ko #lib/modules/KVER-ipfire/kernel/sound +#lib/modules/KVER-ipfire/kernel/sound/ac97_bus.ko #lib/modules/KVER-ipfire/kernel/sound/core #lib/modules/KVER-ipfire/kernel/sound/core/oss #lib/modules/KVER-ipfire/kernel/sound/core/oss/snd-mixer-oss.ko @@ -1876,17 +2239,239 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/core/seq/oss/snd-seq-oss.ko #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-device.ko #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-midi-emul.ko #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-virmidi.ko #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire/kernel/sound/core/snd-hwdep.ko #lib/modules/KVER-ipfire/kernel/sound/core/snd-page-alloc.ko #lib/modules/KVER-ipfire/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire/kernel/sound/core/snd-rawmidi.ko #lib/modules/KVER-ipfire/kernel/sound/core/snd-timer.ko #lib/modules/KVER-ipfire/kernel/sound/core/snd.ko #lib/modules/KVER-ipfire/kernel/sound/drivers +#lib/modules/KVER-ipfire/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl3 +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl3/snd-opl3-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl3/snd-opl3-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl4 +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl4/snd-opl4-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl4/snd-opl4-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-aloop.ko #lib/modules/KVER-ipfire/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-mts64.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/vx +#lib/modules/KVER-ipfire/kernel/sound/drivers/vx/snd-vx-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/firewire +#lib/modules/KVER-ipfire/kernel/sound/firewire/snd-firewire-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/firewire/snd-firewire-speakers.ko +#lib/modules/KVER-ipfire/kernel/sound/firewire/snd-isight.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c +#lib/modules/KVER-ipfire/kernel/sound/i2c/other +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4113.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4114.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4117.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4xxx-adda.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-pt2258.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-tea575x-tuner.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/snd-cs8427.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/snd-i2c.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/snd-tea6330t.ko +#lib/modules/KVER-ipfire/kernel/sound/isa +#lib/modules/KVER-ipfire/kernel/sound/isa/ad1816a +#lib/modules/KVER-ipfire/kernel/sound/isa/ad1816a/snd-ad1816a.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/ad1848 +#lib/modules/KVER-ipfire/kernel/sound/isa/ad1848/snd-ad1848.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/cs423x +#lib/modules/KVER-ipfire/kernel/sound/isa/cs423x/snd-cs4231.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/cs423x/snd-cs4236.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/es1688 +#lib/modules/KVER-ipfire/kernel/sound/isa/es1688/snd-es1688-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/es1688/snd-es1688.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/galaxy +#lib/modules/KVER-ipfire/kernel/sound/isa/galaxy/snd-azt1605.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/galaxy/snd-azt2316.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gus-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gusclassic.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gusextreme.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gusmax.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-interwave-stb.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-interwave.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/msnd +#lib/modules/KVER-ipfire/kernel/sound/isa/msnd/snd-msnd-classic.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/msnd/snd-msnd-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/msnd/snd-msnd-pinnacle.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx +#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-miro.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-opti92x-ad1848.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-opti92x-cs4231.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-opti93x.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-emu8000-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-jazz16.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb-common.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb16-csp.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb16-dsp.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb16.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb8-dsp.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb8.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sbawe.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-adlib.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-als100.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-azt2320.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-cmi8330.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-es18xx.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-opl3sa2.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-sc6000.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-sscape.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/wavefront +#lib/modules/KVER-ipfire/kernel/sound/isa/wavefront/snd-wavefront.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/wss +#lib/modules/KVER-ipfire/kernel/sound/isa/wss/snd-wss-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/pci +#lib/modules/KVER-ipfire/kernel/sound/pci/ac97 +#lib/modules/KVER-ipfire/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ali5451 +#lib/modules/KVER-ipfire/kernel/sound/pci/ali5451/snd-ali5451.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/asihpi +#lib/modules/KVER-ipfire/kernel/sound/pci/asihpi/snd-asihpi.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0 +#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8810.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8820.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8830.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/aw2 +#lib/modules/KVER-ipfire/kernel/sound/pci/aw2/snd-aw2.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ca0106 +#lib/modules/KVER-ipfire/kernel/sound/pci/ca0106/snd-ca0106.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/cs46xx +#lib/modules/KVER-ipfire/kernel/sound/pci/cs46xx/snd-cs46xx.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/cs5535audio +#lib/modules/KVER-ipfire/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ctxfi +#lib/modules/KVER-ipfire/kernel/sound/pci/ctxfi/snd-ctxfi.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-darla20.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-darla24.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-echo3g.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-gina20.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-gina24.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigo.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigodj.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigodjx.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigoio.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigoiox.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-layla20.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-layla24.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-mia.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-mona.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1 +#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1/snd-emu10k1.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1/snd-emu10k1x.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-analog.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-ca0132.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-conexant.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-idt.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-realtek.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-si3054.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-via.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-intel.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712 +#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712/snd-ice1712.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712/snd-ice1724.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/korg1212 +#lib/modules/KVER-ipfire/kernel/sound/pci/korg1212/snd-korg1212.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/lola +#lib/modules/KVER-ipfire/kernel/sound/pci/lola/snd-lola.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/lx6464es +#lib/modules/KVER-ipfire/kernel/sound/pci/lx6464es/snd-lx6464es.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/mixart +#lib/modules/KVER-ipfire/kernel/sound/pci/mixart/snd-mixart.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/nm256 +#lib/modules/KVER-ipfire/kernel/sound/pci/nm256/snd-nm256.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen +#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen/snd-oxygen-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen/snd-oxygen.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen/snd-virtuoso.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/pcxhr +#lib/modules/KVER-ipfire/kernel/sound/pci/pcxhr/snd-pcxhr.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/riptide +#lib/modules/KVER-ipfire/kernel/sound/pci/riptide/snd-riptide.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652 +#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652/snd-hdsp.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652/snd-hdspm.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652/snd-rme9652.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-ad1889.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-als300.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-als4000.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-atiixp-modem.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-atiixp.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-azt3328.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-bt87x.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-cmipci.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-cs4281.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-cs5530.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-ens1370.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-ens1371.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-es1938.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-es1968.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-fm801.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-intel8x0.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-intel8x0m.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-maestro3.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-rme32.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-rme96.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-sis7019.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-sonicvibes.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-via82xx-modem.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-via82xx.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/trident +#lib/modules/KVER-ipfire/kernel/sound/pci/trident/snd-trident.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/vx222 +#lib/modules/KVER-ipfire/kernel/sound/pci/vx222/snd-vx222.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ymfpci +#lib/modules/KVER-ipfire/kernel/sound/pci/ymfpci/snd-ymfpci.ko +#lib/modules/KVER-ipfire/kernel/sound/pcmcia +#lib/modules/KVER-ipfire/kernel/sound/pcmcia/pdaudiocf +#lib/modules/KVER-ipfire/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko +#lib/modules/KVER-ipfire/kernel/sound/pcmcia/vx +#lib/modules/KVER-ipfire/kernel/sound/pcmcia/vx/snd-vxpocket.ko #lib/modules/KVER-ipfire/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire/kernel/sound/synth +#lib/modules/KVER-ipfire/kernel/sound/synth/emux +#lib/modules/KVER-ipfire/kernel/sound/synth/emux/snd-emux-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/synth/snd-util-mem.ko +#lib/modules/KVER-ipfire/kernel/sound/usb +#lib/modules/KVER-ipfire/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/misc +#lib/modules/KVER-ipfire/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/usx2y +#lib/modules/KVER-ipfire/kernel/sound/usb/usx2y/snd-usb-us122l.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/usx2y/snd-usb-usx2y.ko #lib/modules/KVER-ipfire/modules.alias #lib/modules/KVER-ipfire/modules.alias.bin +#lib/modules/KVER-ipfire/modules.builtin #lib/modules/KVER-ipfire/modules.ccwmap #lib/modules/KVER-ipfire/modules.dep #lib/modules/KVER-ipfire/modules.dep.bin @@ -1902,3 +2487,4 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/modules.usbmap #lib/modules/KVER-ipfire/source sbin/gen_init_cpio +boot/ipfirerd-KVER.img diff --git a/config/rootfiles/common/i586/linux-headers b/config/rootfiles/common/i586/linux-headers new file mode 100644 index 0000000..e518ab3 --- /dev/null +++ b/config/rootfiles/common/i586/linux-headers @@ -0,0 +1,704 @@ +#usr/include/asm +#usr/include/asm-generic +#usr/include/asm-generic/auxvec.h +#usr/include/asm-generic/bitsperlong.h +#usr/include/asm-generic/errno-base.h +#usr/include/asm-generic/errno.h +#usr/include/asm-generic/fcntl.h +#usr/include/asm-generic/int-l64.h +#usr/include/asm-generic/int-ll64.h +#usr/include/asm-generic/ioctl.h +#usr/include/asm-generic/ioctls.h +#usr/include/asm-generic/ipcbuf.h +#usr/include/asm-generic/mman-common.h +#usr/include/asm-generic/mman.h +#usr/include/asm-generic/msgbuf.h +#usr/include/asm-generic/param.h +#usr/include/asm-generic/poll.h +#usr/include/asm-generic/posix_types.h +#usr/include/asm-generic/resource.h +#usr/include/asm-generic/sembuf.h +#usr/include/asm-generic/setup.h +#usr/include/asm-generic/shmbuf.h +#usr/include/asm-generic/shmparam.h +#usr/include/asm-generic/siginfo.h +#usr/include/asm-generic/signal-defs.h +#usr/include/asm-generic/signal.h +#usr/include/asm-generic/socket.h +#usr/include/asm-generic/sockios.h +#usr/include/asm-generic/stat.h +#usr/include/asm-generic/statfs.h +#usr/include/asm-generic/swab.h +#usr/include/asm-generic/termbits.h +#usr/include/asm-generic/termios.h +#usr/include/asm-generic/types.h +#usr/include/asm-generic/ucontext.h +#usr/include/asm-generic/unistd.h +#usr/include/asm/a.out.h +#usr/include/asm/auxvec.h +#usr/include/asm/bitsperlong.h +#usr/include/asm/boot.h +#usr/include/asm/bootparam.h +#usr/include/asm/byteorder.h +#usr/include/asm/debugreg.h +#usr/include/asm/e820.h +#usr/include/asm/errno.h +#usr/include/asm/fcntl.h +#usr/include/asm/hw_breakpoint.h +#usr/include/asm/hyperv.h +#usr/include/asm/ioctl.h +#usr/include/asm/ioctls.h +#usr/include/asm/ipcbuf.h +#usr/include/asm/ist.h +#usr/include/asm/kvm.h +#usr/include/asm/kvm_para.h +#usr/include/asm/ldt.h +#usr/include/asm/mce.h +#usr/include/asm/mman.h +#usr/include/asm/msgbuf.h +#usr/include/asm/msr-index.h +#usr/include/asm/msr.h +#usr/include/asm/mtrr.h +#usr/include/asm/param.h +#usr/include/asm/poll.h +#usr/include/asm/posix_types.h +#usr/include/asm/posix_types_32.h +#usr/include/asm/posix_types_64.h +#usr/include/asm/prctl.h +#usr/include/asm/processor-flags.h +#usr/include/asm/ptrace-abi.h +#usr/include/asm/ptrace.h +#usr/include/asm/resource.h +#usr/include/asm/sembuf.h +#usr/include/asm/setup.h +#usr/include/asm/shmbuf.h +#usr/include/asm/sigcontext.h +#usr/include/asm/sigcontext32.h +#usr/include/asm/siginfo.h +#usr/include/asm/signal.h +#usr/include/asm/socket.h +#usr/include/asm/sockios.h +#usr/include/asm/stat.h +#usr/include/asm/statfs.h +#usr/include/asm/swab.h +#usr/include/asm/termbits.h +#usr/include/asm/termios.h +#usr/include/asm/types.h +#usr/include/asm/ucontext.h +#usr/include/asm/unistd.h +#usr/include/asm/unistd_32.h +#usr/include/asm/unistd_64.h +#usr/include/asm/vm86.h +#usr/include/asm/vsyscall.h +#usr/include/drm +#usr/include/drm/drm.h +#usr/include/drm/drm_mode.h +#usr/include/drm/drm_sarea.h +#usr/include/drm/i810_drm.h +#usr/include/drm/i915_drm.h +#usr/include/drm/mga_drm.h +#usr/include/drm/nouveau_drm.h +#usr/include/drm/r128_drm.h +#usr/include/drm/radeon_drm.h +#usr/include/drm/savage_drm.h +#usr/include/drm/sis_drm.h +#usr/include/drm/via_drm.h +#usr/include/drm/vmwgfx_drm.h +#usr/include/linux +#usr/include/linux/a.out.h +#usr/include/linux/acct.h +#usr/include/linux/adb.h +#usr/include/linux/adfs_fs.h +#usr/include/linux/affs_hardblocks.h +#usr/include/linux/agpgart.h +#usr/include/linux/aio_abi.h +#usr/include/linux/apm_bios.h +#usr/include/linux/arcfb.h +#usr/include/linux/atalk.h +#usr/include/linux/atm.h +#usr/include/linux/atm_eni.h +#usr/include/linux/atm_he.h +#usr/include/linux/atm_idt77105.h +#usr/include/linux/atm_nicstar.h +#usr/include/linux/atm_tcp.h +#usr/include/linux/atm_zatm.h +#usr/include/linux/atmapi.h +#usr/include/linux/atmarp.h +#usr/include/linux/atmbr2684.h +#usr/include/linux/atmclip.h +#usr/include/linux/atmdev.h +#usr/include/linux/atmioc.h +#usr/include/linux/atmlec.h +#usr/include/linux/atmmpc.h +#usr/include/linux/atmppp.h +#usr/include/linux/atmsap.h +#usr/include/linux/atmsvc.h +#usr/include/linux/audit.h +#usr/include/linux/auto_fs.h +#usr/include/linux/auto_fs4.h +#usr/include/linux/auxvec.h +#usr/include/linux/ax25.h +#usr/include/linux/b1lli.h +#usr/include/linux/baycom.h +#usr/include/linux/bfs_fs.h +#usr/include/linux/binfmts.h +#usr/include/linux/blk_types.h +#usr/include/linux/blkpg.h +#usr/include/linux/blktrace_api.h +#usr/include/linux/bpqether.h +#usr/include/linux/bsg.h +#usr/include/linux/byteorder +#usr/include/linux/byteorder/big_endian.h +#usr/include/linux/byteorder/little_endian.h +#usr/include/linux/caif +#usr/include/linux/caif/caif_socket.h +#usr/include/linux/caif/if_caif.h +#usr/include/linux/can +#usr/include/linux/can.h +#usr/include/linux/can/bcm.h +#usr/include/linux/can/error.h +#usr/include/linux/can/gw.h +#usr/include/linux/can/netlink.h +#usr/include/linux/can/raw.h +#usr/include/linux/capability.h +#usr/include/linux/capi.h +#usr/include/linux/cciss_defs.h +#usr/include/linux/cciss_ioctl.h +#usr/include/linux/cdk.h +#usr/include/linux/cdrom.h +#usr/include/linux/cgroupstats.h +#usr/include/linux/chio.h +#usr/include/linux/cm4000_cs.h +#usr/include/linux/cn_proc.h +#usr/include/linux/coda.h +#usr/include/linux/coda_psdev.h +#usr/include/linux/coff.h +#usr/include/linux/comstats.h +#usr/include/linux/connector.h +#usr/include/linux/const.h +#usr/include/linux/cramfs_fs.h +#usr/include/linux/cuda.h +#usr/include/linux/cyclades.h +#usr/include/linux/cycx_cfm.h +#usr/include/linux/dcbnl.h +#usr/include/linux/dccp.h +#usr/include/linux/dlm.h +#usr/include/linux/dlm_device.h +#usr/include/linux/dlm_netlink.h +#usr/include/linux/dlm_plock.h +#usr/include/linux/dlmconstants.h +#usr/include/linux/dm-ioctl.h +#usr/include/linux/dm-log-userspace.h +#usr/include/linux/dn.h +#usr/include/linux/dqblk_xfs.h +#usr/include/linux/dvb +#usr/include/linux/dvb/audio.h +#usr/include/linux/dvb/ca.h +#usr/include/linux/dvb/dmx.h +#usr/include/linux/dvb/frontend.h +#usr/include/linux/dvb/net.h +#usr/include/linux/dvb/osd.h +#usr/include/linux/dvb/version.h +#usr/include/linux/dvb/video.h +#usr/include/linux/edd.h +#usr/include/linux/efs_fs_sb.h +#usr/include/linux/elf-em.h +#usr/include/linux/elf-fdpic.h +#usr/include/linux/elf.h +#usr/include/linux/elfcore.h +#usr/include/linux/errno.h +#usr/include/linux/errqueue.h +#usr/include/linux/ethtool.h +#usr/include/linux/eventpoll.h +#usr/include/linux/ext2_fs.h +#usr/include/linux/fadvise.h +#usr/include/linux/falloc.h +#usr/include/linux/fanotify.h +#usr/include/linux/fb.h +#usr/include/linux/fcntl.h +#usr/include/linux/fd.h +#usr/include/linux/fdreg.h +#usr/include/linux/fib_rules.h +#usr/include/linux/fiemap.h +#usr/include/linux/filter.h +#usr/include/linux/firewire-cdev.h +#usr/include/linux/firewire-constants.h +#usr/include/linux/flat.h +#usr/include/linux/fs.h +#usr/include/linux/fsl_hypervisor.h +#usr/include/linux/fuse.h +#usr/include/linux/futex.h +#usr/include/linux/gameport.h +#usr/include/linux/gen_stats.h +#usr/include/linux/generic_serial.h +#usr/include/linux/genetlink.h +#usr/include/linux/gfs2_ondisk.h +#usr/include/linux/gigaset_dev.h +#usr/include/linux/hdlc +#usr/include/linux/hdlc.h +#usr/include/linux/hdlc/ioctl.h +#usr/include/linux/hdlcdrv.h +#usr/include/linux/hdreg.h +#usr/include/linux/hid.h +#usr/include/linux/hiddev.h +#usr/include/linux/hidraw.h +#usr/include/linux/hpet.h +#usr/include/linux/hysdn_if.h +#usr/include/linux/i2c-dev.h +#usr/include/linux/i2c.h +#usr/include/linux/i2o-dev.h +#usr/include/linux/i8k.h +#usr/include/linux/icmp.h +#usr/include/linux/icmpv6.h +#usr/include/linux/if.h +#usr/include/linux/if_addr.h +#usr/include/linux/if_addrlabel.h +#usr/include/linux/if_alg.h +#usr/include/linux/if_arcnet.h +#usr/include/linux/if_arp.h +#usr/include/linux/if_bonding.h +#usr/include/linux/if_bridge.h +#usr/include/linux/if_cablemodem.h +#usr/include/linux/if_ec.h +#usr/include/linux/if_eql.h +#usr/include/linux/if_ether.h +#usr/include/linux/if_fc.h +#usr/include/linux/if_fddi.h +#usr/include/linux/if_frad.h +#usr/include/linux/if_hippi.h +#usr/include/linux/if_infiniband.h +#usr/include/linux/if_link.h +#usr/include/linux/if_ltalk.h +#usr/include/linux/if_packet.h +#usr/include/linux/if_phonet.h +#usr/include/linux/if_plip.h +#usr/include/linux/if_ppp.h +#usr/include/linux/if_pppol2tp.h +#usr/include/linux/if_pppox.h +#usr/include/linux/if_slip.h +#usr/include/linux/if_strip.h +#usr/include/linux/if_tr.h +#usr/include/linux/if_tun.h +#usr/include/linux/if_tunnel.h +#usr/include/linux/if_vlan.h +#usr/include/linux/if_x25.h +#usr/include/linux/igmp.h +#usr/include/linux/in.h +#usr/include/linux/in6.h +#usr/include/linux/in_route.h +#usr/include/linux/inet_diag.h +#usr/include/linux/inotify.h +#usr/include/linux/input.h +#usr/include/linux/ioctl.h +#usr/include/linux/ip.h +#usr/include/linux/ip6_tunnel.h +#usr/include/linux/ip_vs.h +#usr/include/linux/ipc.h +#usr/include/linux/ipmi.h +#usr/include/linux/ipmi_msgdefs.h +#usr/include/linux/ipsec.h +#usr/include/linux/ipv6.h +#usr/include/linux/ipv6_route.h +#usr/include/linux/ipx.h +#usr/include/linux/irda.h +#usr/include/linux/irqnr.h +#usr/include/linux/isdn +#usr/include/linux/isdn.h +#usr/include/linux/isdn/capicmd.h +#usr/include/linux/isdn_divertif.h +#usr/include/linux/isdn_ppp.h +#usr/include/linux/isdnif.h +#usr/include/linux/iso_fs.h +#usr/include/linux/ivtv.h +#usr/include/linux/ivtvfb.h +#usr/include/linux/ixjuser.h +#usr/include/linux/jffs2.h +#usr/include/linux/joystick.h +#usr/include/linux/kd.h +#usr/include/linux/kdev_t.h +#usr/include/linux/kernel-page-flags.h +#usr/include/linux/kernel.h +#usr/include/linux/kernelcapi.h +#usr/include/linux/keyboard.h +#usr/include/linux/keyctl.h +#usr/include/linux/kvm.h +#usr/include/linux/kvm_para.h +#usr/include/linux/l2tp.h +#usr/include/linux/limits.h +#usr/include/linux/llc.h +#usr/include/linux/loop.h +#usr/include/linux/lp.h +#usr/include/linux/magic.h +#usr/include/linux/major.h +#usr/include/linux/map_to_7segment.h +#usr/include/linux/matroxfb.h +#usr/include/linux/media.h +#usr/include/linux/mempolicy.h +#usr/include/linux/meye.h +#usr/include/linux/mii.h +#usr/include/linux/minix_fs.h +#usr/include/linux/mman.h +#usr/include/linux/mmc +#usr/include/linux/mmc/ioctl.h +#usr/include/linux/mmtimer.h +#usr/include/linux/mqueue.h +#usr/include/linux/mroute.h +#usr/include/linux/mroute6.h +#usr/include/linux/msdos_fs.h +#usr/include/linux/msg.h +#usr/include/linux/mtio.h +#usr/include/linux/n_r3964.h +#usr/include/linux/nbd.h +#usr/include/linux/ncp.h +#usr/include/linux/ncp_fs.h +#usr/include/linux/ncp_mount.h +#usr/include/linux/ncp_no.h +#usr/include/linux/neighbour.h +#usr/include/linux/net.h +#usr/include/linux/net_dropmon.h +#usr/include/linux/net_tstamp.h +#usr/include/linux/netdevice.h +#usr/include/linux/netfilter +#usr/include/linux/netfilter.h +#usr/include/linux/netfilter/ipset +#usr/include/linux/netfilter/ipset/ip_set.h +#usr/include/linux/netfilter/ipset/ip_set_bitmap.h +#usr/include/linux/netfilter/ipset/ip_set_hash.h +#usr/include/linux/netfilter/ipset/ip_set_list.h +#usr/include/linux/netfilter/nf_conntrack_common.h +#usr/include/linux/netfilter/nf_conntrack_ftp.h +#usr/include/linux/netfilter/nf_conntrack_sctp.h +#usr/include/linux/netfilter/nf_conntrack_tcp.h +#usr/include/linux/netfilter/nf_conntrack_tuple_common.h +#usr/include/linux/netfilter/nfnetlink.h +#usr/include/linux/netfilter/nfnetlink_compat.h +#usr/include/linux/netfilter/nfnetlink_conntrack.h +#usr/include/linux/netfilter/nfnetlink_log.h +#usr/include/linux/netfilter/nfnetlink_queue.h +#usr/include/linux/netfilter/x_tables.h +#usr/include/linux/netfilter/xt_AUDIT.h +#usr/include/linux/netfilter/xt_CHECKSUM.h +#usr/include/linux/netfilter/xt_CLASSIFY.h +#usr/include/linux/netfilter/xt_CONNMARK.h +#usr/include/linux/netfilter/xt_CONNSECMARK.h +#usr/include/linux/netfilter/xt_CT.h +#usr/include/linux/netfilter/xt_DSCP.h +#usr/include/linux/netfilter/xt_IDLETIMER.h +#usr/include/linux/netfilter/xt_LED.h +#usr/include/linux/netfilter/xt_MARK.h +#usr/include/linux/netfilter/xt_NFLOG.h +#usr/include/linux/netfilter/xt_NFQUEUE.h +#usr/include/linux/netfilter/xt_RATEEST.h +#usr/include/linux/netfilter/xt_SECMARK.h +#usr/include/linux/netfilter/xt_TCPMSS.h +#usr/include/linux/netfilter/xt_TCPOPTSTRIP.h +#usr/include/linux/netfilter/xt_TEE.h +#usr/include/linux/netfilter/xt_TPROXY.h +#usr/include/linux/netfilter/xt_addrtype.h +#usr/include/linux/netfilter/xt_cluster.h +#usr/include/linux/netfilter/xt_comment.h +#usr/include/linux/netfilter/xt_connbytes.h +#usr/include/linux/netfilter/xt_connlimit.h +#usr/include/linux/netfilter/xt_connmark.h +#usr/include/linux/netfilter/xt_conntrack.h +#usr/include/linux/netfilter/xt_cpu.h +#usr/include/linux/netfilter/xt_dccp.h +#usr/include/linux/netfilter/xt_devgroup.h +#usr/include/linux/netfilter/xt_dscp.h +#usr/include/linux/netfilter/xt_esp.h +#usr/include/linux/netfilter/xt_hashlimit.h +#usr/include/linux/netfilter/xt_helper.h +#usr/include/linux/netfilter/xt_iprange.h +#usr/include/linux/netfilter/xt_ipvs.h +#usr/include/linux/netfilter/xt_length.h +#usr/include/linux/netfilter/xt_limit.h +#usr/include/linux/netfilter/xt_mac.h +#usr/include/linux/netfilter/xt_mark.h +#usr/include/linux/netfilter/xt_multiport.h +#usr/include/linux/netfilter/xt_osf.h +#usr/include/linux/netfilter/xt_owner.h +#usr/include/linux/netfilter/xt_physdev.h +#usr/include/linux/netfilter/xt_pkttype.h +#usr/include/linux/netfilter/xt_policy.h +#usr/include/linux/netfilter/xt_quota.h +#usr/include/linux/netfilter/xt_rateest.h +#usr/include/linux/netfilter/xt_realm.h +#usr/include/linux/netfilter/xt_recent.h +#usr/include/linux/netfilter/xt_sctp.h +#usr/include/linux/netfilter/xt_set.h +#usr/include/linux/netfilter/xt_socket.h +#usr/include/linux/netfilter/xt_state.h +#usr/include/linux/netfilter/xt_statistic.h +#usr/include/linux/netfilter/xt_string.h +#usr/include/linux/netfilter/xt_tcpmss.h +#usr/include/linux/netfilter/xt_tcpudp.h +#usr/include/linux/netfilter/xt_time.h +#usr/include/linux/netfilter/xt_u32.h +#usr/include/linux/netfilter_arp +#usr/include/linux/netfilter_arp.h +#usr/include/linux/netfilter_arp/arp_tables.h +#usr/include/linux/netfilter_arp/arpt_mangle.h +#usr/include/linux/netfilter_bridge +#usr/include/linux/netfilter_bridge.h +#usr/include/linux/netfilter_bridge/ebt_802_3.h +#usr/include/linux/netfilter_bridge/ebt_among.h +#usr/include/linux/netfilter_bridge/ebt_arp.h +#usr/include/linux/netfilter_bridge/ebt_arpreply.h +#usr/include/linux/netfilter_bridge/ebt_ip.h +#usr/include/linux/netfilter_bridge/ebt_ip6.h +#usr/include/linux/netfilter_bridge/ebt_limit.h +#usr/include/linux/netfilter_bridge/ebt_log.h +#usr/include/linux/netfilter_bridge/ebt_mark_m.h +#usr/include/linux/netfilter_bridge/ebt_mark_t.h +#usr/include/linux/netfilter_bridge/ebt_nat.h +#usr/include/linux/netfilter_bridge/ebt_nflog.h +#usr/include/linux/netfilter_bridge/ebt_pkttype.h +#usr/include/linux/netfilter_bridge/ebt_redirect.h +#usr/include/linux/netfilter_bridge/ebt_stp.h +#usr/include/linux/netfilter_bridge/ebt_ulog.h +#usr/include/linux/netfilter_bridge/ebt_vlan.h +#usr/include/linux/netfilter_bridge/ebtables.h +#usr/include/linux/netfilter_decnet.h +#usr/include/linux/netfilter_ipv4 +#usr/include/linux/netfilter_ipv4.h +#usr/include/linux/netfilter_ipv4/ip_queue.h +#usr/include/linux/netfilter_ipv4/ip_tables.h +#usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h +#usr/include/linux/netfilter_ipv4/ipt_ECN.h +#usr/include/linux/netfilter_ipv4/ipt_LOG.h +#usr/include/linux/netfilter_ipv4/ipt_REJECT.h +#usr/include/linux/netfilter_ipv4/ipt_SAME.h +#usr/include/linux/netfilter_ipv4/ipt_TTL.h +#usr/include/linux/netfilter_ipv4/ipt_ULOG.h +#usr/include/linux/netfilter_ipv4/ipt_addrtype.h +#usr/include/linux/netfilter_ipv4/ipt_ah.h +#usr/include/linux/netfilter_ipv4/ipt_ecn.h +#usr/include/linux/netfilter_ipv4/ipt_realm.h +#usr/include/linux/netfilter_ipv4/ipt_ttl.h +#usr/include/linux/netfilter_ipv4/nf_nat.h +#usr/include/linux/netfilter_ipv6 +#usr/include/linux/netfilter_ipv6.h +#usr/include/linux/netfilter_ipv6/ip6_tables.h +#usr/include/linux/netfilter_ipv6/ip6t_HL.h +#usr/include/linux/netfilter_ipv6/ip6t_LOG.h +#usr/include/linux/netfilter_ipv6/ip6t_REJECT.h +#usr/include/linux/netfilter_ipv6/ip6t_ah.h +#usr/include/linux/netfilter_ipv6/ip6t_frag.h +#usr/include/linux/netfilter_ipv6/ip6t_hl.h +#usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h +#usr/include/linux/netfilter_ipv6/ip6t_mh.h +#usr/include/linux/netfilter_ipv6/ip6t_opts.h +#usr/include/linux/netfilter_ipv6/ip6t_rt.h +#usr/include/linux/netlink.h +#usr/include/linux/netrom.h +#usr/include/linux/nfc.h +#usr/include/linux/nfs.h +#usr/include/linux/nfs2.h +#usr/include/linux/nfs3.h +#usr/include/linux/nfs4.h +#usr/include/linux/nfs4_mount.h +#usr/include/linux/nfs_fs.h +#usr/include/linux/nfs_idmap.h +#usr/include/linux/nfs_mount.h +#usr/include/linux/nfsacl.h +#usr/include/linux/nfsd +#usr/include/linux/nfsd/debug.h +#usr/include/linux/nfsd/export.h +#usr/include/linux/nfsd/nfsfh.h +#usr/include/linux/nfsd/stats.h +#usr/include/linux/nl80211.h +#usr/include/linux/nubus.h +#usr/include/linux/nvram.h +#usr/include/linux/omap3isp.h +#usr/include/linux/omapfb.h +#usr/include/linux/oom.h +#usr/include/linux/param.h +#usr/include/linux/parport.h +#usr/include/linux/patchkey.h +#usr/include/linux/pci.h +#usr/include/linux/pci_regs.h +#usr/include/linux/perf_event.h +#usr/include/linux/personality.h +#usr/include/linux/pfkeyv2.h +#usr/include/linux/pg.h +#usr/include/linux/phantom.h +#usr/include/linux/phonet.h +#usr/include/linux/pkt_cls.h +#usr/include/linux/pkt_sched.h +#usr/include/linux/pktcdvd.h +#usr/include/linux/pmu.h +#usr/include/linux/poll.h +#usr/include/linux/posix_types.h +#usr/include/linux/ppdev.h +#usr/include/linux/ppp-comp.h +#usr/include/linux/ppp_defs.h +#usr/include/linux/pps.h +#usr/include/linux/prctl.h +#usr/include/linux/ptp_clock.h +#usr/include/linux/ptrace.h +#usr/include/linux/qnx4_fs.h +#usr/include/linux/qnxtypes.h +#usr/include/linux/quota.h +#usr/include/linux/radeonfb.h +#usr/include/linux/raid +#usr/include/linux/raid/md_p.h +#usr/include/linux/raid/md_u.h +#usr/include/linux/random.h +#usr/include/linux/raw.h +#usr/include/linux/rds.h +#usr/include/linux/reboot.h +#usr/include/linux/reiserfs_fs.h +#usr/include/linux/reiserfs_xattr.h +#usr/include/linux/resource.h +#usr/include/linux/rfkill.h +#usr/include/linux/romfs_fs.h +#usr/include/linux/rose.h +#usr/include/linux/route.h +#usr/include/linux/rtc.h +#usr/include/linux/rtnetlink.h +#usr/include/linux/scc.h +#usr/include/linux/sched.h +#usr/include/linux/screen_info.h +#usr/include/linux/sdla.h +#usr/include/linux/securebits.h +#usr/include/linux/selinux_netlink.h +#usr/include/linux/sem.h +#usr/include/linux/serial.h +#usr/include/linux/serial_core.h +#usr/include/linux/serial_reg.h +#usr/include/linux/serio.h +#usr/include/linux/shm.h +#usr/include/linux/signal.h +#usr/include/linux/signalfd.h +#usr/include/linux/snmp.h +#usr/include/linux/socket.h +#usr/include/linux/sockios.h +#usr/include/linux/som.h +#usr/include/linux/sonet.h +#usr/include/linux/sonypi.h +#usr/include/linux/sound.h +#usr/include/linux/soundcard.h +#usr/include/linux/spi +#usr/include/linux/spi/spidev.h +#usr/include/linux/stat.h +#usr/include/linux/stddef.h +#usr/include/linux/string.h +#usr/include/linux/sunrpc +#usr/include/linux/sunrpc/debug.h +#usr/include/linux/suspend_ioctls.h +#usr/include/linux/swab.h +#usr/include/linux/synclink.h +#usr/include/linux/sysctl.h +#usr/include/linux/taskstats.h +#usr/include/linux/tc_act +#usr/include/linux/tc_act/tc_csum.h +#usr/include/linux/tc_act/tc_gact.h +#usr/include/linux/tc_act/tc_ipt.h +#usr/include/linux/tc_act/tc_mirred.h +#usr/include/linux/tc_act/tc_nat.h +#usr/include/linux/tc_act/tc_pedit.h +#usr/include/linux/tc_act/tc_skbedit.h +#usr/include/linux/tc_ematch +#usr/include/linux/tc_ematch/tc_em_cmp.h +#usr/include/linux/tc_ematch/tc_em_meta.h +#usr/include/linux/tc_ematch/tc_em_nbyte.h +#usr/include/linux/tc_ematch/tc_em_text.h +#usr/include/linux/tcp.h +#usr/include/linux/telephony.h +#usr/include/linux/termios.h +#usr/include/linux/time.h +#usr/include/linux/times.h +#usr/include/linux/timex.h +#usr/include/linux/tiocl.h +#usr/include/linux/tipc.h +#usr/include/linux/tipc_config.h +#usr/include/linux/toshiba.h +#usr/include/linux/tty.h +#usr/include/linux/types.h +#usr/include/linux/udf_fs_i.h +#usr/include/linux/udp.h +#usr/include/linux/uinput.h +#usr/include/linux/uio.h +#usr/include/linux/ultrasound.h +#usr/include/linux/un.h +#usr/include/linux/unistd.h +#usr/include/linux/usb +#usr/include/linux/usb/audio.h +#usr/include/linux/usb/cdc.h +#usr/include/linux/usb/ch11.h +#usr/include/linux/usb/ch9.h +#usr/include/linux/usb/functionfs.h +#usr/include/linux/usb/g_printer.h +#usr/include/linux/usb/gadgetfs.h +#usr/include/linux/usb/midi.h +#usr/include/linux/usb/tmc.h +#usr/include/linux/usb/video.h +#usr/include/linux/usbdevice_fs.h +#usr/include/linux/utime.h +#usr/include/linux/utsname.h +#usr/include/linux/uvcvideo.h +#usr/include/linux/v4l2-mediabus.h +#usr/include/linux/v4l2-subdev.h +#usr/include/linux/version.h +#usr/include/linux/veth.h +#usr/include/linux/vhost.h +#usr/include/linux/videodev2.h +#usr/include/linux/virtio_9p.h +#usr/include/linux/virtio_balloon.h +#usr/include/linux/virtio_blk.h +#usr/include/linux/virtio_config.h +#usr/include/linux/virtio_console.h +#usr/include/linux/virtio_ids.h +#usr/include/linux/virtio_net.h +#usr/include/linux/virtio_pci.h +#usr/include/linux/virtio_ring.h +#usr/include/linux/virtio_rng.h +#usr/include/linux/vt.h +#usr/include/linux/wait.h +#usr/include/linux/wanrouter.h +#usr/include/linux/watchdog.h +#usr/include/linux/wimax +#usr/include/linux/wimax.h +#usr/include/linux/wimax/i2400m.h +#usr/include/linux/wireless.h +#usr/include/linux/x25.h +#usr/include/linux/xattr.h +#usr/include/linux/xfrm.h +#usr/include/mtd +#usr/include/mtd/inftl-user.h +#usr/include/mtd/mtd-abi.h +#usr/include/mtd/mtd-user.h +#usr/include/mtd/nftl-user.h +#usr/include/mtd/ubi-user.h +#usr/include/rdma +#usr/include/rdma/ib_user_cm.h +#usr/include/rdma/ib_user_mad.h +#usr/include/rdma/ib_user_sa.h +#usr/include/rdma/ib_user_verbs.h +#usr/include/rdma/rdma_netlink.h +#usr/include/rdma/rdma_user_cm.h +#usr/include/scsi +#usr/include/scsi/fc +#usr/include/scsi/fc/fc_els.h +#usr/include/scsi/fc/fc_fs.h +#usr/include/scsi/fc/fc_gs.h +#usr/include/scsi/fc/fc_ns.h +#usr/include/scsi/scsi_bsg_fc.h +#usr/include/scsi/scsi_netlink.h +#usr/include/scsi/scsi_netlink_fc.h +#usr/include/sound +#usr/include/sound/asequencer.h +#usr/include/sound/asound.h +#usr/include/sound/asound_fm.h +#usr/include/sound/emu10k1.h +#usr/include/sound/hdsp.h +#usr/include/sound/hdspm.h +#usr/include/sound/sb16_csp.h +#usr/include/sound/sfnt_info.h +#usr/include/video +#usr/include/video/edid.h +#usr/include/video/sisfb.h +#usr/include/video/uvesafb.h +#usr/include/xen +#usr/include/xen/evtchn.h +#usr/include/xen/privcmd.h diff --git a/config/rootfiles/common/i586/madwifi b/config/rootfiles/common/i586/madwifi deleted file mode 100644 index e328252..0000000 --- a/config/rootfiles/common/i586/madwifi +++ /dev/null @@ -1,22 +0,0 @@ -#etc/madwifi.conf -etc/modprobe.d/madwifi -usr/bin/80211debug -usr/bin/80211stats -usr/bin/ath_info -usr/bin/athchans -usr/bin/athctrl -usr/bin/athdebug -usr/bin/athkey -usr/bin/athstats -usr/bin/madwifi-unload -usr/bin/wlanconfig -usr/bin/wpakey -#usr/man/man8 -#usr/man/man8/80211debug.8 -#usr/man/man8/80211stats.8 -#usr/man/man8/athchans.8 -#usr/man/man8/athctrl.8 -#usr/man/man8/athdebug.8 -#usr/man/man8/athkey.8 -#usr/man/man8/athstats.8 -#usr/man/man8/wlanconfig.8 diff --git a/config/rootfiles/common/i586/strongswan-padlock b/config/rootfiles/common/i586/strongswan-padlock new file mode 100644 index 0000000..02aa457 --- /dev/null +++ b/config/rootfiles/common/i586/strongswan-padlock @@ -0,0 +1 @@ +usr/lib/ipsec/plugins/libstrongswan-padlock.so diff --git a/config/rootfiles/common/i586/syslinux b/config/rootfiles/common/i586/syslinux index a4a8254..0c43b88 100644 --- a/config/rootfiles/common/i586/syslinux +++ b/config/rootfiles/common/i586/syslinux @@ -36,12 +36,14 @@ #usr/share/syslinux/com32/include/bitsize/stdint.h #usr/share/syslinux/com32/include/bitsize/stdintconst.h #usr/share/syslinux/com32/include/bitsize/stdintlimits.h +#usr/share/syslinux/com32/include/bufprintf.h #usr/share/syslinux/com32/include/colortbl.h #usr/share/syslinux/com32/include/com32.h #usr/share/syslinux/com32/include/console.h #usr/share/syslinux/com32/include/cpufeature.h #usr/share/syslinux/com32/include/ctype.h #usr/share/syslinux/com32/include/dev.h +#usr/share/syslinux/com32/include/dhcp.h #usr/share/syslinux/com32/include/dirent.h #usr/share/syslinux/com32/include/dprintf.h #usr/share/syslinux/com32/include/elf.h @@ -51,6 +53,24 @@ #usr/share/syslinux/com32/include/getopt.h #usr/share/syslinux/com32/include/gplinclude #usr/share/syslinux/com32/include/gplinclude/README +#usr/share/syslinux/com32/include/gplinclude/acpi +#usr/share/syslinux/com32/include/gplinclude/acpi/acpi.h +#usr/share/syslinux/com32/include/gplinclude/acpi/boot.h +#usr/share/syslinux/com32/include/gplinclude/acpi/dsdt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/ecdt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/facs.h +#usr/share/syslinux/com32/include/gplinclude/acpi/fadt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/hpet.h +#usr/share/syslinux/com32/include/gplinclude/acpi/madt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/mcfg.h +#usr/share/syslinux/com32/include/gplinclude/acpi/rsdp.h +#usr/share/syslinux/com32/include/gplinclude/acpi/rsdt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/sbst.h +#usr/share/syslinux/com32/include/gplinclude/acpi/slic.h +#usr/share/syslinux/com32/include/gplinclude/acpi/ssdt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/structs.h +#usr/share/syslinux/com32/include/gplinclude/acpi/tcpa.h +#usr/share/syslinux/com32/include/gplinclude/acpi/xsdt.h #usr/share/syslinux/com32/include/gplinclude/cpuid.h #usr/share/syslinux/com32/include/gplinclude/disk #usr/share/syslinux/com32/include/gplinclude/disk/bootloaders.h @@ -79,6 +99,8 @@ #usr/share/syslinux/com32/include/gplinclude/memory.h #usr/share/syslinux/com32/include/gplinclude/vpd #usr/share/syslinux/com32/include/gplinclude/vpd/vpd.h +#usr/share/syslinux/com32/include/gplinclude/zzjson +#usr/share/syslinux/com32/include/gplinclude/zzjson/zzjson.h #usr/share/syslinux/com32/include/ilog2.h #usr/share/syslinux/com32/include/inttypes.h #usr/share/syslinux/com32/include/klibc @@ -104,7 +126,9 @@ #usr/share/syslinux/com32/include/stdio.h #usr/share/syslinux/com32/include/stdlib.h #usr/share/syslinux/com32/include/string.h +#usr/share/syslinux/com32/include/suffix_number.h #usr/share/syslinux/com32/include/sys +#usr/share/syslinux/com32/include/sys/bitops.h #usr/share/syslinux/com32/include/sys/cpu.h #usr/share/syslinux/com32/include/sys/dirent.h #usr/share/syslinux/com32/include/sys/elf32.h @@ -126,6 +150,7 @@ #usr/share/syslinux/com32/include/syslinux/bootpm.h #usr/share/syslinux/com32/include/syslinux/bootrm.h #usr/share/syslinux/com32/include/syslinux/config.h +#usr/share/syslinux/com32/include/syslinux/disk.h #usr/share/syslinux/com32/include/syslinux/features.h #usr/share/syslinux/com32/include/syslinux/idle.h #usr/share/syslinux/com32/include/syslinux/io.h @@ -149,11 +174,16 @@ #usr/share/syslinux/com32/include/zlib.h #usr/share/syslinux/com32/libcom32.a #usr/share/syslinux/com32/libcom32gpl.a +#usr/share/syslinux/com32/libcom32upload.a #usr/share/syslinux/com32/libutil_com.a #usr/share/syslinux/com32/libutil_lnx.a #usr/share/syslinux/config.c32 #usr/share/syslinux/cpuid.c32 #usr/share/syslinux/cpuidtest.c32 +#usr/share/syslinux/diag +#usr/share/syslinux/diag/geodsp1s.img.xz +#usr/share/syslinux/diag/geodspms.img.xz +#usr/share/syslinux/diag/handoff.bin #usr/share/syslinux/disk.c32 #usr/share/syslinux/dmitest.c32 #usr/share/syslinux/dosutil @@ -168,10 +198,12 @@ #usr/share/syslinux/gptmbr_f.bin #usr/share/syslinux/gpxecmd.c32 #usr/share/syslinux/gpxelinux.0 +#usr/share/syslinux/gpxelinuxk.0 #usr/share/syslinux/hdt.c32 #usr/share/syslinux/host.c32 #usr/share/syslinux/ifcpu.c32 #usr/share/syslinux/ifcpu64.c32 +#usr/share/syslinux/ifmemdsk.c32 #usr/share/syslinux/ifplop.c32 #usr/share/syslinux/int18.com #usr/share/syslinux/isohdpfx.bin @@ -183,6 +215,7 @@ #usr/share/syslinux/isolinux-debug.bin #usr/share/syslinux/isolinux.bin #usr/share/syslinux/kbdmap.c32 +#usr/share/syslinux/kontron_wdt.c32 #usr/share/syslinux/linux.c32 #usr/share/syslinux/ls.c32 #usr/share/syslinux/lua.c32 @@ -197,8 +230,10 @@ #usr/share/syslinux/pcitest.c32 #usr/share/syslinux/pmload.c32 #usr/share/syslinux/poweroff.com +#usr/share/syslinux/prdhcp.c32 #usr/share/syslinux/pwd.c32 #usr/share/syslinux/pxechain.com +#usr/share/syslinux/pxechn.c32 #usr/share/syslinux/pxelinux.0 #usr/share/syslinux/reboot.c32 #usr/share/syslinux/rosh.c32 @@ -208,7 +243,9 @@ #usr/share/syslinux/syslinux.com #usr/share/syslinux/syslinux.exe #usr/share/syslinux/syslinux64.exe +#usr/share/syslinux/ver.com #usr/share/syslinux/vesainfo.c32 #usr/share/syslinux/vesamenu.c32 #usr/share/syslinux/vpdtest.c32 #usr/share/syslinux/whichsys.c32 +#usr/share/syslinux/zzjson.c32 diff --git a/config/rootfiles/common/iproute2 b/config/rootfiles/common/iproute2 index 8f179d7..bb4c05b 100644 --- a/config/rootfiles/common/iproute2 +++ b/config/rootfiles/common/iproute2 @@ -1,11 +1,14 @@ #etc/iproute2 etc/iproute2/ematch_map +etc/iproute2/group etc/iproute2/rt_dsfield etc/iproute2/rt_protos etc/iproute2/rt_realms etc/iproute2/rt_scopes etc/iproute2/rt_tables +sbin/bridge sbin/ctstat +sbin/genl sbin/ifcfg sbin/ifstat sbin/ip @@ -24,7 +27,6 @@ sbin/tc #usr/lib/tc/normal.dist #usr/lib/tc/pareto.dist #usr/lib/tc/paretonormal.dist -#usr/lib/tc/q_netem.so usr/sbin/arpd #usr/share/doc/iproute2 #usr/share/doc/iproute2/SNAPSHOT.tex @@ -50,6 +52,7 @@ usr/sbin/arpd #usr/share/doc/iproute2/examples/diffserv/ef-prio #usr/share/doc/iproute2/examples/diffserv/efcbq #usr/share/doc/iproute2/examples/diffserv/regression-testing +#usr/share/doc/iproute2/examples/gaiconf #usr/share/doc/iproute2/ip-cref.tex #usr/share/doc/iproute2/ip-tunnels.tex #usr/share/doc/iproute2/nstat.sgml @@ -57,16 +60,48 @@ usr/sbin/arpd #usr/share/doc/iproute2/rtstat.sgml #usr/share/doc/iproute2/ss.sgml #usr/share/man/man3/libnetlink.3 +#usr/share/man/man8/arpd.8 +#usr/share/man/man8/bridge.8 +#usr/share/man/man8/ctstat.8 +#usr/share/man/man8/ip-address.8 +#usr/share/man/man8/ip-addrlabel.8 +#usr/share/man/man8/ip-link.8 +#usr/share/man/man8/ip-maddress.8 +#usr/share/man/man8/ip-monitor.8 +#usr/share/man/man8/ip-mroute.8 +#usr/share/man/man8/ip-neighbour.8 +#usr/share/man/man8/ip-netns.8 +#usr/share/man/man8/ip-ntable.8 +#usr/share/man/man8/ip-route.8 +#usr/share/man/man8/ip-rule.8 +#usr/share/man/man8/ip-tunnel.8 +#usr/share/man/man8/ip-xfrm.8 #usr/share/man/man8/ip.8 +#usr/share/man/man8/lnstat.8 +#usr/share/man/man8/nstat.8 +#usr/share/man/man8/routef.8 +#usr/share/man/man8/routel.8 +#usr/share/man/man8/rtacct.8 +#usr/share/man/man8/rtmon.8 +#usr/share/man/man8/rtstat.8 +#usr/share/man/man8/ss.8 #usr/share/man/man8/tc-bfifo.8 #usr/share/man/man8/tc-cbq-details.8 #usr/share/man/man8/tc-cbq.8 +#usr/share/man/man8/tc-choke.8 +#usr/share/man/man8/tc-codel.8 +#usr/share/man/man8/tc-drr.8 +#usr/share/man/man8/tc-fq_codel.8 +#usr/share/man/man8/tc-hfsc.8 #usr/share/man/man8/tc-htb.8 -#usr/share/man/man8/tc-pbfifo.8 +#usr/share/man/man8/tc-netem.8 #usr/share/man/man8/tc-pfifo.8 #usr/share/man/man8/tc-pfifo_fast.8 #usr/share/man/man8/tc-prio.8 #usr/share/man/man8/tc-red.8 +#usr/share/man/man8/tc-sfb.8 #usr/share/man/man8/tc-sfq.8 +#usr/share/man/man8/tc-stab.8 #usr/share/man/man8/tc-tbf.8 #usr/share/man/man8/tc.8 +var/lib/arpd diff --git a/config/rootfiles/common/iptables b/config/rootfiles/common/iptables index 8e1a6e4..39225a4 100644 --- a/config/rootfiles/common/iptables +++ b/config/rootfiles/common/iptables @@ -1,23 +1,23 @@ #lib/libip4tc.la lib/libip4tc.so lib/libip4tc.so.0 -lib/libip4tc.so.0.0.0 +lib/libip4tc.so.0.1.0 #lib/libip6tc.la lib/libip6tc.so lib/libip6tc.so.0 -lib/libip6tc.so.0.0.0 -#lib/libipq.a +lib/libip6tc.so.0.1.0 +#lib/libipq.la +lib/libipq.so +lib/libipq.so.0 +lib/libipq.so.0.0.0 #lib/libiptc.la lib/libiptc.so lib/libiptc.so.0 lib/libiptc.so.0.0.0 #lib/libxtables.la lib/libxtables.so -lib/libxtables.so.4 -lib/libxtables.so.4.0.0 -#lib/pkgconfig -#lib/pkgconfig/libiptc.pc -#lib/pkgconfig/xtables.pc +lib/libxtables.so.7 +lib/libxtables.so.7.0.0 lib/xtables #lib/xtables/libip6t_HL.so #lib/xtables/libip6t_LOG.so @@ -42,52 +42,62 @@ lib/xtables #lib/xtables/libipt_REDIRECT.so #lib/xtables/libipt_REJECT.so #lib/xtables/libipt_SAME.so -#lib/xtables/libipt_SET.so #lib/xtables/libipt_SNAT.so #lib/xtables/libipt_TTL.so #lib/xtables/libipt_ULOG.so -#lib/xtables/libipt_addrtype.so #lib/xtables/libipt_ah.so -#lib/xtables/libipt_ecn.so #lib/xtables/libipt_icmp.so #lib/xtables/libipt_ipp2p.so #lib/xtables/libipt_realm.so -#lib/xtables/libipt_set.so #lib/xtables/libipt_ttl.so #lib/xtables/libipt_unclean.so +#lib/xtables/libxt_AUDIT.so +#lib/xtables/libxt_CHECKSUM.so #lib/xtables/libxt_CLASSIFY.so #lib/xtables/libxt_CONNMARK.so #lib/xtables/libxt_CONNSECMARK.so +#lib/xtables/libxt_CT.so #lib/xtables/libxt_DSCP.so +#lib/xtables/libxt_IDLETIMER.so #lib/xtables/libxt_IMQ.so +#lib/xtables/libxt_LED.so #lib/xtables/libxt_MARK.so #lib/xtables/libxt_NFLOG.so #lib/xtables/libxt_NFQUEUE.so #lib/xtables/libxt_NOTRACK.so #lib/xtables/libxt_RATEEST.so #lib/xtables/libxt_SECMARK.so +#lib/xtables/libxt_SET.so #lib/xtables/libxt_TCPMSS.so #lib/xtables/libxt_TCPOPTSTRIP.so +#lib/xtables/libxt_TEE.so #lib/xtables/libxt_TOS.so #lib/xtables/libxt_TPROXY.so #lib/xtables/libxt_TRACE.so +#lib/xtables/libxt_addrtype.so #lib/xtables/libxt_cluster.so #lib/xtables/libxt_comment.so #lib/xtables/libxt_connbytes.so #lib/xtables/libxt_connlimit.so #lib/xtables/libxt_connmark.so #lib/xtables/libxt_conntrack.so +#lib/xtables/libxt_cpu.so +#lib/xtables/libxt_dccp.so +#lib/xtables/libxt_devgroup.so #lib/xtables/libxt_dscp.so +#lib/xtables/libxt_ecn.so #lib/xtables/libxt_esp.so #lib/xtables/libxt_hashlimit.so #lib/xtables/libxt_helper.so #lib/xtables/libxt_iprange.so +#lib/xtables/libxt_ipvs.so #lib/xtables/libxt_layer7.so #lib/xtables/libxt_length.so #lib/xtables/libxt_limit.so #lib/xtables/libxt_mac.so #lib/xtables/libxt_mark.so #lib/xtables/libxt_multiport.so +#lib/xtables/libxt_nfacct.so #lib/xtables/libxt_osf.so #lib/xtables/libxt_owner.so #lib/xtables/libxt_physdev.so @@ -96,7 +106,9 @@ lib/xtables #lib/xtables/libxt_quota.so #lib/xtables/libxt_rateest.so #lib/xtables/libxt_recent.so +#lib/xtables/libxt_rpfilter.so #lib/xtables/libxt_sctp.so +#lib/xtables/libxt_set.so #lib/xtables/libxt_socket.so #lib/xtables/libxt_standard.so #lib/xtables/libxt_state.so @@ -108,18 +120,14 @@ lib/xtables #lib/xtables/libxt_tos.so #lib/xtables/libxt_u32.so #lib/xtables/libxt_udp.so -#sbin/ip6tables -#sbin/ip6tables-multi -#sbin/ip6tables-restore -#sbin/ip6tables-save +sbin/ip6tables +sbin/ip6tables-restore +sbin/ip6tables-save sbin/iptables -sbin/iptables-multi -#sbin/iptables-restore -#sbin/iptables-save -#sbin/iptables-xml -#usr/include/asm-generic -#usr/include/asm-generic/errno-base.h -#usr/include/asm-generic/errno.h +sbin/iptables-restore +sbin/iptables-save +sbin/iptables-xml +sbin/xtables-multi #usr/include/iptables #usr/include/iptables.h #usr/include/iptables/internal.h @@ -129,8 +137,21 @@ sbin/iptables-multi #usr/include/libiptc/libip6tc.h #usr/include/libiptc/libiptc.h #usr/include/libiptc/libxtc.h +#usr/include/libiptc/xtcshared.h #usr/include/libipulog #usr/include/libipulog/libipulog.h +#usr/include/libnetfilter_conntrack +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_dccp.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_icmp.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_ipv4.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_ipv6.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_sctp.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_tcp.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_udp.h +#usr/include/libnetfilter_conntrack/linux_nfnetlink_conntrack.h +#usr/include/libnetfilter_cttimeout +#usr/include/libnetfilter_cttimeout/libnetfilter_cttimeout.h #usr/include/libnetfilter_queue #usr/include/libnetfilter_queue/libipq.h #usr/include/libnetfilter_queue/libnetfilter_queue.h @@ -139,12 +160,14 @@ sbin/iptables-multi #usr/include/libnfnetlink/libnfnetlink.h #usr/include/libnfnetlink/linux_nfnetlink.h #usr/include/libnfnetlink/linux_nfnetlink_compat.h -#usr/include/linux/netfilter #usr/include/linux/netfilter/Kbuild +#usr/include/linux/netfilter/ipset/Kbuild +#usr/include/linux/netfilter/ipset/ip_set_ahash.h +#usr/include/linux/netfilter/ipset/ip_set_getport.h +#usr/include/linux/netfilter/ipset/ip_set_timeout.h +#usr/include/linux/netfilter/ipset/pfxlen.h #usr/include/linux/netfilter/nf_conntrack_amanda.h -#usr/include/linux/netfilter/nf_conntrack_common.h #usr/include/linux/netfilter/nf_conntrack_dccp.h -#usr/include/linux/netfilter/nf_conntrack_ftp.h #usr/include/linux/netfilter/nf_conntrack_h323.h #usr/include/linux/netfilter/nf_conntrack_h323_asn1.h #usr/include/linux/netfilter/nf_conntrack_h323_types.h @@ -152,71 +175,23 @@ sbin/iptables-multi #usr/include/linux/netfilter/nf_conntrack_pptp.h #usr/include/linux/netfilter/nf_conntrack_proto_gre.h #usr/include/linux/netfilter/nf_conntrack_sane.h -#usr/include/linux/netfilter/nf_conntrack_sctp.h #usr/include/linux/netfilter/nf_conntrack_sip.h -#usr/include/linux/netfilter/nf_conntrack_tcp.h +#usr/include/linux/netfilter/nf_conntrack_snmp.h #usr/include/linux/netfilter/nf_conntrack_tftp.h -#usr/include/linux/netfilter/nf_conntrack_tuple_common.h -#usr/include/linux/netfilter/nfnetlink.h -#usr/include/linux/netfilter/nfnetlink_compat.h -#usr/include/linux/netfilter/nfnetlink_conntrack.h -#usr/include/linux/netfilter/nfnetlink_log.h -#usr/include/linux/netfilter/nfnetlink_queue.h -#usr/include/linux/netfilter/x_tables.h -#usr/include/linux/netfilter/xt_CLASSIFY.h -#usr/include/linux/netfilter/xt_CONNMARK.h -#usr/include/linux/netfilter/xt_CONNSECMARK.h -#usr/include/linux/netfilter/xt_DSCP.h #usr/include/linux/netfilter/xt_IMQ.h -#usr/include/linux/netfilter/xt_LED.h -#usr/include/linux/netfilter/xt_MARK.h -#usr/include/linux/netfilter/xt_NFLOG.h -#usr/include/linux/netfilter/xt_NFQUEUE.h -#usr/include/linux/netfilter/xt_RATEEST.h -#usr/include/linux/netfilter/xt_SECMARK.h -#usr/include/linux/netfilter/xt_TCPMSS.h -#usr/include/linux/netfilter/xt_TCPOPTSTRIP.h -#usr/include/linux/netfilter/xt_TPROXY.h -#usr/include/linux/netfilter/xt_cluster.h -#usr/include/linux/netfilter/xt_comment.h -#usr/include/linux/netfilter/xt_connbytes.h -#usr/include/linux/netfilter/xt_connlimit.h -#usr/include/linux/netfilter/xt_connmark.h -#usr/include/linux/netfilter/xt_conntrack.h -#usr/include/linux/netfilter/xt_dccp.h -#usr/include/linux/netfilter/xt_dscp.h -#usr/include/linux/netfilter/xt_esp.h -#usr/include/linux/netfilter/xt_hashlimit.h -#usr/include/linux/netfilter/xt_helper.h -#usr/include/linux/netfilter/xt_iprange.h #usr/include/linux/netfilter/xt_layer7.h -#usr/include/linux/netfilter/xt_length.h -#usr/include/linux/netfilter/xt_limit.h -#usr/include/linux/netfilter/xt_mac.h -#usr/include/linux/netfilter/xt_mark.h -#usr/include/linux/netfilter/xt_multiport.h -#usr/include/linux/netfilter/xt_osf.h -#usr/include/linux/netfilter/xt_owner.h -#usr/include/linux/netfilter/xt_physdev.h -#usr/include/linux/netfilter/xt_pkttype.h -#usr/include/linux/netfilter/xt_policy.h -#usr/include/linux/netfilter/xt_quota.h -#usr/include/linux/netfilter/xt_rateest.h -#usr/include/linux/netfilter/xt_realm.h -#usr/include/linux/netfilter/xt_recent.h -#usr/include/linux/netfilter/xt_sctp.h -#usr/include/linux/netfilter/xt_socket.h -#usr/include/linux/netfilter/xt_state.h -#usr/include/linux/netfilter/xt_statistic.h -#usr/include/linux/netfilter/xt_string.h -#usr/include/linux/netfilter/xt_tcpmss.h -#usr/include/linux/netfilter/xt_tcpudp.h -#usr/include/linux/netfilter/xt_time.h -#usr/include/linux/netfilter/xt_u32.h #usr/include/net/netfilter #usr/include/net/netfilter/nf_conntrack_tuple.h #usr/include/net/netfilter/nf_nat.h #usr/include/xtables.h +#usr/lib/libnetfilter_conntrack.la +usr/lib/libnetfilter_conntrack.so +usr/lib/libnetfilter_conntrack.so.3 +usr/lib/libnetfilter_conntrack.so.3.4.0 +#usr/lib/libnetfilter_cttimeout.la +usr/lib/libnetfilter_cttimeout.so +usr/lib/libnetfilter_cttimeout.so.1 +usr/lib/libnetfilter_cttimeout.so.1.0.0 #usr/lib/libnetfilter_queue.a #usr/lib/libnetfilter_queue.la usr/lib/libnetfilter_queue.so @@ -232,8 +207,16 @@ usr/lib/libnetfilter_queue_libipq.so.1.0.0 usr/lib/libnfnetlink.so usr/lib/libnfnetlink.so.0 usr/lib/libnfnetlink.so.0.2.0 +#usr/lib/pkgconfig/libip4tc.pc +#usr/lib/pkgconfig/libip6tc.pc +#usr/lib/pkgconfig/libipq.pc +#usr/lib/pkgconfig/libiptc.pc +#usr/lib/pkgconfig/libnetfilter_conntrack.pc +#usr/lib/pkgconfig/libnetfilter_cttimeout.pc #usr/lib/pkgconfig/libnetfilter_queue.pc #usr/lib/pkgconfig/libnfnetlink.pc +#usr/lib/pkgconfig/xtables.pc +#usr/share/man/man1/iptables-xml.1 #usr/share/man/man3/ipq_create_handle.3 #usr/share/man/man3/ipq_destroy_handle.3 #usr/share/man/man3/ipq_errstr.3 @@ -250,5 +233,4 @@ usr/lib/libnfnetlink.so.0.2.0 #usr/share/man/man8/ip6tables.8 #usr/share/man/man8/iptables-restore.8 #usr/share/man/man8/iptables-save.8 -#usr/share/man/man8/iptables-xml.8 #usr/share/man/man8/iptables.8 diff --git a/config/rootfiles/common/iptstate b/config/rootfiles/common/iptstate deleted file mode 100644 index 57b6d0f..0000000 --- a/config/rootfiles/common/iptstate +++ /dev/null @@ -1,2 +0,0 @@ -usr/sbin/iptstate -#usr/share/man/man8/iptstate.8 diff --git a/config/rootfiles/common/kudzu b/config/rootfiles/common/kudzu deleted file mode 100644 index 5776f0f..0000000 --- a/config/rootfiles/common/kudzu +++ /dev/null @@ -1,198 +0,0 @@ -#etc/rc.d/init.d/kudzu -#etc/sysconfig/kudzu -sbin/kudzu -#usr/include/kudzu -#usr/include/kudzu/adb.h -#usr/include/kudzu/alias.h -#usr/include/kudzu/ddc.h -#usr/include/kudzu/device.h -#usr/include/kudzu/firewire.h -#usr/include/kudzu/ide.h -#usr/include/kudzu/isapnp.h -#usr/include/kudzu/keyboard.h -#usr/include/kudzu/kudzu.h -#usr/include/kudzu/macio.h -#usr/include/kudzu/misc.h -#usr/include/kudzu/modules.h -#usr/include/kudzu/parallel.h -#usr/include/kudzu/pci.h -#usr/include/kudzu/pcmcia.h -#usr/include/kudzu/psaux.h -#usr/include/kudzu/sbus.h -#usr/include/kudzu/scsi.h -#usr/include/kudzu/serial.h -#usr/include/kudzu/usb.h -#usr/lib/libkudzu.a -#usr/lib/libkudzu_loader.a -#usr/lib/python2.7/lib2to3/tests/data/bom.pyc -#usr/lib/python2.7/lib2to3/tests/data/crlf.pyc -#usr/lib/python2.7/lib2to3/tests/data/different_encoding.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/bad_order.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.pyc -#usr/lib/python2.7/lib2to3/tests/data/infinite_recursion.pyc -#usr/lib/python2.7/lib2to3/tests/data/py2_test_grammar.pyc -#usr/lib/python2.7/site-packages/_kudzumodule.so -#usr/lib/python2.7/site-packages/drv_libxml2.pyc -#usr/lib/python2.7/site-packages/kudzu.py -#usr/lib/python2.7/site-packages/kudzu.pyc -#usr/lib/python2.7/site-packages/libxslt.pyc -#usr/lib/python2.7/site-packages/snack.pyc -usr/sbin/kudzu -#usr/share/locale/ar -#usr/share/locale/ar/LC_MESSAGES -#usr/share/locale/ar/LC_MESSAGES/kudzu.mo -#usr/share/locale/as -#usr/share/locale/as/LC_MESSAGES -#usr/share/locale/as/LC_MESSAGES/kudzu.mo -#usr/share/locale/be/LC_MESSAGES/kudzu.mo -#usr/share/locale/bg -#usr/share/locale/bg/LC_MESSAGES -#usr/share/locale/bg/LC_MESSAGES/kudzu.mo -#usr/share/locale/bn -#usr/share/locale/bn/LC_MESSAGES -#usr/share/locale/bn/LC_MESSAGES/kudzu.mo -#usr/share/locale/bn_IN -#usr/share/locale/bn_IN/LC_MESSAGES -#usr/share/locale/bn_IN/LC_MESSAGES/kudzu.mo -#usr/share/locale/bs -#usr/share/locale/bs/LC_MESSAGES -#usr/share/locale/bs/LC_MESSAGES/kudzu.mo -#usr/share/locale/ca/LC_MESSAGES/kudzu.mo -#usr/share/locale/cs/LC_MESSAGES/kudzu.mo -#usr/share/locale/cy -#usr/share/locale/cy/LC_MESSAGES -#usr/share/locale/cy/LC_MESSAGES/kudzu.mo -#usr/share/locale/da/LC_MESSAGES/kudzu.mo -#usr/share/locale/de/LC_MESSAGES/kudzu.mo -#usr/share/locale/el/LC_MESSAGES/kudzu.mo -#usr/share/locale/en_GB/LC_MESSAGES/kudzu.mo -#usr/share/locale/es/LC_MESSAGES/kudzu.mo -#usr/share/locale/et/LC_MESSAGES/kudzu.mo -#usr/share/locale/eu_ES -#usr/share/locale/eu_ES/LC_MESSAGES -#usr/share/locale/eu_ES/LC_MESSAGES/kudzu.mo -#usr/share/locale/fi/LC_MESSAGES/kudzu.mo -#usr/share/locale/fr/LC_MESSAGES/kudzu.mo -#usr/share/locale/gl/LC_MESSAGES/kudzu.mo -#usr/share/locale/gu -#usr/share/locale/gu/LC_MESSAGES -#usr/share/locale/gu/LC_MESSAGES/kudzu.mo -#usr/share/locale/he -#usr/share/locale/he/LC_MESSAGES -#usr/share/locale/he/LC_MESSAGES/kudzu.mo -#usr/share/locale/hi -#usr/share/locale/hi/LC_MESSAGES -#usr/share/locale/hi/LC_MESSAGES/kudzu.mo -#usr/share/locale/hr/LC_MESSAGES/kudzu.mo -#usr/share/locale/hu/LC_MESSAGES/kudzu.mo -#usr/share/locale/hy -#usr/share/locale/hy/LC_MESSAGES -#usr/share/locale/hy/LC_MESSAGES/kudzu.mo -#usr/share/locale/id -#usr/share/locale/id/LC_MESSAGES -#usr/share/locale/id/LC_MESSAGES/kudzu.mo -#usr/share/locale/ilo -#usr/share/locale/ilo/LC_MESSAGES -#usr/share/locale/ilo/LC_MESSAGES/kudzu.mo -#usr/share/locale/is -#usr/share/locale/is/LC_MESSAGES -#usr/share/locale/is/LC_MESSAGES/kudzu.mo -#usr/share/locale/it/LC_MESSAGES/kudzu.mo -#usr/share/locale/ja/LC_MESSAGES/kudzu.mo -#usr/share/locale/ka -#usr/share/locale/ka/LC_MESSAGES -#usr/share/locale/ka/LC_MESSAGES/kudzu.mo -#usr/share/locale/kn -#usr/share/locale/kn/LC_MESSAGES -#usr/share/locale/kn/LC_MESSAGES/kudzu.mo -#usr/share/locale/ko/LC_MESSAGES/kudzu.mo -#usr/share/locale/ku -#usr/share/locale/ku/LC_MESSAGES -#usr/share/locale/ku/LC_MESSAGES/kudzu.mo -#usr/share/locale/lo -#usr/share/locale/lo/LC_MESSAGES -#usr/share/locale/lo/LC_MESSAGES/kudzu.mo -#usr/share/locale/lt -#usr/share/locale/lt/LC_MESSAGES -#usr/share/locale/lt/LC_MESSAGES/kudzu.mo -#usr/share/locale/lv -#usr/share/locale/lv/LC_MESSAGES -#usr/share/locale/lv/LC_MESSAGES/kudzu.mo -#usr/share/locale/mk -#usr/share/locale/mk/LC_MESSAGES -#usr/share/locale/mk/LC_MESSAGES/kudzu.mo -#usr/share/locale/ml -#usr/share/locale/ml/LC_MESSAGES -#usr/share/locale/ml/LC_MESSAGES/kudzu.mo -#usr/share/locale/mr -#usr/share/locale/mr/LC_MESSAGES -#usr/share/locale/mr/LC_MESSAGES/kudzu.mo -#usr/share/locale/ms -#usr/share/locale/ms/LC_MESSAGES -#usr/share/locale/ms/LC_MESSAGES/kudzu.mo -#usr/share/locale/my -#usr/share/locale/my/LC_MESSAGES -#usr/share/locale/my/LC_MESSAGES/kudzu.mo -#usr/share/locale/nb/LC_MESSAGES/kudzu.mo -#usr/share/locale/nl/LC_MESSAGES/kudzu.mo -#usr/share/locale/nn -#usr/share/locale/nn/LC_MESSAGES -#usr/share/locale/nn/LC_MESSAGES/kudzu.mo -#usr/share/locale/no -#usr/share/locale/no/LC_MESSAGES -#usr/share/locale/no/LC_MESSAGES/kudzu.mo -#usr/share/locale/or -#usr/share/locale/or/LC_MESSAGES -#usr/share/locale/or/LC_MESSAGES/kudzu.mo -#usr/share/locale/pa -#usr/share/locale/pa/LC_MESSAGES -#usr/share/locale/pa/LC_MESSAGES/kudzu.mo -#usr/share/locale/pl/LC_MESSAGES/kudzu.mo -#usr/share/locale/pt -#usr/share/locale/pt/LC_MESSAGES -#usr/share/locale/pt/LC_MESSAGES/kudzu.mo -#usr/share/locale/pt_BR/LC_MESSAGES/kudzu.mo -#usr/share/locale/ro/LC_MESSAGES/kudzu.mo -#usr/share/locale/ru/LC_MESSAGES/kudzu.mo -#usr/share/locale/si -#usr/share/locale/si/LC_MESSAGES -#usr/share/locale/si/LC_MESSAGES/kudzu.mo -#usr/share/locale/sk/LC_MESSAGES/kudzu.mo -#usr/share/locale/sl/LC_MESSAGES/kudzu.mo -#usr/share/locale/sq -#usr/share/locale/sq/LC_MESSAGES -#usr/share/locale/sq/LC_MESSAGES/kudzu.mo -#usr/share/locale/sr -#usr/share/locale/sr/LC_MESSAGES -#usr/share/locale/sr/LC_MESSAGES/kudzu.mo -#usr/share/locale/sr@Latn -#usr/share/locale/sr@Latn/LC_MESSAGES -#usr/share/locale/sr@Latn/LC_MESSAGES/kudzu.mo -#usr/share/locale/sv/LC_MESSAGES/kudzu.mo -#usr/share/locale/ta -#usr/share/locale/ta/LC_MESSAGES -#usr/share/locale/ta/LC_MESSAGES/kudzu.mo -#usr/share/locale/te -#usr/share/locale/te/LC_MESSAGES -#usr/share/locale/te/LC_MESSAGES/kudzu.mo -#usr/share/locale/tr/LC_MESSAGES/kudzu.mo -#usr/share/locale/uk/LC_MESSAGES/kudzu.mo -#usr/share/locale/ur -#usr/share/locale/ur/LC_MESSAGES -#usr/share/locale/ur/LC_MESSAGES/kudzu.mo -#usr/share/locale/vi -#usr/share/locale/vi/LC_MESSAGES -#usr/share/locale/vi/LC_MESSAGES/kudzu.mo -#usr/share/locale/wa -#usr/share/locale/wa/LC_MESSAGES -#usr/share/locale/wa/LC_MESSAGES/kudzu.mo -#usr/share/locale/zh_CN/LC_MESSAGES/kudzu.mo -#usr/share/locale/zh_TW/LC_MESSAGES/kudzu.mo -#usr/share/man/man8/kudzu.8 diff --git a/config/rootfiles/common/less b/config/rootfiles/common/less index bd8faf5..5b573c9 100644 --- a/config/rootfiles/common/less +++ b/config/rootfiles/common/less @@ -1,6 +1,6 @@ usr/bin/less #usr/bin/lessecho #usr/bin/lesskey -#usr/man/man1/less.1 -#usr/man/man1/lessecho.1 -#usr/man/man1/lesskey.1 +#usr/share/man/man1/less.1 +#usr/share/man/man1/lessecho.1 +#usr/share/man/man1/lesskey.1 diff --git a/config/rootfiles/common/libaal b/config/rootfiles/common/libaal deleted file mode 100644 index de785eb..0000000 --- a/config/rootfiles/common/libaal +++ /dev/null @@ -1,31 +0,0 @@ -#usr/include/aal -#usr/include/aal/bitops.h -#usr/include/aal/block.h -#usr/include/aal/debug.h -#usr/include/aal/device.h -#usr/include/aal/endian.h -#usr/include/aal/exception.h -#usr/include/aal/file.h -#usr/include/aal/gauge.h -#usr/include/aal/hash.h -#usr/include/aal/libaal.h -#usr/include/aal/list.h -#usr/include/aal/malloc.h -#usr/include/aal/math.h -#usr/include/aal/print.h -#usr/include/aal/stream.h -#usr/include/aal/string.h -#usr/include/aal/types.h -#usr/include/aal/ui.h -#usr/include/aal/unaligned.h -usr/lib/libaal-1.0.so.5 -usr/lib/libaal-1.0.so.5.0.0 -#usr/lib/libaal-minimal.a -#usr/lib/libaal-minimal.la -usr/lib/libaal-minimal.so -usr/lib/libaal-minimal.so.0 -usr/lib/libaal-minimal.so.0.0.0 -#usr/lib/libaal.a -#usr/lib/libaal.la -usr/lib/libaal.so -#usr/share/aclocal/libaal.m4 diff --git a/config/rootfiles/common/libffi b/config/rootfiles/common/libffi new file mode 100644 index 0000000..2c887bd --- /dev/null +++ b/config/rootfiles/common/libffi @@ -0,0 +1,15 @@ +#usr/lib/libffi-3.0.11 +#usr/lib/libffi-3.0.11/include +#usr/lib/libffi-3.0.11/include/ffi.h +#usr/lib/libffi-3.0.11/include/ffitarget.h +#usr/lib/libffi.a +#usr/lib/libffi.la +#usr/lib/libffi.so +usr/lib/libffi.so.6 +usr/lib/libffi.so.6.0.0 +#usr/lib/pkgconfig/libffi.pc +#usr/share/info/libffi.info +#usr/share/man/man3/ffi.3 +#usr/share/man/man3/ffi_call.3 +#usr/share/man/man3/ffi_prep_cif.3 +#usr/share/man/man3/ffi_prep_cif_var.3 diff --git a/config/rootfiles/common/libmnl b/config/rootfiles/common/libmnl new file mode 100644 index 0000000..36732c4 --- /dev/null +++ b/config/rootfiles/common/libmnl @@ -0,0 +1,7 @@ +#usr/include/libmnl +#usr/include/libmnl/libmnl.h +#usr/lib/libmnl.la +usr/lib/libmnl.so +usr/lib/libmnl.so.0 +usr/lib/libmnl.so.0.1.0 +#usr/lib/pkgconfig/libmnl.pc diff --git a/config/rootfiles/common/libsafe b/config/rootfiles/common/libsafe deleted file mode 100644 index 8275e4a..0000000 --- a/config/rootfiles/common/libsafe +++ /dev/null @@ -1,4 +0,0 @@ -etc/ld.so.preload -lib/libsafe.so.2 -lib/libsafe.so.2.0.16 -#usr/man/man8/libsafe.8 diff --git a/config/rootfiles/common/libsigc++ b/config/rootfiles/common/libsigc++ index 39029d3..a05b64b 100644 --- a/config/rootfiles/common/libsigc++ +++ b/config/rootfiles/common/libsigc++ @@ -78,7 +78,7 @@ #usr/include/sigc++-2.0/sigc++/visit_each.h #usr/lib/libsigc-2.0.a #usr/lib/libsigc-2.0.la -usr/lib/libsigc-2.0.so +#usr/lib/libsigc-2.0.so usr/lib/libsigc-2.0.so.0 usr/lib/libsigc-2.0.so.0.0.0 #usr/lib/pkgconfig/sigc++-2.0.pc @@ -157,6 +157,7 @@ usr/lib/libsigc-2.0.so.0.0.0 #usr/share/doc/libsigc-2.0/docs/reference/html/classes.html #usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core.html #usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core__inherit__graph.png +#usr/share/doc/libsigc-2.0/docs/reference/html/classnil.html #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument-members.html #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument.html #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4-members.html @@ -460,15 +461,6 @@ usr/lib/libsigc-2.0.so.0.0.0 #usr/share/doc/libsigc-2.0/docs/reference/html/connection_8h.html #usr/share/doc/libsigc-2.0/docs/reference/html/deduce__result__type_8h.html #usr/share/doc/libsigc-2.0/docs/reference/html/deprecated.html -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2F.html -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2F_dep.png -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2F.html -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2F_dep.png -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2Flambda_2F.html -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2Flambda_2F_dep.png -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Ffunctors_2F.html -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Ffunctors_2F_dep.png -#usr/share/doc/libsigc-2.0/docs/reference/html/dirs.html #usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.css #usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.png #usr/share/doc/libsigc-2.0/docs/reference/html/exception__catch_8h.html @@ -515,15 +507,40 @@ usr/lib/libsigc-2.0.so.0.0.0 #usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x7e.html #usr/share/doc/libsigc-2.0/docs/reference/html/functions_rela.html #usr/share/doc/libsigc-2.0/docs/reference/html/functions_type.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x63.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x64.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x65.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x66.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x67.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x69.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x6c.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x6f.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x70.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x72.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x73.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x74.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x76.html #usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x61.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x62.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x63.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x64.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x65.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x66.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x67.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x69.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x6c.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x6f.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x70.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x72.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x73.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x74.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x76.html #usr/share/doc/libsigc-2.0/docs/reference/html/functor__trait_8h.html #usr/share/doc/libsigc-2.0/docs/reference/html/functors_2slot_8h.html #usr/share/doc/libsigc-2.0/docs/reference/html/functors_8h.html #usr/share/doc/libsigc-2.0/docs/reference/html/globals.html #usr/share/doc/libsigc-2.0/docs/reference/html/globals_defs.html -#usr/share/doc/libsigc-2.0/docs/reference/html/globals_func.html -#usr/share/doc/libsigc-2.0/docs/reference/html/globals_type.html -#usr/share/doc/libsigc-2.0/docs/reference/html/globals_vars.html #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.dot #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.html #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.png @@ -740,6 +757,7 @@ usr/lib/libsigc-2.0.so.0.0.0 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__260.png #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__261.png #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__262.png +#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__263.png #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__27.png #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__28.png #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__29.png @@ -828,7 +846,33 @@ usr/lib/libsigc-2.0.so.0.0.0 #usr/share/doc/libsigc-2.0/docs/reference/html/modules.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespaceSigC.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x62.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x63.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x64.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x65.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x66.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x67.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x68.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x6d.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x6f.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x70.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x72.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x73.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x75.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x76.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x63.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x64.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x65.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x67.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x68.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x6d.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x6f.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x70.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x72.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x73.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x75.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x76.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_type.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_vars.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespaces.html diff --git a/config/rootfiles/common/libtool b/config/rootfiles/common/libtool new file mode 100644 index 0000000..5646be2 --- /dev/null +++ b/config/rootfiles/common/libtool @@ -0,0 +1,71 @@ +#usr/bin/libtool +#usr/bin/libtoolize +#usr/include/libltdl +#usr/include/libltdl/lt_dlloader.h +#usr/include/libltdl/lt_error.h +#usr/include/libltdl/lt_system.h +#usr/include/ltdl.h +#usr/lib/libltdl.a +#usr/lib/libltdl.la +usr/lib/libltdl.so +usr/lib/libltdl.so.7 +usr/lib/libltdl.so.7.3.0 +#usr/share/aclocal/argz.m4 +#usr/share/aclocal/libtool.m4 +#usr/share/aclocal/ltdl.m4 +#usr/share/aclocal/ltoptions.m4 +#usr/share/aclocal/ltsugar.m4 +#usr/share/aclocal/ltversion.m4 +#usr/share/aclocal/lt~obsolete.m4 +#usr/share/info/libtool.info +#usr/share/info/libtool.info-1 +#usr/share/info/libtool.info-2 +#usr/share/libtool +#usr/share/libtool/config +#usr/share/libtool/config/compile +#usr/share/libtool/config/config.guess +#usr/share/libtool/config/config.sub +#usr/share/libtool/config/depcomp +#usr/share/libtool/config/install-sh +#usr/share/libtool/config/ltmain.sh +#usr/share/libtool/config/missing +#usr/share/libtool/libltdl +#usr/share/libtool/libltdl/COPYING.LIB +#usr/share/libtool/libltdl/Makefile.am +#usr/share/libtool/libltdl/Makefile.in +#usr/share/libtool/libltdl/Makefile.inc +#usr/share/libtool/libltdl/README +#usr/share/libtool/libltdl/aclocal.m4 +#usr/share/libtool/libltdl/argz.c +#usr/share/libtool/libltdl/argz_.h +#usr/share/libtool/libltdl/config-h.in +#usr/share/libtool/libltdl/configure +#usr/share/libtool/libltdl/configure.ac +#usr/share/libtool/libltdl/libltdl +#usr/share/libtool/libltdl/libltdl/lt__alloc.h +#usr/share/libtool/libltdl/libltdl/lt__dirent.h +#usr/share/libtool/libltdl/libltdl/lt__glibc.h +#usr/share/libtool/libltdl/libltdl/lt__private.h +#usr/share/libtool/libltdl/libltdl/lt__strl.h +#usr/share/libtool/libltdl/libltdl/lt_dlloader.h +#usr/share/libtool/libltdl/libltdl/lt_error.h +#usr/share/libtool/libltdl/libltdl/lt_system.h +#usr/share/libtool/libltdl/libltdl/slist.h +#usr/share/libtool/libltdl/loaders +#usr/share/libtool/libltdl/loaders/dld_link.c +#usr/share/libtool/libltdl/loaders/dlopen.c +#usr/share/libtool/libltdl/loaders/dyld.c +#usr/share/libtool/libltdl/loaders/load_add_on.c +#usr/share/libtool/libltdl/loaders/loadlibrary.c +#usr/share/libtool/libltdl/loaders/preopen.c +#usr/share/libtool/libltdl/loaders/shl_load.c +#usr/share/libtool/libltdl/lt__alloc.c +#usr/share/libtool/libltdl/lt__dirent.c +#usr/share/libtool/libltdl/lt__strl.c +#usr/share/libtool/libltdl/lt_dlloader.c +#usr/share/libtool/libltdl/lt_error.c +#usr/share/libtool/libltdl/ltdl.c +#usr/share/libtool/libltdl/ltdl.h +#usr/share/libtool/libltdl/slist.c +#usr/share/man/man1/libtool.1 +#usr/share/man/man1/libtoolize.1 diff --git a/config/rootfiles/common/libupnp b/config/rootfiles/common/libupnp index 619567f..cec62c4 100644 --- a/config/rootfiles/common/libupnp +++ b/config/rootfiles/common/libupnp @@ -3,26 +3,32 @@ #usr/include/upnp/LinkedList.h #usr/include/upnp/ThreadPool.h #usr/include/upnp/TimerThread.h -#usr/include/upnp/iasnprintf.h +#usr/include/upnp/UpnpGlobal.h +#usr/include/upnp/UpnpInet.h +#usr/include/upnp/UpnpIntTypes.h +#usr/include/upnp/UpnpStdInt.h +#usr/include/upnp/UpnpString.h +#usr/include/upnp/UpnpUniStd.h #usr/include/upnp/ithread.h #usr/include/upnp/ixml.h +#usr/include/upnp/ixmldebug.h #usr/include/upnp/upnp.h #usr/include/upnp/upnpconfig.h +#usr/include/upnp/upnpdebug.h #usr/include/upnp/upnptools.h #usr/lib/libixml.a #usr/lib/libixml.la usr/lib/libixml.so usr/lib/libixml.so.2 +usr/lib/libixml.so.2.0.8 #usr/lib/libthreadutil.a #usr/lib/libthreadutil.la usr/lib/libthreadutil.so -usr/lib/libthreadutil.so.2 +usr/lib/libthreadutil.so.6 +usr/lib/libthreadutil.so.6.0.3 #usr/lib/libupnp.a #usr/lib/libupnp.la -#usr/lib/pkgconfig/libupnp.pc -#usr/include/upnp/upnpdebug.h -usr/lib/libixml.so.2.0.4 -usr/lib/libthreadutil.so.2.2.3 usr/lib/libupnp.so -usr/lib/libupnp.so.3 -usr/lib/libupnp.so.3.0.5 +usr/lib/libupnp.so.6 +usr/lib/libupnp.so.6.3.2 +#usr/lib/pkgconfig/libupnp.pc diff --git a/config/rootfiles/common/linux-atm b/config/rootfiles/common/linux-atm index 1a0f699..db5793a 100644 --- a/config/rootfiles/common/linux-atm +++ b/config/rootfiles/common/linux-atm @@ -17,6 +17,7 @@ usr/lib/libatm.so usr/lib/libatm.so.1 usr/lib/libatm.so.1.0.0 +#usr/man/man4 #usr/man/man4/atmsigd.conf.4 #usr/man/man7/qos.7 #usr/man/man7/sap.7 diff --git a/config/rootfiles/common/linux-firmware b/config/rootfiles/common/linux-firmware index d4b9071..78bcc64 100644 --- a/config/rootfiles/common/linux-firmware +++ b/config/rootfiles/common/linux-firmware @@ -3,10 +3,12 @@ lib/firmware/3com/3C359.bin lib/firmware/3com/typhoon.bin lib/firmware/GPL-3 lib/firmware/LICENCE.Marvell +lib/firmware/LICENCE.OLPC lib/firmware/LICENCE.agere lib/firmware/LICENCE.atheros_firmware lib/firmware/LICENCE.broadcom_bcm43xx lib/firmware/LICENCE.chelsio_firmware +lib/firmware/LICENCE.ene_firmware lib/firmware/LICENCE.i2400m lib/firmware/LICENCE.iwlwifi_firmware lib/firmware/LICENCE.mwl8335 @@ -21,7 +23,9 @@ lib/firmware/LICENCE.ueagle-atm4-firmware lib/firmware/LICENCE.via_vt6656 lib/firmware/LICENCE.xc5000 lib/firmware/LICENSE.dib0700 -lib/firmware/LICENSE.radeon_rlc +lib/firmware/LICENSE.radeon +#lib/firmware/Makefile +lib/firmware/README #lib/firmware/RTL8192E lib/firmware/RTL8192E/boot.img lib/firmware/RTL8192E/data.img @@ -47,6 +51,9 @@ lib/firmware/agere_sta_fw.bin lib/firmware/ar3k/1020200/PS_ASIC.pst lib/firmware/ar3k/1020200/RamPatch.txt lib/firmware/ar3k/1020200/ar3kbdaddr.pst +#lib/firmware/ar3k/1020201 +lib/firmware/ar3k/1020201/PS_ASIC.pst +lib/firmware/ar3k/1020201/RamPatch.txt #lib/firmware/ar3k/30000 lib/firmware/ar3k/30000/PS_ASIC.pst lib/firmware/ar3k/30000/RamPatch.txt @@ -55,11 +62,24 @@ lib/firmware/ar3k/30000/ar3kbdaddr.pst lib/firmware/ar3k/30101/PS_ASIC.pst lib/firmware/ar3k/30101/RamPatch.txt lib/firmware/ar3k/30101/ar3kbdaddr.pst +#lib/firmware/ar3k/30101coex +lib/firmware/ar3k/30101coex/PS_ASIC.pst +lib/firmware/ar3k/30101coex/PS_ASIC_aclHighPri.pst +lib/firmware/ar3k/30101coex/PS_ASIC_aclLowPri.pst +lib/firmware/ar3k/30101coex/RamPatch.txt +lib/firmware/ar3k/30101coex/ar3kbdaddr.pst lib/firmware/ar3k/AthrBT_0x01020001.dfu lib/firmware/ar3k/AthrBT_0x01020200.dfu +lib/firmware/ar3k/AthrBT_0x01020201.dfu +lib/firmware/ar3k/AthrBT_0x11020000.dfu +lib/firmware/ar3k/AthrBT_0x31010000.dfu lib/firmware/ar3k/ramps_0x01020001_26.dfu lib/firmware/ar3k/ramps_0x01020200_26.dfu lib/firmware/ar3k/ramps_0x01020200_40.dfu +lib/firmware/ar3k/ramps_0x01020201_26.dfu +lib/firmware/ar3k/ramps_0x01020201_40.dfu +lib/firmware/ar3k/ramps_0x11020000_40.dfu +lib/firmware/ar3k/ramps_0x31010000_40.dfu lib/firmware/ar7010.fw lib/firmware/ar7010_1_1.fw lib/firmware/ar9170-1.fw @@ -73,6 +93,15 @@ lib/firmware/ath6k/AR6002/data.patch.hw2_0.bin lib/firmware/ath6k/AR6002/eeprom.bin lib/firmware/ath6k/AR6002/eeprom.data #lib/firmware/ath6k/AR6003 +#lib/firmware/ath6k/AR6003.1 +#lib/firmware/ath6k/AR6003.1/hw2.1.1 +lib/firmware/ath6k/AR6003.1/hw2.1.1/athwlan.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/bdata.SD31.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/bdata.SD32.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/bdata.WB31.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/data.patch.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/endpointping.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/otp.bin #lib/firmware/ath6k/AR6003/hw1.0 lib/firmware/ath6k/AR6003/hw1.0/athwlan.bin.z77 lib/firmware/ath6k/AR6003/hw1.0/bdata.SD31.bin @@ -94,9 +123,20 @@ lib/firmware/ath6k/AR6003/hw2.1.1/bdata.SD32.bin lib/firmware/ath6k/AR6003/hw2.1.1/bdata.WB31.bin lib/firmware/ath6k/AR6003/hw2.1.1/data.patch.bin lib/firmware/ath6k/AR6003/hw2.1.1/endpointping.bin +lib/firmware/ath6k/AR6003/hw2.1.1/fw-2.bin +lib/firmware/ath6k/AR6003/hw2.1.1/fw-3.bin lib/firmware/ath6k/AR6003/hw2.1.1/otp.bin +#lib/firmware/ath6k/AR6004 +#lib/firmware/ath6k/AR6004/hw1.2 +lib/firmware/ath6k/AR6004/hw1.2/bdata.bin +lib/firmware/ath6k/AR6004/hw1.2/fw-2.bin +#lib/firmware/ath6k/AR6004/hw1.3 +lib/firmware/ath6k/AR6004/hw1.3/bdata.bin +lib/firmware/ath6k/AR6004/hw1.3/fw-3.bin lib/firmware/atmsar11.fw #lib/firmware/av7110 +#lib/firmware/av7110/Boot.S +#lib/firmware/av7110/Makefile lib/firmware/av7110/bootcode.bin #lib/firmware/bnx2 lib/firmware/bnx2/bnx2-mips-06-4.6.16.fw @@ -104,6 +144,7 @@ lib/firmware/bnx2/bnx2-mips-06-5.0.0.j3.fw lib/firmware/bnx2/bnx2-mips-06-5.0.0.j6.fw lib/firmware/bnx2/bnx2-mips-06-6.0.15.fw lib/firmware/bnx2/bnx2-mips-06-6.2.1.fw +lib/firmware/bnx2/bnx2-mips-06-6.2.3.fw lib/firmware/bnx2/bnx2-mips-09-4.6.17.fw lib/firmware/bnx2/bnx2-mips-09-5.0.0.j15.fw lib/firmware/bnx2/bnx2-mips-09-5.0.0.j3.fw @@ -111,6 +152,7 @@ lib/firmware/bnx2/bnx2-mips-09-5.0.0.j9.fw lib/firmware/bnx2/bnx2-mips-09-6.0.17.fw lib/firmware/bnx2/bnx2-mips-09-6.2.1.fw lib/firmware/bnx2/bnx2-mips-09-6.2.1a.fw +lib/firmware/bnx2/bnx2-mips-09-6.2.1b.fw lib/firmware/bnx2/bnx2-rv2p-06-4.6.16.fw lib/firmware/bnx2/bnx2-rv2p-06-5.0.0.j3.fw lib/firmware/bnx2/bnx2-rv2p-06-6.0.15.fw @@ -121,17 +163,48 @@ lib/firmware/bnx2/bnx2-rv2p-09-6.0.17.fw lib/firmware/bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw lib/firmware/bnx2/bnx2-rv2p-09ax-5.0.0.j3.fw lib/firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw +#lib/firmware/bnx2x lib/firmware/bnx2x-e1-4.8.53.0.fw lib/firmware/bnx2x-e1-5.2.13.0.fw lib/firmware/bnx2x-e1-5.2.7.0.fw lib/firmware/bnx2x-e1h-4.8.53.0.fw lib/firmware/bnx2x-e1h-5.2.13.0.fw lib/firmware/bnx2x-e1h-5.2.7.0.fw +lib/firmware/bnx2x/bnx2x-e1-6.0.34.0.fw +lib/firmware/bnx2x/bnx2x-e1-6.2.5.0.fw +lib/firmware/bnx2x/bnx2x-e1-6.2.9.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.0.20.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.0.23.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.0.29.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.2.16.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.8.2.0.fw +lib/firmware/bnx2x/bnx2x-e1h-6.0.34.0.fw +lib/firmware/bnx2x/bnx2x-e1h-6.2.5.0.fw +lib/firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.0.20.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.0.23.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.0.29.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.2.16.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.8.2.0.fw +lib/firmware/bnx2x/bnx2x-e2-6.0.34.0.fw +lib/firmware/bnx2x/bnx2x-e2-6.2.5.0.fw +lib/firmware/bnx2x/bnx2x-e2-6.2.9.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.0.20.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.0.23.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.0.29.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.2.16.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.8.2.0.fw #lib/firmware/brcm lib/firmware/brcm/bcm4329-fullmac-4.bin -lib/firmware/brcm/bcm4329-fullmac-4.txt lib/firmware/brcm/bcm43xx-0.fw lib/firmware/brcm/bcm43xx_hdr-0.fw +lib/firmware/brcm/brcmfmac43236b.bin +lib/firmware/brcm/brcmfmac4329.bin +lib/firmware/brcm/brcmfmac4330.bin +lib/firmware/brcm/brcmfmac4334.bin #lib/firmware/cis lib/firmware/cis/3CCFEM556.cis lib/firmware/cis/3CXEM556.cis @@ -140,6 +213,7 @@ lib/firmware/cis/COMpad4.cis lib/firmware/cis/DP83903.cis lib/firmware/cis/LA-PCM.cis lib/firmware/cis/MT5634ZLX.cis +#lib/firmware/cis/Makefile lib/firmware/cis/NE2K.cis lib/firmware/cis/PCMLM28.cis lib/firmware/cis/PE-200.cis @@ -163,6 +237,7 @@ lib/firmware/cis/src/PE520.cis lib/firmware/cis/src/RS-COM-2P.cis lib/firmware/cis/src/tamarack.cis lib/firmware/cis/tamarack.cis +#lib/firmware/configure #lib/firmware/cpia2 lib/firmware/cpia2/stv0672_vp4.bin #lib/firmware/cxgb3 @@ -174,17 +249,22 @@ lib/firmware/cxgb3/t3c_psram-1.1.0.bin lib/firmware/cxgb3/t3fw-7.0.0.bin lib/firmware/cxgb3/t3fw-7.1.0.bin lib/firmware/cxgb3/t3fw-7.10.0.bin +lib/firmware/cxgb3/t3fw-7.12.0.bin lib/firmware/cxgb3/t3fw-7.4.0.bin #lib/firmware/cxgb4 +lib/firmware/cxgb4/t4fw-1.4.23.0.bin lib/firmware/cxgb4/t4fw.bin #lib/firmware/dabusb lib/firmware/dabusb/bitstream.bin lib/firmware/dabusb/firmware.fw #lib/firmware/dsp56k +#lib/firmware/dsp56k/Makefile #lib/firmware/dsp56k/bootstrap.asm lib/firmware/dsp56k/bootstrap.bin +#lib/firmware/dsp56k/concat-bootstrap.pl lib/firmware/dvb-fe-xc5000-1.6.114.fw lib/firmware/dvb-usb-dib0700-1.20.fw +lib/firmware/dvb-usb-terratec-h5-drxk.fw #lib/firmware/e100 lib/firmware/e100/d101m_ucode.bin lib/firmware/e100/d101s_ucode.bin @@ -204,6 +284,13 @@ lib/firmware/emi62/bitstream.fw lib/firmware/emi62/loader.fw lib/firmware/emi62/midi.fw lib/firmware/emi62/spdif.fw +#lib/firmware/ene-ub6250 +lib/firmware/ene-ub6250/ms_init.bin +lib/firmware/ene-ub6250/ms_rdwr.bin +lib/firmware/ene-ub6250/msp_rdwr.bin +lib/firmware/ene-ub6250/sd_init1.bin +lib/firmware/ene-ub6250/sd_init2.bin +lib/firmware/ene-ub6250/sd_rdwr.bin #lib/firmware/ess lib/firmware/ess/maestro3_assp_kernel.fw lib/firmware/ess/maestro3_assp_minisrc.fw @@ -214,8 +301,20 @@ lib/firmware/i2400m-fw-usb-1.4.sbcf lib/firmware/i2400m-fw-usb-1.5.sbcf lib/firmware/i6050-fw-usb-1.5.sbcf lib/firmware/intelliport2.bin +#lib/firmware/isci +#lib/firmware/isci/Makefile +lib/firmware/isci/README +#lib/firmware/isci/create_fw.c +#lib/firmware/isci/create_fw.h +lib/firmware/isci/isci_firmware.bin +#lib/firmware/isci/probe_roms.h lib/firmware/iwlwifi-100-5.ucode lib/firmware/iwlwifi-1000-3.ucode +lib/firmware/iwlwifi-1000-5.ucode +lib/firmware/iwlwifi-105-6.ucode +lib/firmware/iwlwifi-135-6.ucode +lib/firmware/iwlwifi-2000-6.ucode +lib/firmware/iwlwifi-2030-6.ucode lib/firmware/iwlwifi-3945-2.ucode lib/firmware/iwlwifi-4965-2.ucode lib/firmware/iwlwifi-5000-1.ucode @@ -224,7 +323,9 @@ lib/firmware/iwlwifi-5000-5.ucode lib/firmware/iwlwifi-5150-2.ucode lib/firmware/iwlwifi-6000-4.ucode lib/firmware/iwlwifi-6000g2a-5.ucode +lib/firmware/iwlwifi-6000g2a-6.ucode lib/firmware/iwlwifi-6000g2b-5.ucode +lib/firmware/iwlwifi-6000g2b-6.ucode lib/firmware/iwlwifi-6050-4.ucode lib/firmware/iwlwifi-6050-5.ucode #lib/firmware/kaweth @@ -246,14 +347,18 @@ lib/firmware/keyspan/usa28xb.fw lib/firmware/keyspan/usa49w.fw lib/firmware/keyspan/usa49wlc.fw #lib/firmware/keyspan_pda +#lib/firmware/keyspan_pda/Makefile #lib/firmware/keyspan_pda/keyspan_pda.S lib/firmware/keyspan_pda/keyspan_pda.fw #lib/firmware/keyspan_pda/xircom_pgs.S lib/firmware/keyspan_pda/xircom_pgs.fw #lib/firmware/korg lib/firmware/korg/k1212.dsp +lib/firmware/lbtf_usb.bin lib/firmware/lgs8g75.fw #lib/firmware/libertas +lib/firmware/libertas/cf8381.bin +lib/firmware/libertas/cf8381_helper.bin lib/firmware/libertas/cf8385.bin lib/firmware/libertas/cf8385_helper.bin lib/firmware/libertas/gspi8682.bin @@ -262,6 +367,7 @@ lib/firmware/libertas/gspi8686_v9.bin lib/firmware/libertas/gspi8686_v9_helper.bin lib/firmware/libertas/gspi8688.bin lib/firmware/libertas/gspi8688_helper.bin +lib/firmware/libertas/lbtf_sdio.bin lib/firmware/libertas/sd8385.bin lib/firmware/libertas/sd8385_helper.bin lib/firmware/libertas/sd8682.bin @@ -272,6 +378,7 @@ lib/firmware/libertas/sd8686_v9.bin lib/firmware/libertas/sd8686_v9_helper.bin lib/firmware/libertas/sd8688.bin lib/firmware/libertas/sd8688_helper.bin +lib/firmware/libertas/usb8388_olpc.bin lib/firmware/libertas/usb8388_v5.bin lib/firmware/libertas/usb8388_v9.bin lib/firmware/libertas/usb8682.bin @@ -285,7 +392,6 @@ lib/firmware/mts_edge.fw lib/firmware/mts_gsm.fw lib/firmware/mts_mt9234mu.fw lib/firmware/mts_mt9234zba.fw -lib/firmware/mwl8335_duplex.fw #lib/firmware/mwl8k lib/firmware/mwl8k/fmimage_8366.fw lib/firmware/mwl8k/fmimage_8366_ap-1.fw @@ -317,6 +423,9 @@ lib/firmware/qlogic/sd7220.fw #lib/firmware/r128 lib/firmware/r128/r128_cce.bin #lib/firmware/radeon +lib/firmware/radeon/ARUBA_me.bin +lib/firmware/radeon/ARUBA_pfp.bin +lib/firmware/radeon/ARUBA_rlc.bin lib/firmware/radeon/BARTS_mc.bin lib/firmware/radeon/BARTS_me.bin lib/firmware/radeon/BARTS_pfp.bin @@ -339,6 +448,11 @@ lib/firmware/radeon/JUNIPER_pfp.bin lib/firmware/radeon/JUNIPER_rlc.bin lib/firmware/radeon/PALM_me.bin lib/firmware/radeon/PALM_pfp.bin +lib/firmware/radeon/PITCAIRN_ce.bin +lib/firmware/radeon/PITCAIRN_mc.bin +lib/firmware/radeon/PITCAIRN_me.bin +lib/firmware/radeon/PITCAIRN_pfp.bin +lib/firmware/radeon/PITCAIRN_rlc.bin lib/firmware/radeon/R100_cp.bin lib/firmware/radeon/R200_cp.bin lib/firmware/radeon/R300_cp.bin @@ -371,10 +485,24 @@ lib/firmware/radeon/RV730_me.bin lib/firmware/radeon/RV730_pfp.bin lib/firmware/radeon/RV770_me.bin lib/firmware/radeon/RV770_pfp.bin +lib/firmware/radeon/SUMO2_me.bin +lib/firmware/radeon/SUMO2_pfp.bin +lib/firmware/radeon/SUMO_me.bin +lib/firmware/radeon/SUMO_pfp.bin lib/firmware/radeon/SUMO_rlc.bin +lib/firmware/radeon/TAHITI_ce.bin +lib/firmware/radeon/TAHITI_mc.bin +lib/firmware/radeon/TAHITI_me.bin +lib/firmware/radeon/TAHITI_pfp.bin +lib/firmware/radeon/TAHITI_rlc.bin lib/firmware/radeon/TURKS_mc.bin lib/firmware/radeon/TURKS_me.bin lib/firmware/radeon/TURKS_pfp.bin +lib/firmware/radeon/VERDE_ce.bin +lib/firmware/radeon/VERDE_mc.bin +lib/firmware/radeon/VERDE_me.bin +lib/firmware/radeon/VERDE_pfp.bin +lib/firmware/radeon/VERDE_rlc.bin lib/firmware/rt2561.bin lib/firmware/rt2561s.bin lib/firmware/rt2661.bin @@ -383,20 +511,31 @@ lib/firmware/rt2870.bin lib/firmware/rt3070.bin lib/firmware/rt3071.bin lib/firmware/rt3090.bin +lib/firmware/rt3290.bin lib/firmware/rt73.bin #lib/firmware/rtl_nic lib/firmware/rtl_nic/rtl8105e-1.fw +lib/firmware/rtl_nic/rtl8106e-1.fw lib/firmware/rtl_nic/rtl8168d-1.fw lib/firmware/rtl_nic/rtl8168d-2.fw lib/firmware/rtl_nic/rtl8168e-1.fw lib/firmware/rtl_nic/rtl8168e-2.fw lib/firmware/rtl_nic/rtl8168e-3.fw +lib/firmware/rtl_nic/rtl8168f-1.fw +lib/firmware/rtl_nic/rtl8168f-2.fw +lib/firmware/rtl_nic/rtl8168g-1.fw +lib/firmware/rtl_nic/rtl8402-1.fw +lib/firmware/rtl_nic/rtl8411-1.fw #lib/firmware/rtlwifi lib/firmware/rtlwifi/rtl8192cfw.bin +lib/firmware/rtlwifi/rtl8192cfwU.bin +lib/firmware/rtlwifi/rtl8192cfwU_B.bin lib/firmware/rtlwifi/rtl8192cufw.bin lib/firmware/rtlwifi/rtl8192defw.bin lib/firmware/rtlwifi/rtl8192sefw.bin lib/firmware/rtlwifi/rtl8712u.bin +lib/firmware/rtlwifi/rtl8723fw.bin +lib/firmware/rtlwifi/rtl8723fw_B.bin lib/firmware/s2250.fw lib/firmware/s2250_loader.fw #lib/firmware/sb16 @@ -423,10 +562,29 @@ lib/firmware/ti-connectivity/TIInit_7.2.31.bts lib/firmware/ti-connectivity/wl1271-fw-2.bin lib/firmware/ti-connectivity/wl1271-fw-ap.bin lib/firmware/ti-connectivity/wl1271-fw.bin -lib/firmware/ti-connectivity/wl1271-nvs-example-wl128x.bin lib/firmware/ti-connectivity/wl1271-nvs.bin +lib/firmware/ti-connectivity/wl127x-fw-3.bin +lib/firmware/ti-connectivity/wl127x-fw-4-mr.bin +lib/firmware/ti-connectivity/wl127x-fw-4-plt.bin +lib/firmware/ti-connectivity/wl127x-fw-4-sr.bin +lib/firmware/ti-connectivity/wl127x-fw-5-mr.bin +lib/firmware/ti-connectivity/wl127x-fw-5-plt.bin +lib/firmware/ti-connectivity/wl127x-fw-5-sr.bin +lib/firmware/ti-connectivity/wl127x-fw-plt-3.bin +lib/firmware/ti-connectivity/wl127x-nvs.bin +lib/firmware/ti-connectivity/wl128x-fw-3.bin +lib/firmware/ti-connectivity/wl128x-fw-4-mr.bin +lib/firmware/ti-connectivity/wl128x-fw-4-plt.bin +lib/firmware/ti-connectivity/wl128x-fw-4-sr.bin +lib/firmware/ti-connectivity/wl128x-fw-5-mr.bin +lib/firmware/ti-connectivity/wl128x-fw-5-plt.bin +lib/firmware/ti-connectivity/wl128x-fw-5-sr.bin lib/firmware/ti-connectivity/wl128x-fw-ap.bin +lib/firmware/ti-connectivity/wl128x-fw-plt-3.bin lib/firmware/ti-connectivity/wl128x-fw.bin +lib/firmware/ti-connectivity/wl128x-nvs.bin +lib/firmware/ti-connectivity/wl12xx-nvs.bin +lib/firmware/ti-connectivity/wl18xx-fw.bin lib/firmware/ti_3410.fw lib/firmware/ti_5052.fw #lib/firmware/tigon @@ -468,8 +626,10 @@ lib/firmware/ueagle-atm/eagleIV.fw #lib/firmware/usbdux/fx2-include.asm #lib/firmware/usbdux/usbdux_firmware.asm #lib/firmware/usbdux/usbduxfast_firmware.asm +#lib/firmware/usbdux/usbduxsigma_firmware.asm lib/firmware/usbdux_firmware.bin lib/firmware/usbduxfast_firmware.bin +lib/firmware/usbduxsigma_firmware.bin lib/firmware/v4l-cx231xx-avcore-01.fw lib/firmware/v4l-cx23418-apu.fw lib/firmware/v4l-cx23418-cpu.fw diff --git a/config/rootfiles/common/linux-libc-header b/config/rootfiles/common/linux-libc-header deleted file mode 100644 index 4fbe3e0..0000000 --- a/config/rootfiles/common/linux-libc-header +++ /dev/null @@ -1,1745 +0,0 @@ -#usr/include/asm -#usr/include/asm/8253pit.h -#usr/include/asm/a.out.h -#usr/include/asm/agp.h -#usr/include/asm/apic.h -#usr/include/asm/apicdef.h -#usr/include/asm/arch_hooks.h -#usr/include/asm/atomic.h -#usr/include/asm/bitops.h -#usr/include/asm/boot.h -#usr/include/asm/byteorder.h -#usr/include/asm/cache.h -#usr/include/asm/cacheflush.h -#usr/include/asm/checksum.h -#usr/include/asm/cpu.h -#usr/include/asm/cpufeature.h -#usr/include/asm/debugreg.h -#usr/include/asm/desc.h -#usr/include/asm/dma.h -#usr/include/asm/e820.h -#usr/include/asm/elf.h -#usr/include/asm/errno.h -#usr/include/asm/fcntl.h -#usr/include/asm/fixmap.h -#usr/include/asm/floppy.h -#usr/include/asm/genapic.h -#usr/include/asm/hardirq.h -#usr/include/asm/hdreg.h -#usr/include/asm/hw_irq.h -#usr/include/asm/i8259.h -#usr/include/asm/init.h -#usr/include/asm/io.h -#usr/include/asm/io_apic.h -#usr/include/asm/ioctl.h -#usr/include/asm/ioctls.h -#usr/include/asm/ipc.h -#usr/include/asm/ipcbuf.h -#usr/include/asm/irq.h -#usr/include/asm/kdebug.h -#usr/include/asm/kprobes.h -#usr/include/asm/ldt.h -#usr/include/asm/linkage.h -#usr/include/asm/mach-bigsmp -#usr/include/asm/mach-bigsmp/mach_apic.h -#usr/include/asm/mach-bigsmp/mach_apicdef.h -#usr/include/asm/mach-bigsmp/mach_ipi.h -#usr/include/asm/mach-bigsmp/mach_mpspec.h -#usr/include/asm/mach-default -#usr/include/asm/mach-default/apm.h -#usr/include/asm/mach-default/bios_ebda.h -#usr/include/asm/mach-default/do_timer.h -#usr/include/asm/mach-default/entry_arch.h -#usr/include/asm/mach-default/io_ports.h -#usr/include/asm/mach-default/irq_vectors.h -#usr/include/asm/mach-default/mach_apic.h -#usr/include/asm/mach-default/mach_apicdef.h -#usr/include/asm/mach-default/mach_ipi.h -#usr/include/asm/mach-default/mach_mpparse.h -#usr/include/asm/mach-default/mach_mpspec.h -#usr/include/asm/mach-default/mach_reboot.h -#usr/include/asm/mach-default/mach_time.h -#usr/include/asm/mach-default/mach_timer.h -#usr/include/asm/mach-default/mach_traps.h -#usr/include/asm/mach-default/mach_wakecpu.h -#usr/include/asm/mach-default/pci-functions.h -#usr/include/asm/mach-default/setup_arch_post.h -#usr/include/asm/mach-default/setup_arch_pre.h -#usr/include/asm/mach-default/smpboot_hooks.h -#usr/include/asm/mach-es7000 -#usr/include/asm/mach-es7000/mach_apic.h -#usr/include/asm/mach-es7000/mach_apicdef.h -#usr/include/asm/mach-es7000/mach_ipi.h -#usr/include/asm/mach-es7000/mach_mpparse.h -#usr/include/asm/mach-es7000/mach_mpspec.h -#usr/include/asm/mach-es7000/mach_wakecpu.h -#usr/include/asm/mach-generic -#usr/include/asm/mach-generic/mach_apic.h -#usr/include/asm/mach-generic/mach_apicdef.h -#usr/include/asm/mach-generic/mach_ipi.h -#usr/include/asm/mach-generic/mach_mpparse.h -#usr/include/asm/mach-generic/mach_mpspec.h -#usr/include/asm/mach-numaq -#usr/include/asm/mach-numaq/mach_apic.h -#usr/include/asm/mach-numaq/mach_apicdef.h -#usr/include/asm/mach-numaq/mach_ipi.h -#usr/include/asm/mach-numaq/mach_mpparse.h -#usr/include/asm/mach-numaq/mach_mpspec.h -#usr/include/asm/mach-numaq/mach_wakecpu.h -#usr/include/asm/mach-summit -#usr/include/asm/mach-summit/mach_apic.h -#usr/include/asm/mach-summit/mach_apicdef.h -#usr/include/asm/mach-summit/mach_ipi.h -#usr/include/asm/mach-summit/mach_mpparse.h -#usr/include/asm/mach-summit/mach_mpspec.h -#usr/include/asm/mach-visws -#usr/include/asm/mach-visws/cobalt.h -#usr/include/asm/mach-visws/do_timer.h -#usr/include/asm/mach-visws/entry_arch.h -#usr/include/asm/mach-visws/irq_vectors.h -#usr/include/asm/mach-visws/lithium.h -#usr/include/asm/mach-visws/mach_apic.h -#usr/include/asm/mach-visws/mach_apicdef.h -#usr/include/asm/mach-visws/piix4.h -#usr/include/asm/mach-visws/setup_arch_post.h -#usr/include/asm/mach-visws/setup_arch_pre.h -#usr/include/asm/mach-visws/smpboot_hooks.h -#usr/include/asm/mach-voyager -#usr/include/asm/mach-voyager/do_timer.h -#usr/include/asm/mach-voyager/entry_arch.h -#usr/include/asm/mach-voyager/irq_vectors.h -#usr/include/asm/mach-voyager/setup_arch_post.h -#usr/include/asm/mach-voyager/setup_arch_pre.h -#usr/include/asm/math_emu.h -#usr/include/asm/mca.h -#usr/include/asm/mca_dma.h -#usr/include/asm/mman.h -#usr/include/asm/mmu.h -#usr/include/asm/mmu_context.h -#usr/include/asm/mmx.h -#usr/include/asm/module.h -#usr/include/asm/mpspec.h -#usr/include/asm/mpspec_def.h -#usr/include/asm/msgbuf.h -#usr/include/asm/msr.h -#usr/include/asm/mtrr.h -#usr/include/asm/namei.h -#usr/include/asm/nmi.h -#usr/include/asm/node.h -#usr/include/asm/numaq.h -#usr/include/asm/numnodes.h -#usr/include/asm/page.h -#usr/include/asm/param.h -#usr/include/asm/parport.h -#usr/include/asm/pgalloc.h -#usr/include/asm/poll.h -#usr/include/asm/posix_types.h -#usr/include/asm/processor.h -#usr/include/asm/ptrace.h -#usr/include/asm/rwlock.h -#usr/include/asm/segment.h -#usr/include/asm/semaphore.h -#usr/include/asm/sembuf.h -#usr/include/asm/serial.h -#usr/include/asm/shmbuf.h -#usr/include/asm/shmparam.h -#usr/include/asm/sigcontext.h -#usr/include/asm/siginfo.h -#usr/include/asm/socket.h -#usr/include/asm/sockios.h -#usr/include/asm/spinlock.h -#usr/include/asm/srat.h -#usr/include/asm/stat.h -#usr/include/asm/suspend.h -#usr/include/asm/system.h -#usr/include/asm/termbits.h -#usr/include/asm/termios.h -#usr/include/asm/timer.h -#usr/include/asm/timex.h -#usr/include/asm/tlbflush.h -#usr/include/asm/types.h -#usr/include/asm/ucontext.h -#usr/include/asm/unaligned.h -#usr/include/asm/unistd.h -#usr/include/asm/user.h -#usr/include/asm/vga.h -#usr/include/asm/vic.h -#usr/include/asm/vm86.h -#usr/include/asm/voyager.h -#usr/include/linux -#usr/include/linux/8250_pci.h -#usr/include/linux/a.out.h -#usr/include/linux/acct.h -#usr/include/linux/acpi.h -#usr/include/linux/adb.h -#usr/include/linux/adfs_fs.h -#usr/include/linux/adfs_fs_sb.h -#usr/include/linux/affs_fs.h -#usr/include/linux/affs_hardblocks.h -#usr/include/linux/agpgart.h -#usr/include/linux/aio.h -#usr/include/linux/aio_abi.h -#usr/include/linux/amifd.h -#usr/include/linux/amifdreg.h -#usr/include/linux/amigaffs.h -#usr/include/linux/apm_bios.h -#usr/include/linux/ata.h -#usr/include/linux/atalk.h -#usr/include/linux/atm.h -#usr/include/linux/atm_eni.h -#usr/include/linux/atm_he.h -#usr/include/linux/atm_idt77105.h -#usr/include/linux/atm_nicstar.h -#usr/include/linux/atm_suni.h -#usr/include/linux/atm_tcp.h -#usr/include/linux/atm_zatm.h -#usr/include/linux/atmapi.h -#usr/include/linux/atmarp.h -#usr/include/linux/atmbr2684.h -#usr/include/linux/atmclip.h -#usr/include/linux/atmdev.h -#usr/include/linux/atmioc.h -#usr/include/linux/atmlec.h -#usr/include/linux/atmmpc.h -#usr/include/linux/atmppp.h -#usr/include/linux/atmsap.h -#usr/include/linux/atmsvc.h -#usr/include/linux/audit.h -#usr/include/linux/auto_fs.h -#usr/include/linux/auto_fs4.h -#usr/include/linux/autoconf.h -#usr/include/linux/awe_voice.h -#usr/include/linux/ax25.h -#usr/include/linux/b1lli.h -#usr/include/linux/backing-dev.h -#usr/include/linux/backlight.h -#usr/include/linux/baycom.h -#usr/include/linux/bcd.h -#usr/include/linux/bfs_fs.h -#usr/include/linux/binfmts.h -#usr/include/linux/bitmap.h -#usr/include/linux/bitops.h -#usr/include/linux/blkpg.h -#usr/include/linux/blockgroup_lock.h -#usr/include/linux/bootmem.h -#usr/include/linux/bpqether.h -#usr/include/linux/byteorder -#usr/include/linux/byteorder/big_endian.h -#usr/include/linux/byteorder/generic.h -#usr/include/linux/byteorder/little_endian.h -#usr/include/linux/byteorder/pdp_endian.h -#usr/include/linux/byteorder/swab.h -#usr/include/linux/byteorder/swabb.h -#usr/include/linux/cache.h -#usr/include/linux/capability.h -#usr/include/linux/capi.h -#usr/include/linux/cciss_ioctl.h -#usr/include/linux/cd1400.h -#usr/include/linux/cdk.h -#usr/include/linux/cdrom.h -#usr/include/linux/circ_buf.h -#usr/include/linux/cobalt-nvram.h -#usr/include/linux/coda.h -#usr/include/linux/coda_proc.h -#usr/include/linux/coda_psdev.h -#usr/include/linux/coff.h -#usr/include/linux/com20020.h -#usr/include/linux/compat.h -#usr/include/linux/compat_ioctl.h -#usr/include/linux/compiler.h -#usr/include/linux/comstats.h -#usr/include/linux/config.h -#usr/include/linux/console.h -#usr/include/linux/console_struct.h -#usr/include/linux/consolemap.h -#usr/include/linux/cpu.h -#usr/include/linux/cpufreq.h -#usr/include/linux/cramfs_fs.h -#usr/include/linux/cramfs_fs_sb.h -#usr/include/linux/crc32.h -#usr/include/linux/crypto.h -#usr/include/linux/ctype.h -#usr/include/linux/cuda.h -#usr/include/linux/cyclades.h -#usr/include/linux/cycx_cfm.h -#usr/include/linux/cycx_drv.h -#usr/include/linux/cycx_x25.h -#usr/include/linux/devfs_fs.h -#usr/include/linux/devfs_fs_kernel.h -#usr/include/linux/device-mapper.h -#usr/include/linux/device.h -#usr/include/linux/devpts_fs.h -#usr/include/linux/dirent.h -#usr/include/linux/divert.h -#usr/include/linux/dm-ioctl.h -#usr/include/linux/dn.h -#usr/include/linux/dnotify.h -#usr/include/linux/dqblk_v1.h -#usr/include/linux/dqblk_v2.h -#usr/include/linux/dqblk_xfs.h -#usr/include/linux/dtlk.h -#usr/include/linux/dvb -#usr/include/linux/dvb/audio.h -#usr/include/linux/dvb/ca.h -#usr/include/linux/dvb/dmx.h -#usr/include/linux/dvb/frontend.h -#usr/include/linux/dvb/net.h -#usr/include/linux/dvb/osd.h -#usr/include/linux/dvb/version.h -#usr/include/linux/dvb/video.h -#usr/include/linux/eeprom.h -#usr/include/linux/efi.h -#usr/include/linux/efs_dir.h -#usr/include/linux/efs_fs.h -#usr/include/linux/efs_fs_i.h -#usr/include/linux/efs_fs_sb.h -#usr/include/linux/efs_vh.h -#usr/include/linux/eisa.h -#usr/include/linux/elevator.h -#usr/include/linux/elf-fdpic.h -#usr/include/linux/elf.h -#usr/include/linux/elfcore.h -#usr/include/linux/err.h -#usr/include/linux/err_kernel_only.h -#usr/include/linux/errno.h -#usr/include/linux/errqueue.h -#usr/include/linux/ethtool.h -#usr/include/linux/eventpoll.h -#usr/include/linux/ext2_fs.h -#usr/include/linux/ext3_fs.h -#usr/include/linux/ext3_jbd.h -#usr/include/linux/fadvise.h -#usr/include/linux/fb.h -#usr/include/linux/fcntl.h -#usr/include/linux/fd.h -#usr/include/linux/fd1772.h -#usr/include/linux/fdreg.h -#usr/include/linux/file.h -#usr/include/linux/filter.h -#usr/include/linux/firmware.h -#usr/include/linux/flat.h -#usr/include/linux/font.h -#usr/include/linux/fs.h -#usr/include/linux/fs_struct.h -#usr/include/linux/ftape-header-segment.h -#usr/include/linux/ftape-vendors.h -#usr/include/linux/ftape.h -#usr/include/linux/futex.h -#usr/include/linux/gameport.h -#usr/include/linux/gen_stats.h -#usr/include/linux/generic_serial.h -#usr/include/linux/genhd.h -#usr/include/linux/gfp.h -#usr/include/linux/hash.h -#usr/include/linux/hayesesp.h -#usr/include/linux/hdlc -#usr/include/linux/hdlc.h -#usr/include/linux/hdlc/ioctl.h -#usr/include/linux/hdlcdrv.h -#usr/include/linux/hdreg.h -#usr/include/linux/hdsmart.h -#usr/include/linux/hiddev.h -#usr/include/linux/highuid.h -#usr/include/linux/hpfs_fs.h -#usr/include/linux/hysdn_if.h -#usr/include/linux/i2c-algo-bit.h -#usr/include/linux/i2c-algo-ite.h -#usr/include/linux/i2c-algo-pcf.h -#usr/include/linux/i2c-algo-sgi.h -#usr/include/linux/i2c-algo-sibyte.h -#usr/include/linux/i2c-dev.h -#usr/include/linux/i2c-id.h -#usr/include/linux/i2c-sensor.h -#usr/include/linux/i2c-vid.h -#usr/include/linux/i2c.h -#usr/include/linux/i2o-dev.h -#usr/include/linux/i8k.h -#usr/include/linux/ibmtr.h -#usr/include/linux/icmp.h -#usr/include/linux/icmpv6.h -#usr/include/linux/ide.h -#usr/include/linux/idr.h -#usr/include/linux/if.h -#usr/include/linux/if_arcnet.h -#usr/include/linux/if_arp.h -#usr/include/linux/if_bonding.h -#usr/include/linux/if_bridge.h -#usr/include/linux/if_cablemodem.h -#usr/include/linux/if_ec.h -#usr/include/linux/if_eql.h -#usr/include/linux/if_ether.h -#usr/include/linux/if_fc.h -#usr/include/linux/if_fddi.h -#usr/include/linux/if_frad.h -#usr/include/linux/if_hippi.h -#usr/include/linux/if_infiniband.h -#usr/include/linux/if_ltalk.h -#usr/include/linux/if_packet.h -#usr/include/linux/if_plip.h -#usr/include/linux/if_ppp.h -#usr/include/linux/if_pppox.h -#usr/include/linux/if_shaper.h -#usr/include/linux/if_slip.h -#usr/include/linux/if_strip.h -#usr/include/linux/if_tr.h -#usr/include/linux/if_tun.h -#usr/include/linux/if_tunnel.h -#usr/include/linux/if_vlan.h -#usr/include/linux/if_wanpipe.h -#usr/include/linux/if_wanpipe_common.h -#usr/include/linux/igmp.h -#usr/include/linux/in.h -#usr/include/linux/in6.h -#usr/include/linux/in_route.h -#usr/include/linux/inetdevice.h -#usr/include/linux/init.h -#usr/include/linux/init_task.h -#usr/include/linux/initrd.h -#usr/include/linux/inotify.h -#usr/include/linux/input.h -#usr/include/linux/interrupt.h -#usr/include/linux/ioctl.h -#usr/include/linux/ioctl32.h -#usr/include/linux/ioport.h -#usr/include/linux/ip.h -#usr/include/linux/ip6_tunnel.h -#usr/include/linux/ip_mp_alg.h -#usr/include/linux/ipc.h -#usr/include/linux/ipmi.h -#usr/include/linux/ipmi_msgdefs.h -#usr/include/linux/ipmi_smi.h -#usr/include/linux/ipsec.h -#usr/include/linux/ipv6.h -#usr/include/linux/ipv6_route.h -#usr/include/linux/ipx.h -#usr/include/linux/irda.h -#usr/include/linux/irq.h -#usr/include/linux/irq_cpustat.h -#usr/include/linux/isapnp.h -#usr/include/linux/isdn -#usr/include/linux/isdn.h -#usr/include/linux/isdn/capicmd.h -#usr/include/linux/isdn/capilli.h -#usr/include/linux/isdn/capiutil.h -#usr/include/linux/isdn/tpam.h -#usr/include/linux/isdn_divertif.h -#usr/include/linux/isdn_ppp.h -#usr/include/linux/isdnif.h -#usr/include/linux/isicom.h -#usr/include/linux/iso_fs.h -#usr/include/linux/istallion.h -#usr/include/linux/ite_gpio.h -#usr/include/linux/ixjuser.h -#usr/include/linux/jbd.h -#usr/include/linux/jffs.h -#usr/include/linux/jffs2.h -#usr/include/linux/jffs2_fs_sb.h -#usr/include/linux/jhash.h -#usr/include/linux/jiffies.h -#usr/include/linux/journal-head.h -#usr/include/linux/joystick.h -#usr/include/linux/kallsyms.h -#usr/include/linux/kbd_diacr.h -#usr/include/linux/kbd_kern.h -#usr/include/linux/kd.h -#usr/include/linux/kdev_t.h -#usr/include/linux/kernel.h -#usr/include/linux/kernel_stat.h -#usr/include/linux/kernelcapi.h -#usr/include/linux/keyboard.h -#usr/include/linux/keyctl.h -#usr/include/linux/kmalloc_sizes.h -#usr/include/linux/kmod.h -#usr/include/linux/kprobes.h -#usr/include/linux/lapb.h -#usr/include/linux/lcd.h -#usr/include/linux/libata.h -#usr/include/linux/libps2.h -#usr/include/linux/limits.h -#usr/include/linux/linkage.h -#usr/include/linux/linux_logo.h -#usr/include/linux/list.h -#usr/include/linux/llc.h -#usr/include/linux/lockd -#usr/include/linux/lockd/bind.h -#usr/include/linux/lockd/debug.h -#usr/include/linux/lockd/nlm.h -#usr/include/linux/lockd/share.h -#usr/include/linux/lockd/sm_inter.h -#usr/include/linux/lockd/xdr.h -#usr/include/linux/lockd/xdr4.h -#usr/include/linux/loop.h -#usr/include/linux/lp.h -#usr/include/linux/major.h -#usr/include/linux/matroxfb.h -#usr/include/linux/mbcache.h -#usr/include/linux/mc6821.h -#usr/include/linux/mca-legacy.h -#usr/include/linux/mca.h -#usr/include/linux/mempool.h -#usr/include/linux/meye.h -#usr/include/linux/mii.h -#usr/include/linux/minix_fs.h -#usr/include/linux/miscdevice.h -#usr/include/linux/mm.h -#usr/include/linux/mm_inline.h -#usr/include/linux/mman.h -#usr/include/linux/mod_devicetable.h -#usr/include/linux/module.h -#usr/include/linux/moduleloader.h -#usr/include/linux/moduleparam.h -#usr/include/linux/mount.h -#usr/include/linux/mroute.h -#usr/include/linux/msdos_fs.h -#usr/include/linux/msg.h -#usr/include/linux/mtd -#usr/include/linux/mtd/blktrans.h -#usr/include/linux/mtd/cfi.h -#usr/include/linux/mtd/cfi_endian.h -#usr/include/linux/mtd/compatmac.h -#usr/include/linux/mtd/concat.h -#usr/include/linux/mtd/doc2000.h -#usr/include/linux/mtd/flashchip.h -#usr/include/linux/mtd/ftl.h -#usr/include/linux/mtd/gen_probe.h -#usr/include/linux/mtd/iflash.h -#usr/include/linux/mtd/jedec.h -#usr/include/linux/mtd/map.h -#usr/include/linux/mtd/nand.h -#usr/include/linux/mtd/nand_ecc.h -#usr/include/linux/mtd/nftl.h -#usr/include/linux/mtd/partitions.h -#usr/include/linux/mtd/pmc551.h -#usr/include/linux/mtio.h -#usr/include/linux/n_r3964.h -#usr/include/linux/namei.h -#usr/include/linux/nbd.h -#usr/include/linux/ncp.h -#usr/include/linux/ncp_fs.h -#usr/include/linux/ncp_mount.h -#usr/include/linux/ncp_no.h -#usr/include/linux/net.h -#usr/include/linux/netdevice.h -#usr/include/linux/netfilter.h -#usr/include/linux/netfilter_arp -#usr/include/linux/netfilter_arp.h -#usr/include/linux/netfilter_arp/arp_tables.h -#usr/include/linux/netfilter_arp/arpt_mangle.h -#usr/include/linux/netfilter_bridge -#usr/include/linux/netfilter_bridge.h -#usr/include/linux/netfilter_bridge/ebt_802_3.h -#usr/include/linux/netfilter_bridge/ebt_among.h -#usr/include/linux/netfilter_bridge/ebt_arp.h -#usr/include/linux/netfilter_bridge/ebt_arpreply.h -#usr/include/linux/netfilter_bridge/ebt_ip.h -#usr/include/linux/netfilter_bridge/ebt_limit.h -#usr/include/linux/netfilter_bridge/ebt_log.h -#usr/include/linux/netfilter_bridge/ebt_mark_m.h -#usr/include/linux/netfilter_bridge/ebt_mark_t.h -#usr/include/linux/netfilter_bridge/ebt_nat.h -#usr/include/linux/netfilter_bridge/ebt_pkttype.h -#usr/include/linux/netfilter_bridge/ebt_redirect.h -#usr/include/linux/netfilter_bridge/ebt_stp.h -#usr/include/linux/netfilter_bridge/ebt_ulog.h -#usr/include/linux/netfilter_bridge/ebt_vlan.h -#usr/include/linux/netfilter_bridge/ebtables.h -#usr/include/linux/netfilter_decnet.h -#usr/include/linux/netfilter_ipv4 -#usr/include/linux/netfilter_ipv4.h -#usr/include/linux/netfilter_ipv4/ip_conntrack.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_amanda.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_core.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_ftp.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_helper.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_icmp.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_irc.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_protocol.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_sctp.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_tcp.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_tftp.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_tuple.h -#usr/include/linux/netfilter_ipv4/ip_nat.h -#usr/include/linux/netfilter_ipv4/ip_nat_core.h -#usr/include/linux/netfilter_ipv4/ip_nat_helper.h -#usr/include/linux/netfilter_ipv4/ip_nat_protocol.h -#usr/include/linux/netfilter_ipv4/ip_nat_rule.h -#usr/include/linux/netfilter_ipv4/ip_queue.h -#usr/include/linux/netfilter_ipv4/ip_tables.h -#usr/include/linux/netfilter_ipv4/ipt_CLASSIFY.h -#usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h -#usr/include/linux/netfilter_ipv4/ipt_CONNMARK.h -#usr/include/linux/netfilter_ipv4/ipt_DSCP.h -#usr/include/linux/netfilter_ipv4/ipt_ECN.h -#usr/include/linux/netfilter_ipv4/ipt_LOG.h -#usr/include/linux/netfilter_ipv4/ipt_MARK.h -#usr/include/linux/netfilter_ipv4/ipt_REJECT.h -#usr/include/linux/netfilter_ipv4/ipt_SAME.h -#usr/include/linux/netfilter_ipv4/ipt_TCPMSS.h -#usr/include/linux/netfilter_ipv4/ipt_TOS.h -#usr/include/linux/netfilter_ipv4/ipt_ULOG.h -#usr/include/linux/netfilter_ipv4/ipt_addrtype.h -#usr/include/linux/netfilter_ipv4/ipt_ah.h -#usr/include/linux/netfilter_ipv4/ipt_comment.h -#usr/include/linux/netfilter_ipv4/ipt_connmark.h -#usr/include/linux/netfilter_ipv4/ipt_conntrack.h -#usr/include/linux/netfilter_ipv4/ipt_dscp.h -#usr/include/linux/netfilter_ipv4/ipt_ecn.h -#usr/include/linux/netfilter_ipv4/ipt_esp.h -#usr/include/linux/netfilter_ipv4/ipt_hashlimit.h -#usr/include/linux/netfilter_ipv4/ipt_helper.h -#usr/include/linux/netfilter_ipv4/ipt_iprange.h -#usr/include/linux/netfilter_ipv4/ipt_length.h -#usr/include/linux/netfilter_ipv4/ipt_limit.h -#usr/include/linux/netfilter_ipv4/ipt_mac.h -#usr/include/linux/netfilter_ipv4/ipt_mark.h -#usr/include/linux/netfilter_ipv4/ipt_multiport.h -#usr/include/linux/netfilter_ipv4/ipt_owner.h -#usr/include/linux/netfilter_ipv4/ipt_physdev.h -#usr/include/linux/netfilter_ipv4/ipt_pkttype.h -#usr/include/linux/netfilter_ipv4/ipt_realm.h -#usr/include/linux/netfilter_ipv4/ipt_recent.h -#usr/include/linux/netfilter_ipv4/ipt_sctp.h -#usr/include/linux/netfilter_ipv4/ipt_state.h -#usr/include/linux/netfilter_ipv4/ipt_tcpmss.h -#usr/include/linux/netfilter_ipv4/ipt_tos.h -#usr/include/linux/netfilter_ipv4/ipt_ttl.h -#usr/include/linux/netfilter_ipv4/listhelp.h -#usr/include/linux/netfilter_ipv4/lockhelp.h -#usr/include/linux/netfilter_ipv6 -#usr/include/linux/netfilter_ipv6.h -#usr/include/linux/netfilter_ipv6/ip6_tables.h -#usr/include/linux/netfilter_ipv6/ip6t_LOG.h -#usr/include/linux/netfilter_ipv6/ip6t_MARK.h -#usr/include/linux/netfilter_ipv6/ip6t_ah.h -#usr/include/linux/netfilter_ipv6/ip6t_esp.h -#usr/include/linux/netfilter_ipv6/ip6t_frag.h -#usr/include/linux/netfilter_ipv6/ip6t_hl.h -#usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h -#usr/include/linux/netfilter_ipv6/ip6t_length.h -#usr/include/linux/netfilter_ipv6/ip6t_limit.h -#usr/include/linux/netfilter_ipv6/ip6t_mac.h -#usr/include/linux/netfilter_ipv6/ip6t_mark.h -#usr/include/linux/netfilter_ipv6/ip6t_multiport.h -#usr/include/linux/netfilter_ipv6/ip6t_opts.h -#usr/include/linux/netfilter_ipv6/ip6t_owner.h -#usr/include/linux/netfilter_ipv6/ip6t_physdev.h -#usr/include/linux/netfilter_ipv6/ip6t_rt.h -#usr/include/linux/netlink.h -#usr/include/linux/netrom.h -#usr/include/linux/nfs.h -#usr/include/linux/nfs2.h -#usr/include/linux/nfs3.h -#usr/include/linux/nfs4.h -#usr/include/linux/nfs4_mount.h -#usr/include/linux/nfs_fs.h -#usr/include/linux/nfs_fs_i.h -#usr/include/linux/nfs_fs_sb.h -#usr/include/linux/nfs_idmap.h -#usr/include/linux/nfs_mount.h -#usr/include/linux/nfs_xdr.h -#usr/include/linux/nfsd -#usr/include/linux/nfsd/const.h -#usr/include/linux/nfsd/debug.h -#usr/include/linux/nfsd/export.h -#usr/include/linux/nfsd/interface.h -#usr/include/linux/nfsd/nfsd.h -#usr/include/linux/nfsd/nfsfh.h -#usr/include/linux/nfsd/state.h -#usr/include/linux/nfsd/stats.h -#usr/include/linux/nfsd/syscall.h -#usr/include/linux/nfsd/xdr.h -#usr/include/linux/nfsd/xdr3.h -#usr/include/linux/nfsd/xdr4.h -#usr/include/linux/nls.h -#usr/include/linux/nmi.h -#usr/include/linux/node.h -#usr/include/linux/notifier.h -#usr/include/linux/nubus.h -#usr/include/linux/numa.h -#usr/include/linux/nvram.h -#usr/include/linux/openprom_fs.h -#usr/include/linux/oprofile.h -#usr/include/linux/pagemap.h -#usr/include/linux/pagevec.h -#usr/include/linux/param.h -#usr/include/linux/parport.h -#usr/include/linux/parport_pc.h -#usr/include/linux/parser.h -#usr/include/linux/patchkey.h -#usr/include/linux/pci-dynids.h -#usr/include/linux/pci.h -#usr/include/linux/pci_ids.h -#usr/include/linux/pcieport_if.h -#usr/include/linux/percpu.h -#usr/include/linux/percpu_counter.h -#usr/include/linux/personality.h -#usr/include/linux/pfkeyv2.h -#usr/include/linux/pg.h -#usr/include/linux/pipe_fs_i.h -#usr/include/linux/pkt_cls.h -#usr/include/linux/pkt_sched.h -#usr/include/linux/pktcdvd.h -#usr/include/linux/pmu.h -#usr/include/linux/poll.h -#usr/include/linux/posix-timers.h -#usr/include/linux/posix_acl.h -#usr/include/linux/posix_acl_xattr.h -#usr/include/linux/posix_types.h -#usr/include/linux/ppdev.h -#usr/include/linux/ppp-comp.h -#usr/include/linux/ppp_channel.h -#usr/include/linux/ppp_defs.h -#usr/include/linux/prctl.h -#usr/include/linux/preempt.h -#usr/include/linux/prefetch.h -#usr/include/linux/proc_fs.h -#usr/include/linux/ps2esdi.h -#usr/include/linux/ptrace.h -#usr/include/linux/qic117.h -#usr/include/linux/qnx4_fs.h -#usr/include/linux/qnxtypes.h -#usr/include/linux/quota.h -#usr/include/linux/quotaio_v1.h -#usr/include/linux/quotaio_v2.h -#usr/include/linux/radeonfb.h -#usr/include/linux/raid -#usr/include/linux/raid/linear.h -#usr/include/linux/raid/md.h -#usr/include/linux/raid/md_p.h -#usr/include/linux/raid/md_u.h -#usr/include/linux/raid/multipath.h -#usr/include/linux/raid/raid0.h -#usr/include/linux/raid/raid1.h -#usr/include/linux/raid/raid5.h -#usr/include/linux/raid/xor.h -#usr/include/linux/random.h -#usr/include/linux/raw.h -#usr/include/linux/rbtree.h -#usr/include/linux/reboot.h -#usr/include/linux/reiserfs_acl.h -#usr/include/linux/reiserfs_fs.h -#usr/include/linux/reiserfs_xattr.h -#usr/include/linux/resource.h -#usr/include/linux/romfs_fs.h -#usr/include/linux/root_dev.h -#usr/include/linux/rose.h -#usr/include/linux/route.h -#usr/include/linux/rtc.h -#usr/include/linux/rtnetlink.h -#usr/include/linux/sc26198.h -#usr/include/linux/scc.h -#usr/include/linux/sched.h -#usr/include/linux/sctp.h -#usr/include/linux/scx200.h -#usr/include/linux/scx200_gpio.h -#usr/include/linux/sdla.h -#usr/include/linux/sdla_asy.h -#usr/include/linux/sdla_chdlc.h -#usr/include/linux/sdla_fr.h -#usr/include/linux/sdla_ppp.h -#usr/include/linux/sdla_x25.h -#usr/include/linux/sdladrv.h -#usr/include/linux/sdlapci.h -#usr/include/linux/sdlasfm.h -#usr/include/linux/securebits.h -#usr/include/linux/security.h -#usr/include/linux/selection.h -#usr/include/linux/selinux_netlink.h -#usr/include/linux/sem.h -#usr/include/linux/seqlock.h -#usr/include/linux/serial.h -#usr/include/linux/serial167.h -#usr/include/linux/serialP.h -#usr/include/linux/serial_8250.h -#usr/include/linux/serial_core.h -#usr/include/linux/serial_reg.h -#usr/include/linux/serio.h -#usr/include/linux/shm.h -#usr/include/linux/siginfo.h -#usr/include/linux/signal.h -#usr/include/linux/skbuff.h -#usr/include/linux/smb.h -#usr/include/linux/smb_fs.h -#usr/include/linux/smb_mount.h -#usr/include/linux/smbno.h -#usr/include/linux/smp_lock.h -#usr/include/linux/snmp.h -#usr/include/linux/socket.h -#usr/include/linux/sockios.h -#usr/include/linux/som.h -#usr/include/linux/sonet.h -#usr/include/linux/sonypi.h -#usr/include/linux/sound.h -#usr/include/linux/soundcard.h -#usr/include/linux/spinlock.h -#usr/include/linux/stallion.h -#usr/include/linux/stddef.h -#usr/include/linux/stringify.h -#usr/include/linux/sunrpc -#usr/include/linux/sunrpc/cache.h -#usr/include/linux/sunrpc/clnt.h -#usr/include/linux/sunrpc/debug.h -#usr/include/linux/sunrpc/gss_asn1.h -#usr/include/linux/sunrpc/gss_krb5.h -#usr/include/linux/sunrpc/gss_spkm3.h -#usr/include/linux/sunrpc/sched.h -#usr/include/linux/sunrpc/stats.h -#usr/include/linux/sunrpc/svc.h -#usr/include/linux/sunrpc/svcsock.h -#usr/include/linux/sunrpc/timer.h -#usr/include/linux/sunrpc/types.h -#usr/include/linux/sunrpc/xprt.h -#usr/include/linux/superhyway.h -#usr/include/linux/suspend.h -#usr/include/linux/swap.h -#usr/include/linux/swapops.h -#usr/include/linux/synclink.h -#usr/include/linux/sys.h -#usr/include/linux/syscalls.h -#usr/include/linux/sysctl.h -#usr/include/linux/sysdev.h -#usr/include/linux/sysfs.h -#usr/include/linux/sysrq.h -#usr/include/linux/sysv_fs.h -#usr/include/linux/tc_act -#usr/include/linux/tc_act/tc_defact.h -#usr/include/linux/tc_act/tc_gact.h -#usr/include/linux/tc_act/tc_ipt.h -#usr/include/linux/tc_act/tc_mirred.h -#usr/include/linux/tc_act/tc_pedit.h -#usr/include/linux/tc_ematch -#usr/include/linux/tc_ematch/tc_em_cmp.h -#usr/include/linux/tc_ematch/tc_em_meta.h -#usr/include/linux/tc_ematch/tc_em_nbyte.h -#usr/include/linux/tcp.h -#usr/include/linux/tcp_diag.h -#usr/include/linux/telephony.h -#usr/include/linux/termios.h -#usr/include/linux/threads.h -#usr/include/linux/ticable.h -#usr/include/linux/time.h -#usr/include/linux/times.h -#usr/include/linux/timex.h -#usr/include/linux/tiocl.h -#usr/include/linux/toshiba.h -#usr/include/linux/tty.h -#usr/include/linux/types.h -#usr/include/linux/udf_fs.h -#usr/include/linux/udf_fs_i.h -#usr/include/linux/udf_fs_sb.h -#usr/include/linux/udp.h -#usr/include/linux/ufs_fs.h -#usr/include/linux/uinput.h -#usr/include/linux/uio.h -#usr/include/linux/ultrasound.h -#usr/include/linux/umem.h -#usr/include/linux/un.h -#usr/include/linux/unistd.h -#usr/include/linux/usb.h -#usr/include/linux/usb_cdc.h -#usr/include/linux/usb_ch9.h -#usr/include/linux/usb_gadgetfs.h -#usr/include/linux/usbdevice_fs.h -#usr/include/linux/user.h -#usr/include/linux/utime.h -#usr/include/linux/uts.h -#usr/include/linux/utsname.h -#usr/include/linux/version.h -#usr/include/linux/video_decoder.h -#usr/include/linux/video_encoder.h -#usr/include/linux/videodev.h -#usr/include/linux/videodev2.h -#usr/include/linux/videotext.h -#usr/include/linux/vmalloc.h -#usr/include/linux/vt.h -#usr/include/linux/vt_buffer.h -#usr/include/linux/vt_kern.h -#usr/include/linux/wait.h -#usr/include/linux/wanpipe.h -#usr/include/linux/wanrouter.h -#usr/include/linux/watchdog.h -#usr/include/linux/wavefront.h -#usr/include/linux/wireless.h -#usr/include/linux/workqueue.h -#usr/include/linux/x25.h -#usr/include/linux/xattr.h -#usr/include/linux/xattr_acl.h -#usr/include/linux/xfrm.h -#usr/include/linux/yam.h -#usr/include/linux/zftape.h -#usr/include/linux/zorro.h -#usr/include/linux/zorro_ids.h -#opt/MACHINE-uClibc -#opt/MACHINE-uClibc/usr -#opt/MACHINE-uClibc/usr/include -#opt/MACHINE-uClibc/usr/include/asm -#opt/MACHINE-uClibc/usr/include/asm/8253pit.h -#opt/MACHINE-uClibc/usr/include/asm/a.out.h -#opt/MACHINE-uClibc/usr/include/asm/agp.h -#opt/MACHINE-uClibc/usr/include/asm/apic.h -#opt/MACHINE-uClibc/usr/include/asm/apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/arch_hooks.h -#opt/MACHINE-uClibc/usr/include/asm/atomic.h -#opt/MACHINE-uClibc/usr/include/asm/bitops.h -#opt/MACHINE-uClibc/usr/include/asm/boot.h -#opt/MACHINE-uClibc/usr/include/asm/byteorder.h -#opt/MACHINE-uClibc/usr/include/asm/cache.h -#opt/MACHINE-uClibc/usr/include/asm/cacheflush.h -#opt/MACHINE-uClibc/usr/include/asm/checksum.h -#opt/MACHINE-uClibc/usr/include/asm/cpu.h -#opt/MACHINE-uClibc/usr/include/asm/cpufeature.h -#opt/MACHINE-uClibc/usr/include/asm/debugreg.h -#opt/MACHINE-uClibc/usr/include/asm/desc.h -#opt/MACHINE-uClibc/usr/include/asm/dma.h -#opt/MACHINE-uClibc/usr/include/asm/e820.h -#opt/MACHINE-uClibc/usr/include/asm/elf.h -#opt/MACHINE-uClibc/usr/include/asm/errno.h -#opt/MACHINE-uClibc/usr/include/asm/fcntl.h -#opt/MACHINE-uClibc/usr/include/asm/fixmap.h -#opt/MACHINE-uClibc/usr/include/asm/floppy.h -#opt/MACHINE-uClibc/usr/include/asm/genapic.h -#opt/MACHINE-uClibc/usr/include/asm/hardirq.h -#opt/MACHINE-uClibc/usr/include/asm/hdreg.h -#opt/MACHINE-uClibc/usr/include/asm/hw_irq.h -#opt/MACHINE-uClibc/usr/include/asm/i8259.h -#opt/MACHINE-uClibc/usr/include/asm/init.h -#opt/MACHINE-uClibc/usr/include/asm/io.h -#opt/MACHINE-uClibc/usr/include/asm/io_apic.h -#opt/MACHINE-uClibc/usr/include/asm/ioctl.h -#opt/MACHINE-uClibc/usr/include/asm/ioctls.h -#opt/MACHINE-uClibc/usr/include/asm/ipc.h -#opt/MACHINE-uClibc/usr/include/asm/ipcbuf.h -#opt/MACHINE-uClibc/usr/include/asm/irq.h -#opt/MACHINE-uClibc/usr/include/asm/kdebug.h -#opt/MACHINE-uClibc/usr/include/asm/kprobes.h -#opt/MACHINE-uClibc/usr/include/asm/ldt.h -#opt/MACHINE-uClibc/usr/include/asm/linkage.h -#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp -#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default -#opt/MACHINE-uClibc/usr/include/asm/mach-default/apm.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/bios_ebda.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/do_timer.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/entry_arch.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/io_ports.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/irq_vectors.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_mpparse.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_reboot.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_time.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_timer.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_traps.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_wakecpu.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/pci-functions.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/setup_arch_post.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/setup_arch_pre.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/smpboot_hooks.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000 -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_mpparse.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_wakecpu.h -#opt/MACHINE-uClibc/usr/include/asm/mach-generic -#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_mpparse.h -#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_mpparse.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_wakecpu.h -#opt/MACHINE-uClibc/usr/include/asm/mach-summit -#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_mpparse.h -#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/cobalt.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/do_timer.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/entry_arch.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/irq_vectors.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/lithium.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/piix4.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/setup_arch_post.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/setup_arch_pre.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/smpboot_hooks.h -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/do_timer.h -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/entry_arch.h -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/irq_vectors.h -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/setup_arch_post.h -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/setup_arch_pre.h -#opt/MACHINE-uClibc/usr/include/asm/math_emu.h -#opt/MACHINE-uClibc/usr/include/asm/mca.h -#opt/MACHINE-uClibc/usr/include/asm/mca_dma.h -#opt/MACHINE-uClibc/usr/include/asm/mman.h -#opt/MACHINE-uClibc/usr/include/asm/mmu.h -#opt/MACHINE-uClibc/usr/include/asm/mmu_context.h -#opt/MACHINE-uClibc/usr/include/asm/mmx.h -#opt/MACHINE-uClibc/usr/include/asm/module.h -#opt/MACHINE-uClibc/usr/include/asm/mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mpspec_def.h -#opt/MACHINE-uClibc/usr/include/asm/msgbuf.h -#opt/MACHINE-uClibc/usr/include/asm/msr.h -#opt/MACHINE-uClibc/usr/include/asm/mtrr.h -#opt/MACHINE-uClibc/usr/include/asm/namei.h -#opt/MACHINE-uClibc/usr/include/asm/nmi.h -#opt/MACHINE-uClibc/usr/include/asm/node.h -#opt/MACHINE-uClibc/usr/include/asm/numaq.h -#opt/MACHINE-uClibc/usr/include/asm/numnodes.h -#opt/MACHINE-uClibc/usr/include/asm/page.h -#opt/MACHINE-uClibc/usr/include/asm/param.h -#opt/MACHINE-uClibc/usr/include/asm/parport.h -#opt/MACHINE-uClibc/usr/include/asm/pgalloc.h -#opt/MACHINE-uClibc/usr/include/asm/poll.h -#opt/MACHINE-uClibc/usr/include/asm/posix_types.h -#opt/MACHINE-uClibc/usr/include/asm/processor.h -#opt/MACHINE-uClibc/usr/include/asm/ptrace.h -#opt/MACHINE-uClibc/usr/include/asm/rwlock.h -#opt/MACHINE-uClibc/usr/include/asm/segment.h -#opt/MACHINE-uClibc/usr/include/asm/semaphore.h -#opt/MACHINE-uClibc/usr/include/asm/sembuf.h -#opt/MACHINE-uClibc/usr/include/asm/serial.h -#opt/MACHINE-uClibc/usr/include/asm/shmbuf.h -#opt/MACHINE-uClibc/usr/include/asm/shmparam.h -#opt/MACHINE-uClibc/usr/include/asm/sigcontext.h -#opt/MACHINE-uClibc/usr/include/asm/siginfo.h -#opt/MACHINE-uClibc/usr/include/asm/socket.h -#opt/MACHINE-uClibc/usr/include/asm/sockios.h -#opt/MACHINE-uClibc/usr/include/asm/spinlock.h -#opt/MACHINE-uClibc/usr/include/asm/srat.h -#opt/MACHINE-uClibc/usr/include/asm/stat.h -#opt/MACHINE-uClibc/usr/include/asm/suspend.h -#opt/MACHINE-uClibc/usr/include/asm/system.h -#opt/MACHINE-uClibc/usr/include/asm/termbits.h -#opt/MACHINE-uClibc/usr/include/asm/termios.h -#opt/MACHINE-uClibc/usr/include/asm/timer.h -#opt/MACHINE-uClibc/usr/include/asm/timex.h -#opt/MACHINE-uClibc/usr/include/asm/tlbflush.h -#opt/MACHINE-uClibc/usr/include/asm/types.h -#opt/MACHINE-uClibc/usr/include/asm/ucontext.h -#opt/MACHINE-uClibc/usr/include/asm/unaligned.h -#opt/MACHINE-uClibc/usr/include/asm/unistd.h -#opt/MACHINE-uClibc/usr/include/asm/user.h -#opt/MACHINE-uClibc/usr/include/asm/vga.h -#opt/MACHINE-uClibc/usr/include/asm/vic.h -#opt/MACHINE-uClibc/usr/include/asm/vm86.h -#opt/MACHINE-uClibc/usr/include/asm/voyager.h -#opt/MACHINE-uClibc/usr/include/linux -#opt/MACHINE-uClibc/usr/include/linux/8250_pci.h -#opt/MACHINE-uClibc/usr/include/linux/a.out.h -#opt/MACHINE-uClibc/usr/include/linux/acct.h -#opt/MACHINE-uClibc/usr/include/linux/acpi.h -#opt/MACHINE-uClibc/usr/include/linux/adb.h -#opt/MACHINE-uClibc/usr/include/linux/adfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/adfs_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/affs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/affs_hardblocks.h -#opt/MACHINE-uClibc/usr/include/linux/agpgart.h -#opt/MACHINE-uClibc/usr/include/linux/aio.h -#opt/MACHINE-uClibc/usr/include/linux/aio_abi.h -#opt/MACHINE-uClibc/usr/include/linux/amifd.h -#opt/MACHINE-uClibc/usr/include/linux/amifdreg.h -#opt/MACHINE-uClibc/usr/include/linux/amigaffs.h -#opt/MACHINE-uClibc/usr/include/linux/apm_bios.h -#opt/MACHINE-uClibc/usr/include/linux/ata.h -#opt/MACHINE-uClibc/usr/include/linux/atalk.h -#opt/MACHINE-uClibc/usr/include/linux/atm.h -#opt/MACHINE-uClibc/usr/include/linux/atm_eni.h -#opt/MACHINE-uClibc/usr/include/linux/atm_he.h -#opt/MACHINE-uClibc/usr/include/linux/atm_idt77105.h -#opt/MACHINE-uClibc/usr/include/linux/atm_nicstar.h -#opt/MACHINE-uClibc/usr/include/linux/atm_suni.h -#opt/MACHINE-uClibc/usr/include/linux/atm_tcp.h -#opt/MACHINE-uClibc/usr/include/linux/atm_zatm.h -#opt/MACHINE-uClibc/usr/include/linux/atmapi.h -#opt/MACHINE-uClibc/usr/include/linux/atmarp.h -#opt/MACHINE-uClibc/usr/include/linux/atmbr2684.h -#opt/MACHINE-uClibc/usr/include/linux/atmclip.h -#opt/MACHINE-uClibc/usr/include/linux/atmdev.h -#opt/MACHINE-uClibc/usr/include/linux/atmioc.h -#opt/MACHINE-uClibc/usr/include/linux/atmlec.h -#opt/MACHINE-uClibc/usr/include/linux/atmmpc.h -#opt/MACHINE-uClibc/usr/include/linux/atmppp.h -#opt/MACHINE-uClibc/usr/include/linux/atmsap.h -#opt/MACHINE-uClibc/usr/include/linux/atmsvc.h -#opt/MACHINE-uClibc/usr/include/linux/audit.h -#opt/MACHINE-uClibc/usr/include/linux/auto_fs.h -#opt/MACHINE-uClibc/usr/include/linux/auto_fs4.h -#opt/MACHINE-uClibc/usr/include/linux/autoconf.h -#opt/MACHINE-uClibc/usr/include/linux/awe_voice.h -#opt/MACHINE-uClibc/usr/include/linux/ax25.h -#opt/MACHINE-uClibc/usr/include/linux/b1lli.h -#opt/MACHINE-uClibc/usr/include/linux/backing-dev.h -#opt/MACHINE-uClibc/usr/include/linux/backlight.h -#opt/MACHINE-uClibc/usr/include/linux/baycom.h -#opt/MACHINE-uClibc/usr/include/linux/bcd.h -#opt/MACHINE-uClibc/usr/include/linux/bfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/binfmts.h -#opt/MACHINE-uClibc/usr/include/linux/bitmap.h -#opt/MACHINE-uClibc/usr/include/linux/bitops.h -#opt/MACHINE-uClibc/usr/include/linux/blkpg.h -#opt/MACHINE-uClibc/usr/include/linux/blockgroup_lock.h -#opt/MACHINE-uClibc/usr/include/linux/bootmem.h -#opt/MACHINE-uClibc/usr/include/linux/bpqether.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder -#opt/MACHINE-uClibc/usr/include/linux/byteorder/big_endian.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder/generic.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder/little_endian.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder/pdp_endian.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder/swab.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder/swabb.h -#opt/MACHINE-uClibc/usr/include/linux/cache.h -#opt/MACHINE-uClibc/usr/include/linux/capability.h -#opt/MACHINE-uClibc/usr/include/linux/capi.h -#opt/MACHINE-uClibc/usr/include/linux/cciss_ioctl.h -#opt/MACHINE-uClibc/usr/include/linux/cd1400.h -#opt/MACHINE-uClibc/usr/include/linux/cdk.h -#opt/MACHINE-uClibc/usr/include/linux/cdrom.h -#opt/MACHINE-uClibc/usr/include/linux/circ_buf.h -#opt/MACHINE-uClibc/usr/include/linux/cobalt-nvram.h -#opt/MACHINE-uClibc/usr/include/linux/coda.h -#opt/MACHINE-uClibc/usr/include/linux/coda_proc.h -#opt/MACHINE-uClibc/usr/include/linux/coda_psdev.h -#opt/MACHINE-uClibc/usr/include/linux/coff.h -#opt/MACHINE-uClibc/usr/include/linux/com20020.h -#opt/MACHINE-uClibc/usr/include/linux/compat.h -#opt/MACHINE-uClibc/usr/include/linux/compat_ioctl.h -#opt/MACHINE-uClibc/usr/include/linux/compiler.h -#opt/MACHINE-uClibc/usr/include/linux/comstats.h -#opt/MACHINE-uClibc/usr/include/linux/config.h -#opt/MACHINE-uClibc/usr/include/linux/console.h -#opt/MACHINE-uClibc/usr/include/linux/console_struct.h -#opt/MACHINE-uClibc/usr/include/linux/consolemap.h -#opt/MACHINE-uClibc/usr/include/linux/cpu.h -#opt/MACHINE-uClibc/usr/include/linux/cpufreq.h -#opt/MACHINE-uClibc/usr/include/linux/cramfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/cramfs_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/crc32.h -#opt/MACHINE-uClibc/usr/include/linux/crypto.h -#opt/MACHINE-uClibc/usr/include/linux/ctype.h -#opt/MACHINE-uClibc/usr/include/linux/cuda.h -#opt/MACHINE-uClibc/usr/include/linux/cyclades.h -#opt/MACHINE-uClibc/usr/include/linux/cycx_cfm.h -#opt/MACHINE-uClibc/usr/include/linux/cycx_drv.h -#opt/MACHINE-uClibc/usr/include/linux/cycx_x25.h -#opt/MACHINE-uClibc/usr/include/linux/devfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/devfs_fs_kernel.h -#opt/MACHINE-uClibc/usr/include/linux/device-mapper.h -#opt/MACHINE-uClibc/usr/include/linux/device.h -#opt/MACHINE-uClibc/usr/include/linux/devpts_fs.h -#opt/MACHINE-uClibc/usr/include/linux/dirent.h -#opt/MACHINE-uClibc/usr/include/linux/divert.h -#opt/MACHINE-uClibc/usr/include/linux/dm-ioctl.h -#opt/MACHINE-uClibc/usr/include/linux/dn.h -#opt/MACHINE-uClibc/usr/include/linux/dnotify.h -#opt/MACHINE-uClibc/usr/include/linux/dqblk_v1.h -#opt/MACHINE-uClibc/usr/include/linux/dqblk_v2.h -#opt/MACHINE-uClibc/usr/include/linux/dqblk_xfs.h -#opt/MACHINE-uClibc/usr/include/linux/dtlk.h -#opt/MACHINE-uClibc/usr/include/linux/dvb -#opt/MACHINE-uClibc/usr/include/linux/dvb/audio.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/ca.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/dmx.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/frontend.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/net.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/osd.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/version.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/video.h -#opt/MACHINE-uClibc/usr/include/linux/eeprom.h -#opt/MACHINE-uClibc/usr/include/linux/efi.h -#opt/MACHINE-uClibc/usr/include/linux/efs_dir.h -#opt/MACHINE-uClibc/usr/include/linux/efs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/efs_fs_i.h -#opt/MACHINE-uClibc/usr/include/linux/efs_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/efs_vh.h -#opt/MACHINE-uClibc/usr/include/linux/eisa.h -#opt/MACHINE-uClibc/usr/include/linux/elevator.h -#opt/MACHINE-uClibc/usr/include/linux/elf-fdpic.h -#opt/MACHINE-uClibc/usr/include/linux/elf.h -#opt/MACHINE-uClibc/usr/include/linux/elfcore.h -#opt/MACHINE-uClibc/usr/include/linux/err.h -#opt/MACHINE-uClibc/usr/include/linux/err_kernel_only.h -#opt/MACHINE-uClibc/usr/include/linux/errno.h -#opt/MACHINE-uClibc/usr/include/linux/errqueue.h -#opt/MACHINE-uClibc/usr/include/linux/ethtool.h -#opt/MACHINE-uClibc/usr/include/linux/eventpoll.h -#opt/MACHINE-uClibc/usr/include/linux/ext2_fs.h -#opt/MACHINE-uClibc/usr/include/linux/ext3_fs.h -#opt/MACHINE-uClibc/usr/include/linux/ext3_jbd.h -#opt/MACHINE-uClibc/usr/include/linux/fadvise.h -#opt/MACHINE-uClibc/usr/include/linux/fb.h -#opt/MACHINE-uClibc/usr/include/linux/fcntl.h -#opt/MACHINE-uClibc/usr/include/linux/fd.h -#opt/MACHINE-uClibc/usr/include/linux/fd1772.h -#opt/MACHINE-uClibc/usr/include/linux/fdreg.h -#opt/MACHINE-uClibc/usr/include/linux/file.h -#opt/MACHINE-uClibc/usr/include/linux/filter.h -#opt/MACHINE-uClibc/usr/include/linux/firmware.h -#opt/MACHINE-uClibc/usr/include/linux/flat.h -#opt/MACHINE-uClibc/usr/include/linux/font.h -#opt/MACHINE-uClibc/usr/include/linux/fs.h -#opt/MACHINE-uClibc/usr/include/linux/fs_struct.h -#opt/MACHINE-uClibc/usr/include/linux/ftape-header-segment.h -#opt/MACHINE-uClibc/usr/include/linux/ftape-vendors.h -#opt/MACHINE-uClibc/usr/include/linux/ftape.h -#opt/MACHINE-uClibc/usr/include/linux/futex.h -#opt/MACHINE-uClibc/usr/include/linux/gameport.h -#opt/MACHINE-uClibc/usr/include/linux/gen_stats.h -#opt/MACHINE-uClibc/usr/include/linux/generic_serial.h -#opt/MACHINE-uClibc/usr/include/linux/genhd.h -#opt/MACHINE-uClibc/usr/include/linux/gfp.h -#opt/MACHINE-uClibc/usr/include/linux/hash.h -#opt/MACHINE-uClibc/usr/include/linux/hayesesp.h -#opt/MACHINE-uClibc/usr/include/linux/hdlc -#opt/MACHINE-uClibc/usr/include/linux/hdlc.h -#opt/MACHINE-uClibc/usr/include/linux/hdlc/ioctl.h -#opt/MACHINE-uClibc/usr/include/linux/hdlcdrv.h -#opt/MACHINE-uClibc/usr/include/linux/hdreg.h -#opt/MACHINE-uClibc/usr/include/linux/hdsmart.h -#opt/MACHINE-uClibc/usr/include/linux/hiddev.h -#opt/MACHINE-uClibc/usr/include/linux/highuid.h -#opt/MACHINE-uClibc/usr/include/linux/hpfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/hysdn_if.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-bit.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-ite.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-pcf.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-sgi.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-sibyte.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-dev.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-id.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-sensor.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-vid.h -#opt/MACHINE-uClibc/usr/include/linux/i2c.h -#opt/MACHINE-uClibc/usr/include/linux/i2o-dev.h -#opt/MACHINE-uClibc/usr/include/linux/i8k.h -#opt/MACHINE-uClibc/usr/include/linux/ibmtr.h -#opt/MACHINE-uClibc/usr/include/linux/icmp.h -#opt/MACHINE-uClibc/usr/include/linux/icmpv6.h -#opt/MACHINE-uClibc/usr/include/linux/ide.h -#opt/MACHINE-uClibc/usr/include/linux/idr.h -#opt/MACHINE-uClibc/usr/include/linux/if.h -#opt/MACHINE-uClibc/usr/include/linux/if_arcnet.h -#opt/MACHINE-uClibc/usr/include/linux/if_arp.h -#opt/MACHINE-uClibc/usr/include/linux/if_bonding.h -#opt/MACHINE-uClibc/usr/include/linux/if_bridge.h -#opt/MACHINE-uClibc/usr/include/linux/if_cablemodem.h -#opt/MACHINE-uClibc/usr/include/linux/if_ec.h -#opt/MACHINE-uClibc/usr/include/linux/if_eql.h -#opt/MACHINE-uClibc/usr/include/linux/if_ether.h -#opt/MACHINE-uClibc/usr/include/linux/if_fc.h -#opt/MACHINE-uClibc/usr/include/linux/if_fddi.h -#opt/MACHINE-uClibc/usr/include/linux/if_frad.h -#opt/MACHINE-uClibc/usr/include/linux/if_hippi.h -#opt/MACHINE-uClibc/usr/include/linux/if_infiniband.h -#opt/MACHINE-uClibc/usr/include/linux/if_ltalk.h -#opt/MACHINE-uClibc/usr/include/linux/if_packet.h -#opt/MACHINE-uClibc/usr/include/linux/if_plip.h -#opt/MACHINE-uClibc/usr/include/linux/if_ppp.h -#opt/MACHINE-uClibc/usr/include/linux/if_pppox.h -#opt/MACHINE-uClibc/usr/include/linux/if_shaper.h -#opt/MACHINE-uClibc/usr/include/linux/if_slip.h -#opt/MACHINE-uClibc/usr/include/linux/if_strip.h -#opt/MACHINE-uClibc/usr/include/linux/if_tr.h -#opt/MACHINE-uClibc/usr/include/linux/if_tun.h -#opt/MACHINE-uClibc/usr/include/linux/if_tunnel.h -#opt/MACHINE-uClibc/usr/include/linux/if_vlan.h -#opt/MACHINE-uClibc/usr/include/linux/if_wanpipe.h -#opt/MACHINE-uClibc/usr/include/linux/if_wanpipe_common.h -#opt/MACHINE-uClibc/usr/include/linux/igmp.h -#opt/MACHINE-uClibc/usr/include/linux/in.h -#opt/MACHINE-uClibc/usr/include/linux/in6.h -#opt/MACHINE-uClibc/usr/include/linux/in_route.h -#opt/MACHINE-uClibc/usr/include/linux/inetdevice.h -#opt/MACHINE-uClibc/usr/include/linux/init.h -#opt/MACHINE-uClibc/usr/include/linux/init_task.h -#opt/MACHINE-uClibc/usr/include/linux/initrd.h -#opt/MACHINE-uClibc/usr/include/linux/inotify.h -#opt/MACHINE-uClibc/usr/include/linux/input.h -#opt/MACHINE-uClibc/usr/include/linux/interrupt.h -#opt/MACHINE-uClibc/usr/include/linux/ioctl.h -#opt/MACHINE-uClibc/usr/include/linux/ioctl32.h -#opt/MACHINE-uClibc/usr/include/linux/ioport.h -#opt/MACHINE-uClibc/usr/include/linux/ip.h -#opt/MACHINE-uClibc/usr/include/linux/ip6_tunnel.h -#opt/MACHINE-uClibc/usr/include/linux/ip_mp_alg.h -#opt/MACHINE-uClibc/usr/include/linux/ipc.h -#opt/MACHINE-uClibc/usr/include/linux/ipmi.h -#opt/MACHINE-uClibc/usr/include/linux/ipmi_msgdefs.h -#opt/MACHINE-uClibc/usr/include/linux/ipmi_smi.h -#opt/MACHINE-uClibc/usr/include/linux/ipsec.h -#opt/MACHINE-uClibc/usr/include/linux/ipv6.h -#opt/MACHINE-uClibc/usr/include/linux/ipv6_route.h -#opt/MACHINE-uClibc/usr/include/linux/ipx.h -#opt/MACHINE-uClibc/usr/include/linux/irda.h -#opt/MACHINE-uClibc/usr/include/linux/irq.h -#opt/MACHINE-uClibc/usr/include/linux/irq_cpustat.h -#opt/MACHINE-uClibc/usr/include/linux/isapnp.h -#opt/MACHINE-uClibc/usr/include/linux/isdn -#opt/MACHINE-uClibc/usr/include/linux/isdn.h -#opt/MACHINE-uClibc/usr/include/linux/isdn/capicmd.h -#opt/MACHINE-uClibc/usr/include/linux/isdn/capilli.h -#opt/MACHINE-uClibc/usr/include/linux/isdn/capiutil.h -#opt/MACHINE-uClibc/usr/include/linux/isdn/tpam.h -#opt/MACHINE-uClibc/usr/include/linux/isdn_divertif.h -#opt/MACHINE-uClibc/usr/include/linux/isdn_ppp.h -#opt/MACHINE-uClibc/usr/include/linux/isdnif.h -#opt/MACHINE-uClibc/usr/include/linux/isicom.h -#opt/MACHINE-uClibc/usr/include/linux/iso_fs.h -#opt/MACHINE-uClibc/usr/include/linux/istallion.h -#opt/MACHINE-uClibc/usr/include/linux/ite_gpio.h -#opt/MACHINE-uClibc/usr/include/linux/ixjuser.h -#opt/MACHINE-uClibc/usr/include/linux/jbd.h -#opt/MACHINE-uClibc/usr/include/linux/jffs.h -#opt/MACHINE-uClibc/usr/include/linux/jffs2.h -#opt/MACHINE-uClibc/usr/include/linux/jffs2_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/jhash.h -#opt/MACHINE-uClibc/usr/include/linux/jiffies.h -#opt/MACHINE-uClibc/usr/include/linux/journal-head.h -#opt/MACHINE-uClibc/usr/include/linux/joystick.h -#opt/MACHINE-uClibc/usr/include/linux/kallsyms.h -#opt/MACHINE-uClibc/usr/include/linux/kbd_diacr.h -#opt/MACHINE-uClibc/usr/include/linux/kbd_kern.h -#opt/MACHINE-uClibc/usr/include/linux/kd.h -#opt/MACHINE-uClibc/usr/include/linux/kdev_t.h -#opt/MACHINE-uClibc/usr/include/linux/kernel.h -#opt/MACHINE-uClibc/usr/include/linux/kernel_stat.h -#opt/MACHINE-uClibc/usr/include/linux/kernelcapi.h -#opt/MACHINE-uClibc/usr/include/linux/keyboard.h -#opt/MACHINE-uClibc/usr/include/linux/keyctl.h -#opt/MACHINE-uClibc/usr/include/linux/kmalloc_sizes.h -#opt/MACHINE-uClibc/usr/include/linux/kmod.h -#opt/MACHINE-uClibc/usr/include/linux/kprobes.h -#opt/MACHINE-uClibc/usr/include/linux/lapb.h -#opt/MACHINE-uClibc/usr/include/linux/lcd.h -#opt/MACHINE-uClibc/usr/include/linux/libata.h -#opt/MACHINE-uClibc/usr/include/linux/libps2.h -#opt/MACHINE-uClibc/usr/include/linux/limits.h -#opt/MACHINE-uClibc/usr/include/linux/linkage.h -#opt/MACHINE-uClibc/usr/include/linux/linux_logo.h -#opt/MACHINE-uClibc/usr/include/linux/list.h -#opt/MACHINE-uClibc/usr/include/linux/llc.h -#opt/MACHINE-uClibc/usr/include/linux/lockd -#opt/MACHINE-uClibc/usr/include/linux/lockd/bind.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/debug.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/nlm.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/share.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/sm_inter.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/xdr.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/xdr4.h -#opt/MACHINE-uClibc/usr/include/linux/loop.h -#opt/MACHINE-uClibc/usr/include/linux/lp.h -#opt/MACHINE-uClibc/usr/include/linux/major.h -#opt/MACHINE-uClibc/usr/include/linux/matroxfb.h -#opt/MACHINE-uClibc/usr/include/linux/mbcache.h -#opt/MACHINE-uClibc/usr/include/linux/mc6821.h -#opt/MACHINE-uClibc/usr/include/linux/mca-legacy.h -#opt/MACHINE-uClibc/usr/include/linux/mca.h -#opt/MACHINE-uClibc/usr/include/linux/mempool.h -#opt/MACHINE-uClibc/usr/include/linux/meye.h -#opt/MACHINE-uClibc/usr/include/linux/mii.h -#opt/MACHINE-uClibc/usr/include/linux/minix_fs.h -#opt/MACHINE-uClibc/usr/include/linux/miscdevice.h -#opt/MACHINE-uClibc/usr/include/linux/mm.h -#opt/MACHINE-uClibc/usr/include/linux/mm_inline.h -#opt/MACHINE-uClibc/usr/include/linux/mman.h -#opt/MACHINE-uClibc/usr/include/linux/mod_devicetable.h -#opt/MACHINE-uClibc/usr/include/linux/module.h -#opt/MACHINE-uClibc/usr/include/linux/moduleloader.h -#opt/MACHINE-uClibc/usr/include/linux/moduleparam.h -#opt/MACHINE-uClibc/usr/include/linux/mount.h -#opt/MACHINE-uClibc/usr/include/linux/mroute.h -#opt/MACHINE-uClibc/usr/include/linux/msdos_fs.h -#opt/MACHINE-uClibc/usr/include/linux/msg.h -#opt/MACHINE-uClibc/usr/include/linux/mtd -#opt/MACHINE-uClibc/usr/include/linux/mtd/blktrans.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/cfi.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/cfi_endian.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/compatmac.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/concat.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/doc2000.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/flashchip.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/ftl.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/gen_probe.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/iflash.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/jedec.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/map.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/nand.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/nand_ecc.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/nftl.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/partitions.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/pmc551.h -#opt/MACHINE-uClibc/usr/include/linux/mtio.h -#opt/MACHINE-uClibc/usr/include/linux/n_r3964.h -#opt/MACHINE-uClibc/usr/include/linux/namei.h -#opt/MACHINE-uClibc/usr/include/linux/nbd.h -#opt/MACHINE-uClibc/usr/include/linux/ncp.h -#opt/MACHINE-uClibc/usr/include/linux/ncp_fs.h -#opt/MACHINE-uClibc/usr/include/linux/ncp_mount.h -#opt/MACHINE-uClibc/usr/include/linux/ncp_no.h -#opt/MACHINE-uClibc/usr/include/linux/net.h -#opt/MACHINE-uClibc/usr/include/linux/netdevice.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp -#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp/arp_tables.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp/arpt_mangle.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_802_3.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_among.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_arp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_arpreply.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_ip.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_limit.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_log.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_mark_m.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_mark_t.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_nat.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_pkttype.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_redirect.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_stp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_ulog.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_vlan.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebtables.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_decnet.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4 -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_amanda.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_core.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_ftp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_helper.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_icmp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_irc.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_protocol.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_sctp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tcp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tftp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tuple.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_core.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_helper.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_protocol.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_rule.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_queue.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_tables.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CLASSIFY.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CONNMARK.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_DSCP.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ECN.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_LOG.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_MARK.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_REJECT.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_SAME.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_TCPMSS.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_TOS.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ULOG.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_addrtype.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ah.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_comment.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_connmark.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_conntrack.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_dscp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ecn.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_esp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_hashlimit.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_helper.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_iprange.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_length.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_limit.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_mac.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_mark.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_multiport.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_owner.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_physdev.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_pkttype.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_realm.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_recent.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_sctp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_state.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_tcpmss.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_tos.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ttl.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/listhelp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/lockhelp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6 -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6_tables.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_LOG.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_MARK.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_ah.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_esp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_frag.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_hl.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_length.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_limit.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_mac.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_mark.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_multiport.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_opts.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_owner.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_physdev.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_rt.h -#opt/MACHINE-uClibc/usr/include/linux/netlink.h -#opt/MACHINE-uClibc/usr/include/linux/netrom.h -#opt/MACHINE-uClibc/usr/include/linux/nfs.h -#opt/MACHINE-uClibc/usr/include/linux/nfs2.h -#opt/MACHINE-uClibc/usr/include/linux/nfs3.h -#opt/MACHINE-uClibc/usr/include/linux/nfs4.h -#opt/MACHINE-uClibc/usr/include/linux/nfs4_mount.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_fs_i.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_idmap.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_mount.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_xdr.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd -#opt/MACHINE-uClibc/usr/include/linux/nfsd/const.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/debug.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/export.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/interface.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/nfsd.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/nfsfh.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/state.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/stats.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/syscall.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr3.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr4.h -#opt/MACHINE-uClibc/usr/include/linux/nls.h -#opt/MACHINE-uClibc/usr/include/linux/nmi.h -#opt/MACHINE-uClibc/usr/include/linux/node.h -#opt/MACHINE-uClibc/usr/include/linux/notifier.h -#opt/MACHINE-uClibc/usr/include/linux/nubus.h -#opt/MACHINE-uClibc/usr/include/linux/numa.h -#opt/MACHINE-uClibc/usr/include/linux/nvram.h -#opt/MACHINE-uClibc/usr/include/linux/openprom_fs.h -#opt/MACHINE-uClibc/usr/include/linux/oprofile.h -#opt/MACHINE-uClibc/usr/include/linux/pagemap.h -#opt/MACHINE-uClibc/usr/include/linux/pagevec.h -#opt/MACHINE-uClibc/usr/include/linux/param.h -#opt/MACHINE-uClibc/usr/include/linux/parport.h -#opt/MACHINE-uClibc/usr/include/linux/parport_pc.h -#opt/MACHINE-uClibc/usr/include/linux/parser.h -#opt/MACHINE-uClibc/usr/include/linux/patchkey.h -#opt/MACHINE-uClibc/usr/include/linux/pci-dynids.h -#opt/MACHINE-uClibc/usr/include/linux/pci.h -#opt/MACHINE-uClibc/usr/include/linux/pci_ids.h -#opt/MACHINE-uClibc/usr/include/linux/pcieport_if.h -#opt/MACHINE-uClibc/usr/include/linux/percpu.h -#opt/MACHINE-uClibc/usr/include/linux/percpu_counter.h -#opt/MACHINE-uClibc/usr/include/linux/personality.h -#opt/MACHINE-uClibc/usr/include/linux/pfkeyv2.h -#opt/MACHINE-uClibc/usr/include/linux/pg.h -#opt/MACHINE-uClibc/usr/include/linux/pipe_fs_i.h -#opt/MACHINE-uClibc/usr/include/linux/pkt_cls.h -#opt/MACHINE-uClibc/usr/include/linux/pkt_sched.h -#opt/MACHINE-uClibc/usr/include/linux/pktcdvd.h -#opt/MACHINE-uClibc/usr/include/linux/pmu.h -#opt/MACHINE-uClibc/usr/include/linux/poll.h -#opt/MACHINE-uClibc/usr/include/linux/posix-timers.h -#opt/MACHINE-uClibc/usr/include/linux/posix_acl.h -#opt/MACHINE-uClibc/usr/include/linux/posix_acl_xattr.h -#opt/MACHINE-uClibc/usr/include/linux/posix_types.h -#opt/MACHINE-uClibc/usr/include/linux/ppdev.h -#opt/MACHINE-uClibc/usr/include/linux/ppp-comp.h -#opt/MACHINE-uClibc/usr/include/linux/ppp_channel.h -#opt/MACHINE-uClibc/usr/include/linux/ppp_defs.h -#opt/MACHINE-uClibc/usr/include/linux/prctl.h -#opt/MACHINE-uClibc/usr/include/linux/preempt.h -#opt/MACHINE-uClibc/usr/include/linux/prefetch.h -#opt/MACHINE-uClibc/usr/include/linux/proc_fs.h -#opt/MACHINE-uClibc/usr/include/linux/ps2esdi.h -#opt/MACHINE-uClibc/usr/include/linux/ptrace.h -#opt/MACHINE-uClibc/usr/include/linux/qic117.h -#opt/MACHINE-uClibc/usr/include/linux/qnx4_fs.h -#opt/MACHINE-uClibc/usr/include/linux/qnxtypes.h -#opt/MACHINE-uClibc/usr/include/linux/quota.h -#opt/MACHINE-uClibc/usr/include/linux/quotaio_v1.h -#opt/MACHINE-uClibc/usr/include/linux/quotaio_v2.h -#opt/MACHINE-uClibc/usr/include/linux/radeonfb.h -#opt/MACHINE-uClibc/usr/include/linux/raid -#opt/MACHINE-uClibc/usr/include/linux/raid/linear.h -#opt/MACHINE-uClibc/usr/include/linux/raid/md.h -#opt/MACHINE-uClibc/usr/include/linux/raid/md_p.h -#opt/MACHINE-uClibc/usr/include/linux/raid/md_u.h -#opt/MACHINE-uClibc/usr/include/linux/raid/multipath.h -#opt/MACHINE-uClibc/usr/include/linux/raid/raid0.h -#opt/MACHINE-uClibc/usr/include/linux/raid/raid1.h -#opt/MACHINE-uClibc/usr/include/linux/raid/raid5.h -#opt/MACHINE-uClibc/usr/include/linux/raid/xor.h -#opt/MACHINE-uClibc/usr/include/linux/random.h -#opt/MACHINE-uClibc/usr/include/linux/raw.h -#opt/MACHINE-uClibc/usr/include/linux/rbtree.h -#opt/MACHINE-uClibc/usr/include/linux/reboot.h -#opt/MACHINE-uClibc/usr/include/linux/reiserfs_acl.h -#opt/MACHINE-uClibc/usr/include/linux/reiserfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/reiserfs_xattr.h -#opt/MACHINE-uClibc/usr/include/linux/resource.h -#opt/MACHINE-uClibc/usr/include/linux/romfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/root_dev.h -#opt/MACHINE-uClibc/usr/include/linux/rose.h -#opt/MACHINE-uClibc/usr/include/linux/route.h -#opt/MACHINE-uClibc/usr/include/linux/rtc.h -#opt/MACHINE-uClibc/usr/include/linux/rtnetlink.h -#opt/MACHINE-uClibc/usr/include/linux/sc26198.h -#opt/MACHINE-uClibc/usr/include/linux/scc.h -#opt/MACHINE-uClibc/usr/include/linux/sched.h -#opt/MACHINE-uClibc/usr/include/linux/sctp.h -#opt/MACHINE-uClibc/usr/include/linux/scx200.h -#opt/MACHINE-uClibc/usr/include/linux/scx200_gpio.h -#opt/MACHINE-uClibc/usr/include/linux/sdla.h -#opt/MACHINE-uClibc/usr/include/linux/sdla_asy.h -#opt/MACHINE-uClibc/usr/include/linux/sdla_chdlc.h -#opt/MACHINE-uClibc/usr/include/linux/sdla_fr.h -#opt/MACHINE-uClibc/usr/include/linux/sdla_ppp.h -#opt/MACHINE-uClibc/usr/include/linux/sdla_x25.h -#opt/MACHINE-uClibc/usr/include/linux/sdladrv.h -#opt/MACHINE-uClibc/usr/include/linux/sdlapci.h -#opt/MACHINE-uClibc/usr/include/linux/sdlasfm.h -#opt/MACHINE-uClibc/usr/include/linux/securebits.h -#opt/MACHINE-uClibc/usr/include/linux/security.h -#opt/MACHINE-uClibc/usr/include/linux/selection.h -#opt/MACHINE-uClibc/usr/include/linux/selinux_netlink.h -#opt/MACHINE-uClibc/usr/include/linux/sem.h -#opt/MACHINE-uClibc/usr/include/linux/seqlock.h -#opt/MACHINE-uClibc/usr/include/linux/serial.h -#opt/MACHINE-uClibc/usr/include/linux/serial167.h -#opt/MACHINE-uClibc/usr/include/linux/serialP.h -#opt/MACHINE-uClibc/usr/include/linux/serial_8250.h -#opt/MACHINE-uClibc/usr/include/linux/serial_core.h -#opt/MACHINE-uClibc/usr/include/linux/serial_reg.h -#opt/MACHINE-uClibc/usr/include/linux/serio.h -#opt/MACHINE-uClibc/usr/include/linux/shm.h -#opt/MACHINE-uClibc/usr/include/linux/siginfo.h -#opt/MACHINE-uClibc/usr/include/linux/signal.h -#opt/MACHINE-uClibc/usr/include/linux/skbuff.h -#opt/MACHINE-uClibc/usr/include/linux/smb.h -#opt/MACHINE-uClibc/usr/include/linux/smb_fs.h -#opt/MACHINE-uClibc/usr/include/linux/smb_mount.h -#opt/MACHINE-uClibc/usr/include/linux/smbno.h -#opt/MACHINE-uClibc/usr/include/linux/smp_lock.h -#opt/MACHINE-uClibc/usr/include/linux/snmp.h -#opt/MACHINE-uClibc/usr/include/linux/socket.h -#opt/MACHINE-uClibc/usr/include/linux/sockios.h -#opt/MACHINE-uClibc/usr/include/linux/som.h -#opt/MACHINE-uClibc/usr/include/linux/sonet.h -#opt/MACHINE-uClibc/usr/include/linux/sonypi.h -#opt/MACHINE-uClibc/usr/include/linux/sound.h -#opt/MACHINE-uClibc/usr/include/linux/soundcard.h -#opt/MACHINE-uClibc/usr/include/linux/spinlock.h -#opt/MACHINE-uClibc/usr/include/linux/stallion.h -#opt/MACHINE-uClibc/usr/include/linux/stddef.h -#opt/MACHINE-uClibc/usr/include/linux/stringify.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/cache.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/clnt.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/debug.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_asn1.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_krb5.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_spkm3.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/sched.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/stats.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/svc.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/svcsock.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/timer.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/types.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/xprt.h -#opt/MACHINE-uClibc/usr/include/linux/superhyway.h -#opt/MACHINE-uClibc/usr/include/linux/suspend.h -#opt/MACHINE-uClibc/usr/include/linux/swap.h -#opt/MACHINE-uClibc/usr/include/linux/swapops.h -#opt/MACHINE-uClibc/usr/include/linux/synclink.h -#opt/MACHINE-uClibc/usr/include/linux/sys.h -#opt/MACHINE-uClibc/usr/include/linux/syscalls.h -#opt/MACHINE-uClibc/usr/include/linux/sysctl.h -#opt/MACHINE-uClibc/usr/include/linux/sysdev.h -#opt/MACHINE-uClibc/usr/include/linux/sysfs.h -#opt/MACHINE-uClibc/usr/include/linux/sysrq.h -#opt/MACHINE-uClibc/usr/include/linux/sysv_fs.h -#opt/MACHINE-uClibc/usr/include/linux/tc_act -#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_defact.h -#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_gact.h -#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_ipt.h -#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_mirred.h -#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_pedit.h -#opt/MACHINE-uClibc/usr/include/linux/tc_ematch -#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_cmp.h -#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_meta.h -#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_nbyte.h -#opt/MACHINE-uClibc/usr/include/linux/tcp.h -#opt/MACHINE-uClibc/usr/include/linux/tcp_diag.h -#opt/MACHINE-uClibc/usr/include/linux/telephony.h -#opt/MACHINE-uClibc/usr/include/linux/termios.h -#opt/MACHINE-uClibc/usr/include/linux/threads.h -#opt/MACHINE-uClibc/usr/include/linux/ticable.h -#opt/MACHINE-uClibc/usr/include/linux/time.h -#opt/MACHINE-uClibc/usr/include/linux/times.h -#opt/MACHINE-uClibc/usr/include/linux/timex.h -#opt/MACHINE-uClibc/usr/include/linux/tiocl.h -#opt/MACHINE-uClibc/usr/include/linux/toshiba.h -#opt/MACHINE-uClibc/usr/include/linux/tty.h -#opt/MACHINE-uClibc/usr/include/linux/types.h -#opt/MACHINE-uClibc/usr/include/linux/udf_fs.h -#opt/MACHINE-uClibc/usr/include/linux/udf_fs_i.h -#opt/MACHINE-uClibc/usr/include/linux/udf_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/udp.h -#opt/MACHINE-uClibc/usr/include/linux/ufs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/uinput.h -#opt/MACHINE-uClibc/usr/include/linux/uio.h -#opt/MACHINE-uClibc/usr/include/linux/ultrasound.h -#opt/MACHINE-uClibc/usr/include/linux/umem.h -#opt/MACHINE-uClibc/usr/include/linux/un.h -#opt/MACHINE-uClibc/usr/include/linux/unistd.h -#opt/MACHINE-uClibc/usr/include/linux/usb.h -#opt/MACHINE-uClibc/usr/include/linux/usb_cdc.h -#opt/MACHINE-uClibc/usr/include/linux/usb_ch9.h -#opt/MACHINE-uClibc/usr/include/linux/usb_gadgetfs.h -#opt/MACHINE-uClibc/usr/include/linux/usbdevice_fs.h -#opt/MACHINE-uClibc/usr/include/linux/user.h -#opt/MACHINE-uClibc/usr/include/linux/utime.h -#opt/MACHINE-uClibc/usr/include/linux/uts.h -#opt/MACHINE-uClibc/usr/include/linux/utsname.h -#opt/MACHINE-uClibc/usr/include/linux/version.h -#opt/MACHINE-uClibc/usr/include/linux/video_decoder.h -#opt/MACHINE-uClibc/usr/include/linux/video_encoder.h -#opt/MACHINE-uClibc/usr/include/linux/videodev.h -#opt/MACHINE-uClibc/usr/include/linux/videodev2.h -#opt/MACHINE-uClibc/usr/include/linux/videotext.h -#opt/MACHINE-uClibc/usr/include/linux/vmalloc.h -#opt/MACHINE-uClibc/usr/include/linux/vt.h -#opt/MACHINE-uClibc/usr/include/linux/vt_buffer.h -#opt/MACHINE-uClibc/usr/include/linux/vt_kern.h -#opt/MACHINE-uClibc/usr/include/linux/wait.h -#opt/MACHINE-uClibc/usr/include/linux/wanpipe.h -#opt/MACHINE-uClibc/usr/include/linux/wanrouter.h -#opt/MACHINE-uClibc/usr/include/linux/watchdog.h -#opt/MACHINE-uClibc/usr/include/linux/wavefront.h -#opt/MACHINE-uClibc/usr/include/linux/wireless.h -#opt/MACHINE-uClibc/usr/include/linux/workqueue.h -#opt/MACHINE-uClibc/usr/include/linux/x25.h -#opt/MACHINE-uClibc/usr/include/linux/xattr.h -#opt/MACHINE-uClibc/usr/include/linux/xattr_acl.h -#opt/MACHINE-uClibc/usr/include/linux/xfrm.h -#opt/MACHINE-uClibc/usr/include/linux/yam.h -#opt/MACHINE-uClibc/usr/include/linux/zftape.h -#opt/MACHINE-uClibc/usr/include/linux/zorro.h -#opt/MACHINE-uClibc/usr/include/linux/zorro_ids.h diff --git a/config/rootfiles/common/mISDNuser b/config/rootfiles/common/mISDNuser index d75a666..9c424c4 100644 --- a/config/rootfiles/common/mISDNuser +++ b/config/rootfiles/common/mISDNuser @@ -1,7 +1,13 @@ +usr/bin/isdn_text2wireshark usr/bin/l1oipctrl +usr/bin/misdn_E1test usr/bin/misdn_bridge usr/bin/misdn_info usr/bin/misdn_log +#usr/etc +#usr/etc/udev +#usr/etc/udev/rules.d +#usr/etc/udev/rules.d/45-misdn.rules #usr/include/mISDN #usr/include/mISDN/l3dss1.h #usr/include/mISDN/mISDNcompat.h @@ -13,13 +19,8 @@ usr/bin/misdn_log #usr/lib/libmisdn.a #usr/lib/libmisdn.la usr/lib/libmisdn.so -usr/lib/libmisdn.so.0 -usr/lib/libmisdn.so.0.2.1 -#usr/lib/libsuppserv.a -#usr/lib/libsuppserv.la -usr/lib/libsuppserv.so -usr/lib/libsuppserv.so.0 -usr/lib/libsuppserv.so.0.1.1 +usr/lib/libmisdn.so.1 +usr/lib/libmisdn.so.1.0.0 usr/sbin/misdn_cleanl2 usr/sbin/misdn_rename etc/rc.d/init.d/mISDN diff --git a/config/rootfiles/common/mbr b/config/rootfiles/common/mbr index 29544b6..231e27d 100644 --- a/config/rootfiles/common/mbr +++ b/config/rootfiles/common/mbr @@ -1,3 +1,2 @@ -#usr/local/man/man8 -#usr/local/man/man8/install-mbr.8 -#usr/local/sbin/install-mbr +#usr/sbin/install-mbr +#usr/share/man/man8/install-mbr.8 diff --git a/config/rootfiles/common/misc-progs b/config/rootfiles/common/misc-progs index 3c0b398..d2cf710 100644 --- a/config/rootfiles/common/misc-progs +++ b/config/rootfiles/common/misc-progs @@ -7,7 +7,6 @@ usr/local/bin/extrahdctrl usr/local/bin/fireinfoctrl usr/local/bin/getconntracktable usr/local/bin/getipstat -usr/local/bin/getiptstate #usr/local/bin/iowrap usr/local/bin/ipfirereboot usr/local/bin/ipsecctrl @@ -34,7 +33,6 @@ usr/local/bin/syslogdctrl usr/local/bin/timectrl #usr/local/bin/tripwirectrl usr/local/bin/updxlratorctrl -usr/local/bin/updxsetperms usr/local/bin/upnpctrl usr/local/bin/urlfilterctrl usr/local/bin/wirelessctrl diff --git a/config/rootfiles/common/mpfr b/config/rootfiles/common/mpfr new file mode 100644 index 0000000..e4f3337 --- /dev/null +++ b/config/rootfiles/common/mpfr @@ -0,0 +1,21 @@ +#usr/include/mpf2mpfr.h +#usr/include/mpfr.h +#usr/lib/libmpfr.a +#usr/lib/libmpfr.la +#usr/lib/libmpfr.so +usr/lib/libmpfr.so.1 +usr/lib/libmpfr.so.1.2.2 +#usr/share/doc/mpfr +#usr/share/doc/mpfr/AUTHORS +#usr/share/doc/mpfr/BUGS +#usr/share/doc/mpfr/COPYING +#usr/share/doc/mpfr/COPYING.LIB +#usr/share/doc/mpfr/FAQ.html +#usr/share/doc/mpfr/NEWS +#usr/share/doc/mpfr/TODO +#usr/share/doc/mpfr/examples +#usr/share/doc/mpfr/examples/ReadMe +#usr/share/doc/mpfr/examples/divworst.c +#usr/share/doc/mpfr/examples/rndo-add.c +#usr/share/doc/mpfr/examples/sample.c +#usr/share/info/mpfr.info diff --git a/config/rootfiles/common/ncurses b/config/rootfiles/common/ncurses index ed892d6..46b3bd9 100644 --- a/config/rootfiles/common/ncurses +++ b/config/rootfiles/common/ncurses @@ -1,15 +1,15 @@ -lib/libncursesw.so.5 -lib/libncursesw.so.5.5 #usr/bin/captoinfo usr/bin/clear #usr/bin/infocmp #usr/bin/infotocap -#usr/bin/reset -#usr/bin/tack +#usr/bin/ncurses5-config +#usr/bin/ncursesw5-config +usr/bin/reset +#usr/bin/tabs #usr/bin/tic #usr/bin/toe usr/bin/tput -#usr/bin/tset +usr/bin/tset #usr/include/curses.h #usr/include/cursesapp.h #usr/include/cursesf.h @@ -21,64 +21,107 @@ usr/bin/tput #usr/include/etip.h #usr/include/form.h #usr/include/menu.h +#usr/include/nc_tparm.h #usr/include/ncurses.h #usr/include/ncurses_dll.h #usr/include/panel.h #usr/include/term.h +#usr/include/term_entry.h #usr/include/termcap.h +#usr/include/tic.h #usr/include/unctrl.h #usr/lib/libcurses.a #usr/lib/libcurses.so -#usr/lib/libcursesw.a #usr/lib/libcursesw.so #usr/lib/libform.a -usr/lib/libform.so +#usr/lib/libform.so +usr/lib/libform.so.5 +usr/lib/libform.so.5.9 #usr/lib/libformw.a -usr/lib/libformw.so +#usr/lib/libformw.so usr/lib/libformw.so.5 -usr/lib/libformw.so.5.5 +usr/lib/libformw.so.5.9 #usr/lib/libmenu.a #usr/lib/libmenu.so +usr/lib/libmenu.so.5 +usr/lib/libmenu.so.5.9 #usr/lib/libmenuw.a -usr/lib/libmenuw.so +#usr/lib/libmenuw.so usr/lib/libmenuw.so.5 -usr/lib/libmenuw.so.5.5 -#usr/lib/libncurses++.a4 +usr/lib/libmenuw.so.5.9 +#usr/lib/libncurses++.a #usr/lib/libncurses++w.a #usr/lib/libncurses.a -usr/lib/libncurses.so +#usr/lib/libncurses.so +usr/lib/libncurses.so.5 +usr/lib/libncurses.so.5.9 #usr/lib/libncursesw.a #usr/lib/libncursesw.so -#usr/lib/libncursesw.so.5.5 +usr/lib/libncursesw.so.5 +usr/lib/libncursesw.so.5.9 #usr/lib/libpanel.a -usr/lib/libpanel.so +#usr/lib/libpanel.so +usr/lib/libpanel.so.5 +usr/lib/libpanel.so.5.9 #usr/lib/libpanelw.a -usr/lib/libpanelw.so +#usr/lib/libpanelw.so usr/lib/libpanelw.so.5 -usr/lib/libpanelw.so.5.5 +usr/lib/libpanelw.so.5.9 +#usr/lib/libtermcap.so +#usr/lib/libtic.a +#usr/lib/libtic.so +usr/lib/libtic.so.5 +usr/lib/libtic.so.5.9 +#usr/lib/libtinfo.a +#usr/lib/libtinfo.so +usr/lib/libtinfo.so.5 +usr/lib/libtinfo.so.5.9 #usr/lib/terminfo #usr/man/man1/captoinfo.1m #usr/man/man1/clear.1 #usr/man/man1/infocmp.1m #usr/man/man1/infotocap.1m +#usr/man/man1/ncursesw5-config.1 #usr/man/man1/reset.1 -#usr/man/man1/tack.1 +#usr/man/man1/tabs.1 #usr/man/man1/tic.1m #usr/man/man1/toe.1m #usr/man/man1/tput.1 #usr/man/man1/tset.1 #usr/man/man3 +#usr/man/man3/BC.3x +#usr/man/man3/COLORS.3x #usr/man/man3/COLOR_PAIR.3x +#usr/man/man3/COLOR_PAIRS.3x +#usr/man/man3/COLS.3x +#usr/man/man3/ESCDELAY.3x +#usr/man/man3/LINES.3x #usr/man/man3/PAIR_NUMBER.3x +#usr/man/man3/PC.3x +#usr/man/man3/SP.3x +#usr/man/man3/TABSIZE.3x +#usr/man/man3/TYPE_ALNUM.3x +#usr/man/man3/TYPE_ALPHA.3x +#usr/man/man3/TYPE_ENUM.3x +#usr/man/man3/TYPE_INTEGER.3x +#usr/man/man3/TYPE_IPV4.3x +#usr/man/man3/TYPE_NUMERIC.3x +#usr/man/man3/TYPE_REGEXP.3x +#usr/man/man3/UP.3x +#usr/man/man3/_nc_free_and_exit.3x +#usr/man/man3/_nc_freeall.3x #usr/man/man3/_nc_tracebits.3x #usr/man/man3/_traceattr.3x #usr/man/man3/_traceattr2.3x +#usr/man/man3/_tracecchar_t.3x +#usr/man/man3/_tracecchar_t2.3x #usr/man/man3/_tracechar.3x #usr/man/man3/_tracechtype.3x #usr/man/man3/_tracechtype2.3x #usr/man/man3/_tracedump.3x #usr/man/man3/_tracef.3x #usr/man/man3/_tracemouse.3x +#usr/man/man3/acs_map.3x #usr/man/man3/add_wch.3x #usr/man/man3/add_wchnstr.3x #usr/man/man3/add_wchstr.3x @@ -90,6 +133,7 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/addstr.3x #usr/man/man3/addwstr.3x #usr/man/man3/assume_default_colors.3x +#usr/man/man3/assume_default_colors_sp.3x #usr/man/man3/attr_get.3x #usr/man/man3/attr_off.3x #usr/man/man3/attr_on.3x @@ -98,26 +142,36 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/attron.3x #usr/man/man3/attrset.3x #usr/man/man3/baudrate.3x +#usr/man/man3/baudrate_sp.3x #usr/man/man3/beep.3x +#usr/man/man3/beep_sp.3x #usr/man/man3/bkgd.3x #usr/man/man3/bkgdset.3x #usr/man/man3/bkgrnd.3x #usr/man/man3/bkgrndset.3x +#usr/man/man3/boolcodes.3x +#usr/man/man3/boolfnames.3x +#usr/man/man3/boolnames.3x #usr/man/man3/border.3x #usr/man/man3/border_set.3x #usr/man/man3/bottom_panel.3x #usr/man/man3/box.3x #usr/man/man3/box_set.3x #usr/man/man3/can_change_color.3x +#usr/man/man3/can_change_color_sp.3x #usr/man/man3/cbreak.3x +#usr/man/man3/cbreak_sp.3x +#usr/man/man3/ceiling_panel.3x #usr/man/man3/chgat.3x #usr/man/man3/clear.3x #usr/man/man3/clearok.3x #usr/man/man3/clrtobot.3x #usr/man/man3/clrtoeol.3x #usr/man/man3/color_content.3x +#usr/man/man3/color_content_sp.3x #usr/man/man3/color_set.3x #usr/man/man3/copywin.3x +#usr/man/man3/cur_term.3x #usr/man/man3/current_field.3x #usr/man/man3/current_item.3x #usr/man/man3/curs_add_wch.3x @@ -156,8 +210,11 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/curs_instr.3x #usr/man/man3/curs_inwstr.3x #usr/man/man3/curs_kernel.3x +#usr/man/man3/curs_legacy.3x +#usr/man/man3/curs_memleaks.3x #usr/man/man3/curs_mouse.3x #usr/man/man3/curs_move.3x +#usr/man/man3/curs_opaque.3x #usr/man/man3/curs_outopts.3x #usr/man/man3/curs_overlay.3x #usr/man/man3/curs_pad.3x @@ -168,39 +225,53 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/curs_scr_dump.3x #usr/man/man3/curs_scroll.3x #usr/man/man3/curs_set.3x +#usr/man/man3/curs_set_sp.3x #usr/man/man3/curs_slk.3x +#usr/man/man3/curs_sp_funcs.3x #usr/man/man3/curs_termattrs.3x #usr/man/man3/curs_termcap.3x #usr/man/man3/curs_terminfo.3x +#usr/man/man3/curs_threads.3x #usr/man/man3/curs_touch.3x #usr/man/man3/curs_trace.3x #usr/man/man3/curs_util.3x +#usr/man/man3/curs_variables.3x #usr/man/man3/curs_window.3x +#usr/man/man3/curscr.3x #usr/man/man3/curses_version.3x #usr/man/man3/data_ahead.3x #usr/man/man3/data_behind.3x #usr/man/man3/def_prog_mode.3x +#usr/man/man3/def_prog_mode_sp.3x #usr/man/man3/def_shell_mode.3x +#usr/man/man3/def_shell_mode_sp.3x #usr/man/man3/default_colors.3x #usr/man/man3/define_key.3x +#usr/man/man3/define_key_sp.3x #usr/man/man3/del_curterm.3x +#usr/man/man3/del_curterm_sp.3x #usr/man/man3/del_panel.3x #usr/man/man3/delay_output.3x +#usr/man/man3/delay_output_sp.3x #usr/man/man3/delch.3x #usr/man/man3/deleteln.3x #usr/man/man3/delscreen.3x #usr/man/man3/delwin.3x #usr/man/man3/derwin.3x #usr/man/man3/doupdate.3x +#usr/man/man3/doupdate_sp.3x #usr/man/man3/dup_field.3x #usr/man/man3/dupwin.3x #usr/man/man3/dynamic_field_info.3x #usr/man/man3/echo.3x +#usr/man/man3/echo_sp.3x #usr/man/man3/echo_wchar.3x #usr/man/man3/echochar.3x #usr/man/man3/endwin.3x +#usr/man/man3/endwin_sp.3x #usr/man/man3/erase.3x #usr/man/man3/erasechar.3x +#usr/man/man3/erasechar_sp.3x #usr/man/man3/erasewchar.3x #usr/man/man3/field_arg.3x #usr/man/man3/field_back.3x @@ -220,8 +291,11 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/field_type.3x #usr/man/man3/field_userptr.3x #usr/man/man3/filter.3x +#usr/man/man3/filter_sp.3x #usr/man/man3/flash.3x +#usr/man/man3/flash_sp.3x #usr/man/man3/flushinp.3x +#usr/man/man3/flushinp_sp.3x #usr/man/man3/form.3x #usr/man/man3/form_cursor.3x #usr/man/man3/form_data.3x @@ -252,33 +326,55 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/form_sub.3x #usr/man/man3/form_term.3x #usr/man/man3/form_userptr.3x +#usr/man/man3/form_variables.3x #usr/man/man3/form_win.3x #usr/man/man3/free_field.3x #usr/man/man3/free_fieldtype.3x #usr/man/man3/free_form.3x #usr/man/man3/free_item.3x #usr/man/man3/free_menu.3x +#usr/man/man3/get_escdelay.3x +#usr/man/man3/get_escdelay_sp.3x #usr/man/man3/get_wch.3x #usr/man/man3/get_wstr.3x +#usr/man/man3/getattrs.3x +#usr/man/man3/getbegx.3x +#usr/man/man3/getbegy.3x #usr/man/man3/getbegyx.3x #usr/man/man3/getbkgd.3x #usr/man/man3/getbkgrnd.3x #usr/man/man3/getcchar.3x #usr/man/man3/getch.3x +#usr/man/man3/getcurx.3x +#usr/man/man3/getcury.3x +#usr/man/man3/getmaxx.3x +#usr/man/man3/getmaxy.3x #usr/man/man3/getmaxyx.3x #usr/man/man3/getmouse.3x +#usr/man/man3/getmouse_sp.3x #usr/man/man3/getn_wstr.3x #usr/man/man3/getnstr.3x +#usr/man/man3/getparx.3x +#usr/man/man3/getpary.3x #usr/man/man3/getparyx.3x #usr/man/man3/getstr.3x #usr/man/man3/getsyx.3x #usr/man/man3/getwin.3x +#usr/man/man3/getwin_sp.3x #usr/man/man3/getyx.3x +#usr/man/man3/ground_panel.3x #usr/man/man3/halfdelay.3x +#usr/man/man3/halfdelay_sp.3x #usr/man/man3/has_colors.3x +#usr/man/man3/has_colors_sp.3x #usr/man/man3/has_ic.3x +#usr/man/man3/has_ic_sp.3x #usr/man/man3/has_il.3x +#usr/man/man3/has_il_sp.3x #usr/man/man3/has_key.3x +#usr/man/man3/has_key_sp.3x +#usr/man/man3/has_mouse.3x +#usr/man/man3/has_mouse_sp.3x #usr/man/man3/hide_panel.3x #usr/man/man3/hline.3x #usr/man/man3/hline_set.3x @@ -292,7 +388,9 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/inchnstr.3x #usr/man/man3/inchstr.3x #usr/man/man3/init_color.3x +#usr/man/man3/init_color_sp.3x #usr/man/man3/init_pair.3x +#usr/man/man3/init_pair_sp.3x #usr/man/man3/initscr.3x #usr/man/man3/innstr.3x #usr/man/man3/innwstr.3x @@ -306,11 +404,26 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/insstr.3x #usr/man/man3/instr.3x #usr/man/man3/intrflush.3x +#usr/man/man3/intrflush_sp.3x #usr/man/man3/inwstr.3x +#usr/man/man3/is_cleared.3x +#usr/man/man3/is_idcok.3x +#usr/man/man3/is_idlok.3x +#usr/man/man3/is_immedok.3x +#usr/man/man3/is_keypad.3x +#usr/man/man3/is_leaveok.3x #usr/man/man3/is_linetouched.3x +#usr/man/man3/is_nodelay.3x +#usr/man/man3/is_notimeout.3x +#usr/man/man3/is_pad.3x +#usr/man/man3/is_scrollok.3x +#usr/man/man3/is_subwin.3x +#usr/man/man3/is_syncok.3x #usr/man/man3/is_term_resized.3x +#usr/man/man3/is_term_resized_sp.3x #usr/man/man3/is_wintouched.3x #usr/man/man3/isendwin.3x +#usr/man/man3/isendwin_sp.3x #usr/man/man3/item_count.3x #usr/man/man3/item_description.3x #usr/man/man3/item_index.3x @@ -324,18 +437,25 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/item_value.3x #usr/man/man3/item_visible.3x #usr/man/man3/key_defined.3x +#usr/man/man3/key_defined_sp.3x #usr/man/man3/key_name.3x #usr/man/man3/keybound.3x +#usr/man/man3/keybound_sp.3x #usr/man/man3/keyname.3x +#usr/man/man3/keyname_sp.3x #usr/man/man3/keyok.3x +#usr/man/man3/keyok_sp.3x #usr/man/man3/keypad.3x #usr/man/man3/killchar.3x +#usr/man/man3/killchar_sp.3x #usr/man/man3/killwchar.3x #usr/man/man3/leaveok.3x +#usr/man/man3/legacy_coding.3x #usr/man/man3/link_field.3x #usr/man/man3/link_fieldtype.3x #usr/man/man3/longname.3x #usr/man/man3/mcprint.3x +#usr/man/man3/mcprint_sp.3x #usr/man/man3/menu.3x #usr/man/man3/menu_attributes.3x #usr/man/man3/menu_back.3x @@ -373,7 +493,9 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/mitem_visible.3x #usr/man/man3/mouse_trafo.3x #usr/man/man3/mouseinterval.3x +#usr/man/man3/mouseinterval_sp.3x #usr/man/man3/mousemask.3x +#usr/man/man3/mousemask_sp.3x #usr/man/man3/move.3x #usr/man/man3/move_field.3x #usr/man/man3/move_panel.3x @@ -389,6 +511,7 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/mvaddwstr.3x #usr/man/man3/mvchgat.3x #usr/man/man3/mvcur.3x +#usr/man/man3/mvcur_sp.3x #usr/man/man3/mvdelch.3x #usr/man/man3/mvderwin.3x #usr/man/man3/mvget_wch.3x @@ -461,28 +584,49 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/mvwvline.3x #usr/man/man3/mvwvline_set.3x #usr/man/man3/napms.3x +#usr/man/man3/napms_sp.3x #usr/man/man3/ncurses.3x #usr/man/man3/new_field.3x #usr/man/man3/new_fieldtype.3x #usr/man/man3/new_form.3x +#usr/man/man3/new_form_sp.3x #usr/man/man3/new_item.3x #usr/man/man3/new_menu.3x +#usr/man/man3/new_menu_sp.3x #usr/man/man3/new_page.3x #usr/man/man3/new_panel.3x +#usr/man/man3/new_prescr.3x #usr/man/man3/newpad.3x +#usr/man/man3/newpad_sp.3x +#usr/man/man3/newscr.3x #usr/man/man3/newterm.3x +#usr/man/man3/newterm_sp.3x #usr/man/man3/newwin.3x +#usr/man/man3/newwin_sp.3x #usr/man/man3/nl.3x +#usr/man/man3/nl_sp.3x #usr/man/man3/nocbreak.3x +#usr/man/man3/nocbreak_sp.3x #usr/man/man3/nodelay.3x #usr/man/man3/noecho.3x +#usr/man/man3/noecho_sp.3x +#usr/man/man3/nofilter.3x +#usr/man/man3/nofilter_sp.3x #usr/man/man3/nonl.3x +#usr/man/man3/nonl_sp.3x #usr/man/man3/noqiflush.3x +#usr/man/man3/noqiflush_sp.3x #usr/man/man3/noraw.3x +#usr/man/man3/noraw_sp.3x #usr/man/man3/notimeout.3x +#usr/man/man3/numcodes.3x +#usr/man/man3/numfnames.3x +#usr/man/man3/numnames.3x +#usr/man/man3/ospeed.3x #usr/man/man3/overlay.3x #usr/man/man3/overwrite.3x #usr/man/man3/pair_content.3x +#usr/man/man3/pair_content_sp.3x #usr/man/man3/panel.3x #usr/man/man3/panel_above.3x #usr/man/man3/panel_below.3x @@ -499,33 +643,50 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/prefresh.3x #usr/man/man3/printw.3x #usr/man/man3/putp.3x +#usr/man/man3/putp_sp.3x #usr/man/man3/putwin.3x #usr/man/man3/qiflush.3x +#usr/man/man3/qiflush_sp.3x #usr/man/man3/raw.3x +#usr/man/man3/raw_sp.3x #usr/man/man3/redrawwin.3x #usr/man/man3/refresh.3x #usr/man/man3/replace_panel.3x #usr/man/man3/reset_prog_mode.3x +#usr/man/man3/reset_prog_mode_sp.3x #usr/man/man3/reset_shell_mode.3x +#usr/man/man3/reset_shell_mode_sp.3x #usr/man/man3/resetty.3x +#usr/man/man3/resetty_sp.3x #usr/man/man3/resize_term.3x +#usr/man/man3/resize_term_sp.3x #usr/man/man3/resizeterm.3x +#usr/man/man3/resizeterm_sp.3x #usr/man/man3/restartterm.3x +#usr/man/man3/restartterm_sp.3x #usr/man/man3/ripoffline.3x +#usr/man/man3/ripoffline_sp.3x #usr/man/man3/savetty.3x +#usr/man/man3/savetty_sp.3x #usr/man/man3/scale_form.3x #usr/man/man3/scale_menu.3x #usr/man/man3/scanw.3x #usr/man/man3/scr_dump.3x #usr/man/man3/scr_init.3x +#usr/man/man3/scr_init_sp.3x #usr/man/man3/scr_restore.3x +#usr/man/man3/scr_restore_sp.3x #usr/man/man3/scr_set.3x +#usr/man/man3/scr_set_sp.3x #usr/man/man3/scrl.3x #usr/man/man3/scroll.3x #usr/man/man3/scrollok.3x #usr/man/man3/set_current_field.3x #usr/man/man3/set_current_item.3x #usr/man/man3/set_curterm.3x +#usr/man/man3/set_curterm_sp.3x +#usr/man/man3/set_escdelay.3x +#usr/man/man3/set_escdelay_sp.3x #usr/man/man3/set_field_back.3x #usr/man/man3/set_field_buffer.3x #usr/man/man3/set_field_fore.3x @@ -570,6 +731,8 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/set_menu_win.3x #usr/man/man3/set_new_page.3x #usr/man/man3/set_panel_userptr.3x +#usr/man/man3/set_tabsize.3x +#usr/man/man3/set_tabsize_sp.3x #usr/man/man3/set_term.3x #usr/man/man3/set_top_row.3x #usr/man/man3/setcchar.3x @@ -582,59 +745,109 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/slk_attr_off.3x #usr/man/man3/slk_attr_on.3x #usr/man/man3/slk_attr_set.3x +#usr/man/man3/slk_attr_set_sp.3x +#usr/man/man3/slk_attr_sp.3x #usr/man/man3/slk_attroff.3x +#usr/man/man3/slk_attroff_sp.3x #usr/man/man3/slk_attron.3x +#usr/man/man3/slk_attron_sp.3x #usr/man/man3/slk_attrset.3x +#usr/man/man3/slk_attrset_sp.3x #usr/man/man3/slk_clear.3x +#usr/man/man3/slk_clear_sp.3x #usr/man/man3/slk_color.3x +#usr/man/man3/slk_color_sp.3x #usr/man/man3/slk_init.3x +#usr/man/man3/slk_init_sp.3x #usr/man/man3/slk_label.3x +#usr/man/man3/slk_label_sp.3x #usr/man/man3/slk_noutrefresh.3x +#usr/man/man3/slk_noutrefresh_sp.3x #usr/man/man3/slk_refresh.3x +#usr/man/man3/slk_refresh_sp.3x #usr/man/man3/slk_restore.3x +#usr/man/man3/slk_restore_sp.3x #usr/man/man3/slk_set.3x +#usr/man/man3/slk_set_sp.3x #usr/man/man3/slk_touch.3x +#usr/man/man3/slk_touch_sp.3x +#usr/man/man3/slk_wset.3x #usr/man/man3/standend.3x #usr/man/man3/standout.3x #usr/man/man3/start_color.3x +#usr/man/man3/start_color_sp.3x +#usr/man/man3/stdscr.3x +#usr/man/man3/strcodes.3x +#usr/man/man3/strfnames.3x +#usr/man/man3/strnames.3x #usr/man/man3/subpad.3x #usr/man/man3/subwin.3x #usr/man/man3/syncok.3x #usr/man/man3/term_attrs.3x +#usr/man/man3/term_attrs_sp.3x +#usr/man/man3/term_variables.3x #usr/man/man3/termattrs.3x +#usr/man/man3/termattrs_sp.3x #usr/man/man3/termname.3x +#usr/man/man3/termname_sp.3x #usr/man/man3/tgetent.3x +#usr/man/man3/tgetent_sp.3x #usr/man/man3/tgetflag.3x +#usr/man/man3/tgetflag_sp.3x #usr/man/man3/tgetnum.3x +#usr/man/man3/tgetnum_sp.3x #usr/man/man3/tgetstr.3x +#usr/man/man3/tgetstr_sp.3x #usr/man/man3/tgoto.3x #usr/man/man3/tigetflag.3x +#usr/man/man3/tigetflag_sp.3x #usr/man/man3/tigetnum.3x +#usr/man/man3/tigetnum_sp.3x #usr/man/man3/tigetstr.3x +#usr/man/man3/tigetstr_sp.3x #usr/man/man3/timeout.3x +#usr/man/man3/tiparm.3x #usr/man/man3/top_panel.3x #usr/man/man3/top_row.3x #usr/man/man3/touchline.3x #usr/man/man3/touchwin.3x #usr/man/man3/tparm.3x #usr/man/man3/tputs.3x +#usr/man/man3/tputs_sp.3x #usr/man/man3/trace.3x +#usr/man/man3/ttytype.3x #usr/man/man3/typeahead.3x +#usr/man/man3/typeahead_sp.3x #usr/man/man3/unctrl.3x +#usr/man/man3/unctrl_sp.3x #usr/man/man3/unget_wch.3x +#usr/man/man3/unget_wch_sp.3x #usr/man/man3/ungetch.3x +#usr/man/man3/ungetch_sp.3x #usr/man/man3/ungetmouse.3x +#usr/man/man3/ungetmouse_sp.3x #usr/man/man3/unpost_form.3x #usr/man/man3/unpost_menu.3x #usr/man/man3/untouchwin.3x #usr/man/man3/update_panels.3x +#usr/man/man3/update_panels_sp.3x #usr/man/man3/use_default_colors.3x +#usr/man/man3/use_default_colors_sp.3x #usr/man/man3/use_env.3x +#usr/man/man3/use_env_sp.3x #usr/man/man3/use_extended_names.3x +#usr/man/man3/use_legacy_coding.3x +#usr/man/man3/use_legacy_coding_sp.3x +#usr/man/man3/use_screen.3x +#usr/man/man3/use_window.3x #usr/man/man3/vid_attr.3x +#usr/man/man3/vid_attr_sp.3x #usr/man/man3/vid_puts.3x +#usr/man/man3/vid_puts_sp.3x #usr/man/man3/vidattr.3x +#usr/man/man3/vidattr_sp.3x #usr/man/man3/vidputs.3x +#usr/man/man3/vidputs_sp.3x #usr/man/man3/vline.3x #usr/man/man3/vline_set.3x #usr/man/man3/vw_printw.3x @@ -682,6 +895,8 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/wgetch.3x #usr/man/man3/wgetn_wstr.3x #usr/man/man3/wgetnstr.3x +#usr/man/man3/wgetparent.3x +#usr/man/man3/wgetscrreg.3x #usr/man/man3/wgetstr.3x #usr/man/man3/whline.3x #usr/man/man3/whline_set.3x @@ -720,6 +935,7 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/wtimeout.3x #usr/man/man3/wtouchln.3x #usr/man/man3/wunctrl.3x +#usr/man/man3/wunctrl_sp.3x #usr/man/man3/wvline.3x #usr/man/man3/wvline_set.3x #usr/man/man5 @@ -770,11 +986,14 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/9 #usr/share/terminfo/9/955-hb #usr/share/terminfo/9/955-w +#usr/share/terminfo/9/9term #usr/share/terminfo/A #usr/share/terminfo/A/Apple_Terminal #usr/share/terminfo/E -#usr/share/terminfo/E/Eterm -#usr/share/terminfo/E/Eterm-color +usr/share/terminfo/E/Eterm +usr/share/terminfo/E/Eterm-256color +usr/share/terminfo/E/Eterm-88color +usr/share/terminfo/E/Eterm-color #usr/share/terminfo/L #usr/share/terminfo/L/LFT-PC850 #usr/share/terminfo/M @@ -937,10 +1156,11 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/a/ampex232w #usr/share/terminfo/a/ampex80 #usr/share/terminfo/a/annarbor4080 -#usr/share/terminfo/a/ansi +usr/share/terminfo/a/ansi #usr/share/terminfo/a/ansi+arrows #usr/share/terminfo/a/ansi+csr #usr/share/terminfo/a/ansi+cup +#usr/share/terminfo/a/ansi+enq #usr/share/terminfo/a/ansi+erase #usr/share/terminfo/a/ansi+idc #usr/share/terminfo/a/ansi+idl @@ -1015,8 +1235,18 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/a/arm100-am #usr/share/terminfo/a/arm100-w #usr/share/terminfo/a/arm100-wam +#usr/share/terminfo/a/at +#usr/share/terminfo/a/at-color +#usr/share/terminfo/a/at-m #usr/share/terminfo/a/at386 #usr/share/terminfo/a/atari +#usr/share/terminfo/a/atari-color +#usr/share/terminfo/a/atari-m +#usr/share/terminfo/a/atari-old +#usr/share/terminfo/a/atari_st +#usr/share/terminfo/a/atari_st-color +#usr/share/terminfo/a/atarist-m +usr/share/terminfo/a/aterm #usr/share/terminfo/a/att2300 #usr/share/terminfo/a/att2350 #usr/share/terminfo/a/att4410 @@ -1171,6 +1401,7 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/b/bsdos-pc-nobold #usr/share/terminfo/b/bsdos-ppc #usr/share/terminfo/b/bsdos-sparc +usr/share/terminfo/b/bterm #usr/share/terminfo/c #usr/share/terminfo/c/c100 #usr/share/terminfo/c/c100-1p @@ -1240,7 +1471,8 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/c/concept108-w-8 #usr/share/terminfo/c/concept108-w8p #usr/share/terminfo/c/concept108rv4p -#usr/share/terminfo/c/cons25 +usr/share/terminfo/c/cons25 +#usr/share/terminfo/c/cons25-debian #usr/share/terminfo/c/cons25-iso-m #usr/share/terminfo/c/cons25-iso8859 #usr/share/terminfo/c/cons25-koi8-r @@ -1293,7 +1525,7 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/c/cx100 #usr/share/terminfo/c/cyb110 #usr/share/terminfo/c/cyb83 -#usr/share/terminfo/c/cygwin +usr/share/terminfo/c/cygwin #usr/share/terminfo/c/cygwinB19 #usr/share/terminfo/c/cygwinDBG #usr/share/terminfo/d @@ -1576,7 +1808,7 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/d/dtc300s #usr/share/terminfo/d/dtc382 #usr/share/terminfo/d/dtterm -#usr/share/terminfo/d/dumb +usr/share/terminfo/d/dumb #usr/share/terminfo/d/dw #usr/share/terminfo/d/dw1 #usr/share/terminfo/d/dw2 @@ -1604,7 +1836,8 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/e/ergo4000 #usr/share/terminfo/e/esprit #usr/share/terminfo/e/esprit-am -#usr/share/terminfo/e/eterm +usr/share/terminfo/e/eterm +usr/share/terminfo/e/eterm-color #usr/share/terminfo/e/ex155 #usr/share/terminfo/e/excel62 #usr/share/terminfo/e/excel62-rv @@ -1646,7 +1879,12 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/g/gator-t #usr/share/terminfo/g/gigi #usr/share/terminfo/g/glasstty -#usr/share/terminfo/g/gnome +usr/share/terminfo/g/gnome +#usr/share/terminfo/g/gnome+pcfkeys +#usr/share/terminfo/g/gnome-2007 +#usr/share/terminfo/g/gnome-2008 +usr/share/terminfo/g/gnome-256color +#usr/share/terminfo/g/gnome-fc5 #usr/share/terminfo/g/gnome-rh62 #usr/share/terminfo/g/gnome-rh72 #usr/share/terminfo/g/gnome-rh80 @@ -1817,8 +2055,9 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/h/hpgeneric #usr/share/terminfo/h/hpsub #usr/share/terminfo/h/hpterm +#usr/share/terminfo/h/hpterm-color #usr/share/terminfo/h/htx11 -#usr/share/terminfo/h/hurd +usr/share/terminfo/h/hurd #usr/share/terminfo/h/hz1000 #usr/share/terminfo/h/hz1420 #usr/share/terminfo/h/hz1500 @@ -1833,6 +2072,7 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/i/i3101 #usr/share/terminfo/i/i3164 #usr/share/terminfo/i/i400 +#usr/share/terminfo/i/iTerm.app #usr/share/terminfo/i/ibcs2 #usr/share/terminfo/i/ibm+16color #usr/share/terminfo/i/ibm+color @@ -1913,6 +2153,7 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/j/jaixterm #usr/share/terminfo/j/jaixterm-m #usr/share/terminfo/j/jerq +usr/share/terminfo/j/jfbterm #usr/share/terminfo/k #usr/share/terminfo/k/k45 #usr/share/terminfo/k/kaypro @@ -1927,10 +2168,16 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/k/klone+koi8acs #usr/share/terminfo/k/klone+sgr #usr/share/terminfo/k/klone+sgr-dumb -#usr/share/terminfo/k/konsole +#usr/share/terminfo/k/klone+sgr8 +#usr/share/terminfo/k/kon +#usr/share/terminfo/k/kon2 +usr/share/terminfo/k/konsole +#usr/share/terminfo/k/konsole+pcfkeys #usr/share/terminfo/k/konsole-16color +usr/share/terminfo/k/konsole-256color #usr/share/terminfo/k/konsole-base #usr/share/terminfo/k/konsole-linux +#usr/share/terminfo/k/konsole-solaris #usr/share/terminfo/k/konsole-vt100 #usr/share/terminfo/k/konsole-vt420pc #usr/share/terminfo/k/konsole-xf3x @@ -1948,15 +2195,17 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/l/lft #usr/share/terminfo/l/lft-pc850 usr/share/terminfo/l/linux -usr/share/terminfo/l/linux-basic +#usr/share/terminfo/l/linux-16color +#usr/share/terminfo/l/linux-basic #usr/share/terminfo/l/linux-c #usr/share/terminfo/l/linux-c-nc #usr/share/terminfo/l/linux-koi8 #usr/share/terminfo/l/linux-koi8r -usr/share/terminfo/l/linux-lat -usr/share/terminfo/l/linux-m -usr/share/terminfo/l/linux-nic -usr/share/terminfo/l/linux-vt +#usr/share/terminfo/l/linux-lat +#usr/share/terminfo/l/linux-m +#usr/share/terminfo/l/linux-nic +#usr/share/terminfo/l/linux-vt +#usr/share/terminfo/l/linux2.6.26 #usr/share/terminfo/l/lisa #usr/share/terminfo/l/lisaterm #usr/share/terminfo/l/lisaterm-w @@ -1970,9 +2219,9 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/m/m2-nam #usr/share/terminfo/m/mac #usr/share/terminfo/m/mac-w -#usr/share/terminfo/m/mach -#usr/share/terminfo/m/mach-bold -#usr/share/terminfo/m/mach-color +usr/share/terminfo/m/mach +usr/share/terminfo/m/mach-bold +usr/share/terminfo/m/mach-color #usr/share/terminfo/m/macintosh #usr/share/terminfo/m/macterminal-w #usr/share/terminfo/m/mai @@ -1985,6 +2234,7 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/m/mgr #usr/share/terminfo/m/mgr-linux #usr/share/terminfo/m/mgr-sun +#usr/share/terminfo/m/mgt #usr/share/terminfo/m/mgterm #usr/share/terminfo/m/microb #usr/share/terminfo/m/microbee @@ -2012,9 +2262,13 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/m/minitel1b #usr/share/terminfo/m/minitel1b-80 #usr/share/terminfo/m/minix +#usr/share/terminfo/m/minix-1.5 +#usr/share/terminfo/m/minix-1.7 #usr/share/terminfo/m/minix-old #usr/share/terminfo/m/minix-old-am -#usr/share/terminfo/m/mlterm +usr/share/terminfo/m/mlterm +#usr/share/terminfo/m/mlterm+pcfkeys +#usr/share/terminfo/m/mlterm-256color #usr/share/terminfo/m/mm314 #usr/share/terminfo/m/mm340 #usr/share/terminfo/m/mod @@ -2025,6 +2279,8 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/m/mono-emx #usr/share/terminfo/m/morphos #usr/share/terminfo/m/mouse-sun +usr/share/terminfo/m/mrxvt +#usr/share/terminfo/m/mrxvt-256color #usr/share/terminfo/m/ms-vt-utf8 #usr/share/terminfo/m/ms-vt100 #usr/share/terminfo/m/ms-vt100+ @@ -2104,6 +2360,15 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/n/ncsa-ns #usr/share/terminfo/n/ncsa-vt220 #usr/share/terminfo/n/ncsa-vt220-8 +#usr/share/terminfo/n/nd9500 +#usr/share/terminfo/n/ndr9500 +#usr/share/terminfo/n/ndr9500-25 +#usr/share/terminfo/n/ndr9500-25-mc +#usr/share/terminfo/n/ndr9500-25-mc-nl +#usr/share/terminfo/n/ndr9500-25-nl +#usr/share/terminfo/n/ndr9500-mc +#usr/share/terminfo/n/ndr9500-mc-nl +#usr/share/terminfo/n/ndr9500-nl #usr/share/terminfo/n/nec #usr/share/terminfo/n/nec5520 #usr/share/terminfo/n/newhp @@ -2140,13 +2405,14 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/n/next #usr/share/terminfo/n/nextshell #usr/share/terminfo/n/northstar -#usr/share/terminfo/n/nsterm +usr/share/terminfo/n/nsterm #usr/share/terminfo/n/nsterm+7 #usr/share/terminfo/n/nsterm+acs #usr/share/terminfo/n/nsterm+c #usr/share/terminfo/n/nsterm+c41 #usr/share/terminfo/n/nsterm+mac #usr/share/terminfo/n/nsterm+s +#usr/share/terminfo/n/nsterm-16color #usr/share/terminfo/n/nsterm-7 #usr/share/terminfo/n/nsterm-7-c #usr/share/terminfo/n/nsterm-7-c-s @@ -2159,6 +2425,7 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/n/nsterm-acs-m #usr/share/terminfo/n/nsterm-acs-m-s #usr/share/terminfo/n/nsterm-acs-s +#usr/share/terminfo/n/nsterm-bce #usr/share/terminfo/n/nsterm-c #usr/share/terminfo/n/nsterm-c-7 #usr/share/terminfo/n/nsterm-c-acs @@ -2171,6 +2438,7 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/n/nsterm-m-s #usr/share/terminfo/n/nsterm-m-s-7 #usr/share/terminfo/n/nsterm-m-s-acs +#usr/share/terminfo/n/nsterm-old #usr/share/terminfo/n/nsterm-s #usr/share/terminfo/n/nsterm-s-7 #usr/share/terminfo/n/nsterm-s-acs @@ -2292,7 +2560,7 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/p/pc3r-m #usr/share/terminfo/p/pc6300plus #usr/share/terminfo/p/pc7300 -#usr/share/terminfo/p/pcansi +usr/share/terminfo/p/pcansi #usr/share/terminfo/p/pcansi-25 #usr/share/terminfo/p/pcansi-25-m #usr/share/terminfo/p/pcansi-33 @@ -2381,7 +2649,9 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/p/pt505-22 #usr/share/terminfo/p/pt505-24 #usr/share/terminfo/p/pty -#usr/share/terminfo/p/putty +usr/share/terminfo/p/putty +usr/share/terminfo/p/putty-256color +usr/share/terminfo/p/putty-vt100 #usr/share/terminfo/q #usr/share/terminfo/q/qansi #usr/share/terminfo/q/qansi-g @@ -2443,14 +2713,16 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/r/rt6221 #usr/share/terminfo/r/rt6221-w #usr/share/terminfo/r/rtpc -#usr/share/terminfo/r/rxvt +usr/share/terminfo/r/rxvt #usr/share/terminfo/r/rxvt+pcfkeys -#usr/share/terminfo/r/rxvt-16color -#usr/share/terminfo/r/rxvt-basic -#usr/share/terminfo/r/rxvt-color -#usr/share/terminfo/r/rxvt-cygwin -#usr/share/terminfo/r/rxvt-cygwin-native -#usr/share/terminfo/r/rxvt-xpm +usr/share/terminfo/r/rxvt-16color +usr/share/terminfo/r/rxvt-256color +usr/share/terminfo/r/rxvt-88color +usr/share/terminfo/r/rxvt-basic +usr/share/terminfo/r/rxvt-color +usr/share/terminfo/r/rxvt-cygwin +usr/share/terminfo/r/rxvt-cygwin-native +usr/share/terminfo/r/rxvt-xpm #usr/share/terminfo/s #usr/share/terminfo/s/s4 #usr/share/terminfo/s/sb1 @@ -2465,11 +2737,35 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/s/scoansi-new #usr/share/terminfo/s/scoansi-old usr/share/terminfo/s/screen +#usr/share/terminfo/s/screen+fkeys +usr/share/terminfo/s/screen-16color +#usr/share/terminfo/s/screen-16color-bce +#usr/share/terminfo/s/screen-16color-bce-s +#usr/share/terminfo/s/screen-16color-s +usr/share/terminfo/s/screen-256color +#usr/share/terminfo/s/screen-256color-bce +#usr/share/terminfo/s/screen-256color-bce-s +#usr/share/terminfo/s/screen-256color-s usr/share/terminfo/s/screen-bce +#usr/share/terminfo/s/screen-bce.Eterm +#usr/share/terminfo/s/screen-bce.gnome +#usr/share/terminfo/s/screen-bce.konsole +#usr/share/terminfo/s/screen-bce.linux +#usr/share/terminfo/s/screen-bce.mlterm +#usr/share/terminfo/s/screen-bce.mrxvt +#usr/share/terminfo/s/screen-bce.rxvt +#usr/share/terminfo/s/screen-bce.xterm-new usr/share/terminfo/s/screen-s usr/share/terminfo/s/screen-w +usr/share/terminfo/s/screen.Eterm +usr/share/terminfo/s/screen.gnome +usr/share/terminfo/s/screen.konsole usr/share/terminfo/s/screen.linux +usr/share/terminfo/s/screen.mlterm +usr/share/terminfo/s/screen.mrxvt +usr/share/terminfo/s/screen.rxvt usr/share/terminfo/s/screen.teraterm +usr/share/terminfo/s/screen.vte usr/share/terminfo/s/screen.xterm-new usr/share/terminfo/s/screen.xterm-r6 usr/share/terminfo/s/screen.xterm-xfree86 @@ -2484,7 +2780,12 @@ usr/share/terminfo/s/screen3 #usr/share/terminfo/s/soroc140 #usr/share/terminfo/s/spinwriter #usr/share/terminfo/s/st52 -#usr/share/terminfo/s/sun +#usr/share/terminfo/s/st52-color +#usr/share/terminfo/s/st52-m +#usr/share/terminfo/s/st52-old +#usr/share/terminfo/s/stv52 +#usr/share/terminfo/s/stv52pc +usr/share/terminfo/s/sun #usr/share/terminfo/s/sun-1 #usr/share/terminfo/s/sun-12 #usr/share/terminfo/s/sun-17 @@ -2572,7 +2873,9 @@ usr/share/terminfo/s/screen3 #usr/share/terminfo/t/tek4404 #usr/share/terminfo/t/teleray #usr/share/terminfo/t/teletec -#usr/share/terminfo/t/teraterm +usr/share/terminfo/t/teraterm +usr/share/terminfo/t/teraterm2.3 +#usr/share/terminfo/t/teraterm4.59 #usr/share/terminfo/t/terminet #usr/share/terminfo/t/terminet1200 #usr/share/terminfo/t/terminet300 @@ -2614,6 +2917,7 @@ usr/share/terminfo/s/screen3 #usr/share/terminfo/t/ts1p #usr/share/terminfo/t/tt #usr/share/terminfo/t/tt505-22 +#usr/share/terminfo/t/tt52 #usr/share/terminfo/t/tty33 #usr/share/terminfo/t/tty35 #usr/share/terminfo/t/tty37 @@ -2751,6 +3055,10 @@ usr/share/terminfo/s/screen3 #usr/share/terminfo/t/tvi970-2p #usr/share/terminfo/t/tvi970-vb #usr/share/terminfo/t/tvipt +#usr/share/terminfo/t/tw100 +#usr/share/terminfo/t/tw52 +#usr/share/terminfo/t/tw52-color +#usr/share/terminfo/t/tw52-m #usr/share/terminfo/t/tws-generic #usr/share/terminfo/t/tws2102-sna #usr/share/terminfo/t/tws2103 @@ -2819,42 +3127,44 @@ usr/share/terminfo/s/screen3 #usr/share/terminfo/v/vt-61 #usr/share/terminfo/v/vt-utf8 usr/share/terminfo/v/vt100 -usr/share/terminfo/v/vt100+ -usr/share/terminfo/v/vt100+fnkeys -usr/share/terminfo/v/vt100+keypad -usr/share/terminfo/v/vt100+pfkeys -usr/share/terminfo/v/vt100-am -usr/share/terminfo/v/vt100-bm -usr/share/terminfo/v/vt100-bm-o -usr/share/terminfo/v/vt100-bot-s -usr/share/terminfo/v/vt100-nam -usr/share/terminfo/v/vt100-nam-w +#usr/share/terminfo/v/vt100+ +#usr/share/terminfo/v/vt100+enq +#usr/share/terminfo/v/vt100+fnkeys +#usr/share/terminfo/v/vt100+keypad +#usr/share/terminfo/v/vt100+pfkeys +#usr/share/terminfo/v/vt100-am +#usr/share/terminfo/v/vt100-bm +#usr/share/terminfo/v/vt100-bm-o +#usr/share/terminfo/v/vt100-bot-s +#usr/share/terminfo/v/vt100-nam +#usr/share/terminfo/v/vt100-nam-w usr/share/terminfo/v/vt100-nav -usr/share/terminfo/v/vt100-nav-w -usr/share/terminfo/v/vt100-putty -usr/share/terminfo/v/vt100-s -usr/share/terminfo/v/vt100-s-bot -usr/share/terminfo/v/vt100-s-top -usr/share/terminfo/v/vt100-top-s -usr/share/terminfo/v/vt100-vb -usr/share/terminfo/v/vt100-w -usr/share/terminfo/v/vt100-w-am -usr/share/terminfo/v/vt100-w-nam -usr/share/terminfo/v/vt100-w-nav -usr/share/terminfo/v/vt100nam +#usr/share/terminfo/v/vt100-nav-w +#usr/share/terminfo/v/vt100-putty +#usr/share/terminfo/v/vt100-s +#usr/share/terminfo/v/vt100-s-bot +#usr/share/terminfo/v/vt100-s-top +#usr/share/terminfo/v/vt100-top-s +#usr/share/terminfo/v/vt100-vb +#usr/share/terminfo/v/vt100-w +#usr/share/terminfo/v/vt100-w-am +#usr/share/terminfo/v/vt100-w-nam +#usr/share/terminfo/v/vt100-w-nav +#usr/share/terminfo/v/vt100nam usr/share/terminfo/v/vt102 -usr/share/terminfo/v/vt102-nsgr -usr/share/terminfo/v/vt102-w +#usr/share/terminfo/v/vt102+enq +#usr/share/terminfo/v/vt102-nsgr +#usr/share/terminfo/v/vt102-w #usr/share/terminfo/v/vt125 #usr/share/terminfo/v/vt131 #usr/share/terminfo/v/vt132 -usr/share/terminfo/v/vt200 -usr/share/terminfo/v/vt200-8 -usr/share/terminfo/v/vt200-8bit -usr/share/terminfo/v/vt200-js +#usr/share/terminfo/v/vt200 +#usr/share/terminfo/v/vt200-8 +#usr/share/terminfo/v/vt200-8bit +#usr/share/terminfo/v/vt200-js #usr/share/terminfo/v/vt200-old -usr/share/terminfo/v/vt200-w -#usr/share/terminfo/v/vt220 +#usr/share/terminfo/v/vt200-w +usr/share/terminfo/v/vt220 #usr/share/terminfo/v/vt220+keypad #usr/share/terminfo/v/vt220-8 #usr/share/terminfo/v/vt220-8bit @@ -2887,13 +3197,19 @@ usr/share/terminfo/v/vt200-w #usr/share/terminfo/v/vt510 #usr/share/terminfo/v/vt510pc #usr/share/terminfo/v/vt510pcdos -#usr/share/terminfo/v/vt52 +usr/share/terminfo/v/vt52 #usr/share/terminfo/v/vt520 #usr/share/terminfo/v/vt525 #usr/share/terminfo/v/vt61 #usr/share/terminfo/v/vt61.5 +usr/share/terminfo/v/vte +#usr/share/terminfo/v/vte+pcfkeys +#usr/share/terminfo/v/vte-2007 +#usr/share/terminfo/v/vte-2008 +usr/share/terminfo/v/vte-256color #usr/share/terminfo/v/vtnt #usr/share/terminfo/v/vv100 +usr/share/terminfo/v/vwmterm #usr/share/terminfo/w #usr/share/terminfo/w/wren #usr/share/terminfo/w/wrenw @@ -3147,6 +3463,8 @@ usr/share/terminfo/v/vt200-w #usr/share/terminfo/x/xerox-lm #usr/share/terminfo/x/xerox1720 #usr/share/terminfo/x/xerox820 +usr/share/terminfo/x/xfce +#usr/share/terminfo/x/xiterm #usr/share/terminfo/x/xl83 #usr/share/terminfo/x/xnuppc #usr/share/terminfo/x/xnuppc+100x37 @@ -3199,39 +3517,55 @@ usr/share/terminfo/v/vt200-w #usr/share/terminfo/x/xnuppc-m-f2 #usr/share/terminfo/x/xtalk usr/share/terminfo/x/xterm -usr/share/terminfo/x/xterm+pcfkeys -usr/share/terminfo/x/xterm+sl -usr/share/terminfo/x/xterm+sl-twm -#usr/share/terminfo/x/xterm-1002 -#usr/share/terminfo/x/xterm-1003 -#usr/share/terminfo/x/xterm-16color -#usr/share/terminfo/x/xterm-24 +#usr/share/terminfo/x/xterm+256color +#usr/share/terminfo/x/xterm+88color +#usr/share/terminfo/x/xterm+app +#usr/share/terminfo/x/xterm+edit +#usr/share/terminfo/x/xterm+noapp +#usr/share/terminfo/x/xterm+pc+edit +#usr/share/terminfo/x/xterm+pcc0 +#usr/share/terminfo/x/xterm+pcc1 +#usr/share/terminfo/x/xterm+pcc2 +#usr/share/terminfo/x/xterm+pcc3 +#usr/share/terminfo/x/xterm+pce2 +#usr/share/terminfo/x/xterm+pcf0 +#usr/share/terminfo/x/xterm+pcf2 +#usr/share/terminfo/x/xterm+pcfkeys +#usr/share/terminfo/x/xterm+r6f2 +#usr/share/terminfo/x/xterm+sl +#usr/share/terminfo/x/xterm+sl-twm +#usr/share/terminfo/x/xterm+vt+edit +usr/share/terminfo/x/xterm-1002 +usr/share/terminfo/x/xterm-1003 +usr/share/terminfo/x/xterm-16color +usr/share/terminfo/x/xterm-24 usr/share/terminfo/x/xterm-256color usr/share/terminfo/x/xterm-88color -#usr/share/terminfo/x/xterm-8bit -#usr/share/terminfo/x/xterm-basic -#usr/share/terminfo/x/xterm-bold +usr/share/terminfo/x/xterm-8bit +usr/share/terminfo/x/xterm-basic +usr/share/terminfo/x/xterm-bold usr/share/terminfo/x/xterm-color -#usr/share/terminfo/x/xterm-hp -#usr/share/terminfo/x/xterm-new -#usr/share/terminfo/x/xterm-nic -#usr/share/terminfo/x/xterm-noapp -#usr/share/terminfo/x/xterm-old -#usr/share/terminfo/x/xterm-pcolor -#usr/share/terminfo/x/xterm-r5 -#usr/share/terminfo/x/xterm-r6 -#usr/share/terminfo/x/xterm-sco -#usr/share/terminfo/x/xterm-sun +usr/share/terminfo/x/xterm-hp +usr/share/terminfo/x/xterm-new +usr/share/terminfo/x/xterm-nic +usr/share/terminfo/x/xterm-noapp +usr/share/terminfo/x/xterm-old +usr/share/terminfo/x/xterm-pcolor +usr/share/terminfo/x/xterm-r5 +usr/share/terminfo/x/xterm-r6 +usr/share/terminfo/x/xterm-sco +usr/share/terminfo/x/xterm-sun +usr/share/terminfo/x/xterm-utf8 usr/share/terminfo/x/xterm-vt220 usr/share/terminfo/x/xterm-vt52 -#usr/share/terminfo/x/xterm-xf86-v32 -#usr/share/terminfo/x/xterm-xf86-v33 -#usr/share/terminfo/x/xterm-xf86-v333 -#usr/share/terminfo/x/xterm-xf86-v40 -#usr/share/terminfo/x/xterm-xf86-v43 -#usr/share/terminfo/x/xterm-xf86-v44 -#usr/share/terminfo/x/xterm-xfree86 -#usr/share/terminfo/x/xterm-xi +usr/share/terminfo/x/xterm-xf86-v32 +usr/share/terminfo/x/xterm-xf86-v33 +usr/share/terminfo/x/xterm-xf86-v333 +usr/share/terminfo/x/xterm-xf86-v40 +usr/share/terminfo/x/xterm-xf86-v43 +usr/share/terminfo/x/xterm-xf86-v44 +usr/share/terminfo/x/xterm-xfree86 +usr/share/terminfo/x/xterm-xi #usr/share/terminfo/x/xterm1 #usr/share/terminfo/x/xtermc #usr/share/terminfo/x/xtermm diff --git a/config/rootfiles/common/newt b/config/rootfiles/common/newt index f5f0fa4..08fb2ce 100644 --- a/config/rootfiles/common/newt +++ b/config/rootfiles/common/newt @@ -1,4 +1,4 @@ -#usr/bin/whiptail +usr/bin/whiptail #usr/include/newt.h #usr/lib/libnewt.a usr/lib/libnewt.so diff --git a/config/rootfiles/common/openldap b/config/rootfiles/common/openldap index bb43588..6a72df8 100644 --- a/config/rootfiles/common/openldap +++ b/config/rootfiles/common/openldap @@ -41,19 +41,119 @@ #usr/include/slapi-plugin.h usr/lib/liblber-2.3.so.0 usr/lib/liblber-2.3.so.0.2.8 -#usr/lib/liblber.a #usr/lib/liblber.la -usr/lib/liblber.so +#usr/lib/liblber.so usr/lib/libldap-2.3.so.0 usr/lib/libldap-2.3.so.0.2.8 -#usr/lib/libldap.a #usr/lib/libldap.la -usr/lib/libldap.so +#usr/lib/libldap.so usr/lib/libldap_r-2.3.so.0 usr/lib/libldap_r-2.3.so.0.2.8 -#usr/lib/libldap_r.a #usr/lib/libldap_r.la -usr/lib/libldap_r.so +#usr/lib/libldap_r.so +#usr/lib/openldap +#usr/lib/openldap/accesslog-2.3.so.0 +#usr/lib/openldap/accesslog-2.3.so.0.2.8 +#usr/lib/openldap/accesslog.la +#usr/lib/openldap/accesslog.so +#usr/lib/openldap/back_bdb-2.3.so.0 +#usr/lib/openldap/back_bdb-2.3.so.0.2.8 +#usr/lib/openldap/back_bdb.la +#usr/lib/openldap/back_bdb.so +#usr/lib/openldap/back_dnssrv-2.3.so.0 +#usr/lib/openldap/back_dnssrv-2.3.so.0.2.8 +#usr/lib/openldap/back_dnssrv.la +#usr/lib/openldap/back_dnssrv.so +#usr/lib/openldap/back_hdb-2.3.so.0 +#usr/lib/openldap/back_hdb-2.3.so.0.2.8 +#usr/lib/openldap/back_hdb.la +#usr/lib/openldap/back_hdb.so +#usr/lib/openldap/back_ldap-2.3.so.0 +#usr/lib/openldap/back_ldap-2.3.so.0.2.8 +#usr/lib/openldap/back_ldap.la +#usr/lib/openldap/back_ldap.so +#usr/lib/openldap/back_ldbm-2.3.so.0 +#usr/lib/openldap/back_ldbm-2.3.so.0.2.8 +#usr/lib/openldap/back_ldbm.la +#usr/lib/openldap/back_ldbm.so +#usr/lib/openldap/back_meta-2.3.so.0 +#usr/lib/openldap/back_meta-2.3.so.0.2.8 +#usr/lib/openldap/back_meta.la +#usr/lib/openldap/back_meta.so +#usr/lib/openldap/back_monitor-2.3.so.0 +#usr/lib/openldap/back_monitor-2.3.so.0.2.8 +#usr/lib/openldap/back_monitor.la +#usr/lib/openldap/back_monitor.so +#usr/lib/openldap/back_null-2.3.so.0 +#usr/lib/openldap/back_null-2.3.so.0.2.8 +#usr/lib/openldap/back_null.la +#usr/lib/openldap/back_null.so +#usr/lib/openldap/back_passwd-2.3.so.0 +#usr/lib/openldap/back_passwd-2.3.so.0.2.8 +#usr/lib/openldap/back_passwd.la +#usr/lib/openldap/back_passwd.so +#usr/lib/openldap/back_relay-2.3.so.0 +#usr/lib/openldap/back_relay-2.3.so.0.2.8 +#usr/lib/openldap/back_relay.la +#usr/lib/openldap/back_relay.so +#usr/lib/openldap/back_shell-2.3.so.0 +#usr/lib/openldap/back_shell-2.3.so.0.2.8 +#usr/lib/openldap/back_shell.la +#usr/lib/openldap/back_shell.so +#usr/lib/openldap/denyop-2.3.so.0 +#usr/lib/openldap/denyop-2.3.so.0.2.8 +#usr/lib/openldap/denyop.la +#usr/lib/openldap/denyop.so +#usr/lib/openldap/dyngroup-2.3.so.0 +#usr/lib/openldap/dyngroup-2.3.so.0.2.8 +#usr/lib/openldap/dyngroup.la +#usr/lib/openldap/dyngroup.so +#usr/lib/openldap/dynlist-2.3.so.0 +#usr/lib/openldap/dynlist-2.3.so.0.2.8 +#usr/lib/openldap/dynlist.la +#usr/lib/openldap/dynlist.so +#usr/lib/openldap/lastmod-2.3.so.0 +#usr/lib/openldap/lastmod-2.3.so.0.2.8 +#usr/lib/openldap/lastmod.la +#usr/lib/openldap/lastmod.so +#usr/lib/openldap/pcache-2.3.so.0 +#usr/lib/openldap/pcache-2.3.so.0.2.8 +#usr/lib/openldap/pcache.la +#usr/lib/openldap/pcache.so +#usr/lib/openldap/ppolicy-2.3.so.0 +#usr/lib/openldap/ppolicy-2.3.so.0.2.8 +#usr/lib/openldap/ppolicy.la +#usr/lib/openldap/ppolicy.so +#usr/lib/openldap/refint-2.3.so.0 +#usr/lib/openldap/refint-2.3.so.0.2.8 +#usr/lib/openldap/refint.la +#usr/lib/openldap/refint.so +#usr/lib/openldap/retcode-2.3.so.0 +#usr/lib/openldap/retcode-2.3.so.0.2.8 +#usr/lib/openldap/retcode.la +#usr/lib/openldap/retcode.so +#usr/lib/openldap/rwm-2.3.so.0 +#usr/lib/openldap/rwm-2.3.so.0.2.8 +#usr/lib/openldap/rwm.la +#usr/lib/openldap/rwm.so +#usr/lib/openldap/syncprov-2.3.so.0 +#usr/lib/openldap/syncprov-2.3.so.0.2.8 +#usr/lib/openldap/syncprov.la +#usr/lib/openldap/syncprov.so +#usr/lib/openldap/translucent-2.3.so.0 +#usr/lib/openldap/translucent-2.3.so.0.2.8 +#usr/lib/openldap/translucent.la +#usr/lib/openldap/translucent.so +#usr/lib/openldap/unique-2.3.so.0 +#usr/lib/openldap/unique-2.3.so.0.2.8 +#usr/lib/openldap/unique.la +#usr/lib/openldap/unique.so +#usr/lib/openldap/valsort-2.3.so.0 +#usr/lib/openldap/valsort-2.3.so.0.2.8 +#usr/lib/openldap/valsort.la +#usr/lib/openldap/valsort.so +#usr/lib/slapd +#usr/lib/slurpd #usr/man/man1/ldapadd.1 #usr/man/man1/ldapcompare.1 #usr/man/man1/ldapdelete.1 @@ -257,9 +357,7 @@ usr/lib/libldap_r.so #usr/sbin/slapadd #usr/sbin/slapauth #usr/sbin/slapcat -#usr/sbin/slapd #usr/sbin/slapdn #usr/sbin/slapindex #usr/sbin/slappasswd #usr/sbin/slaptest -#usr/sbin/slurpd diff --git a/config/rootfiles/common/openssl b/config/rootfiles/common/openssl index 02e4c1c..bc1ac49 100644 --- a/config/rootfiles/common/openssl +++ b/config/rootfiles/common/openssl @@ -1116,6 +1116,7 @@ usr/lib/libssl.so.0.9.8 #usr/share/man/man3/dsa.3 #usr/share/man/man3/ecdsa.3 #usr/share/man/man3/engine.3 +#usr/share/man/man3/err.3 #usr/share/man/man3/evp.3 #usr/share/man/man3/hmac.3 #usr/share/man/man3/i2d_ASN1_OBJECT.3 @@ -1163,7 +1164,6 @@ usr/lib/libssl.so.0.9.8 #usr/share/man/man3/md5.3 #usr/share/man/man3/mdc2.3 #usr/share/man/man3/pem.3 -#usr/share/man/man3/rand.3 #usr/share/man/man3/rc4.3 #usr/share/man/man3/ripemd.3 #usr/share/man/man3/rsa.3 diff --git a/config/rootfiles/common/pam b/config/rootfiles/common/pam index a14302a..3335a54 100644 --- a/config/rootfiles/common/pam +++ b/config/rootfiles/common/pam @@ -11,7 +11,9 @@ etc/security #etc/security/group.conf #etc/security/limits.conf #etc/security/limits.d +#etc/security/namespace.conf #etc/security/namespace.d +#etc/security/namespace.init #etc/security/pam_env.conf #etc/security/time.conf lib/libpam.so.0 @@ -63,6 +65,8 @@ lib/security/pam_mail.so #lib/security/pam_mkhomedir.so #lib/security/pam_motd.la #lib/security/pam_motd.so +#lib/security/pam_namespace.la +#lib/security/pam_namespace.so #lib/security/pam_nologin.la lib/security/pam_nologin.so #lib/security/pam_permit.la @@ -161,6 +165,7 @@ usr/lib/libpamc.so #usr/share/man/man5/access.conf.5 #usr/share/man/man5/group.conf.5 #usr/share/man/man5/limits.conf.5 +#usr/share/man/man5/namespace.conf.5 #usr/share/man/man5/pam.conf.5 #usr/share/man/man5/pam.d.5 #usr/share/man/man5/pam_env.conf.5 @@ -188,6 +193,7 @@ usr/lib/libpamc.so #usr/share/man/man8/pam_mail.8 #usr/share/man/man8/pam_mkhomedir.8 #usr/share/man/man8/pam_motd.8 +#usr/share/man/man8/pam_namespace.8 #usr/share/man/man8/pam_nologin.8 #usr/share/man/man8/pam_permit.8 #usr/share/man/man8/pam_rhosts.8 diff --git a/config/rootfiles/common/pango b/config/rootfiles/common/pango new file mode 100644 index 0000000..286aa35 --- /dev/null +++ b/config/rootfiles/common/pango @@ -0,0 +1,143 @@ +etc/pango +etc/pango/pango.modules +usr/bin/pango-querymodules +usr/bin/pango-view +#usr/include/pango-1.0 +#usr/include/pango-1.0/pango +#usr/include/pango-1.0/pango/pango-attributes.h +#usr/include/pango-1.0/pango/pango-bidi-type.h +#usr/include/pango-1.0/pango/pango-break.h +#usr/include/pango-1.0/pango/pango-context.h +#usr/include/pango-1.0/pango/pango-coverage.h +#usr/include/pango-1.0/pango/pango-engine.h +#usr/include/pango-1.0/pango/pango-enum-types.h +#usr/include/pango-1.0/pango/pango-features.h +#usr/include/pango-1.0/pango/pango-font.h +#usr/include/pango-1.0/pango/pango-fontmap.h +#usr/include/pango-1.0/pango/pango-fontset.h +#usr/include/pango-1.0/pango/pango-glyph-item.h +#usr/include/pango-1.0/pango/pango-glyph.h +#usr/include/pango-1.0/pango/pango-gravity.h +#usr/include/pango-1.0/pango/pango-item.h +#usr/include/pango-1.0/pango/pango-language.h +#usr/include/pango-1.0/pango/pango-layout.h +#usr/include/pango-1.0/pango/pango-matrix.h +#usr/include/pango-1.0/pango/pango-modules.h +#usr/include/pango-1.0/pango/pango-ot.h +#usr/include/pango-1.0/pango/pango-renderer.h +#usr/include/pango-1.0/pango/pango-script.h +#usr/include/pango-1.0/pango/pango-tabs.h +#usr/include/pango-1.0/pango/pango-types.h +#usr/include/pango-1.0/pango/pango-utils.h +#usr/include/pango-1.0/pango/pango.h +#usr/include/pango-1.0/pango/pangocairo.h +#usr/include/pango-1.0/pango/pangofc-decoder.h +#usr/include/pango-1.0/pango/pangofc-font.h +#usr/include/pango-1.0/pango/pangofc-fontmap.h +#usr/include/pango-1.0/pango/pangoft2.h +#usr/lib/libpango-1.0.la +#usr/lib/libpango-1.0.so +usr/lib/libpango-1.0.so.0 +usr/lib/libpango-1.0.so.0.3000.1 +#usr/lib/libpangocairo-1.0.la +#usr/lib/libpangocairo-1.0.so +usr/lib/libpangocairo-1.0.so.0 +usr/lib/libpangocairo-1.0.so.0.3000.1 +#usr/lib/libpangoft2-1.0.la +#usr/lib/libpangoft2-1.0.so +usr/lib/libpangoft2-1.0.so.0 +usr/lib/libpangoft2-1.0.so.0.3000.1 +usr/lib/pango +usr/lib/pango/1.6.0 +usr/lib/pango/1.6.0/modules +#usr/lib/pango/1.6.0/modules/pango-arabic-fc.la +usr/lib/pango/1.6.0/modules/pango-arabic-fc.so +#usr/lib/pango/1.6.0/modules/pango-arabic-lang.la +usr/lib/pango/1.6.0/modules/pango-arabic-lang.so +#usr/lib/pango/1.6.0/modules/pango-basic-fc.la +usr/lib/pango/1.6.0/modules/pango-basic-fc.so +#usr/lib/pango/1.6.0/modules/pango-hangul-fc.la +usr/lib/pango/1.6.0/modules/pango-hangul-fc.so +#usr/lib/pango/1.6.0/modules/pango-hebrew-fc.la +usr/lib/pango/1.6.0/modules/pango-hebrew-fc.so +#usr/lib/pango/1.6.0/modules/pango-indic-fc.la +usr/lib/pango/1.6.0/modules/pango-indic-fc.so +#usr/lib/pango/1.6.0/modules/pango-indic-lang.la +usr/lib/pango/1.6.0/modules/pango-indic-lang.so +#usr/lib/pango/1.6.0/modules/pango-khmer-fc.la +usr/lib/pango/1.6.0/modules/pango-khmer-fc.so +#usr/lib/pango/1.6.0/modules/pango-syriac-fc.la +usr/lib/pango/1.6.0/modules/pango-syriac-fc.so +#usr/lib/pango/1.6.0/modules/pango-thai-fc.la +usr/lib/pango/1.6.0/modules/pango-thai-fc.so +#usr/lib/pango/1.6.0/modules/pango-tibetan-fc.la +usr/lib/pango/1.6.0/modules/pango-tibetan-fc.so +#usr/lib/pkgconfig/pango.pc +#usr/lib/pkgconfig/pangocairo.pc +#usr/lib/pkgconfig/pangoft2.pc +#usr/share/gtk-doc/html/pango +#usr/share/gtk-doc/html/pango/PangoEngineLang.html +#usr/share/gtk-doc/html/pango/PangoEngineShape.html +#usr/share/gtk-doc/html/pango/PangoFcDecoder.html +#usr/share/gtk-doc/html/pango/PangoFcFont.html +#usr/share/gtk-doc/html/pango/PangoFcFontMap.html +#usr/share/gtk-doc/html/pango/PangoMarkupFormat.html +#usr/share/gtk-doc/html/pango/annotation-glossary.html +#usr/share/gtk-doc/html/pango/api-index-1-10.html +#usr/share/gtk-doc/html/pango/api-index-1-12.html +#usr/share/gtk-doc/html/pango/api-index-1-14.html +#usr/share/gtk-doc/html/pango/api-index-1-16.html +#usr/share/gtk-doc/html/pango/api-index-1-18.html +#usr/share/gtk-doc/html/pango/api-index-1-2.html +#usr/share/gtk-doc/html/pango/api-index-1-20.html +#usr/share/gtk-doc/html/pango/api-index-1-22.html +#usr/share/gtk-doc/html/pango/api-index-1-24.html +#usr/share/gtk-doc/html/pango/api-index-1-26.html +#usr/share/gtk-doc/html/pango/api-index-1-28.html +#usr/share/gtk-doc/html/pango/api-index-1-30.html +#usr/share/gtk-doc/html/pango/api-index-1-4.html +#usr/share/gtk-doc/html/pango/api-index-1-6.html +#usr/share/gtk-doc/html/pango/api-index-1-8.html +#usr/share/gtk-doc/html/pango/api-index-deprecated.html +#usr/share/gtk-doc/html/pango/api-index-full.html +#usr/share/gtk-doc/html/pango/home.png +#usr/share/gtk-doc/html/pango/index.html +#usr/share/gtk-doc/html/pango/index.sgml +#usr/share/gtk-doc/html/pango/layout.gif +#usr/share/gtk-doc/html/pango/left.png +#usr/share/gtk-doc/html/pango/lowlevel.html +#usr/share/gtk-doc/html/pango/pango-ATSUI-Fonts.html +#usr/share/gtk-doc/html/pango/pango-Bidirectional-Text.html +#usr/share/gtk-doc/html/pango/pango-Cairo-Rendering.html +#usr/share/gtk-doc/html/pango/pango-CoreText-Fonts.html +#usr/share/gtk-doc/html/pango/pango-Coverage-Maps.html +#usr/share/gtk-doc/html/pango/pango-Engines.html +#usr/share/gtk-doc/html/pango/pango-Fonts.html +#usr/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html +#usr/share/gtk-doc/html/pango/pango-Glyph-Storage.html +#usr/share/gtk-doc/html/pango/pango-Layout-Objects.html +#usr/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html +#usr/share/gtk-doc/html/pango/pango-Modules.html +#usr/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html +#usr/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html +#usr/share/gtk-doc/html/pango/pango-Tab-Stops.html +#usr/share/gtk-doc/html/pango/pango-Text-Attributes.html +#usr/share/gtk-doc/html/pango/pango-Text-Processing.html +#usr/share/gtk-doc/html/pango/pango-Version-Checking.html +#usr/share/gtk-doc/html/pango/pango-Vertical-Text.html +#usr/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html +#usr/share/gtk-doc/html/pango/pango-X-Fonts-and-Rendering.html +#usr/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html +#usr/share/gtk-doc/html/pango/pango-hierarchy.html +#usr/share/gtk-doc/html/pango/pango-pango-renderer.html +#usr/share/gtk-doc/html/pango/pango-querymodules.html +#usr/share/gtk-doc/html/pango/pango.devhelp2 +#usr/share/gtk-doc/html/pango/pango.html +#usr/share/gtk-doc/html/pango/rendering.html +#usr/share/gtk-doc/html/pango/right.png +#usr/share/gtk-doc/html/pango/rotated-text.png +#usr/share/gtk-doc/html/pango/style.css +#usr/share/gtk-doc/html/pango/tools.html +#usr/share/gtk-doc/html/pango/up.png +#usr/share/man/man1/pango-querymodules.1 +#usr/share/man/man1/pango-view.1 diff --git a/config/rootfiles/common/pciutils b/config/rootfiles/common/pciutils index 260f271..43c31a1 100644 --- a/config/rootfiles/common/pciutils +++ b/config/rootfiles/common/pciutils @@ -1,21 +1,12 @@ +bin/lspci +bin/setpci +lib/libpci.so.3 +lib/libpci.so.3.1.10 +sbin/update-pciids #usr/include/pci #usr/include/pci/config.h #usr/include/pci/header.h -#usr/include/pci/i386-io-hurd.h -#usr/include/pci/i386-io-linux.h -#usr/include/pci/i386-io-sunos.h -#usr/include/pci/i386-io-windows.h -#usr/include/pci/internal.h #usr/include/pci/pci.h -#usr/include/pci/pread.h -#usr/include/pci/sysdep.h #usr/include/pci/types.h -#usr/lib/libpci.a -usr/sbin/lspci -usr/sbin/setpci -usr/sbin/update-pciids -#usr/share/hwdata -#usr/share/hwdata/pci.ids -#usr/share/man/man8/lspci.8 -#usr/share/man/man8/setpci.8 -#usr/share/man/man8/update-pciids.8 +#usr/lib/libpci.so +#usr/lib/pkgconfig/libpci.pc diff --git a/config/rootfiles/common/pcre b/config/rootfiles/common/pcre index d031bd3..5c29270 100644 --- a/config/rootfiles/common/pcre +++ b/config/rootfiles/common/pcre @@ -1,5 +1,3 @@ -lib/libpcre.so.0 -lib/libpcre.so.0.0.1 #usr/bin/pcre-config #usr/bin/pcregrep #usr/bin/pcretest @@ -9,57 +7,21 @@ lib/libpcre.so.0.0.1 #usr/include/pcrecpp.h #usr/include/pcrecpparg.h #usr/include/pcreposix.h -#usr/lib/libpcre.a #usr/lib/libpcre.la usr/lib/libpcre.so -#usr/lib/libpcrecpp.a +usr/lib/libpcre.so.1 +usr/lib/libpcre.so.1.0.1 #usr/lib/libpcrecpp.la usr/lib/libpcrecpp.so usr/lib/libpcrecpp.so.0 usr/lib/libpcrecpp.so.0.0.0 -#usr/lib/libpcreposix.a #usr/lib/libpcreposix.la usr/lib/libpcreposix.so usr/lib/libpcreposix.so.0 -usr/lib/libpcreposix.so.0.0.0 +usr/lib/libpcreposix.so.0.0.1 #usr/lib/pkgconfig/libpcre.pc -#usr/man/man1/pcregrep.1 -#usr/man/man1/pcretest.1 -#usr/man/man3/pcre.3 -#usr/man/man3/pcre_compile.3 -#usr/man/man3/pcre_compile2.3 -#usr/man/man3/pcre_config.3 -#usr/man/man3/pcre_copy_named_substring.3 -#usr/man/man3/pcre_copy_substring.3 -#usr/man/man3/pcre_dfa_exec.3 -#usr/man/man3/pcre_exec.3 -#usr/man/man3/pcre_free_substring.3 -#usr/man/man3/pcre_free_substring_list.3 -#usr/man/man3/pcre_fullinfo.3 -#usr/man/man3/pcre_get_named_substring.3 -#usr/man/man3/pcre_get_stringnumber.3 -#usr/man/man3/pcre_get_stringtable_entries.3 -#usr/man/man3/pcre_get_substring.3 -#usr/man/man3/pcre_get_substring_list.3 -#usr/man/man3/pcre_info.3 -#usr/man/man3/pcre_maketables.3 -#usr/man/man3/pcre_refcount.3 -#usr/man/man3/pcre_study.3 -#usr/man/man3/pcre_version.3 -#usr/man/man3/pcreapi.3 -#usr/man/man3/pcrebuild.3 -#usr/man/man3/pcrecallout.3 -#usr/man/man3/pcrecompat.3 -#usr/man/man3/pcrecpp.3 -#usr/man/man3/pcrematching.3 -#usr/man/man3/pcrepartial.3 -#usr/man/man3/pcrepattern.3 -#usr/man/man3/pcreperform.3 -#usr/man/man3/pcreposix.3 -#usr/man/man3/pcreprecompile.3 -#usr/man/man3/pcresample.3 -#usr/man/man3/pcrestack.3 #usr/lib/pkgconfig/libpcrecpp.pc +#usr/lib/pkgconfig/libpcreposix.pc #usr/share/doc/pcre #usr/share/doc/pcre/AUTHORS #usr/share/doc/pcre/COPYING @@ -71,6 +33,8 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/doc/pcre/html/index.html #usr/share/doc/pcre/html/pcre-config.html #usr/share/doc/pcre/html/pcre.html +#usr/share/doc/pcre/html/pcre16.html +#usr/share/doc/pcre/html/pcre_assign_jit_stack.html #usr/share/doc/pcre/html/pcre_compile.html #usr/share/doc/pcre/html/pcre_compile2.html #usr/share/doc/pcre/html/pcre_config.html @@ -78,6 +42,7 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/doc/pcre/html/pcre_copy_substring.html #usr/share/doc/pcre/html/pcre_dfa_exec.html #usr/share/doc/pcre/html/pcre_exec.html +#usr/share/doc/pcre/html/pcre_free_study.html #usr/share/doc/pcre/html/pcre_free_substring.html #usr/share/doc/pcre/html/pcre_free_substring_list.html #usr/share/doc/pcre/html/pcre_fullinfo.html @@ -86,17 +51,23 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/doc/pcre/html/pcre_get_stringtable_entries.html #usr/share/doc/pcre/html/pcre_get_substring.html #usr/share/doc/pcre/html/pcre_get_substring_list.html -#usr/share/doc/pcre/html/pcre_info.html +#usr/share/doc/pcre/html/pcre_jit_stack_alloc.html +#usr/share/doc/pcre/html/pcre_jit_stack_free.html #usr/share/doc/pcre/html/pcre_maketables.html +#usr/share/doc/pcre/html/pcre_pattern_to_host_byte_order.html #usr/share/doc/pcre/html/pcre_refcount.html #usr/share/doc/pcre/html/pcre_study.html +#usr/share/doc/pcre/html/pcre_utf16_to_host_byte_order.html #usr/share/doc/pcre/html/pcre_version.html #usr/share/doc/pcre/html/pcreapi.html #usr/share/doc/pcre/html/pcrebuild.html #usr/share/doc/pcre/html/pcrecallout.html #usr/share/doc/pcre/html/pcrecompat.html #usr/share/doc/pcre/html/pcrecpp.html +#usr/share/doc/pcre/html/pcredemo.html #usr/share/doc/pcre/html/pcregrep.html +#usr/share/doc/pcre/html/pcrejit.html +#usr/share/doc/pcre/html/pcrelimits.html #usr/share/doc/pcre/html/pcrematching.html #usr/share/doc/pcre/html/pcrepartial.html #usr/share/doc/pcre/html/pcrepattern.html @@ -107,6 +78,7 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/doc/pcre/html/pcrestack.html #usr/share/doc/pcre/html/pcresyntax.html #usr/share/doc/pcre/html/pcretest.html +#usr/share/doc/pcre/html/pcreunicode.html #usr/share/doc/pcre/pcre-config.txt #usr/share/doc/pcre/pcre.txt #usr/share/doc/pcre/pcregrep.txt @@ -115,6 +87,33 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/man/man1/pcregrep.1 #usr/share/man/man1/pcretest.1 #usr/share/man/man3/pcre.3 +#usr/share/man/man3/pcre16.3 +#usr/share/man/man3/pcre16_assign_jit_stack.3 +#usr/share/man/man3/pcre16_compile.3 +#usr/share/man/man3/pcre16_compile2.3 +#usr/share/man/man3/pcre16_config.3 +#usr/share/man/man3/pcre16_copy_named_substring.3 +#usr/share/man/man3/pcre16_copy_substring.3 +#usr/share/man/man3/pcre16_dfa_exec.3 +#usr/share/man/man3/pcre16_exec.3 +#usr/share/man/man3/pcre16_free_study.3 +#usr/share/man/man3/pcre16_free_substring.3 +#usr/share/man/man3/pcre16_free_substring_list.3 +#usr/share/man/man3/pcre16_fullinfo.3 +#usr/share/man/man3/pcre16_get_named_substring.3 +#usr/share/man/man3/pcre16_get_stringnumber.3 +#usr/share/man/man3/pcre16_get_stringtable_entries.3 +#usr/share/man/man3/pcre16_get_substring.3 +#usr/share/man/man3/pcre16_get_substring_list.3 +#usr/share/man/man3/pcre16_jit_stack_alloc.3 +#usr/share/man/man3/pcre16_jit_stack_free.3 +#usr/share/man/man3/pcre16_maketables.3 +#usr/share/man/man3/pcre16_pattern_to_host_byte_order.3 +#usr/share/man/man3/pcre16_refcount.3 +#usr/share/man/man3/pcre16_study.3 +#usr/share/man/man3/pcre16_utf16_to_host_byte_order.3 +#usr/share/man/man3/pcre16_version.3 +#usr/share/man/man3/pcre_assign_jit_stack.3 #usr/share/man/man3/pcre_compile.3 #usr/share/man/man3/pcre_compile2.3 #usr/share/man/man3/pcre_config.3 @@ -122,6 +121,7 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/man/man3/pcre_copy_substring.3 #usr/share/man/man3/pcre_dfa_exec.3 #usr/share/man/man3/pcre_exec.3 +#usr/share/man/man3/pcre_free_study.3 #usr/share/man/man3/pcre_free_substring.3 #usr/share/man/man3/pcre_free_substring_list.3 #usr/share/man/man3/pcre_fullinfo.3 @@ -130,16 +130,21 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/man/man3/pcre_get_stringtable_entries.3 #usr/share/man/man3/pcre_get_substring.3 #usr/share/man/man3/pcre_get_substring_list.3 -#usr/share/man/man3/pcre_info.3 +#usr/share/man/man3/pcre_jit_stack_alloc.3 +#usr/share/man/man3/pcre_jit_stack_free.3 #usr/share/man/man3/pcre_maketables.3 +#usr/share/man/man3/pcre_pattern_to_host_byte_order.3 #usr/share/man/man3/pcre_refcount.3 #usr/share/man/man3/pcre_study.3 +#usr/share/man/man3/pcre_utf16_to_host_byte_order.3 #usr/share/man/man3/pcre_version.3 #usr/share/man/man3/pcreapi.3 #usr/share/man/man3/pcrebuild.3 #usr/share/man/man3/pcrecallout.3 #usr/share/man/man3/pcrecompat.3 #usr/share/man/man3/pcrecpp.3 +#usr/share/man/man3/pcrejit.3 +#usr/share/man/man3/pcrelimits.3 #usr/share/man/man3/pcrematching.3 #usr/share/man/man3/pcrepartial.3 #usr/share/man/man3/pcrepattern.3 @@ -149,3 +154,4 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/man/man3/pcresample.3 #usr/share/man/man3/pcrestack.3 #usr/share/man/man3/pcresyntax.3 +#usr/share/man/man3/pcreunicode.3 diff --git a/config/rootfiles/common/pcre-compat b/config/rootfiles/common/pcre-compat new file mode 100644 index 0000000..ff1b776 --- /dev/null +++ b/config/rootfiles/common/pcre-compat @@ -0,0 +1,2 @@ +lib/libpcre.so.0 +lib/libpcre.so.0.0.1 diff --git a/config/rootfiles/common/pixman b/config/rootfiles/common/pixman new file mode 100644 index 0000000..ea44cd8 --- /dev/null +++ b/config/rootfiles/common/pixman @@ -0,0 +1,9 @@ +#usr/include/pixman-1 +#usr/include/pixman-1/pixman-version.h +#usr/include/pixman-1/pixman.h +#usr/lib/libpixman-1.a +#usr/lib/libpixman-1.la +usr/lib/libpixman-1.so +usr/lib/libpixman-1.so.0 +usr/lib/libpixman-1.so.0.26.0 +#usr/lib/pkgconfig/pixman-1.pc diff --git a/config/rootfiles/common/procps b/config/rootfiles/common/procps index 267e8be..d5e5ad3 100644 --- a/config/rootfiles/common/procps +++ b/config/rootfiles/common/procps @@ -15,7 +15,7 @@ usr/bin/top usr/bin/uptime usr/bin/vmstat usr/bin/w -#usr/bin/watch +usr/bin/watch #usr/share/man/man1/free.1 #usr/share/man/man1/kill.1 #usr/share/man/man1/pgrep.1 diff --git a/config/rootfiles/common/readline b/config/rootfiles/common/readline index edf0035..7bef2c1 100644 --- a/config/rootfiles/common/readline +++ b/config/rootfiles/common/readline @@ -1,7 +1,3 @@ -lib/libhistory.so.5 -lib/libhistory.so.5.1 -lib/libreadline.so.5 -lib/libreadline.so.5.1 #usr/include/readline #usr/include/readline/chardefs.h #usr/include/readline/history.h @@ -11,12 +7,14 @@ lib/libreadline.so.5.1 #usr/include/readline/rlstdc.h #usr/include/readline/rltypedefs.h #usr/include/readline/tilde.h -#usr/info/history.info -#usr/info/readline.info -#usr/info/rluserman.info -#usr/lib/libhistory.a -usr/lib/libhistory.so -#usr/lib/libreadline.a -usr/lib/libreadline.so -#usr/man/man3/history.3 -#usr/man/man3/readline.3 +#usr/lib/libhistory.so +usr/lib/libhistory.so.6 +usr/lib/libhistory.so.6.2 +#usr/lib/libreadline.so +usr/lib/libreadline.so.6 +usr/lib/libreadline.so.6.2 +#usr/share/info/history.info +#usr/share/info/readline.info +#usr/share/info/rluserman.info +#usr/share/man/man3/history.3 +#usr/share/man/man3/readline.3 diff --git a/config/rootfiles/common/readline-compat b/config/rootfiles/common/readline-compat new file mode 100644 index 0000000..1ff7325 --- /dev/null +++ b/config/rootfiles/common/readline-compat @@ -0,0 +1,4 @@ +lib/libhistory.so.5 +lib/libhistory.so.5.2 +lib/libreadline.so.5 +lib/libreadline.so.5.2 diff --git a/config/rootfiles/common/reiser4progs b/config/rootfiles/common/reiser4progs deleted file mode 100644 index e01e4f8..0000000 --- a/config/rootfiles/common/reiser4progs +++ /dev/null @@ -1,77 +0,0 @@ -#sbin/debugfs.reiser4 -sbin/fsck.reiser4 -#sbin/make_reiser4 -sbin/measurefs.reiser4 -sbin/mkfs.reiser4 -#usr/include/reiser4 -#usr/include/reiser4/alloc.h -#usr/include/reiser4/backup.h -#usr/include/reiser4/bitmap.h -#usr/include/reiser4/factory.h -#usr/include/reiser4/fake.h -#usr/include/reiser4/filesystem.h -#usr/include/reiser4/flow.h -#usr/include/reiser4/format.h -#usr/include/reiser4/item.h -#usr/include/reiser4/journal.h -#usr/include/reiser4/key.h -#usr/include/reiser4/libreiser4.h -#usr/include/reiser4/master.h -#usr/include/reiser4/node.h -#usr/include/reiser4/object.h -#usr/include/reiser4/oid.h -#usr/include/reiser4/place.h -#usr/include/reiser4/plugin.h -#usr/include/reiser4/print.h -#usr/include/reiser4/profile.h -#usr/include/reiser4/pset.h -#usr/include/reiser4/semantic.h -#usr/include/reiser4/status.h -#usr/include/reiser4/tree.h -#usr/include/reiser4/types.h -#usr/include/repair -#usr/include/repair/add_missing.h -#usr/include/repair/alloc.h -#usr/include/repair/backup.h -#usr/include/repair/cleanup.h -#usr/include/repair/disk_scan.h -#usr/include/repair/filesystem.h -#usr/include/repair/filter.h -#usr/include/repair/format.h -#usr/include/repair/item.h -#usr/include/repair/journal.h -#usr/include/repair/librepair.h -#usr/include/repair/lost_found.h -#usr/include/repair/master.h -#usr/include/repair/node.h -#usr/include/repair/object.h -#usr/include/repair/oid.h -#usr/include/repair/place.h -#usr/include/repair/plugin.h -#usr/include/repair/pset.h -#usr/include/repair/repair.h -#usr/include/repair/semantic.h -#usr/include/repair/status.h -#usr/include/repair/tree.h -#usr/include/repair/twig_scan.h -usr/lib/libreiser4-1.0.so.6 -usr/lib/libreiser4-1.0.so.6.0.0 -usr/lib/libreiser4-minimal-1.0.so.6 -usr/lib/libreiser4-minimal-1.0.so.6.0.0 -#usr/lib/libreiser4-minimal.a -#usr/lib/libreiser4-minimal.la -usr/lib/libreiser4-minimal.so -#usr/lib/libreiser4.a -#usr/lib/libreiser4.la -usr/lib/libreiser4.so -usr/lib/librepair-1.0.so.6 -usr/lib/librepair-1.0.so.6.0.0 -#usr/lib/librepair.a -#usr/lib/librepair.la -usr/lib/librepair.so -#usr/man/man8 -#usr/man/man8/debugfs.reiser4.8 -#usr/man/man8/fsck.reiser4.8 -#usr/man/man8/measurefs.reiser4.8 -#usr/man/man8/mkfs.reiser4.8 -#usr/share/aclocal/libreiser4.m4 diff --git a/config/rootfiles/common/rrdtool b/config/rootfiles/common/rrdtool index faa0dca..c957d52 100644 --- a/config/rootfiles/common/rrdtool +++ b/config/rootfiles/common/rrdtool @@ -1,17 +1,20 @@ #srv/web/ipfire/html/graphs -#usr/bin/rrdcgi +usr/bin/rrdcached usr/bin/rrdtool usr/bin/rrdupdate +#usr/include/rrd.h +#usr/include/rrd_client.h +#usr/include/rrd_format.h #usr/lib/librrd.a #usr/lib/librrd.la -usr/lib/librrd.so -usr/lib/librrd.so.2 -usr/lib/librrd.so.2.0.15 +#usr/lib/librrd.so +usr/lib/librrd.so.4 +usr/lib/librrd.so.4.2.0 #usr/lib/librrd_th.a #usr/lib/librrd_th.la -usr/lib/librrd_th.so -usr/lib/librrd_th.so.2 -usr/lib/librrd_th.so.2.0.13 +#usr/lib/librrd_th.so +usr/lib/librrd_th.so.4 +usr/lib/librrd_th.so.4.2.0 usr/lib/perl5/site_perl/5.12.3/RRDp.pm usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/RRDs.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDp @@ -20,17 +23,111 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/RRDs.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/.packlist #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.bs usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.so -#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/ntmake.pl +#usr/lib/pkgconfig/librrd.pc +#usr/share/doc/rrdtool-1.4.7 +#usr/share/doc/rrdtool-1.4.7/html +#usr/share/doc/rrdtool-1.4.7/html/RRDp.html +#usr/share/doc/rrdtool-1.4.7/html/RRDs.html +#usr/share/doc/rrdtool-1.4.7/html/bin_dec_hex.html +#usr/share/doc/rrdtool-1.4.7/html/cdeftutorial.html +#usr/share/doc/rrdtool-1.4.7/html/index.html +#usr/share/doc/rrdtool-1.4.7/html/librrd.html +#usr/share/doc/rrdtool-1.4.7/html/rpntutorial.html +#usr/share/doc/rrdtool-1.4.7/html/rrd-beginners.html +#usr/share/doc/rrdtool-1.4.7/html/rrdbuild.html +#usr/share/doc/rrdtool-1.4.7/html/rrdcached.html +#usr/share/doc/rrdtool-1.4.7/html/rrdcgi.html +#usr/share/doc/rrdtool-1.4.7/html/rrdcreate.html +#usr/share/doc/rrdtool-1.4.7/html/rrddump.html +#usr/share/doc/rrdtool-1.4.7/html/rrdfetch.html +#usr/share/doc/rrdtool-1.4.7/html/rrdfirst.html +#usr/share/doc/rrdtool-1.4.7/html/rrdflushcached.html +#usr/share/doc/rrdtool-1.4.7/html/rrdgraph.html +#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_data.html +#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_examples.html +#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_graph.html +#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_rpn.html +#usr/share/doc/rrdtool-1.4.7/html/rrdinfo.html +#usr/share/doc/rrdtool-1.4.7/html/rrdlast.html +#usr/share/doc/rrdtool-1.4.7/html/rrdlastupdate.html +#usr/share/doc/rrdtool-1.4.7/html/rrdresize.html +#usr/share/doc/rrdtool-1.4.7/html/rrdrestore.html +#usr/share/doc/rrdtool-1.4.7/html/rrdthreads.html +#usr/share/doc/rrdtool-1.4.7/html/rrdtool.html +#usr/share/doc/rrdtool-1.4.7/html/rrdtune.html +#usr/share/doc/rrdtool-1.4.7/html/rrdtutorial.html +#usr/share/doc/rrdtool-1.4.7/html/rrdupdate.html +#usr/share/doc/rrdtool-1.4.7/html/rrdxport.html +#usr/share/doc/rrdtool-1.4.7/txt +#usr/share/doc/rrdtool-1.4.7/txt/bin_dec_hex.pod +#usr/share/doc/rrdtool-1.4.7/txt/bin_dec_hex.txt +#usr/share/doc/rrdtool-1.4.7/txt/cdeftutorial.pod +#usr/share/doc/rrdtool-1.4.7/txt/cdeftutorial.txt +#usr/share/doc/rrdtool-1.4.7/txt/librrd.txt +#usr/share/doc/rrdtool-1.4.7/txt/rpntutorial.pod +#usr/share/doc/rrdtool-1.4.7/txt/rpntutorial.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrd-beginners.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrd-beginners.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdbuild.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdbuild.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdcached.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdcached.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdcgi.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdcgi.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdcreate.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdcreate.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrddump.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrddump.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdfetch.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdfetch.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdfirst.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdfirst.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdflushcached.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdflushcached.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_data.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_data.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_examples.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_examples.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_graph.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_graph.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_rpn.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_rpn.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdinfo.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdinfo.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdlast.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdlast.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdlastupdate.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdlastupdate.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdresize.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdresize.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdrestore.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdrestore.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdthreads.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdthreads.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdtool.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdtool.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdtune.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdtune.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdtutorial.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdtutorial.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdupdate.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdupdate.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdxport.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdxport.txt #usr/share/man/man1/bin_dec_hex.1 #usr/share/man/man1/cdeftutorial.1 #usr/share/man/man1/rpntutorial.1 #usr/share/man/man1/rrd-beginners.1 #usr/share/man/man1/rrdbuild.1 +#usr/share/man/man1/rrdcached.1 #usr/share/man/man1/rrdcgi.1 #usr/share/man/man1/rrdcreate.1 #usr/share/man/man1/rrddump.1 #usr/share/man/man1/rrdfetch.1 #usr/share/man/man1/rrdfirst.1 +#usr/share/man/man1/rrdflushcached.1 #usr/share/man/man1/rrdgraph.1 #usr/share/man/man1/rrdgraph_data.1 #usr/share/man/man1/rrdgraph_examples.1 @@ -49,105 +146,18 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.so #usr/share/man/man1/rrdxport.1 #usr/share/man/man3/RRDp.3 #usr/share/man/man3/RRDs.3 -#usr/share/rrdtool-1.2.30 -#usr/share/rrdtool-1.2.30/include -#usr/share/rrdtool-1.2.30/include/rrd.h -#usr/share/rrdtool-1.2.30/share -#usr/share/rrdtool-1.2.30/share/doc -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30 -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/RRDp.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/RRDs.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/bin_dec_hex.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/cdeftutorial.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/index.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rpntutorial.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrd-beginners.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdbuild.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdcgi.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdcreate.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrddump.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdfetch.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdfirst.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_data.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_examples.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_graph.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_rpn.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdinfo.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdlast.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdlastupdate.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdresize.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdrestore.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdthreads.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtool.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtune.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtutorial.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdupdate.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdxport.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/bin_dec_hex.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/bin_dec_hex.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/cdeftutorial.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/cdeftutorial.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rpntutorial.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rpntutorial.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrd-beginners.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrd-beginners.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdbuild.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdbuild.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcgi.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcgi.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcreate.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcreate.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrddump.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrddump.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfetch.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfetch.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfirst.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfirst.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_data.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_data.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_examples.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_examples.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_graph.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_graph.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_rpn.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_rpn.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdinfo.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdinfo.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlast.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlast.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlastupdate.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlastupdate.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdresize.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdresize.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdrestore.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdrestore.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdthreads.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdthreads.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtool.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtool.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtune.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtune.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtutorial.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtutorial.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdupdate.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdupdate.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdxport.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdxport.txt -#usr/share/rrdtool-1.2.30/share/rrdtool -#usr/share/rrdtool-1.2.30/share/rrdtool/examples -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/4charts.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/bigtops.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/cgi-demo.cgi -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/minmax.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/perftest.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/piped-demo.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/shared-demo.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/stripes.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/fonts -usr/share/rrdtool-1.2.30/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf +#usr/share/man/man3/librrd.3 +#usr/share/rrdtool +#usr/share/rrdtool/examples +#usr/share/rrdtool/examples/4charts.pl +#usr/share/rrdtool/examples/bigtops.pl +#usr/share/rrdtool/examples/cgi-demo.cgi +#usr/share/rrdtool/examples/minmax.pl +#usr/share/rrdtool/examples/perftest.pl +#usr/share/rrdtool/examples/piped-demo.pl +#usr/share/rrdtool/examples/rrdcached +#usr/share/rrdtool/examples/rrdcached/RRDCached.pm +#usr/share/rrdtool/examples/rrdcached/rrdcached-size.pl +#usr/share/rrdtool/examples/shared-demo.pl +#usr/share/rrdtool/examples/stripes.pl var/log/rrd diff --git a/config/rootfiles/common/sdparm b/config/rootfiles/common/sdparm index cf5caa5..1bfb6a9 100644 --- a/config/rootfiles/common/sdparm +++ b/config/rootfiles/common/sdparm @@ -1,2 +1,2 @@ usr/bin/sdparm -#usr/man/man8/sdparm.8 +#usr/share/man/man8/sdparm.8 diff --git a/config/rootfiles/common/sed b/config/rootfiles/common/sed index 5cd180b..8db08fa 100644 --- a/config/rootfiles/common/sed +++ b/config/rootfiles/common/sed @@ -1,5 +1,3 @@ bin/sed -#usr/info/sed.info -#usr/info/sed.info-1 -#usr/info/sed.info-2 -#usr/man/man1/sed.1 +#usr/share/info/sed.info +#usr/share/man/man1/sed.1 diff --git a/config/rootfiles/common/shadow b/config/rootfiles/common/shadow index 31a273f..ec9054e 100644 --- a/config/rootfiles/common/shadow +++ b/config/rootfiles/common/shadow @@ -23,7 +23,7 @@ lib/libshadow.so.0.0.0 #usr/bin/sg #usr/lib/libshadow.a #usr/lib/libshadow.la -usr/lib/libshadow.so +#usr/lib/libshadow.so #usr/man/man1/chage.1 #usr/man/man1/chfn.1 #usr/man/man1/chsh.1 @@ -45,6 +45,7 @@ usr/lib/libshadow.so #usr/man/man5/porttime.5 #usr/man/man5/shadow.5 #usr/man/man5/suauth.5 +#usr/man/man8 #usr/man/man8/chpasswd.8 #usr/man/man8/faillog.8 #usr/man/man8/groupadd.8 diff --git a/config/rootfiles/common/smartmontools b/config/rootfiles/common/smartmontools index d06ea9e..e37be6d 100644 --- a/config/rootfiles/common/smartmontools +++ b/config/rootfiles/common/smartmontools @@ -2,9 +2,6 @@ #usr/etc/rc.d/init.d #usr/etc/rc.d/init.d/smartd #usr/etc/smartd.conf -#usr/man/man5/smartd.conf.5 -#usr/man/man8/smartctl.8 -#usr/man/man8/smartd.8 usr/sbin/smartctl #usr/sbin/smartd usr/sbin/update-smart-drivedb @@ -24,5 +21,8 @@ usr/sbin/update-smart-drivedb #usr/share/doc/smartmontools/examplescripts/Example4 #usr/share/doc/smartmontools/examplescripts/README #usr/share/doc/smartmontools/smartd.conf +#usr/share/man/man5/smartd.conf.5 +#usr/share/man/man8/smartctl.8 +#usr/share/man/man8/smartd.8 #usr/share/smartmontools usr/share/smartmontools/drivedb.h diff --git a/config/rootfiles/common/snort b/config/rootfiles/common/snort index 90233a1..8404486 100644 --- a/config/rootfiles/common/snort +++ b/config/rootfiles/common/snort @@ -26,9 +26,10 @@ usr/bin/u2spewfoo #usr/include/snort/dynamic_output/snort_debug.h #usr/include/snort/dynamic_output/stream_api.h #usr/include/snort/dynamic_preproc -#usr/include/snort/dynamic_preproc/attribute_table_api.h #usr/include/snort/dynamic_preproc/bitop.h #usr/include/snort/dynamic_preproc/cpuclock.h +#usr/include/snort/dynamic_preproc/file_api.h +#usr/include/snort/dynamic_preproc/file_lib.h #usr/include/snort/dynamic_preproc/idle_processing.h #usr/include/snort/dynamic_preproc/ipv6_port.h #usr/include/snort/dynamic_preproc/mempool.h @@ -178,6 +179,7 @@ usr/sbin/snort #usr/share/doc/snort/README.dnp3 #usr/share/doc/snort/README.dns #usr/share/doc/snort/README.event_queue +#usr/share/doc/snort/README.file #usr/share/doc/snort/README.filters #usr/share/doc/snort/README.flowbits #usr/share/doc/snort/README.frag3 diff --git a/config/rootfiles/common/stage2 b/config/rootfiles/common/stage2 index 6871cc9..e10c649 100644 --- a/config/rootfiles/common/stage2 +++ b/config/rootfiles/common/stage2 @@ -1,6 +1,6 @@ bin/bash bin/cat -bin/grep +bin/echo bin/pwd bin/stty #boot @@ -13,11 +13,10 @@ etc/hddtemp.db etc/host.conf etc/inittab etc/inputrc -#etc/ipsec.user.conf -#etc/ipsec.user.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets etc/issue etc/ld.so.conf -etc/localtime etc/logrotate.conf etc/mime.types etc/modprobe.d @@ -30,11 +29,13 @@ etc/nsswitch.conf etc/passwd etc/profile #etc/profile.d -etc/profile.d/bashrc.sh -etc/profile.d/dircolors.sh +etc/profile.d/colorls.sh etc/profile.d/extrapaths.sh +etc/profile.d/glib2-locale.sh etc/profile.d/i18n.sh +etc/profile.d/lang.sh etc/profile.d/readline.sh +etc/profile.d/term256.sh etc/profile.d/umask.sh etc/resolv.conf etc/securetty @@ -50,14 +51,23 @@ media/usbkey mnt #opt #root +root/.bash_logout +root/.bash_profile +root/.bashrc root/ipfire #sbin #srv +#usr/bin #usr/bin/perl #usr/include #usr/lib -usr/lib/libgcc_s.so +#usr/lib/libgcc_s.so usr/lib/libgcc_s.so.1 +#usr/lib/libstdc++.la +#usr/lib/libstdc++.so +usr/lib/libstdc++.so.6 +#usr/local +#usr/local/bin #usr/local/bin/archive.files usr/local/bin/backupiso usr/local/bin/connscheduler @@ -76,13 +86,15 @@ usr/local/bin/settime usr/local/bin/timecheck #usr/local/bin/uname usr/local/bin/update-lang-cache -usr/local/bin/vpn-watch #usr/local/include #usr/local/lib #usr/local/sbin +#usr/local/share #usr/local/share/doc #usr/local/share/info #usr/local/share/locale +#usr/local/share/man +#usr/local/share/man/man1 #usr/local/share/man/man2 #usr/local/share/man/man3 #usr/local/share/man/man4 @@ -135,6 +147,6 @@ var/run var/run/utmp #var/spool var/tmp -dev/null dev/console +dev/null tmp diff --git a/config/rootfiles/common/strongswan b/config/rootfiles/common/strongswan index 4c7d558..2d5d42b 100644 --- a/config/rootfiles/common/strongswan +++ b/config/rootfiles/common/strongswan @@ -21,125 +21,61 @@ usr/lib/ipsec/libcharon.so.0.0.0 usr/lib/ipsec/libhydra.so usr/lib/ipsec/libhydra.so.0 usr/lib/ipsec/libhydra.so.0.0.0 +#usr/lib/ipsec/libradius.a +#usr/lib/ipsec/libradius.la +usr/lib/ipsec/libradius.so +usr/lib/ipsec/libradius.so.0 +usr/lib/ipsec/libradius.so.0.0.0 #usr/lib/ipsec/libstrongswan.a #usr/lib/ipsec/libstrongswan.la usr/lib/ipsec/libstrongswan.so usr/lib/ipsec/libstrongswan.so.0 usr/lib/ipsec/libstrongswan.so.0.0.0 #usr/lib/ipsec/plugins -#usr/lib/ipsec/plugins/libstrongswan-aes.a -#usr/lib/ipsec/plugins/libstrongswan-aes.la usr/lib/ipsec/plugins/libstrongswan-aes.so -#usr/lib/ipsec/plugins/libstrongswan-attr.a -#usr/lib/ipsec/plugins/libstrongswan-attr.la usr/lib/ipsec/plugins/libstrongswan-attr.so -#usr/lib/ipsec/plugins/libstrongswan-cmac.a -#usr/lib/ipsec/plugins/libstrongswan-cmac.la usr/lib/ipsec/plugins/libstrongswan-cmac.so -#usr/lib/ipsec/plugins/libstrongswan-constraints.a -#usr/lib/ipsec/plugins/libstrongswan-constraints.la usr/lib/ipsec/plugins/libstrongswan-constraints.so -#usr/lib/ipsec/plugins/libstrongswan-curl.a -#usr/lib/ipsec/plugins/libstrongswan-curl.la usr/lib/ipsec/plugins/libstrongswan-curl.so -#usr/lib/ipsec/plugins/libstrongswan-des.a -#usr/lib/ipsec/plugins/libstrongswan-des.la usr/lib/ipsec/plugins/libstrongswan-des.so -#usr/lib/ipsec/plugins/libstrongswan-dnskey.a -#usr/lib/ipsec/plugins/libstrongswan-dnskey.la usr/lib/ipsec/plugins/libstrongswan-dnskey.so -#usr/lib/ipsec/plugins/libstrongswan-fips-prf.a -#usr/lib/ipsec/plugins/libstrongswan-fips-prf.la +usr/lib/ipsec/plugins/libstrongswan-eap-radius.so usr/lib/ipsec/plugins/libstrongswan-fips-prf.so -#usr/lib/ipsec/plugins/libstrongswan-gmp.a -#usr/lib/ipsec/plugins/libstrongswan-gmp.la usr/lib/ipsec/plugins/libstrongswan-gmp.so -#usr/lib/ipsec/plugins/libstrongswan-hmac.a -#usr/lib/ipsec/plugins/libstrongswan-hmac.la usr/lib/ipsec/plugins/libstrongswan-hmac.so -#usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.a -#usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.la usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.so -#usr/lib/ipsec/plugins/libstrongswan-md5.a -#usr/lib/ipsec/plugins/libstrongswan-md5.la usr/lib/ipsec/plugins/libstrongswan-md5.so -#usr/lib/ipsec/plugins/libstrongswan-pem.a -#usr/lib/ipsec/plugins/libstrongswan-pem.la +usr/lib/ipsec/plugins/libstrongswan-nonce.so +usr/lib/ipsec/plugins/libstrongswan-openssl.so +#usr/lib/ipsec/plugins/libstrongswan-padlock.so usr/lib/ipsec/plugins/libstrongswan-pem.so -#usr/lib/ipsec/plugins/libstrongswan-pgp.a -#usr/lib/ipsec/plugins/libstrongswan-pgp.la usr/lib/ipsec/plugins/libstrongswan-pgp.so -#usr/lib/ipsec/plugins/libstrongswan-pkcs1.a -#usr/lib/ipsec/plugins/libstrongswan-pkcs1.la usr/lib/ipsec/plugins/libstrongswan-pkcs1.so -#usr/lib/ipsec/plugins/libstrongswan-pkcs8.a -#usr/lib/ipsec/plugins/libstrongswan-pkcs8.la +usr/lib/ipsec/plugins/libstrongswan-pkcs7.so usr/lib/ipsec/plugins/libstrongswan-pkcs8.so -#usr/lib/ipsec/plugins/libstrongswan-pubkey.a -#usr/lib/ipsec/plugins/libstrongswan-pubkey.la usr/lib/ipsec/plugins/libstrongswan-pubkey.so -#usr/lib/ipsec/plugins/libstrongswan-random.a -#usr/lib/ipsec/plugins/libstrongswan-random.la usr/lib/ipsec/plugins/libstrongswan-random.so -#usr/lib/ipsec/plugins/libstrongswan-resolve.a -#usr/lib/ipsec/plugins/libstrongswan-resolve.la usr/lib/ipsec/plugins/libstrongswan-resolve.so -#usr/lib/ipsec/plugins/libstrongswan-revocation.a -#usr/lib/ipsec/plugins/libstrongswan-revocation.la usr/lib/ipsec/plugins/libstrongswan-revocation.so -#usr/lib/ipsec/plugins/libstrongswan-sha1.a -#usr/lib/ipsec/plugins/libstrongswan-sha1.la usr/lib/ipsec/plugins/libstrongswan-sha1.so -#usr/lib/ipsec/plugins/libstrongswan-sha2.a -#usr/lib/ipsec/plugins/libstrongswan-sha2.la usr/lib/ipsec/plugins/libstrongswan-sha2.so -#usr/lib/ipsec/plugins/libstrongswan-socket-raw.a -#usr/lib/ipsec/plugins/libstrongswan-socket-raw.la -usr/lib/ipsec/plugins/libstrongswan-socket-raw.so -#usr/lib/ipsec/plugins/libstrongswan-stroke.a -#usr/lib/ipsec/plugins/libstrongswan-stroke.la +usr/lib/ipsec/plugins/libstrongswan-socket-default.so usr/lib/ipsec/plugins/libstrongswan-stroke.so -#usr/lib/ipsec/plugins/libstrongswan-updown.a -#usr/lib/ipsec/plugins/libstrongswan-updown.la usr/lib/ipsec/plugins/libstrongswan-updown.so -#usr/lib/ipsec/plugins/libstrongswan-x509.a -#usr/lib/ipsec/plugins/libstrongswan-x509.la usr/lib/ipsec/plugins/libstrongswan-x509.so -#usr/lib/ipsec/plugins/libstrongswan-xauth.a -#usr/lib/ipsec/plugins/libstrongswan-xauth.la -usr/lib/ipsec/plugins/libstrongswan-xauth.so -#usr/lib/ipsec/plugins/libstrongswan-xcbc.a -#usr/lib/ipsec/plugins/libstrongswan-xcbc.la +usr/lib/ipsec/plugins/libstrongswan-xauth-generic.so usr/lib/ipsec/plugins/libstrongswan-xcbc.so #usr/libexec/ipsec usr/libexec/ipsec/_copyright -usr/libexec/ipsec/_pluto_adns usr/libexec/ipsec/_updown usr/libexec/ipsec/_updown_espmark usr/libexec/ipsec/charon usr/libexec/ipsec/openac usr/libexec/ipsec/pki -usr/libexec/ipsec/pluto usr/libexec/ipsec/scepclient usr/libexec/ipsec/starter usr/libexec/ipsec/stroke -usr/libexec/ipsec/whack usr/sbin/ipsec -#usr/share/man/man3/anyaddr.3 -#usr/share/man/man3/atoaddr.3 -#usr/share/man/man3/atoasr.3 -#usr/share/man/man3/atoul.3 -#usr/share/man/man3/goodmask.3 -#usr/share/man/man3/initaddr.3 -#usr/share/man/man3/initsubnet.3 -#usr/share/man/man3/portof.3 -#usr/share/man/man3/rangetosubnet.3 -#usr/share/man/man3/sameaddr.3 -#usr/share/man/man3/subnetof.3 -#usr/share/man/man3/ttoaddr.3 -#usr/share/man/man3/ttodata.3 -#usr/share/man/man3/ttosa.3 -#usr/share/man/man3/ttoul.3 #usr/share/man/man5/ipsec.conf.5 #usr/share/man/man5/ipsec.secrets.5 #usr/share/man/man5/strongswan.conf.5 @@ -147,7 +83,4 @@ usr/sbin/ipsec #usr/share/man/man8/_updown_espmark.8 #usr/share/man/man8/ipsec.8 #usr/share/man/man8/openac.8 -#usr/share/man/man8/pluto.8 #usr/share/man/man8/scepclient.8 -etc/ipsec.user.conf -etc/ipsec.user.secrets diff --git a/config/rootfiles/common/sysfsutils b/config/rootfiles/common/sysfsutils index c749e48..32eca4e 100644 --- a/config/rootfiles/common/sysfsutils +++ b/config/rootfiles/common/sysfsutils @@ -1,18 +1,3 @@ -#opt/MACHINE-uClibc/bin/dlist_test -#opt/MACHINE-uClibc/bin/get_bus_devices_list -#opt/MACHINE-uClibc/bin/get_class_dev -#opt/MACHINE-uClibc/bin/get_classdev_parent -#opt/MACHINE-uClibc/bin/get_device -#opt/MACHINE-uClibc/bin/get_driver -#opt/MACHINE-uClibc/bin/systool -#opt/MACHINE-uClibc/bin/testlibsysfs -#opt/MACHINE-uClibc/bin/write_attr -#opt/MACHINE-uClibc/lib/libsysfs.a -#opt/MACHINE-uClibc/lib/libsysfs.la -#opt/MACHINE-uClibc/man/man1/systool.1 -#opt/MACHINE-uClibc/usr/include/sysfs -#opt/MACHINE-uClibc/usr/include/sysfs/dlist.h -#opt/MACHINE-uClibc/usr/include/sysfs/libsysfs.h #bin/dlist_test #bin/get_bus_devices_list #bin/get_class_dev diff --git a/config/rootfiles/common/sysvinit b/config/rootfiles/common/sysvinit index 8bd60ef..ede5aa5 100644 --- a/config/rootfiles/common/sysvinit +++ b/config/rootfiles/common/sysvinit @@ -1,6 +1,7 @@ bin/mountpoint bin/pidof #sbin/bootlogd +#sbin/fstab-decode sbin/halt sbin/init sbin/killall5 @@ -20,10 +21,12 @@ usr/bin/wall #usr/share/man/man1/lastb.1 #usr/share/man/man1/mesg.1 #usr/share/man/man1/mountpoint.1 +#usr/share/man/man1/utmpdump.1 #usr/share/man/man1/wall.1 #usr/share/man/man5/initscript.5 #usr/share/man/man5/inittab.5 #usr/share/man/man8/bootlogd.8 +#usr/share/man/man8/fstab-decode.8 #usr/share/man/man8/halt.8 #usr/share/man/man8/init.8 #usr/share/man/man8/killall5.8 diff --git a/config/rootfiles/common/texinfo b/config/rootfiles/common/texinfo index e7de4b7..00e9aed 100644 --- a/config/rootfiles/common/texinfo +++ b/config/rootfiles/common/texinfo @@ -2,23 +2,26 @@ #usr/bin/infokey #usr/bin/install-info #usr/bin/makeinfo +#usr/bin/pdftexi2dvi #usr/bin/texi2dvi #usr/bin/texi2pdf #usr/bin/texindex -#usr/info/info-stnd.info -#usr/info/info.info -#usr/info/texinfo -#usr/info/texinfo-1 -#usr/info/texinfo-2 -#usr/info/texinfo-3 -#usr/man/man1/info.1 -#usr/man/man1/infokey.1 -#usr/man/man1/install-info.1 -#usr/man/man1/makeinfo.1 -#usr/man/man1/texi2dvi.1 -#usr/man/man1/texindex.1 -#usr/man/man5/info.5 -#usr/man/man5/texinfo.5 +#usr/share/info/info-stnd.info +#usr/share/info/info.info +#usr/share/info/texinfo +#usr/share/info/texinfo-1 +#usr/share/info/texinfo-2 +#usr/share/info/texinfo-3 +#usr/share/man/man1/info.1 +#usr/share/man/man1/infokey.1 +#usr/share/man/man1/install-info.1 +#usr/share/man/man1/makeinfo.1 +#usr/share/man/man1/pdftexi2dvi.1 +#usr/share/man/man1/texi2dvi.1 +#usr/share/man/man1/texi2pdf.1 +#usr/share/man/man1/texindex.1 +#usr/share/man/man5/info.5 +#usr/share/man/man5/texinfo.5 #usr/share/texinfo #usr/share/texinfo/texinfo.cat #usr/share/texinfo/texinfo.dtd diff --git a/config/rootfiles/common/tzdata b/config/rootfiles/common/tzdata index 9df54d9..7362a0f 100644 --- a/config/rootfiles/common/tzdata +++ b/config/rootfiles/common/tzdata @@ -100,6 +100,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/America/Coral_Harbour #usr/share/zoneinfo/America/Cordoba #usr/share/zoneinfo/America/Costa_Rica +#usr/share/zoneinfo/America/Creston #usr/share/zoneinfo/America/Cuiaba #usr/share/zoneinfo/America/Curacao #usr/share/zoneinfo/America/Danmarkshavn @@ -594,12 +595,14 @@ usr/share/zoneinfo #usr/share/zoneinfo/US/Michigan #usr/share/zoneinfo/US/Mountain #usr/share/zoneinfo/US/Pacific +#usr/share/zoneinfo/US/Pacific-New #usr/share/zoneinfo/US/Samoa #usr/share/zoneinfo/UTC #usr/share/zoneinfo/Universal #usr/share/zoneinfo/W-SU #usr/share/zoneinfo/WET #usr/share/zoneinfo/Zulu +#usr/share/zoneinfo/iso3166.tab #usr/share/zoneinfo/posix #usr/share/zoneinfo/posix/Africa #usr/share/zoneinfo/posix/Africa/Abidjan @@ -702,6 +705,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/posix/America/Coral_Harbour #usr/share/zoneinfo/posix/America/Cordoba #usr/share/zoneinfo/posix/America/Costa_Rica +#usr/share/zoneinfo/posix/America/Creston #usr/share/zoneinfo/posix/America/Cuiaba #usr/share/zoneinfo/posix/America/Curacao #usr/share/zoneinfo/posix/America/Danmarkshavn @@ -1196,6 +1200,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/posix/US/Michigan #usr/share/zoneinfo/posix/US/Mountain #usr/share/zoneinfo/posix/US/Pacific +#usr/share/zoneinfo/posix/US/Pacific-New #usr/share/zoneinfo/posix/US/Samoa #usr/share/zoneinfo/posix/UTC #usr/share/zoneinfo/posix/Universal @@ -1305,6 +1310,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/right/America/Coral_Harbour #usr/share/zoneinfo/right/America/Cordoba #usr/share/zoneinfo/right/America/Costa_Rica +#usr/share/zoneinfo/right/America/Creston #usr/share/zoneinfo/right/America/Cuiaba #usr/share/zoneinfo/right/America/Curacao #usr/share/zoneinfo/right/America/Danmarkshavn @@ -1799,9 +1805,11 @@ usr/share/zoneinfo #usr/share/zoneinfo/right/US/Michigan #usr/share/zoneinfo/right/US/Mountain #usr/share/zoneinfo/right/US/Pacific +#usr/share/zoneinfo/right/US/Pacific-New #usr/share/zoneinfo/right/US/Samoa #usr/share/zoneinfo/right/UTC #usr/share/zoneinfo/right/Universal #usr/share/zoneinfo/right/W-SU #usr/share/zoneinfo/right/WET #usr/share/zoneinfo/right/Zulu +#usr/share/zoneinfo/zone.tab diff --git a/config/rootfiles/common/uClibc b/config/rootfiles/common/uClibc deleted file mode 100644 index 373caa9..0000000 --- a/config/rootfiles/common/uClibc +++ /dev/null @@ -1,1353 +0,0 @@ -#lib/ld-uClibc-0.9.28.so -#lib/ld-uClibc.so.0 -#lib/libc.so -#lib/libc.so.0 -#lib/libm.so.0 -#lib/libuClibc-0.9.28.so -#opt/MACHINE-uClibc/include/a.out.h -#opt/MACHINE-uClibc/include/alloca.h -#opt/MACHINE-uClibc/include/ar.h -#opt/MACHINE-uClibc/include/arpa -#opt/MACHINE-uClibc/include/arpa/ftp.h -#opt/MACHINE-uClibc/include/arpa/inet.h -#opt/MACHINE-uClibc/include/arpa/nameser.h -#opt/MACHINE-uClibc/include/arpa/nameser_compat.h -#opt/MACHINE-uClibc/include/arpa/telnet.h -#opt/MACHINE-uClibc/include/arpa/tftp.h -#opt/MACHINE-uClibc/include/asm -#opt/MACHINE-uClibc/include/asm-generic -#opt/MACHINE-uClibc/include/asm-generic/errno-base.h -#opt/MACHINE-uClibc/include/asm-generic/errno.h -#opt/MACHINE-uClibc/include/asm/8253pit.h -#opt/MACHINE-uClibc/include/asm/a.out.h -#opt/MACHINE-uClibc/include/asm/agp.h -#opt/MACHINE-uClibc/include/asm/apic.h -#opt/MACHINE-uClibc/include/asm/apicdef.h -#opt/MACHINE-uClibc/include/asm/arch_hooks.h -#opt/MACHINE-uClibc/include/asm/atomic.h -#opt/MACHINE-uClibc/include/asm/bitops.h -#opt/MACHINE-uClibc/include/asm/boot.h -#opt/MACHINE-uClibc/include/asm/byteorder.h -#opt/MACHINE-uClibc/include/asm/cache.h -#opt/MACHINE-uClibc/include/asm/cacheflush.h -#opt/MACHINE-uClibc/include/asm/checksum.h -#opt/MACHINE-uClibc/include/asm/cpu.h -#opt/MACHINE-uClibc/include/asm/cpufeature.h -#opt/MACHINE-uClibc/include/asm/debugreg.h -#opt/MACHINE-uClibc/include/asm/desc.h -#opt/MACHINE-uClibc/include/asm/dma.h -#opt/MACHINE-uClibc/include/asm/e820.h -#opt/MACHINE-uClibc/include/asm/elf.h -#opt/MACHINE-uClibc/include/asm/errno.h -#opt/MACHINE-uClibc/include/asm/fcntl.h -#opt/MACHINE-uClibc/include/asm/fixmap.h -#opt/MACHINE-uClibc/include/asm/floppy.h -#opt/MACHINE-uClibc/include/asm/genapic.h -#opt/MACHINE-uClibc/include/asm/hardirq.h -#opt/MACHINE-uClibc/include/asm/hdreg.h -#opt/MACHINE-uClibc/include/asm/hw_irq.h -#opt/MACHINE-uClibc/include/asm/i8259.h -#opt/MACHINE-uClibc/include/asm/init.h -#opt/MACHINE-uClibc/include/asm/io.h -#opt/MACHINE-uClibc/include/asm/io_apic.h -#opt/MACHINE-uClibc/include/asm/ioctl.h -#opt/MACHINE-uClibc/include/asm/ioctls.h -#opt/MACHINE-uClibc/include/asm/ipc.h -#opt/MACHINE-uClibc/include/asm/ipcbuf.h -#opt/MACHINE-uClibc/include/asm/irq.h -#opt/MACHINE-uClibc/include/asm/kdebug.h -#opt/MACHINE-uClibc/include/asm/kprobes.h -#opt/MACHINE-uClibc/include/asm/kvm.h -#opt/MACHINE-uClibc/include/asm/kvm_emulate.h -#opt/MACHINE-uClibc/include/asm/kvm_host.h -#opt/MACHINE-uClibc/include/asm/kvm_para.h -#opt/MACHINE-uClibc/include/asm/ldt.h -#opt/MACHINE-uClibc/include/asm/linkage.h -#opt/MACHINE-uClibc/include/asm/mach-bigsmp -#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-default -#opt/MACHINE-uClibc/include/asm/mach-default/apm.h -#opt/MACHINE-uClibc/include/asm/mach-default/bios_ebda.h -#opt/MACHINE-uClibc/include/asm/mach-default/do_timer.h -#opt/MACHINE-uClibc/include/asm/mach-default/entry_arch.h -#opt/MACHINE-uClibc/include/asm/mach-default/io_ports.h -#opt/MACHINE-uClibc/include/asm/mach-default/irq_vectors.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_mpparse.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_reboot.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_time.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_timer.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_traps.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_wakecpu.h -#opt/MACHINE-uClibc/include/asm/mach-default/pci-functions.h -#opt/MACHINE-uClibc/include/asm/mach-default/setup_arch_post.h -#opt/MACHINE-uClibc/include/asm/mach-default/setup_arch_pre.h -#opt/MACHINE-uClibc/include/asm/mach-default/smpboot_hooks.h -#opt/MACHINE-uClibc/include/asm/mach-es7000 -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_mpparse.h -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_wakecpu.h -#opt/MACHINE-uClibc/include/asm/mach-generic -#opt/MACHINE-uClibc/include/asm/mach-generic/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-generic/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-generic/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-generic/mach_mpparse.h -#opt/MACHINE-uClibc/include/asm/mach-generic/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-numaq -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_mpparse.h -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_wakecpu.h -#opt/MACHINE-uClibc/include/asm/mach-summit -#opt/MACHINE-uClibc/include/asm/mach-summit/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-summit/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-summit/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-summit/mach_mpparse.h -#opt/MACHINE-uClibc/include/asm/mach-summit/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-visws -#opt/MACHINE-uClibc/include/asm/mach-visws/cobalt.h -#opt/MACHINE-uClibc/include/asm/mach-visws/do_timer.h -#opt/MACHINE-uClibc/include/asm/mach-visws/entry_arch.h -#opt/MACHINE-uClibc/include/asm/mach-visws/irq_vectors.h -#opt/MACHINE-uClibc/include/asm/mach-visws/lithium.h -#opt/MACHINE-uClibc/include/asm/mach-visws/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-visws/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-visws/piix4.h -#opt/MACHINE-uClibc/include/asm/mach-visws/setup_arch_post.h -#opt/MACHINE-uClibc/include/asm/mach-visws/setup_arch_pre.h -#opt/MACHINE-uClibc/include/asm/mach-visws/smpboot_hooks.h -#opt/MACHINE-uClibc/include/asm/mach-voyager -#opt/MACHINE-uClibc/include/asm/mach-voyager/do_timer.h -#opt/MACHINE-uClibc/include/asm/mach-voyager/entry_arch.h -#opt/MACHINE-uClibc/include/asm/mach-voyager/irq_vectors.h -#opt/MACHINE-uClibc/include/asm/mach-voyager/setup_arch_post.h -#opt/MACHINE-uClibc/include/asm/mach-voyager/setup_arch_pre.h -#opt/MACHINE-uClibc/include/asm/math_emu.h -#opt/MACHINE-uClibc/include/asm/mca.h -#opt/MACHINE-uClibc/include/asm/mca_dma.h -#opt/MACHINE-uClibc/include/asm/mman.h -#opt/MACHINE-uClibc/include/asm/mmu.h -#opt/MACHINE-uClibc/include/asm/mmu_context.h -#opt/MACHINE-uClibc/include/asm/mmx.h -#opt/MACHINE-uClibc/include/asm/module.h -#opt/MACHINE-uClibc/include/asm/mpspec.h -#opt/MACHINE-uClibc/include/asm/mpspec_def.h -#opt/MACHINE-uClibc/include/asm/msgbuf.h -#opt/MACHINE-uClibc/include/asm/msr.h -#opt/MACHINE-uClibc/include/asm/mtrr.h -#opt/MACHINE-uClibc/include/asm/namei.h -#opt/MACHINE-uClibc/include/asm/nmi.h -#opt/MACHINE-uClibc/include/asm/node.h -#opt/MACHINE-uClibc/include/asm/numaq.h -#opt/MACHINE-uClibc/include/asm/numnodes.h -#opt/MACHINE-uClibc/include/asm/page.h -#opt/MACHINE-uClibc/include/asm/param.h -#opt/MACHINE-uClibc/include/asm/parport.h -#opt/MACHINE-uClibc/include/asm/pgalloc.h -#opt/MACHINE-uClibc/include/asm/poll.h -#opt/MACHINE-uClibc/include/asm/posix_types.h -#opt/MACHINE-uClibc/include/asm/processor.h -#opt/MACHINE-uClibc/include/asm/ptrace.h -#opt/MACHINE-uClibc/include/asm/rwlock.h -#opt/MACHINE-uClibc/include/asm/segment.h -#opt/MACHINE-uClibc/include/asm/semaphore.h -#opt/MACHINE-uClibc/include/asm/sembuf.h -#opt/MACHINE-uClibc/include/asm/serial.h -#opt/MACHINE-uClibc/include/asm/shmbuf.h -#opt/MACHINE-uClibc/include/asm/shmparam.h -#opt/MACHINE-uClibc/include/asm/sigcontext.h -#opt/MACHINE-uClibc/include/asm/siginfo.h -#opt/MACHINE-uClibc/include/asm/socket.h -#opt/MACHINE-uClibc/include/asm/sockios.h -#opt/MACHINE-uClibc/include/asm/spinlock.h -#opt/MACHINE-uClibc/include/asm/srat.h -#opt/MACHINE-uClibc/include/asm/stat.h -#opt/MACHINE-uClibc/include/asm/suspend.h -#opt/MACHINE-uClibc/include/asm/svm.h -#opt/MACHINE-uClibc/include/asm/system.h -#opt/MACHINE-uClibc/include/asm/termbits.h -#opt/MACHINE-uClibc/include/asm/termios.h -#opt/MACHINE-uClibc/include/asm/timer.h -#opt/MACHINE-uClibc/include/asm/timex.h -#opt/MACHINE-uClibc/include/asm/tlbflush.h -#opt/MACHINE-uClibc/include/asm/types.h -#opt/MACHINE-uClibc/include/asm/ucontext.h -#opt/MACHINE-uClibc/include/asm/unaligned.h -#opt/MACHINE-uClibc/include/asm/unistd.h -#opt/MACHINE-uClibc/include/asm/user.h -#opt/MACHINE-uClibc/include/asm/vga.h -#opt/MACHINE-uClibc/include/asm/vic.h -#opt/MACHINE-uClibc/include/asm/virtext.h -#opt/MACHINE-uClibc/include/asm/vm86.h -#opt/MACHINE-uClibc/include/asm/vmx.h -#opt/MACHINE-uClibc/include/asm/voyager.h -#opt/MACHINE-uClibc/include/assert.h -#opt/MACHINE-uClibc/include/atomic.h -#opt/MACHINE-uClibc/include/bits -#opt/MACHINE-uClibc/include/bits/atomic.h -#opt/MACHINE-uClibc/include/bits/atomicity.h -#opt/MACHINE-uClibc/include/bits/byteswap.h -#opt/MACHINE-uClibc/include/bits/cmathcalls.h -#opt/MACHINE-uClibc/include/bits/confname.h -#opt/MACHINE-uClibc/include/bits/dirent.h -#opt/MACHINE-uClibc/include/bits/dlfcn.h -#opt/MACHINE-uClibc/include/bits/elfclass.h -#opt/MACHINE-uClibc/include/bits/endian.h -#opt/MACHINE-uClibc/include/bits/environments.h -#opt/MACHINE-uClibc/include/bits/errno.h -#opt/MACHINE-uClibc/include/bits/errno_values.h -#opt/MACHINE-uClibc/include/bits/fcntl.h -#opt/MACHINE-uClibc/include/bits/fenv.h -#opt/MACHINE-uClibc/include/bits/fenvinline.h -#opt/MACHINE-uClibc/include/bits/getopt.h -#opt/MACHINE-uClibc/include/bits/huge_val.h -#opt/MACHINE-uClibc/include/bits/in.h -#opt/MACHINE-uClibc/include/bits/initspin.h -#opt/MACHINE-uClibc/include/bits/ioctl-types.h -#opt/MACHINE-uClibc/include/bits/ioctls.h -#opt/MACHINE-uClibc/include/bits/ipc.h -#opt/MACHINE-uClibc/include/bits/kernel_sigaction.h -#opt/MACHINE-uClibc/include/bits/kernel_stat.h -#opt/MACHINE-uClibc/include/bits/kernel_types.h -#opt/MACHINE-uClibc/include/bits/local_lim.h -#opt/MACHINE-uClibc/include/bits/locale.h -#opt/MACHINE-uClibc/include/bits/mathcalls.h -#opt/MACHINE-uClibc/include/bits/mathdef.h -#opt/MACHINE-uClibc/include/bits/mathinline.h -#opt/MACHINE-uClibc/include/bits/mman.h -#opt/MACHINE-uClibc/include/bits/msq.h -#opt/MACHINE-uClibc/include/bits/nan.h -#opt/MACHINE-uClibc/include/bits/netdb.h -#opt/MACHINE-uClibc/include/bits/poll.h -#opt/MACHINE-uClibc/include/bits/posix1_lim.h -#opt/MACHINE-uClibc/include/bits/posix2_lim.h -#opt/MACHINE-uClibc/include/bits/posix_opt.h -#opt/MACHINE-uClibc/include/bits/profil-counter.h -#opt/MACHINE-uClibc/include/bits/pthreadtypes.h -#opt/MACHINE-uClibc/include/bits/resource.h -#opt/MACHINE-uClibc/include/bits/sched.h -#opt/MACHINE-uClibc/include/bits/select.h -#opt/MACHINE-uClibc/include/bits/sem.h -#opt/MACHINE-uClibc/include/bits/setjmp.h -#opt/MACHINE-uClibc/include/bits/shm.h -#opt/MACHINE-uClibc/include/bits/sigaction.h -#opt/MACHINE-uClibc/include/bits/sigcontext.h -#opt/MACHINE-uClibc/include/bits/sigcontextinfo.h -#opt/MACHINE-uClibc/include/bits/siginfo.h -#opt/MACHINE-uClibc/include/bits/signum.h -#opt/MACHINE-uClibc/include/bits/sigset.h -#opt/MACHINE-uClibc/include/bits/sigstack.h -#opt/MACHINE-uClibc/include/bits/sigthread.h -#opt/MACHINE-uClibc/include/bits/sockaddr.h -#opt/MACHINE-uClibc/include/bits/socket.h -#opt/MACHINE-uClibc/include/bits/stackinfo.h -#opt/MACHINE-uClibc/include/bits/stat.h -#opt/MACHINE-uClibc/include/bits/statfs.h -#opt/MACHINE-uClibc/include/bits/statvfs.h -#opt/MACHINE-uClibc/include/bits/stdio.h -#opt/MACHINE-uClibc/include/bits/stdio_lim.h -#opt/MACHINE-uClibc/include/bits/syscalls.h -#opt/MACHINE-uClibc/include/bits/sysnum.h -#opt/MACHINE-uClibc/include/bits/termios.h -#opt/MACHINE-uClibc/include/bits/time.h -#opt/MACHINE-uClibc/include/bits/types.h -#opt/MACHINE-uClibc/include/bits/uClibc_clk_tck.h -#opt/MACHINE-uClibc/include/bits/uClibc_config.h -#opt/MACHINE-uClibc/include/bits/uClibc_ctype.h -#opt/MACHINE-uClibc/include/bits/uClibc_fpmax.h -#opt/MACHINE-uClibc/include/bits/uClibc_locale.h -#opt/MACHINE-uClibc/include/bits/uClibc_locale_data.h -#opt/MACHINE-uClibc/include/bits/uClibc_page.h -#opt/MACHINE-uClibc/include/bits/uClibc_pthread.h -#opt/MACHINE-uClibc/include/bits/uClibc_stdio.h -#opt/MACHINE-uClibc/include/bits/uClibc_touplow.h -#opt/MACHINE-uClibc/include/bits/uClibc_uintmaxtostr.h -#opt/MACHINE-uClibc/include/bits/uClibc_uwchar.h -#opt/MACHINE-uClibc/include/bits/uClibc_va_copy.h -#opt/MACHINE-uClibc/include/bits/uio.h -#opt/MACHINE-uClibc/include/bits/ustat.h -#opt/MACHINE-uClibc/include/bits/utmp.h -#opt/MACHINE-uClibc/include/bits/utmpx.h -#opt/MACHINE-uClibc/include/bits/utsname.h -#opt/MACHINE-uClibc/include/bits/waitflags.h -#opt/MACHINE-uClibc/include/bits/waitstatus.h -#opt/MACHINE-uClibc/include/bits/wchar.h -#opt/MACHINE-uClibc/include/bits/wordsize.h -#opt/MACHINE-uClibc/include/bits/xopen_lim.h -#opt/MACHINE-uClibc/include/byteswap.h -#opt/MACHINE-uClibc/include/complex.h -#opt/MACHINE-uClibc/include/cpio.h -#opt/MACHINE-uClibc/include/crypt.h -#opt/MACHINE-uClibc/include/ctype.h -#opt/MACHINE-uClibc/include/dirent.h -#opt/MACHINE-uClibc/include/dlfcn.h -#opt/MACHINE-uClibc/include/elf.h -#opt/MACHINE-uClibc/include/endian.h -#opt/MACHINE-uClibc/include/err.h -#opt/MACHINE-uClibc/include/errno.h -#opt/MACHINE-uClibc/include/error.h -#opt/MACHINE-uClibc/include/fcntl.h -#opt/MACHINE-uClibc/include/features.h -#opt/MACHINE-uClibc/include/fnmatch.h -#opt/MACHINE-uClibc/include/fpu_control.h -#opt/MACHINE-uClibc/include/ftw.h -#opt/MACHINE-uClibc/include/getopt.h -#opt/MACHINE-uClibc/include/glob.h -#opt/MACHINE-uClibc/include/gnu-versions.h -#opt/MACHINE-uClibc/include/grp.h -#opt/MACHINE-uClibc/include/iconv.h -#opt/MACHINE-uClibc/include/ieee754.h -#opt/MACHINE-uClibc/include/inttypes.h -#opt/MACHINE-uClibc/include/langinfo.h -#opt/MACHINE-uClibc/include/lastlog.h -#opt/MACHINE-uClibc/include/libgen.h -#opt/MACHINE-uClibc/include/limits.h -#opt/MACHINE-uClibc/include/link.h -#opt/MACHINE-uClibc/include/linux -#opt/MACHINE-uClibc/include/linux/8250_pci.h -#opt/MACHINE-uClibc/include/linux/a.out.h -#opt/MACHINE-uClibc/include/linux/acct.h -#opt/MACHINE-uClibc/include/linux/acpi.h -#opt/MACHINE-uClibc/include/linux/adb.h -#opt/MACHINE-uClibc/include/linux/adfs_fs.h -#opt/MACHINE-uClibc/include/linux/adfs_fs_sb.h -#opt/MACHINE-uClibc/include/linux/affs_fs.h -#opt/MACHINE-uClibc/include/linux/affs_hardblocks.h -#opt/MACHINE-uClibc/include/linux/agpgart.h -#opt/MACHINE-uClibc/include/linux/aio.h -#opt/MACHINE-uClibc/include/linux/aio_abi.h -#opt/MACHINE-uClibc/include/linux/amifd.h -#opt/MACHINE-uClibc/include/linux/amifdreg.h -#opt/MACHINE-uClibc/include/linux/amigaffs.h -#opt/MACHINE-uClibc/include/linux/apm_bios.h -#opt/MACHINE-uClibc/include/linux/ata.h -#opt/MACHINE-uClibc/include/linux/atalk.h -#opt/MACHINE-uClibc/include/linux/atm.h -#opt/MACHINE-uClibc/include/linux/atm_eni.h -#opt/MACHINE-uClibc/include/linux/atm_he.h -#opt/MACHINE-uClibc/include/linux/atm_idt77105.h -#opt/MACHINE-uClibc/include/linux/atm_nicstar.h -#opt/MACHINE-uClibc/include/linux/atm_suni.h -#opt/MACHINE-uClibc/include/linux/atm_tcp.h -#opt/MACHINE-uClibc/include/linux/atm_zatm.h -#opt/MACHINE-uClibc/include/linux/atmapi.h -#opt/MACHINE-uClibc/include/linux/atmarp.h -#opt/MACHINE-uClibc/include/linux/atmbr2684.h -#opt/MACHINE-uClibc/include/linux/atmclip.h -#opt/MACHINE-uClibc/include/linux/atmdev.h -#opt/MACHINE-uClibc/include/linux/atmioc.h -#opt/MACHINE-uClibc/include/linux/atmlec.h -#opt/MACHINE-uClibc/include/linux/atmmpc.h -#opt/MACHINE-uClibc/include/linux/atmppp.h -#opt/MACHINE-uClibc/include/linux/atmsap.h -#opt/MACHINE-uClibc/include/linux/atmsvc.h -#opt/MACHINE-uClibc/include/linux/audit.h -#opt/MACHINE-uClibc/include/linux/auto_fs.h -#opt/MACHINE-uClibc/include/linux/auto_fs4.h -#opt/MACHINE-uClibc/include/linux/autoconf.h -#opt/MACHINE-uClibc/include/linux/awe_voice.h -#opt/MACHINE-uClibc/include/linux/ax25.h -#opt/MACHINE-uClibc/include/linux/b1lli.h -#opt/MACHINE-uClibc/include/linux/backing-dev.h -#opt/MACHINE-uClibc/include/linux/backlight.h -#opt/MACHINE-uClibc/include/linux/baycom.h -#opt/MACHINE-uClibc/include/linux/bcd.h -#opt/MACHINE-uClibc/include/linux/bfs_fs.h -#opt/MACHINE-uClibc/include/linux/binfmts.h -#opt/MACHINE-uClibc/include/linux/bitmap.h -#opt/MACHINE-uClibc/include/linux/bitops.h -#opt/MACHINE-uClibc/include/linux/blkpg.h -#opt/MACHINE-uClibc/include/linux/blockgroup_lock.h -#opt/MACHINE-uClibc/include/linux/bootmem.h -#opt/MACHINE-uClibc/include/linux/bpqether.h -#opt/MACHINE-uClibc/include/linux/byteorder -#opt/MACHINE-uClibc/include/linux/byteorder/big_endian.h -#opt/MACHINE-uClibc/include/linux/byteorder/generic.h -#opt/MACHINE-uClibc/include/linux/byteorder/little_endian.h -#opt/MACHINE-uClibc/include/linux/byteorder/pdp_endian.h -#opt/MACHINE-uClibc/include/linux/byteorder/swab.h -#opt/MACHINE-uClibc/include/linux/byteorder/swabb.h -#opt/MACHINE-uClibc/include/linux/cache.h -#opt/MACHINE-uClibc/include/linux/capability.h -#opt/MACHINE-uClibc/include/linux/capi.h -#opt/MACHINE-uClibc/include/linux/cciss_ioctl.h -#opt/MACHINE-uClibc/include/linux/cd1400.h -#opt/MACHINE-uClibc/include/linux/cdk.h -#opt/MACHINE-uClibc/include/linux/cdrom.h -#opt/MACHINE-uClibc/include/linux/circ_buf.h -#opt/MACHINE-uClibc/include/linux/cobalt-nvram.h -#opt/MACHINE-uClibc/include/linux/coda.h -#opt/MACHINE-uClibc/include/linux/coda_proc.h -#opt/MACHINE-uClibc/include/linux/coda_psdev.h -#opt/MACHINE-uClibc/include/linux/coff.h -#opt/MACHINE-uClibc/include/linux/com20020.h -#opt/MACHINE-uClibc/include/linux/compat.h -#opt/MACHINE-uClibc/include/linux/compat_ioctl.h -#opt/MACHINE-uClibc/include/linux/compiler.h -#opt/MACHINE-uClibc/include/linux/comstats.h -#opt/MACHINE-uClibc/include/linux/config.h -#opt/MACHINE-uClibc/include/linux/console.h -#opt/MACHINE-uClibc/include/linux/console_struct.h -#opt/MACHINE-uClibc/include/linux/consolemap.h -#opt/MACHINE-uClibc/include/linux/cpu.h -#opt/MACHINE-uClibc/include/linux/cpufreq.h -#opt/MACHINE-uClibc/include/linux/cramfs_fs.h -#opt/MACHINE-uClibc/include/linux/cramfs_fs_sb.h -#opt/MACHINE-uClibc/include/linux/crc32.h -#opt/MACHINE-uClibc/include/linux/crypto.h -#opt/MACHINE-uClibc/include/linux/cryptodev.h -#opt/MACHINE-uClibc/include/linux/ctype.h -#opt/MACHINE-uClibc/include/linux/cuda.h -#opt/MACHINE-uClibc/include/linux/cyclades.h -#opt/MACHINE-uClibc/include/linux/cycx_cfm.h -#opt/MACHINE-uClibc/include/linux/cycx_drv.h -#opt/MACHINE-uClibc/include/linux/cycx_x25.h -#opt/MACHINE-uClibc/include/linux/devfs_fs.h -#opt/MACHINE-uClibc/include/linux/devfs_fs_kernel.h -#opt/MACHINE-uClibc/include/linux/device-mapper.h -#opt/MACHINE-uClibc/include/linux/device.h -#opt/MACHINE-uClibc/include/linux/devpts_fs.h -#opt/MACHINE-uClibc/include/linux/dirent.h -#opt/MACHINE-uClibc/include/linux/divert.h -#opt/MACHINE-uClibc/include/linux/dm-ioctl.h -#opt/MACHINE-uClibc/include/linux/dn.h -#opt/MACHINE-uClibc/include/linux/dnotify.h -#opt/MACHINE-uClibc/include/linux/dqblk_v1.h -#opt/MACHINE-uClibc/include/linux/dqblk_v2.h -#opt/MACHINE-uClibc/include/linux/dqblk_xfs.h -#opt/MACHINE-uClibc/include/linux/dtlk.h -#opt/MACHINE-uClibc/include/linux/dvb -#opt/MACHINE-uClibc/include/linux/dvb/audio.h -#opt/MACHINE-uClibc/include/linux/dvb/ca.h -#opt/MACHINE-uClibc/include/linux/dvb/dmx.h -#opt/MACHINE-uClibc/include/linux/dvb/frontend.h -#opt/MACHINE-uClibc/include/linux/dvb/net.h -#opt/MACHINE-uClibc/include/linux/dvb/osd.h -#opt/MACHINE-uClibc/include/linux/dvb/version.h -#opt/MACHINE-uClibc/include/linux/dvb/video.h -#opt/MACHINE-uClibc/include/linux/eeprom.h -#opt/MACHINE-uClibc/include/linux/efi.h -#opt/MACHINE-uClibc/include/linux/efs_dir.h -#opt/MACHINE-uClibc/include/linux/efs_fs.h -#opt/MACHINE-uClibc/include/linux/efs_fs_i.h -#opt/MACHINE-uClibc/include/linux/efs_fs_sb.h -#opt/MACHINE-uClibc/include/linux/efs_vh.h -#opt/MACHINE-uClibc/include/linux/eisa.h -#opt/MACHINE-uClibc/include/linux/elevator.h -#opt/MACHINE-uClibc/include/linux/elf-fdpic.h -#opt/MACHINE-uClibc/include/linux/elf.h -#opt/MACHINE-uClibc/include/linux/elfcore.h -#opt/MACHINE-uClibc/include/linux/err.h -#opt/MACHINE-uClibc/include/linux/err_kernel_only.h -#opt/MACHINE-uClibc/include/linux/errno.h -#opt/MACHINE-uClibc/include/linux/errqueue.h -#opt/MACHINE-uClibc/include/linux/ethtool.h -#opt/MACHINE-uClibc/include/linux/eventpoll.h -#opt/MACHINE-uClibc/include/linux/ext2_fs.h -#opt/MACHINE-uClibc/include/linux/ext3_fs.h -#opt/MACHINE-uClibc/include/linux/ext3_jbd.h -#opt/MACHINE-uClibc/include/linux/fadvise.h -#opt/MACHINE-uClibc/include/linux/fb.h -#opt/MACHINE-uClibc/include/linux/fcntl.h -#opt/MACHINE-uClibc/include/linux/fd.h -#opt/MACHINE-uClibc/include/linux/fd1772.h -#opt/MACHINE-uClibc/include/linux/fdreg.h -#opt/MACHINE-uClibc/include/linux/file.h -#opt/MACHINE-uClibc/include/linux/filter.h -#opt/MACHINE-uClibc/include/linux/firmware.h -#opt/MACHINE-uClibc/include/linux/flat.h -#opt/MACHINE-uClibc/include/linux/font.h -#opt/MACHINE-uClibc/include/linux/fs.h -#opt/MACHINE-uClibc/include/linux/fs_struct.h -#opt/MACHINE-uClibc/include/linux/ftape-header-segment.h -#opt/MACHINE-uClibc/include/linux/ftape-vendors.h -#opt/MACHINE-uClibc/include/linux/ftape.h -#opt/MACHINE-uClibc/include/linux/futex.h -#opt/MACHINE-uClibc/include/linux/gameport.h -#opt/MACHINE-uClibc/include/linux/gen_stats.h -#opt/MACHINE-uClibc/include/linux/generic_serial.h -#opt/MACHINE-uClibc/include/linux/genetlink.h -#opt/MACHINE-uClibc/include/linux/genhd.h -#opt/MACHINE-uClibc/include/linux/gfp.h -#opt/MACHINE-uClibc/include/linux/hash.h -#opt/MACHINE-uClibc/include/linux/hayesesp.h -#opt/MACHINE-uClibc/include/linux/hdlc -#opt/MACHINE-uClibc/include/linux/hdlc.h -#opt/MACHINE-uClibc/include/linux/hdlc/ioctl.h -#opt/MACHINE-uClibc/include/linux/hdlcdrv.h -#opt/MACHINE-uClibc/include/linux/hdreg.h -#opt/MACHINE-uClibc/include/linux/hdsmart.h -#opt/MACHINE-uClibc/include/linux/hiddev.h -#opt/MACHINE-uClibc/include/linux/highuid.h -#opt/MACHINE-uClibc/include/linux/hpfs_fs.h -#opt/MACHINE-uClibc/include/linux/hysdn_if.h -#opt/MACHINE-uClibc/include/linux/i2c-algo-bit.h -#opt/MACHINE-uClibc/include/linux/i2c-algo-ite.h -#opt/MACHINE-uClibc/include/linux/i2c-algo-pcf.h -#opt/MACHINE-uClibc/include/linux/i2c-algo-sgi.h -#opt/MACHINE-uClibc/include/linux/i2c-algo-sibyte.h -#opt/MACHINE-uClibc/include/linux/i2c-dev.h -#opt/MACHINE-uClibc/include/linux/i2c-id.h -#opt/MACHINE-uClibc/include/linux/i2c-sensor.h -#opt/MACHINE-uClibc/include/linux/i2c-vid.h -#opt/MACHINE-uClibc/include/linux/i2c.h -#opt/MACHINE-uClibc/include/linux/i2o-dev.h -#opt/MACHINE-uClibc/include/linux/i8k.h -#opt/MACHINE-uClibc/include/linux/ibmtr.h -#opt/MACHINE-uClibc/include/linux/icmp.h -#opt/MACHINE-uClibc/include/linux/icmpv6.h -#opt/MACHINE-uClibc/include/linux/ide.h -#opt/MACHINE-uClibc/include/linux/idr.h -#opt/MACHINE-uClibc/include/linux/if.h -#opt/MACHINE-uClibc/include/linux/if_arcnet.h -#opt/MACHINE-uClibc/include/linux/if_arp.h -#opt/MACHINE-uClibc/include/linux/if_bonding.h -#opt/MACHINE-uClibc/include/linux/if_bridge.h -#opt/MACHINE-uClibc/include/linux/if_cablemodem.h -#opt/MACHINE-uClibc/include/linux/if_ec.h -#opt/MACHINE-uClibc/include/linux/if_eql.h -#opt/MACHINE-uClibc/include/linux/if_ether.h -#opt/MACHINE-uClibc/include/linux/if_fc.h -#opt/MACHINE-uClibc/include/linux/if_fddi.h -#opt/MACHINE-uClibc/include/linux/if_frad.h -#opt/MACHINE-uClibc/include/linux/if_hippi.h -#opt/MACHINE-uClibc/include/linux/if_infiniband.h -#opt/MACHINE-uClibc/include/linux/if_ltalk.h -#opt/MACHINE-uClibc/include/linux/if_packet.h -#opt/MACHINE-uClibc/include/linux/if_plip.h -#opt/MACHINE-uClibc/include/linux/if_ppp.h -#opt/MACHINE-uClibc/include/linux/if_pppox.h -#opt/MACHINE-uClibc/include/linux/if_shaper.h -#opt/MACHINE-uClibc/include/linux/if_slip.h -#opt/MACHINE-uClibc/include/linux/if_strip.h -#opt/MACHINE-uClibc/include/linux/if_tr.h -#opt/MACHINE-uClibc/include/linux/if_tun.h -#opt/MACHINE-uClibc/include/linux/if_tunnel.h -#opt/MACHINE-uClibc/include/linux/if_vlan.h -#opt/MACHINE-uClibc/include/linux/if_wanpipe.h -#opt/MACHINE-uClibc/include/linux/if_wanpipe_common.h -#opt/MACHINE-uClibc/include/linux/igmp.h -#opt/MACHINE-uClibc/include/linux/in.h -#opt/MACHINE-uClibc/include/linux/in6.h -#opt/MACHINE-uClibc/include/linux/in_route.h -#opt/MACHINE-uClibc/include/linux/inetdevice.h -#opt/MACHINE-uClibc/include/linux/init.h -#opt/MACHINE-uClibc/include/linux/init_task.h -#opt/MACHINE-uClibc/include/linux/initrd.h -#opt/MACHINE-uClibc/include/linux/inotify.h -#opt/MACHINE-uClibc/include/linux/input.h -#opt/MACHINE-uClibc/include/linux/interrupt.h -#opt/MACHINE-uClibc/include/linux/ioctl.h -#opt/MACHINE-uClibc/include/linux/ioctl32.h -#opt/MACHINE-uClibc/include/linux/ioport.h -#opt/MACHINE-uClibc/include/linux/ip.h -#opt/MACHINE-uClibc/include/linux/ip6_tunnel.h -#opt/MACHINE-uClibc/include/linux/ip_mp_alg.h -#opt/MACHINE-uClibc/include/linux/ipc.h -#opt/MACHINE-uClibc/include/linux/ipmi.h -#opt/MACHINE-uClibc/include/linux/ipmi_msgdefs.h -#opt/MACHINE-uClibc/include/linux/ipmi_smi.h -#opt/MACHINE-uClibc/include/linux/ipsec.h -#opt/MACHINE-uClibc/include/linux/ipv6.h -#opt/MACHINE-uClibc/include/linux/ipv6_route.h -#opt/MACHINE-uClibc/include/linux/ipx.h -#opt/MACHINE-uClibc/include/linux/irda.h -#opt/MACHINE-uClibc/include/linux/irq.h -#opt/MACHINE-uClibc/include/linux/irq_cpustat.h -#opt/MACHINE-uClibc/include/linux/isapnp.h -#opt/MACHINE-uClibc/include/linux/isdn -#opt/MACHINE-uClibc/include/linux/isdn.h -#opt/MACHINE-uClibc/include/linux/isdn/capicmd.h -#opt/MACHINE-uClibc/include/linux/isdn/capilli.h -#opt/MACHINE-uClibc/include/linux/isdn/capiutil.h -#opt/MACHINE-uClibc/include/linux/isdn/tpam.h -#opt/MACHINE-uClibc/include/linux/isdn_divertif.h -#opt/MACHINE-uClibc/include/linux/isdn_ppp.h -#opt/MACHINE-uClibc/include/linux/isdnif.h -#opt/MACHINE-uClibc/include/linux/isicom.h -#opt/MACHINE-uClibc/include/linux/iso_fs.h -#opt/MACHINE-uClibc/include/linux/istallion.h -#opt/MACHINE-uClibc/include/linux/ite_gpio.h -#opt/MACHINE-uClibc/include/linux/ixjuser.h -#opt/MACHINE-uClibc/include/linux/jbd.h -#opt/MACHINE-uClibc/include/linux/jffs.h -#opt/MACHINE-uClibc/include/linux/jffs2.h -#opt/MACHINE-uClibc/include/linux/jffs2_fs_sb.h -#opt/MACHINE-uClibc/include/linux/jhash.h -#opt/MACHINE-uClibc/include/linux/jiffies.h -#opt/MACHINE-uClibc/include/linux/journal-head.h -#opt/MACHINE-uClibc/include/linux/joystick.h -#opt/MACHINE-uClibc/include/linux/kallsyms.h -#opt/MACHINE-uClibc/include/linux/kbd_diacr.h -#opt/MACHINE-uClibc/include/linux/kbd_kern.h -#opt/MACHINE-uClibc/include/linux/kd.h -#opt/MACHINE-uClibc/include/linux/kdev_t.h -#opt/MACHINE-uClibc/include/linux/kernel.h -#opt/MACHINE-uClibc/include/linux/kernel_stat.h -#opt/MACHINE-uClibc/include/linux/kernelcapi.h -#opt/MACHINE-uClibc/include/linux/keyboard.h -#opt/MACHINE-uClibc/include/linux/keyctl.h -#opt/MACHINE-uClibc/include/linux/kmalloc_sizes.h -#opt/MACHINE-uClibc/include/linux/kmod.h -#opt/MACHINE-uClibc/include/linux/kprobes.h -#opt/MACHINE-uClibc/include/linux/kvm.h -#opt/MACHINE-uClibc/include/linux/kvm_host.h -#opt/MACHINE-uClibc/include/linux/kvm_para.h -#opt/MACHINE-uClibc/include/linux/kvm_types.h -#opt/MACHINE-uClibc/include/linux/lapb.h -#opt/MACHINE-uClibc/include/linux/lcd.h -#opt/MACHINE-uClibc/include/linux/libata.h -#opt/MACHINE-uClibc/include/linux/libps2.h -#opt/MACHINE-uClibc/include/linux/limits.h -#opt/MACHINE-uClibc/include/linux/linkage.h -#opt/MACHINE-uClibc/include/linux/linux_logo.h -#opt/MACHINE-uClibc/include/linux/list.h -#opt/MACHINE-uClibc/include/linux/llc.h -#opt/MACHINE-uClibc/include/linux/lockd -#opt/MACHINE-uClibc/include/linux/lockd/bind.h -#opt/MACHINE-uClibc/include/linux/lockd/debug.h -#opt/MACHINE-uClibc/include/linux/lockd/nlm.h -#opt/MACHINE-uClibc/include/linux/lockd/share.h -#opt/MACHINE-uClibc/include/linux/lockd/sm_inter.h -#opt/MACHINE-uClibc/include/linux/lockd/xdr.h -#opt/MACHINE-uClibc/include/linux/lockd/xdr4.h -#opt/MACHINE-uClibc/include/linux/loop.h -#opt/MACHINE-uClibc/include/linux/lp.h -#opt/MACHINE-uClibc/include/linux/major.h -#opt/MACHINE-uClibc/include/linux/matroxfb.h -#opt/MACHINE-uClibc/include/linux/mbcache.h -#opt/MACHINE-uClibc/include/linux/mc6821.h -#opt/MACHINE-uClibc/include/linux/mca-legacy.h -#opt/MACHINE-uClibc/include/linux/mca.h -#opt/MACHINE-uClibc/include/linux/mempool.h -#opt/MACHINE-uClibc/include/linux/meye.h -#opt/MACHINE-uClibc/include/linux/mii.h -#opt/MACHINE-uClibc/include/linux/minix_fs.h -#opt/MACHINE-uClibc/include/linux/miscdevice.h -#opt/MACHINE-uClibc/include/linux/mm.h -#opt/MACHINE-uClibc/include/linux/mm_inline.h -#opt/MACHINE-uClibc/include/linux/mman.h -#opt/MACHINE-uClibc/include/linux/mod_devicetable.h -#opt/MACHINE-uClibc/include/linux/module.h -#opt/MACHINE-uClibc/include/linux/moduleloader.h -#opt/MACHINE-uClibc/include/linux/moduleparam.h -#opt/MACHINE-uClibc/include/linux/mount.h -#opt/MACHINE-uClibc/include/linux/mroute.h -#opt/MACHINE-uClibc/include/linux/msdos_fs.h -#opt/MACHINE-uClibc/include/linux/msg.h -#opt/MACHINE-uClibc/include/linux/mtd -#opt/MACHINE-uClibc/include/linux/mtd/blktrans.h -#opt/MACHINE-uClibc/include/linux/mtd/cfi.h -#opt/MACHINE-uClibc/include/linux/mtd/cfi_endian.h -#opt/MACHINE-uClibc/include/linux/mtd/compatmac.h -#opt/MACHINE-uClibc/include/linux/mtd/concat.h -#opt/MACHINE-uClibc/include/linux/mtd/doc2000.h -#opt/MACHINE-uClibc/include/linux/mtd/flashchip.h -#opt/MACHINE-uClibc/include/linux/mtd/ftl.h -#opt/MACHINE-uClibc/include/linux/mtd/gen_probe.h -#opt/MACHINE-uClibc/include/linux/mtd/iflash.h -#opt/MACHINE-uClibc/include/linux/mtd/jedec.h -#opt/MACHINE-uClibc/include/linux/mtd/map.h -#opt/MACHINE-uClibc/include/linux/mtd/nand.h -#opt/MACHINE-uClibc/include/linux/mtd/nand_ecc.h -#opt/MACHINE-uClibc/include/linux/mtd/nftl.h -#opt/MACHINE-uClibc/include/linux/mtd/partitions.h -#opt/MACHINE-uClibc/include/linux/mtd/pmc551.h -#opt/MACHINE-uClibc/include/linux/mtio.h -#opt/MACHINE-uClibc/include/linux/n_r3964.h -#opt/MACHINE-uClibc/include/linux/namei.h -#opt/MACHINE-uClibc/include/linux/nbd.h -#opt/MACHINE-uClibc/include/linux/ncp.h -#opt/MACHINE-uClibc/include/linux/ncp_fs.h -#opt/MACHINE-uClibc/include/linux/ncp_mount.h -#opt/MACHINE-uClibc/include/linux/ncp_no.h -#opt/MACHINE-uClibc/include/linux/net.h -#opt/MACHINE-uClibc/include/linux/netdevice.h -#opt/MACHINE-uClibc/include/linux/netfilter -#opt/MACHINE-uClibc/include/linux/netfilter.h -#opt/MACHINE-uClibc/include/linux/netfilter/Kbuild -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_amanda.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_common.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_dccp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_ftp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323_asn1.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323_types.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_irc.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_pptp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_proto_gre.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sane.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sctp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sip.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tcp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tftp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tuple_common.h -#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink.h -#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_compat.h -#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_conntrack.h -#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_log.h -#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_queue.h -#opt/MACHINE-uClibc/include/linux/netfilter/x_tables.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_CLASSIFY.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_CONNMARK.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_CONNSECMARK.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_DSCP.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_IMQ.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_LED.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_MARK.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_NFLOG.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_NFQUEUE.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_RATEEST.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_SECMARK.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_TCPMSS.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_TCPOPTSTRIP.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_TPROXY.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_cluster.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_comment.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_connbytes.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_connlimit.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_connmark.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_conntrack.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_dccp.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_dscp.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_esp.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_hashlimit.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_helper.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_iprange.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_layer7.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_length.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_limit.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_mac.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_mark.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_multiport.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_osf.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_owner.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_physdev.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_pkttype.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_policy.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_quota.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_rateest.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_realm.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_recent.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_sctp.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_socket.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_state.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_statistic.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_string.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_tcpmss.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_tcpudp.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_time.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_u32.h -#opt/MACHINE-uClibc/include/linux/netfilter_arp -#opt/MACHINE-uClibc/include/linux/netfilter_arp.h -#opt/MACHINE-uClibc/include/linux/netfilter_arp/arp_tables.h -#opt/MACHINE-uClibc/include/linux/netfilter_arp/arpt_mangle.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge -#opt/MACHINE-uClibc/include/linux/netfilter_bridge.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_802_3.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_among.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_arp.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_arpreply.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_ip.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_limit.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_log.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_mark_m.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_mark_t.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_nat.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_pkttype.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_redirect.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_stp.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_ulog.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_vlan.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebtables.h -#opt/MACHINE-uClibc/include/linux/netfilter_decnet.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4 -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_amanda.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_core.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_ftp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_helper.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_icmp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_irc.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_protocol.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_sctp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tcp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tftp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tuple.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_core.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_helper.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_protocol.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_rule.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_queue.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_tables.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CLASSIFY.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CONNMARK.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_DSCP.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ECN.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_LOG.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_MARK.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_REJECT.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_SAME.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_TCPMSS.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_TOS.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ULOG.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_addrtype.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ah.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_comment.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_connmark.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_conntrack.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_dscp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ecn.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_esp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_hashlimit.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_helper.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_iprange.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_length.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_limit.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_mac.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_mark.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_multiport.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_owner.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_physdev.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_pkttype.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_realm.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_recent.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_sctp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_state.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_tcpmss.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_tos.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ttl.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/listhelp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/lockhelp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6 -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6_tables.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_LOG.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_MARK.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_ah.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_esp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_frag.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_hl.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_ipv6header.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_length.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_limit.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_mac.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_mark.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_multiport.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_opts.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_owner.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_physdev.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_rt.h -#opt/MACHINE-uClibc/include/linux/netlink.h -#opt/MACHINE-uClibc/include/linux/netrom.h -#opt/MACHINE-uClibc/include/linux/nfs.h -#opt/MACHINE-uClibc/include/linux/nfs2.h -#opt/MACHINE-uClibc/include/linux/nfs3.h -#opt/MACHINE-uClibc/include/linux/nfs4.h -#opt/MACHINE-uClibc/include/linux/nfs4_mount.h -#opt/MACHINE-uClibc/include/linux/nfs_fs.h -#opt/MACHINE-uClibc/include/linux/nfs_fs_i.h -#opt/MACHINE-uClibc/include/linux/nfs_fs_sb.h -#opt/MACHINE-uClibc/include/linux/nfs_idmap.h -#opt/MACHINE-uClibc/include/linux/nfs_mount.h -#opt/MACHINE-uClibc/include/linux/nfs_xdr.h -#opt/MACHINE-uClibc/include/linux/nfsd -#opt/MACHINE-uClibc/include/linux/nfsd/const.h -#opt/MACHINE-uClibc/include/linux/nfsd/debug.h -#opt/MACHINE-uClibc/include/linux/nfsd/export.h -#opt/MACHINE-uClibc/include/linux/nfsd/interface.h -#opt/MACHINE-uClibc/include/linux/nfsd/nfsd.h -#opt/MACHINE-uClibc/include/linux/nfsd/nfsfh.h -#opt/MACHINE-uClibc/include/linux/nfsd/state.h -#opt/MACHINE-uClibc/include/linux/nfsd/stats.h -#opt/MACHINE-uClibc/include/linux/nfsd/syscall.h -#opt/MACHINE-uClibc/include/linux/nfsd/xdr.h -#opt/MACHINE-uClibc/include/linux/nfsd/xdr3.h -#opt/MACHINE-uClibc/include/linux/nfsd/xdr4.h -#opt/MACHINE-uClibc/include/linux/nls.h -#opt/MACHINE-uClibc/include/linux/nmi.h -#opt/MACHINE-uClibc/include/linux/node.h -#opt/MACHINE-uClibc/include/linux/notifier.h -#opt/MACHINE-uClibc/include/linux/nubus.h -#opt/MACHINE-uClibc/include/linux/numa.h -#opt/MACHINE-uClibc/include/linux/nvram.h -#opt/MACHINE-uClibc/include/linux/openprom_fs.h -#opt/MACHINE-uClibc/include/linux/oprofile.h -#opt/MACHINE-uClibc/include/linux/pagemap.h -#opt/MACHINE-uClibc/include/linux/pagevec.h -#opt/MACHINE-uClibc/include/linux/param.h -#opt/MACHINE-uClibc/include/linux/parport.h -#opt/MACHINE-uClibc/include/linux/parport_pc.h -#opt/MACHINE-uClibc/include/linux/parser.h -#opt/MACHINE-uClibc/include/linux/patchkey.h -#opt/MACHINE-uClibc/include/linux/pci-dynids.h -#opt/MACHINE-uClibc/include/linux/pci.h -#opt/MACHINE-uClibc/include/linux/pci_ids.h -#opt/MACHINE-uClibc/include/linux/pcieport_if.h -#opt/MACHINE-uClibc/include/linux/percpu.h -#opt/MACHINE-uClibc/include/linux/percpu_counter.h -#opt/MACHINE-uClibc/include/linux/personality.h -#opt/MACHINE-uClibc/include/linux/pfkeyv2.h -#opt/MACHINE-uClibc/include/linux/pg.h -#opt/MACHINE-uClibc/include/linux/pipe_fs_i.h -#opt/MACHINE-uClibc/include/linux/pkt_cls.h -#opt/MACHINE-uClibc/include/linux/pkt_sched.h -#opt/MACHINE-uClibc/include/linux/pktcdvd.h -#opt/MACHINE-uClibc/include/linux/pmu.h -#opt/MACHINE-uClibc/include/linux/poll.h -#opt/MACHINE-uClibc/include/linux/posix-timers.h -#opt/MACHINE-uClibc/include/linux/posix_acl.h -#opt/MACHINE-uClibc/include/linux/posix_acl_xattr.h -#opt/MACHINE-uClibc/include/linux/posix_types.h -#opt/MACHINE-uClibc/include/linux/ppdev.h -#opt/MACHINE-uClibc/include/linux/ppp-comp.h -#opt/MACHINE-uClibc/include/linux/ppp_channel.h -#opt/MACHINE-uClibc/include/linux/ppp_defs.h -#opt/MACHINE-uClibc/include/linux/prctl.h -#opt/MACHINE-uClibc/include/linux/preempt.h -#opt/MACHINE-uClibc/include/linux/prefetch.h -#opt/MACHINE-uClibc/include/linux/proc_fs.h -#opt/MACHINE-uClibc/include/linux/ps2esdi.h -#opt/MACHINE-uClibc/include/linux/ptrace.h -#opt/MACHINE-uClibc/include/linux/qic117.h -#opt/MACHINE-uClibc/include/linux/qnx4_fs.h -#opt/MACHINE-uClibc/include/linux/qnxtypes.h -#opt/MACHINE-uClibc/include/linux/quota.h -#opt/MACHINE-uClibc/include/linux/quotaio_v1.h -#opt/MACHINE-uClibc/include/linux/quotaio_v2.h -#opt/MACHINE-uClibc/include/linux/radeonfb.h -#opt/MACHINE-uClibc/include/linux/raid -#opt/MACHINE-uClibc/include/linux/raid/linear.h -#opt/MACHINE-uClibc/include/linux/raid/md.h -#opt/MACHINE-uClibc/include/linux/raid/md_p.h -#opt/MACHINE-uClibc/include/linux/raid/md_u.h -#opt/MACHINE-uClibc/include/linux/raid/multipath.h -#opt/MACHINE-uClibc/include/linux/raid/raid0.h -#opt/MACHINE-uClibc/include/linux/raid/raid1.h -#opt/MACHINE-uClibc/include/linux/raid/raid5.h -#opt/MACHINE-uClibc/include/linux/raid/xor.h -#opt/MACHINE-uClibc/include/linux/random.h -#opt/MACHINE-uClibc/include/linux/raw.h -#opt/MACHINE-uClibc/include/linux/rbtree.h -#opt/MACHINE-uClibc/include/linux/reboot.h -#opt/MACHINE-uClibc/include/linux/reiserfs_acl.h -#opt/MACHINE-uClibc/include/linux/reiserfs_fs.h -#opt/MACHINE-uClibc/include/linux/reiserfs_xattr.h -#opt/MACHINE-uClibc/include/linux/resource.h -#opt/MACHINE-uClibc/include/linux/romfs_fs.h -#opt/MACHINE-uClibc/include/linux/root_dev.h -#opt/MACHINE-uClibc/include/linux/rose.h -#opt/MACHINE-uClibc/include/linux/route.h -#opt/MACHINE-uClibc/include/linux/rtc.h -#opt/MACHINE-uClibc/include/linux/rtnetlink.h -#opt/MACHINE-uClibc/include/linux/sc26198.h -#opt/MACHINE-uClibc/include/linux/scc.h -#opt/MACHINE-uClibc/include/linux/sched.h -#opt/MACHINE-uClibc/include/linux/sctp.h -#opt/MACHINE-uClibc/include/linux/scx200.h -#opt/MACHINE-uClibc/include/linux/scx200_gpio.h -#opt/MACHINE-uClibc/include/linux/sdla.h -#opt/MACHINE-uClibc/include/linux/sdla_asy.h -#opt/MACHINE-uClibc/include/linux/sdla_chdlc.h -#opt/MACHINE-uClibc/include/linux/sdla_fr.h -#opt/MACHINE-uClibc/include/linux/sdla_ppp.h -#opt/MACHINE-uClibc/include/linux/sdla_x25.h -#opt/MACHINE-uClibc/include/linux/sdladrv.h -#opt/MACHINE-uClibc/include/linux/sdlapci.h -#opt/MACHINE-uClibc/include/linux/sdlasfm.h -#opt/MACHINE-uClibc/include/linux/securebits.h -#opt/MACHINE-uClibc/include/linux/security.h -#opt/MACHINE-uClibc/include/linux/selection.h -#opt/MACHINE-uClibc/include/linux/selinux_netlink.h -#opt/MACHINE-uClibc/include/linux/sem.h -#opt/MACHINE-uClibc/include/linux/seqlock.h -#opt/MACHINE-uClibc/include/linux/serial.h -#opt/MACHINE-uClibc/include/linux/serial167.h -#opt/MACHINE-uClibc/include/linux/serialP.h -#opt/MACHINE-uClibc/include/linux/serial_8250.h -#opt/MACHINE-uClibc/include/linux/serial_core.h -#opt/MACHINE-uClibc/include/linux/serial_reg.h -#opt/MACHINE-uClibc/include/linux/serio.h -#opt/MACHINE-uClibc/include/linux/shm.h -#opt/MACHINE-uClibc/include/linux/siginfo.h -#opt/MACHINE-uClibc/include/linux/signal.h -#opt/MACHINE-uClibc/include/linux/skbuff.h -#opt/MACHINE-uClibc/include/linux/smb.h -#opt/MACHINE-uClibc/include/linux/smb_fs.h -#opt/MACHINE-uClibc/include/linux/smb_mount.h -#opt/MACHINE-uClibc/include/linux/smbno.h -#opt/MACHINE-uClibc/include/linux/smp_lock.h -#opt/MACHINE-uClibc/include/linux/snmp.h -#opt/MACHINE-uClibc/include/linux/socket.h -#opt/MACHINE-uClibc/include/linux/sockios.h -#opt/MACHINE-uClibc/include/linux/som.h -#opt/MACHINE-uClibc/include/linux/sonet.h -#opt/MACHINE-uClibc/include/linux/sonypi.h -#opt/MACHINE-uClibc/include/linux/sound.h -#opt/MACHINE-uClibc/include/linux/soundcard.h -#opt/MACHINE-uClibc/include/linux/spinlock.h -#opt/MACHINE-uClibc/include/linux/stallion.h -#opt/MACHINE-uClibc/include/linux/stddef.h -#opt/MACHINE-uClibc/include/linux/stringify.h -#opt/MACHINE-uClibc/include/linux/sunrpc -#opt/MACHINE-uClibc/include/linux/sunrpc/cache.h -#opt/MACHINE-uClibc/include/linux/sunrpc/clnt.h -#opt/MACHINE-uClibc/include/linux/sunrpc/debug.h -#opt/MACHINE-uClibc/include/linux/sunrpc/gss_asn1.h -#opt/MACHINE-uClibc/include/linux/sunrpc/gss_krb5.h -#opt/MACHINE-uClibc/include/linux/sunrpc/gss_spkm3.h -#opt/MACHINE-uClibc/include/linux/sunrpc/sched.h -#opt/MACHINE-uClibc/include/linux/sunrpc/stats.h -#opt/MACHINE-uClibc/include/linux/sunrpc/svc.h -#opt/MACHINE-uClibc/include/linux/sunrpc/svcsock.h -#opt/MACHINE-uClibc/include/linux/sunrpc/timer.h -#opt/MACHINE-uClibc/include/linux/sunrpc/types.h -#opt/MACHINE-uClibc/include/linux/sunrpc/xprt.h -#opt/MACHINE-uClibc/include/linux/superhyway.h -#opt/MACHINE-uClibc/include/linux/suspend.h -#opt/MACHINE-uClibc/include/linux/swap.h -#opt/MACHINE-uClibc/include/linux/swapops.h -#opt/MACHINE-uClibc/include/linux/synclink.h -#opt/MACHINE-uClibc/include/linux/sys.h -#opt/MACHINE-uClibc/include/linux/syscalls.h -#opt/MACHINE-uClibc/include/linux/sysctl.h -#opt/MACHINE-uClibc/include/linux/sysdev.h -#opt/MACHINE-uClibc/include/linux/sysfs.h -#opt/MACHINE-uClibc/include/linux/sysrq.h -#opt/MACHINE-uClibc/include/linux/sysv_fs.h -#opt/MACHINE-uClibc/include/linux/tc_act -#opt/MACHINE-uClibc/include/linux/tc_act/tc_defact.h -#opt/MACHINE-uClibc/include/linux/tc_act/tc_gact.h -#opt/MACHINE-uClibc/include/linux/tc_act/tc_ipt.h -#opt/MACHINE-uClibc/include/linux/tc_act/tc_mirred.h -#opt/MACHINE-uClibc/include/linux/tc_act/tc_pedit.h -#opt/MACHINE-uClibc/include/linux/tc_ematch -#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_cmp.h -#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_meta.h -#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_nbyte.h -#opt/MACHINE-uClibc/include/linux/tcp.h -#opt/MACHINE-uClibc/include/linux/tcp_diag.h -#opt/MACHINE-uClibc/include/linux/telephony.h -#opt/MACHINE-uClibc/include/linux/termios.h -#opt/MACHINE-uClibc/include/linux/threads.h -#opt/MACHINE-uClibc/include/linux/ticable.h -#opt/MACHINE-uClibc/include/linux/time.h -#opt/MACHINE-uClibc/include/linux/times.h -#opt/MACHINE-uClibc/include/linux/timex.h -#opt/MACHINE-uClibc/include/linux/tiocl.h -#opt/MACHINE-uClibc/include/linux/toshiba.h -#opt/MACHINE-uClibc/include/linux/tty.h -#opt/MACHINE-uClibc/include/linux/types.h -#opt/MACHINE-uClibc/include/linux/udf_fs.h -#opt/MACHINE-uClibc/include/linux/udf_fs_i.h -#opt/MACHINE-uClibc/include/linux/udf_fs_sb.h -#opt/MACHINE-uClibc/include/linux/udp.h -#opt/MACHINE-uClibc/include/linux/ufs_fs.h -#opt/MACHINE-uClibc/include/linux/uinput.h -#opt/MACHINE-uClibc/include/linux/uio.h -#opt/MACHINE-uClibc/include/linux/ultrasound.h -#opt/MACHINE-uClibc/include/linux/umem.h -#opt/MACHINE-uClibc/include/linux/un.h -#opt/MACHINE-uClibc/include/linux/unistd.h -#opt/MACHINE-uClibc/include/linux/usb.h -#opt/MACHINE-uClibc/include/linux/usb_cdc.h -#opt/MACHINE-uClibc/include/linux/usb_ch9.h -#opt/MACHINE-uClibc/include/linux/usb_gadgetfs.h -#opt/MACHINE-uClibc/include/linux/usbdevice_fs.h -#opt/MACHINE-uClibc/include/linux/user.h -#opt/MACHINE-uClibc/include/linux/utime.h -#opt/MACHINE-uClibc/include/linux/uts.h -#opt/MACHINE-uClibc/include/linux/utsname.h -#opt/MACHINE-uClibc/include/linux/version.h -#opt/MACHINE-uClibc/include/linux/video_decoder.h -#opt/MACHINE-uClibc/include/linux/video_encoder.h -#opt/MACHINE-uClibc/include/linux/videodev.h -#opt/MACHINE-uClibc/include/linux/videodev2.h -#opt/MACHINE-uClibc/include/linux/videotext.h -#opt/MACHINE-uClibc/include/linux/vmalloc.h -#opt/MACHINE-uClibc/include/linux/vt.h -#opt/MACHINE-uClibc/include/linux/vt_buffer.h -#opt/MACHINE-uClibc/include/linux/vt_kern.h -#opt/MACHINE-uClibc/include/linux/wait.h -#opt/MACHINE-uClibc/include/linux/wanpipe.h -#opt/MACHINE-uClibc/include/linux/wanrouter.h -#opt/MACHINE-uClibc/include/linux/watchdog.h -#opt/MACHINE-uClibc/include/linux/wavefront.h -#opt/MACHINE-uClibc/include/linux/wireless.h -#opt/MACHINE-uClibc/include/linux/workqueue.h -#opt/MACHINE-uClibc/include/linux/x25.h -#opt/MACHINE-uClibc/include/linux/xattr.h -#opt/MACHINE-uClibc/include/linux/xattr_acl.h -#opt/MACHINE-uClibc/include/linux/xfrm.h -#opt/MACHINE-uClibc/include/linux/yam.h -#opt/MACHINE-uClibc/include/linux/zftape.h -#opt/MACHINE-uClibc/include/linux/zorro.h -#opt/MACHINE-uClibc/include/linux/zorro_ids.h -#opt/MACHINE-uClibc/include/locale.h -#opt/MACHINE-uClibc/include/malloc.h -#opt/MACHINE-uClibc/include/math.h -#opt/MACHINE-uClibc/include/memory.h -#opt/MACHINE-uClibc/include/mntent.h -#opt/MACHINE-uClibc/include/mqueue.h -#opt/MACHINE-uClibc/include/net -#opt/MACHINE-uClibc/include/net/ethernet.h -#opt/MACHINE-uClibc/include/net/if.h -#opt/MACHINE-uClibc/include/net/if_arp.h -#opt/MACHINE-uClibc/include/net/if_packet.h -#opt/MACHINE-uClibc/include/net/if_ppp.h -#opt/MACHINE-uClibc/include/net/if_shaper.h -#opt/MACHINE-uClibc/include/net/if_slip.h -#opt/MACHINE-uClibc/include/net/ppp-comp.h -#opt/MACHINE-uClibc/include/net/ppp_defs.h -#opt/MACHINE-uClibc/include/net/route.h -#opt/MACHINE-uClibc/include/netax25 -#opt/MACHINE-uClibc/include/netax25/ax25.h -#opt/MACHINE-uClibc/include/netdb.h -#opt/MACHINE-uClibc/include/neteconet -#opt/MACHINE-uClibc/include/neteconet/ec.h -#opt/MACHINE-uClibc/include/netinet -#opt/MACHINE-uClibc/include/netinet/ether.h -#opt/MACHINE-uClibc/include/netinet/icmp6.h -#opt/MACHINE-uClibc/include/netinet/if_ether.h -#opt/MACHINE-uClibc/include/netinet/if_fddi.h -#opt/MACHINE-uClibc/include/netinet/if_tr.h -#opt/MACHINE-uClibc/include/netinet/igmp.h -#opt/MACHINE-uClibc/include/netinet/in.h -#opt/MACHINE-uClibc/include/netinet/in_systm.h -#opt/MACHINE-uClibc/include/netinet/ip.h -#opt/MACHINE-uClibc/include/netinet/ip6.h -#opt/MACHINE-uClibc/include/netinet/ip_fw.h -#opt/MACHINE-uClibc/include/netinet/ip_icmp.h -#opt/MACHINE-uClibc/include/netinet/ip_tcp.h -#opt/MACHINE-uClibc/include/netinet/ip_udp.h -#opt/MACHINE-uClibc/include/netinet/protocols.h -#opt/MACHINE-uClibc/include/netinet/tcp.h -#opt/MACHINE-uClibc/include/netinet/udp.h -#opt/MACHINE-uClibc/include/netipx -#opt/MACHINE-uClibc/include/netipx/ipx.h -#opt/MACHINE-uClibc/include/netpacket -#opt/MACHINE-uClibc/include/netpacket/packet.h -#opt/MACHINE-uClibc/include/nl_types.h -#opt/MACHINE-uClibc/include/obstack.h -#opt/MACHINE-uClibc/include/paths.h -#opt/MACHINE-uClibc/include/poll.h -#opt/MACHINE-uClibc/include/printf.h -#opt/MACHINE-uClibc/include/protocols -#opt/MACHINE-uClibc/include/protocols/routed.h -#opt/MACHINE-uClibc/include/protocols/rwhod.h -#opt/MACHINE-uClibc/include/protocols/talkd.h -#opt/MACHINE-uClibc/include/protocols/timed.h -#opt/MACHINE-uClibc/include/pthread.h -#opt/MACHINE-uClibc/include/pty.h -#opt/MACHINE-uClibc/include/pwd.h -#opt/MACHINE-uClibc/include/regex.h -#opt/MACHINE-uClibc/include/regexp.h -#opt/MACHINE-uClibc/include/resolv.h -#opt/MACHINE-uClibc/include/rpc -#opt/MACHINE-uClibc/include/rpc/auth.h -#opt/MACHINE-uClibc/include/rpc/auth_des.h -#opt/MACHINE-uClibc/include/rpc/auth_unix.h -#opt/MACHINE-uClibc/include/rpc/clnt.h -#opt/MACHINE-uClibc/include/rpc/des_crypt.h -#opt/MACHINE-uClibc/include/rpc/key_prot.h -#opt/MACHINE-uClibc/include/rpc/netdb.h -#opt/MACHINE-uClibc/include/rpc/pmap_clnt.h -#opt/MACHINE-uClibc/include/rpc/pmap_prot.h -#opt/MACHINE-uClibc/include/rpc/pmap_rmt.h -#opt/MACHINE-uClibc/include/rpc/rpc.h -#opt/MACHINE-uClibc/include/rpc/rpc_des.h -#opt/MACHINE-uClibc/include/rpc/rpc_msg.h -#opt/MACHINE-uClibc/include/rpc/svc.h -#opt/MACHINE-uClibc/include/rpc/svc_auth.h -#opt/MACHINE-uClibc/include/rpc/types.h -#opt/MACHINE-uClibc/include/rpc/xdr.h -#opt/MACHINE-uClibc/include/sched.h -#opt/MACHINE-uClibc/include/scsi -#opt/MACHINE-uClibc/include/scsi/scsi.h -#opt/MACHINE-uClibc/include/scsi/scsi_ioctl.h -#opt/MACHINE-uClibc/include/scsi/sg.h -#opt/MACHINE-uClibc/include/search.h -#opt/MACHINE-uClibc/include/semaphore.h -#opt/MACHINE-uClibc/include/setjmp.h -#opt/MACHINE-uClibc/include/sgtty.h -#opt/MACHINE-uClibc/include/shadow.h -#opt/MACHINE-uClibc/include/signal.h -#opt/MACHINE-uClibc/include/stdint.h -#opt/MACHINE-uClibc/include/stdio.h -#opt/MACHINE-uClibc/include/stdio_ext.h -#opt/MACHINE-uClibc/include/stdlib.h -#opt/MACHINE-uClibc/include/string.h -#opt/MACHINE-uClibc/include/strings.h -#opt/MACHINE-uClibc/include/sys -#opt/MACHINE-uClibc/include/sys/bitypes.h -#opt/MACHINE-uClibc/include/sys/cdefs.h -#opt/MACHINE-uClibc/include/sys/debugreg.h -#opt/MACHINE-uClibc/include/sys/dir.h -#opt/MACHINE-uClibc/include/sys/elf.h -#opt/MACHINE-uClibc/include/sys/epoll.h -#opt/MACHINE-uClibc/include/sys/errno.h -#opt/MACHINE-uClibc/include/sys/fcntl.h -#opt/MACHINE-uClibc/include/sys/file.h -#opt/MACHINE-uClibc/include/sys/fsuid.h -#opt/MACHINE-uClibc/include/sys/io.h -#opt/MACHINE-uClibc/include/sys/ioctl.h -#opt/MACHINE-uClibc/include/sys/ipc.h -#opt/MACHINE-uClibc/include/sys/kd.h -#opt/MACHINE-uClibc/include/sys/kdaemon.h -#opt/MACHINE-uClibc/include/sys/klog.h -#opt/MACHINE-uClibc/include/sys/mman.h -#opt/MACHINE-uClibc/include/sys/mount.h -#opt/MACHINE-uClibc/include/sys/msg.h -#opt/MACHINE-uClibc/include/sys/mtio.h -#opt/MACHINE-uClibc/include/sys/param.h -#opt/MACHINE-uClibc/include/sys/perm.h -#opt/MACHINE-uClibc/include/sys/personality.h -#opt/MACHINE-uClibc/include/sys/poll.h -#opt/MACHINE-uClibc/include/sys/prctl.h -#opt/MACHINE-uClibc/include/sys/procfs.h -#opt/MACHINE-uClibc/include/sys/ptrace.h -#opt/MACHINE-uClibc/include/sys/queue.h -#opt/MACHINE-uClibc/include/sys/quota.h -#opt/MACHINE-uClibc/include/sys/reboot.h -#opt/MACHINE-uClibc/include/sys/reg.h -#opt/MACHINE-uClibc/include/sys/resource.h -#opt/MACHINE-uClibc/include/sys/select.h -#opt/MACHINE-uClibc/include/sys/sem.h -#opt/MACHINE-uClibc/include/sys/sendfile.h -#opt/MACHINE-uClibc/include/sys/shm.h -#opt/MACHINE-uClibc/include/sys/signal.h -#opt/MACHINE-uClibc/include/sys/socket.h -#opt/MACHINE-uClibc/include/sys/socketvar.h -#opt/MACHINE-uClibc/include/sys/soundcard.h -#opt/MACHINE-uClibc/include/sys/stat.h -#opt/MACHINE-uClibc/include/sys/statfs.h -#opt/MACHINE-uClibc/include/sys/statvfs.h -#opt/MACHINE-uClibc/include/sys/swap.h -#opt/MACHINE-uClibc/include/sys/syscall.h -#opt/MACHINE-uClibc/include/sys/sysctl.h -#opt/MACHINE-uClibc/include/sys/sysinfo.h -#opt/MACHINE-uClibc/include/sys/syslog.h -#opt/MACHINE-uClibc/include/sys/sysmacros.h -#opt/MACHINE-uClibc/include/sys/termios.h -#opt/MACHINE-uClibc/include/sys/time.h -#opt/MACHINE-uClibc/include/sys/timeb.h -#opt/MACHINE-uClibc/include/sys/times.h -#opt/MACHINE-uClibc/include/sys/timex.h -#opt/MACHINE-uClibc/include/sys/ttydefaults.h -#opt/MACHINE-uClibc/include/sys/types.h -#opt/MACHINE-uClibc/include/sys/ucontext.h -#opt/MACHINE-uClibc/include/sys/uio.h -#opt/MACHINE-uClibc/include/sys/un.h -#opt/MACHINE-uClibc/include/sys/unistd.h -#opt/MACHINE-uClibc/include/sys/user.h -#opt/MACHINE-uClibc/include/sys/ustat.h -#opt/MACHINE-uClibc/include/sys/utsname.h -#opt/MACHINE-uClibc/include/sys/vfs.h -#opt/MACHINE-uClibc/include/sys/vm86.h -#opt/MACHINE-uClibc/include/sys/vt.h -#opt/MACHINE-uClibc/include/sys/wait.h -#opt/MACHINE-uClibc/include/sys/xattr.h -#opt/MACHINE-uClibc/include/syscall.h -#opt/MACHINE-uClibc/include/sysexits.h -#opt/MACHINE-uClibc/include/syslog.h -#opt/MACHINE-uClibc/include/tar.h -#opt/MACHINE-uClibc/include/termio.h -#opt/MACHINE-uClibc/include/termios.h -#opt/MACHINE-uClibc/include/tgmath.h -#opt/MACHINE-uClibc/include/thread_db.h -#opt/MACHINE-uClibc/include/time.h -#opt/MACHINE-uClibc/include/ttyent.h -#opt/MACHINE-uClibc/include/ucontext.h -#opt/MACHINE-uClibc/include/ulimit.h -#opt/MACHINE-uClibc/include/unistd.h -#opt/MACHINE-uClibc/include/ustat.h -#opt/MACHINE-uClibc/include/utime.h -#opt/MACHINE-uClibc/include/utmp.h -#opt/MACHINE-uClibc/include/values.h -#opt/MACHINE-uClibc/include/wait.h -#opt/MACHINE-uClibc/include/wchar.h -#opt/MACHINE-uClibc/include/wctype.h -#opt/MACHINE-uClibc/include/xlocale.h -#opt/MACHINE-uClibc/lib/Scrt1.o -#opt/MACHINE-uClibc/lib/crt1.o -#opt/MACHINE-uClibc/lib/crti.o -#opt/MACHINE-uClibc/lib/crtn.o -#opt/MACHINE-uClibc/lib/ld-uClibc-0.9.28.so -#opt/MACHINE-uClibc/lib/ld-uClibc.so.0 -#opt/MACHINE-uClibc/lib/ldscripts -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.x -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xbn -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xc -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xd -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xdc -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xdw -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xn -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xr -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xs -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xsc -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xsw -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xu -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xw -#opt/MACHINE-uClibc/lib/ldscripts/i386linux.x -#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xbn -#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xn -#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xr -#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xu -#opt/MACHINE-uClibc/lib/libc.a -#opt/MACHINE-uClibc/lib/libc.so -#opt/MACHINE-uClibc/lib/libc.so.0 -#opt/MACHINE-uClibc/lib/libc_pic.a -#opt/MACHINE-uClibc/lib/libcrypt-0.9.28.so -#opt/MACHINE-uClibc/lib/libcrypt.a -#opt/MACHINE-uClibc/lib/libcrypt.so -#opt/MACHINE-uClibc/lib/libcrypt.so.0 -#opt/MACHINE-uClibc/lib/libcrypt_pic.a -#opt/MACHINE-uClibc/lib/libdl-0.9.28.so -#opt/MACHINE-uClibc/lib/libdl.a -#opt/MACHINE-uClibc/lib/libdl.so -#opt/MACHINE-uClibc/lib/libdl.so.0 -#opt/MACHINE-uClibc/lib/libm-0.9.28.so -#opt/MACHINE-uClibc/lib/libm.a -#opt/MACHINE-uClibc/lib/libm.so -#opt/MACHINE-uClibc/lib/libm.so.0 -#opt/MACHINE-uClibc/lib/libm_pic.a -#opt/MACHINE-uClibc/lib/libnsl-0.9.28.so -#opt/MACHINE-uClibc/lib/libnsl.a -#opt/MACHINE-uClibc/lib/libnsl.so -#opt/MACHINE-uClibc/lib/libnsl.so.0 -#opt/MACHINE-uClibc/lib/libnsl_pic.a -#opt/MACHINE-uClibc/lib/libpthread-0.9.28.so -#opt/MACHINE-uClibc/lib/libpthread.a -#opt/MACHINE-uClibc/lib/libpthread.so -#opt/MACHINE-uClibc/lib/libpthread.so.0 -#opt/MACHINE-uClibc/lib/libpthread_pic.a -#opt/MACHINE-uClibc/lib/libresolv-0.9.28.so -#opt/MACHINE-uClibc/lib/libresolv.a -#opt/MACHINE-uClibc/lib/libresolv.so -#opt/MACHINE-uClibc/lib/libresolv.so.0 -#opt/MACHINE-uClibc/lib/libresolv_pic.a -#opt/MACHINE-uClibc/lib/librt-0.9.28.so -#opt/MACHINE-uClibc/lib/librt.a -#opt/MACHINE-uClibc/lib/librt.so -#opt/MACHINE-uClibc/lib/librt.so.0 -#opt/MACHINE-uClibc/lib/librt_pic.a -#opt/MACHINE-uClibc/lib/libuClibc-0.9.28.so -#opt/MACHINE-uClibc/lib/libutil-0.9.28.so -#opt/MACHINE-uClibc/lib/libutil.a -#opt/MACHINE-uClibc/lib/libutil.so -#opt/MACHINE-uClibc/lib/libutil.so.0 -#opt/MACHINE-uClibc/lib/libutil_pic.a diff --git a/config/rootfiles/common/udev b/config/rootfiles/common/udev index 5e5cb5a..bacd0cb 100644 --- a/config/rootfiles/common/udev +++ b/config/rootfiles/common/udev @@ -1,25 +1,18 @@ etc/modprobe.d/blacklist etc/scsi_id.config etc/udev -#etc/udev/dvb.sh #etc/udev/rules.d -#etc/udev/rules.d/05-udev-early.rules -#etc/udev/rules.d/10-dvb.rules -#etc/udev/rules.d/25-lfs.rules -#etc/udev/rules.d/26-modprobe.rules -#etc/udev/rules.d/27-firmware.rules #etc/udev/rules.d/30-persistent-network.rules -#etc/udev/rules.d/55-scsi-cdrom.rules -#etc/udev/rules.d/60-persistent-storage.rules -#etc/udev/rules.d/81-cdrom.rules #etc/udev/udev.conf #lib/firmware -lib/firmware/dirinfo -lib/libvolume_id.so.0 -lib/libvolume_id.so.0.85.0 +lib/libudev.so.0 +lib/libudev.so.0.2.0 +lib/libvolume_id.so.1 +lib/libvolume_id.so.1.1.0 lib/udev #lib/udev/ata_id #lib/udev/cdrom_id +#lib/udev/collect #lib/udev/create_floppy_devices #lib/udev/devices #lib/udev/devices/core @@ -31,27 +24,39 @@ lib/udev #lib/udev/devices/stdin #lib/udev/devices/stdout #lib/udev/edd_id +#lib/udev/enable_codel #lib/udev/firmware.sh +#lib/udev/fstab_import #lib/udev/path_id +#lib/udev/rule_generator.functions #lib/udev/rules.d +#lib/udev/rules.d/25-alsa.rules +#lib/udev/rules.d/50-firmware.rules #lib/udev/rules.d/50-udev-default.rules #lib/udev/rules.d/60-cdrom_id.rules #lib/udev/rules.d/60-persistent-input.rules +#lib/udev/rules.d/60-persistent-serial.rules #lib/udev/rules.d/60-persistent-storage-tape.rules #lib/udev/rules.d/60-persistent-storage.rules #lib/udev/rules.d/60-persistent-v4l.rules #lib/udev/rules.d/61-persistent-storage-edd.rules +#lib/udev/rules.d/75-cd-aliases-generator.rules +#lib/udev/rules.d/79-fstab_import.rules #lib/udev/rules.d/80-drivers.rules #lib/udev/rules.d/95-udev-late.rules +#lib/udev/rules.d/99-codel.rules #lib/udev/scsi_id #lib/udev/usb_id #lib/udev/vol_id +#lib/udev/write_cd_rules +#lib/udev/write_net_rules sbin/udevadm sbin/udevd -sbin/udevsettle -usr/bin/udevinfo +#usr/include/libudev.h #usr/include/libvolume_id.h +usr/lib/libudev.so usr/lib/libvolume_id.so +#usr/lib/pkgconfig/libudev.pc #usr/lib/pkgconfig/libvolume_id.pc #usr/share/man/man7/udev.7 #usr/share/man/man8/ata_id.8 @@ -62,4 +67,5 @@ usr/lib/libvolume_id.so #usr/share/man/man8/scsi_id.8 #usr/share/man/man8/udevadm.8 #usr/share/man/man8/udevd.8 +#usr/share/man/man8/usb_id.8 #usr/share/man/man8/vol_id.8 diff --git a/config/rootfiles/common/usbutils b/config/rootfiles/common/usbutils index d5b0f47..3858b39 100644 --- a/config/rootfiles/common/usbutils +++ b/config/rootfiles/common/usbutils @@ -1,4 +1,5 @@ #usr/man/man8/lsusb.8 usr/sbin/lsusb usr/sbin/update-usbids +#usr/share/hwdata #usr/share/hwdata/usb.ids diff --git a/config/rootfiles/common/xz b/config/rootfiles/common/xz index ef419c5..a8fa20b 100644 --- a/config/rootfiles/common/xz +++ b/config/rootfiles/common/xz @@ -30,18 +30,18 @@ usr/bin/xzmore #usr/include/lzma/container.h #usr/include/lzma/delta.h #usr/include/lzma/filter.h +#usr/include/lzma/hardware.h #usr/include/lzma/index.h #usr/include/lzma/index_hash.h #usr/include/lzma/lzma.h #usr/include/lzma/stream_flags.h -#usr/include/lzma/subblock.h #usr/include/lzma/version.h #usr/include/lzma/vli.h #usr/lib/liblzma.a #usr/lib/liblzma.la usr/lib/liblzma.so -usr/lib/liblzma.so.0 -usr/lib/liblzma.so.0.0.0 +usr/lib/liblzma.so.5 +usr/lib/liblzma.so.5.0.4 #usr/lib/pkgconfig/liblzma.pc #usr/share/doc/xz #usr/share/doc/xz/AUTHORS @@ -51,10 +51,24 @@ usr/lib/liblzma.so.0.0.0 #usr/share/doc/xz/README #usr/share/doc/xz/THANKS #usr/share/doc/xz/TODO +#usr/share/doc/xz/examples +#usr/share/doc/xz/examples/00_README.txt +#usr/share/doc/xz/examples/01_compress_easy.c +#usr/share/doc/xz/examples/02_decompress.c +#usr/share/doc/xz/examples/03_compress_custom.c +#usr/share/doc/xz/examples/Makefile +#usr/share/doc/xz/examples_old +#usr/share/doc/xz/examples_old/xz_pipe_comp.c +#usr/share/doc/xz/examples_old/xz_pipe_decomp.c #usr/share/doc/xz/faq.txt #usr/share/doc/xz/history.txt #usr/share/doc/xz/lzma-file-format.txt #usr/share/doc/xz/xz-file-format.txt +#usr/share/locale/cs/LC_MESSAGES/xz.mo +#usr/share/locale/de/LC_MESSAGES/xz.mo +#usr/share/locale/fr/LC_MESSAGES/xz.mo +#usr/share/locale/it/LC_MESSAGES/xz.mo +#usr/share/locale/pl/LC_MESSAGES/xz.mo #usr/share/man/man1/lzcat.1 #usr/share/man/man1/lzcmp.1 #usr/share/man/man1/lzdiff.1 diff --git a/config/rootfiles/common/zlib b/config/rootfiles/common/zlib index b275de5..13cf704 100644 --- a/config/rootfiles/common/zlib +++ b/config/rootfiles/common/zlib @@ -1,7 +1,10 @@ +lib/libz.so lib/libz.so.1 -lib/libz.so.1.2.3 +lib/libz.so.1.2.7 #usr/include/zconf.h #usr/include/zlib.h #usr/lib/libz.a -usr/lib/libz.so +#usr/lib/libz.so +#usr/lib/pkgconfig +#usr/lib/pkgconfig/zlib.pc #usr/share/man/man3/zlib.3 diff --git a/config/rootfiles/core/60/exclude b/config/rootfiles/core/60/exclude deleted file mode 100644 index 7360266..0000000 --- a/config/rootfiles/core/60/exclude +++ /dev/null @@ -1,12 +0,0 @@ -srv/web/ipfire/html/proxy.pac -etc/udev/rules.d/30-persistent-network.rules -etc/ipsec.conf -etc/ipsec.secrets -etc/ipsec.user.conf -etc/ipsec.user.secrets -var/updatecache -etc/localtime -var/ipfire/ovpn -etc/ssh/ssh_config -etc/ssh/sshd_config -etc/ssl/openssl.cnf diff --git a/config/rootfiles/core/60/filelists/files b/config/rootfiles/core/60/filelists/files deleted file mode 100644 index 409e5fe..0000000 --- a/config/rootfiles/core/60/filelists/files +++ /dev/null @@ -1,2 +0,0 @@ -etc/system-release -etc/issue diff --git a/config/rootfiles/core/60/filelists/strongswan b/config/rootfiles/core/60/filelists/strongswan deleted file mode 120000 index 90c727e..0000000 --- a/config/rootfiles/core/60/filelists/strongswan +++ /dev/null @@ -1 +0,0 @@ -../../../common/strongswan \ No newline at end of file diff --git a/config/rootfiles/core/60/meta b/config/rootfiles/core/60/meta deleted file mode 100644 index d547fa8..0000000 --- a/config/rootfiles/core/60/meta +++ /dev/null @@ -1 +0,0 @@ -DEPS="" diff --git a/config/rootfiles/core/60/update.sh b/config/rootfiles/core/60/update.sh deleted file mode 100644 index 5aaa23e..0000000 --- a/config/rootfiles/core/60/update.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 3 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2012 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -/usr/local/bin/backupctrl exclude >/dev/null 2>&1 - -# -# Remove old core updates from pakfire cache to save space... -core=60 -for (( i=1; i<=$core; i++ )) -do - rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire -done - -# -#Stop services -/etc/init.d/ipsec stop - -# -#Extract files -extract_files -# -#Start services -if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then - /etc/init.d/ipsec start -fi - -# -#Update Language cache -#perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" - -#Rebuild module dep's -#arch=`uname -m` -#if [ ${arch::3} == "arm" ]; then -# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 -#else -# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 -#fi - - -#Rebuild initrd's because some compat-wireless modules are inside -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire -#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae -#fi -#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen -#fi - -sync - -# This update need a reboot... -#touch /var/run/need_reboot - -# -#Finish -/etc/init.d/fireinfo start -sendprofile -#Don't report the exitcode last command -exit 0 diff --git a/config/rootfiles/core/61/exclude b/config/rootfiles/core/61/exclude deleted file mode 100644 index 7360266..0000000 --- a/config/rootfiles/core/61/exclude +++ /dev/null @@ -1,12 +0,0 @@ -srv/web/ipfire/html/proxy.pac -etc/udev/rules.d/30-persistent-network.rules -etc/ipsec.conf -etc/ipsec.secrets -etc/ipsec.user.conf -etc/ipsec.user.secrets -var/updatecache -etc/localtime -var/ipfire/ovpn -etc/ssh/ssh_config -etc/ssh/sshd_config -etc/ssl/openssl.cnf diff --git a/config/rootfiles/core/61/filelists/GeoIP b/config/rootfiles/core/61/filelists/GeoIP deleted file mode 100644 index 0258236..0000000 --- a/config/rootfiles/core/61/filelists/GeoIP +++ /dev/null @@ -1 +0,0 @@ -usr/local/share/GeoIP/GeoIP.dat diff --git a/config/rootfiles/core/61/filelists/Net-Telnet b/config/rootfiles/core/61/filelists/Net-Telnet deleted file mode 120000 index 66ca926..0000000 --- a/config/rootfiles/core/61/filelists/Net-Telnet +++ /dev/null @@ -1 +0,0 @@ -../../../common/Net-Telnet \ No newline at end of file diff --git a/config/rootfiles/core/61/filelists/files b/config/rootfiles/core/61/filelists/files deleted file mode 100644 index 55fbcf1..0000000 --- a/config/rootfiles/core/61/filelists/files +++ /dev/null @@ -1,15 +0,0 @@ -etc/system-release -etc/issue -etc/rc.d/init.d/collectd -opt/pakfire/lib/functions.sh -srv/web/ipfire/cgi-bin/credits.cgi -srv/web/ipfire/cgi-bin/index.cgi -srv/web/ipfire/cgi-bin/connections.cgi -srv/web/ipfire/cgi-bin/ovpnmain.cgi -srv/web/ipfire/cgi-bin/proxy.cgi -srv/web/ipfire/cgi-bin/services.cgi -var/ipfire/general-functions.pl -var/ipfire/langs -var/ipfire/proxy/calamaris/bin/mkreport -usr/local/bin/getconntracktable -usr/sbin/redirect_wrapper diff --git a/config/rootfiles/core/61/filelists/fireinfo b/config/rootfiles/core/61/filelists/fireinfo deleted file mode 120000 index c461155..0000000 --- a/config/rootfiles/core/61/filelists/fireinfo +++ /dev/null @@ -1 +0,0 @@ -../../../common/fireinfo \ No newline at end of file diff --git a/config/rootfiles/core/61/filelists/logwatch b/config/rootfiles/core/61/filelists/logwatch deleted file mode 120000 index f14eabd..0000000 --- a/config/rootfiles/core/61/filelists/logwatch +++ /dev/null @@ -1 +0,0 @@ -../../../common/logwatch \ No newline at end of file diff --git a/config/rootfiles/core/61/filelists/openvpn b/config/rootfiles/core/61/filelists/openvpn deleted file mode 120000 index 493f3f7..0000000 --- a/config/rootfiles/core/61/filelists/openvpn +++ /dev/null @@ -1 +0,0 @@ -../../../common/openvpn \ No newline at end of file diff --git a/config/rootfiles/core/61/filelists/pam b/config/rootfiles/core/61/filelists/pam deleted file mode 120000 index 660a1d8..0000000 --- a/config/rootfiles/core/61/filelists/pam +++ /dev/null @@ -1 +0,0 @@ -../../../common/pam \ No newline at end of file diff --git a/config/rootfiles/core/61/filelists/php b/config/rootfiles/core/61/filelists/php deleted file mode 120000 index 1ae48d7..0000000 --- a/config/rootfiles/core/61/filelists/php +++ /dev/null @@ -1 +0,0 @@ -../../../common/php \ No newline at end of file diff --git a/config/rootfiles/core/61/filelists/squid b/config/rootfiles/core/61/filelists/squid deleted file mode 120000 index 2dc8372..0000000 --- a/config/rootfiles/core/61/filelists/squid +++ /dev/null @@ -1 +0,0 @@ -../../../common/squid \ No newline at end of file diff --git a/config/rootfiles/core/61/filelists/usb_modeswitch_data b/config/rootfiles/core/61/filelists/usb_modeswitch_data deleted file mode 120000 index 4cbce46..0000000 --- a/config/rootfiles/core/61/filelists/usb_modeswitch_data +++ /dev/null @@ -1 +0,0 @@ -../../../common/usb_modeswitch_data \ No newline at end of file diff --git a/config/rootfiles/core/61/meta b/config/rootfiles/core/61/meta deleted file mode 100644 index d547fa8..0000000 --- a/config/rootfiles/core/61/meta +++ /dev/null @@ -1 +0,0 @@ -DEPS="" diff --git a/config/rootfiles/core/61/update.sh b/config/rootfiles/core/61/update.sh deleted file mode 100644 index e6b504a..0000000 --- a/config/rootfiles/core/61/update.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 3 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2012 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -/usr/local/bin/backupctrl exclude >/dev/null 2>&1 - -# -# Remove old core updates from pakfire cache to save space... -core=61 -for (( i=1; i<=$core; i++ )) -do - rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire -done - -# -#Stop services - -# -#Remove old usb_modeswitch_data -rm -rf /usr/share/usb_modeswitch - -# -#Extract files -extract_files - -# -#Start services -/etc/init.d/squid restart &>/dev/null - -# -#Update Language cache -perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" - -#Rebuild module dep's -#arch=`uname -m` -#if [ ${arch::3} == "arm" ]; then -# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 -#else -# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 -#fi - - -#Rebuild initrd's because some compat-wireless modules are inside -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire -#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae -#fi -#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen -#fi - -sync - -# This update need a reboot... -#touch /var/run/need_reboot - -# -#Finish -/etc/init.d/fireinfo start -sendprofile -#Don't report the exitcode last command -exit 0 diff --git a/config/rootfiles/core/62/exclude b/config/rootfiles/core/62/exclude deleted file mode 100644 index 7360266..0000000 --- a/config/rootfiles/core/62/exclude +++ /dev/null @@ -1,12 +0,0 @@ -srv/web/ipfire/html/proxy.pac -etc/udev/rules.d/30-persistent-network.rules -etc/ipsec.conf -etc/ipsec.secrets -etc/ipsec.user.conf -etc/ipsec.user.secrets -var/updatecache -etc/localtime -var/ipfire/ovpn -etc/ssh/ssh_config -etc/ssh/sshd_config -etc/ssl/openssl.cnf diff --git a/config/rootfiles/core/62/filelists/GeoIP b/config/rootfiles/core/62/filelists/GeoIP deleted file mode 100644 index 0258236..0000000 --- a/config/rootfiles/core/62/filelists/GeoIP +++ /dev/null @@ -1 +0,0 @@ -usr/local/share/GeoIP/GeoIP.dat diff --git a/config/rootfiles/core/62/filelists/files b/config/rootfiles/core/62/filelists/files deleted file mode 100644 index 34f0d16..0000000 --- a/config/rootfiles/core/62/filelists/files +++ /dev/null @@ -1,8 +0,0 @@ -etc/system-release -etc/issue -etc/rc.d/init.d/network-vlans -etc/rc.d/rcsysinit.d/S91network-vlans -srv/web/ipfire/cgi-bin/connections.cgi -usr/lib/gconv -var/ipfire/ethernet/vlans -var/ipfire/outgoing/bin/outgoingfw.pl diff --git a/config/rootfiles/core/62/filelists/hwdata b/config/rootfiles/core/62/filelists/hwdata deleted file mode 100644 index 5a9672f..0000000 --- a/config/rootfiles/core/62/filelists/hwdata +++ /dev/null @@ -1,2 +0,0 @@ -usr/share/hwdata/pci.ids -usr/share/hwdata/usb.ids diff --git a/config/rootfiles/core/62/filelists/php b/config/rootfiles/core/62/filelists/php deleted file mode 120000 index 1ae48d7..0000000 --- a/config/rootfiles/core/62/filelists/php +++ /dev/null @@ -1 +0,0 @@ -../../../common/php \ No newline at end of file diff --git a/config/rootfiles/core/62/filelists/usb_modeswitch b/config/rootfiles/core/62/filelists/usb_modeswitch deleted file mode 120000 index acbab6f..0000000 --- a/config/rootfiles/core/62/filelists/usb_modeswitch +++ /dev/null @@ -1 +0,0 @@ -../../../common/usb_modeswitch \ No newline at end of file diff --git a/config/rootfiles/core/62/filelists/usb_modeswitch_data b/config/rootfiles/core/62/filelists/usb_modeswitch_data deleted file mode 120000 index 4cbce46..0000000 --- a/config/rootfiles/core/62/filelists/usb_modeswitch_data +++ /dev/null @@ -1 +0,0 @@ -../../../common/usb_modeswitch_data \ No newline at end of file diff --git a/config/rootfiles/core/62/meta b/config/rootfiles/core/62/meta deleted file mode 100644 index d547fa8..0000000 --- a/config/rootfiles/core/62/meta +++ /dev/null @@ -1 +0,0 @@ -DEPS="" diff --git a/config/rootfiles/core/62/update.sh b/config/rootfiles/core/62/update.sh deleted file mode 100644 index 0c37b83..0000000 --- a/config/rootfiles/core/62/update.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 3 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2012 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -/usr/local/bin/backupctrl exclude >/dev/null 2>&1 - -# -# Remove old core updates from pakfire cache to save space... -core=62 -for (( i=1; i<=$core; i++ )) -do - rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire -done - -# -#Stop services - -# -#Extract files -extract_files - -# -#Start services - -# -#Update Language cache -#perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" - -#Rebuild module dep's -#arch=`uname -m` -#if [ ${arch::3} == "arm" ]; then -# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 -#else -# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 -#fi - - -#Rebuild initrd's because some compat-wireless modules are inside -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire -#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae -#fi -#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen -#fi - -sync - -# This update need a reboot... -#touch /var/run/need_reboot - -# -#Finish -/etc/init.d/fireinfo start -sendprofile -#Don't report the exitcode last command -exit 0 diff --git a/config/rootfiles/core/63/exclude b/config/rootfiles/core/63/exclude deleted file mode 100644 index b6a8d1d..0000000 --- a/config/rootfiles/core/63/exclude +++ /dev/null @@ -1,13 +0,0 @@ -srv/web/ipfire/html/proxy.pac -etc/udev/rules.d/30-persistent-network.rules -etc/ipsec.conf -etc/ipsec.secrets -etc/ipsec.user.conf -etc/ipsec.user.secrets -var/updatecache -etc/localtime -var/ipfire/ovpn -etc/ssh/ssh_config -etc/ssh/sshd_config -etc/ssl/openssl.cnf -var/state/dhcp/dhcpd.leases diff --git a/config/rootfiles/core/63/filelists/GeoIP b/config/rootfiles/core/63/filelists/GeoIP deleted file mode 100644 index 0258236..0000000 --- a/config/rootfiles/core/63/filelists/GeoIP +++ /dev/null @@ -1 +0,0 @@ -usr/local/share/GeoIP/GeoIP.dat diff --git a/config/rootfiles/core/63/filelists/apache2 b/config/rootfiles/core/63/filelists/apache2 deleted file mode 120000 index eef95ef..0000000 --- a/config/rootfiles/core/63/filelists/apache2 +++ /dev/null @@ -1 +0,0 @@ -../../../common/apache2 \ No newline at end of file diff --git a/config/rootfiles/core/63/filelists/dhcp b/config/rootfiles/core/63/filelists/dhcp deleted file mode 120000 index 32d8da4..0000000 --- a/config/rootfiles/core/63/filelists/dhcp +++ /dev/null @@ -1 +0,0 @@ -../../../common/dhcp \ No newline at end of file diff --git a/config/rootfiles/core/63/filelists/files b/config/rootfiles/core/63/filelists/files deleted file mode 100644 index 1455a87..0000000 --- a/config/rootfiles/core/63/filelists/files +++ /dev/null @@ -1,5 +0,0 @@ -etc/system-release -etc/issue -etc/rc.d/init.d/network-vlans -srv/web/ipfire/cgi-bin/index.cgi -srv/web/ipfire/cgi-bin/ovpnmain.cgi diff --git a/config/rootfiles/core/63/filelists/fireinfo b/config/rootfiles/core/63/filelists/fireinfo deleted file mode 120000 index c461155..0000000 --- a/config/rootfiles/core/63/filelists/fireinfo +++ /dev/null @@ -1 +0,0 @@ -../../../common/fireinfo \ No newline at end of file diff --git a/config/rootfiles/core/63/filelists/inetutils b/config/rootfiles/core/63/filelists/inetutils deleted file mode 120000 index bcd329b..0000000 --- a/config/rootfiles/core/63/filelists/inetutils +++ /dev/null @@ -1 +0,0 @@ -../../../common/inetutils \ No newline at end of file diff --git a/config/rootfiles/core/63/meta b/config/rootfiles/core/63/meta deleted file mode 100644 index d547fa8..0000000 --- a/config/rootfiles/core/63/meta +++ /dev/null @@ -1 +0,0 @@ -DEPS="" diff --git a/config/rootfiles/core/63/update.sh b/config/rootfiles/core/63/update.sh deleted file mode 100644 index f0764ae..0000000 --- a/config/rootfiles/core/63/update.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 3 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2012 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -/usr/local/bin/backupctrl exclude >/dev/null 2>&1 - -# -# Remove old core updates from pakfire cache to save space... -core=63 -for (( i=1; i<=$core; i++ )) -do - rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire -done - -# Remove old symlink to DHCP server configuration file. -rm -f /etc/dhcpd.conf - -# -#Stop services -/etc/init.d/apache stop - -# -#Extract files -extract_files - -# -#Start services -/etc/init.d/apache start - -# -#Update Language cache -#perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" - -#Rebuild module dep's -#arch=`uname -m` -#if [ ${arch::3} == "arm" ]; then -# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 -#else -# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 -#fi - - -#Rebuild initrd's because some compat-wireless modules are inside -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire -#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae -#fi -#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen -#fi - -sync - -# This update need a reboot... -#touch /var/run/need_reboot - -# -#Finish -/etc/init.d/fireinfo start -sendprofile -#Don't report the exitcode last command -exit 0 diff --git a/config/rootfiles/core/64/exclude b/config/rootfiles/core/64/exclude deleted file mode 100644 index b6a8d1d..0000000 --- a/config/rootfiles/core/64/exclude +++ /dev/null @@ -1,13 +0,0 @@ -srv/web/ipfire/html/proxy.pac -etc/udev/rules.d/30-persistent-network.rules -etc/ipsec.conf -etc/ipsec.secrets -etc/ipsec.user.conf -etc/ipsec.user.secrets -var/updatecache -etc/localtime -var/ipfire/ovpn -etc/ssh/ssh_config -etc/ssh/sshd_config -etc/ssl/openssl.cnf -var/state/dhcp/dhcpd.leases diff --git a/config/rootfiles/core/64/filelists/daq b/config/rootfiles/core/64/filelists/daq deleted file mode 120000 index d0e0956..0000000 --- a/config/rootfiles/core/64/filelists/daq +++ /dev/null @@ -1 +0,0 @@ -../../../common/daq \ No newline at end of file diff --git a/config/rootfiles/core/64/filelists/files b/config/rootfiles/core/64/filelists/files deleted file mode 100644 index 072fc70..0000000 --- a/config/rootfiles/core/64/filelists/files +++ /dev/null @@ -1,7 +0,0 @@ -etc/system-release -etc/issue -etc/rc.d/init.d/firewall -srv/web/ipfire/cgi-bin/credits.cgi -srv/web/ipfire/cgi-bin/ids.cgi -var/ipfire/outgoing/bin/outgoingfw.pl -var/ipfire/langs diff --git a/config/rootfiles/core/64/filelists/snort b/config/rootfiles/core/64/filelists/snort deleted file mode 120000 index 9406ce0..0000000 --- a/config/rootfiles/core/64/filelists/snort +++ /dev/null @@ -1 +0,0 @@ -../../../common/snort \ No newline at end of file diff --git a/config/rootfiles/core/64/meta b/config/rootfiles/core/64/meta deleted file mode 100644 index d547fa8..0000000 --- a/config/rootfiles/core/64/meta +++ /dev/null @@ -1 +0,0 @@ -DEPS="" diff --git a/config/rootfiles/core/64/update.sh b/config/rootfiles/core/64/update.sh deleted file mode 100644 index c1e7545..0000000 --- a/config/rootfiles/core/64/update.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 3 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2012 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -/usr/local/bin/backupctrl exclude >/dev/null 2>&1 - -# -# Remove old core updates from pakfire cache to save space... -core=64 -for (( i=1; i<=$core; i++ )) -do - rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire -done - -# -#Stop services -/etc/init.d/snort stop - -# -#Extract files -extract_files - -# -#Start services -/etc/init.d/snort start - -# -#Update Language cache -perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" - -#Rebuild module dep's -#arch=`uname -m` -#if [ ${arch::3} == "arm" ]; then -# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 -#else -# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 -#fi - - -#Rebuild initrd's because some compat-wireless modules are inside -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire -#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae -#fi -#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen -#fi - -sync - -# This update need a reboot... -#touch /var/run/need_reboot - -# -#Finish -/etc/init.d/fireinfo start -sendprofile -#Don't report the exitcode last command -exit 0 diff --git a/config/rootfiles/core/65/exclude b/config/rootfiles/core/65/exclude deleted file mode 100644 index b6a8d1d..0000000 --- a/config/rootfiles/core/65/exclude +++ /dev/null @@ -1,13 +0,0 @@ -srv/web/ipfire/html/proxy.pac -etc/udev/rules.d/30-persistent-network.rules -etc/ipsec.conf -etc/ipsec.secrets -etc/ipsec.user.conf -etc/ipsec.user.secrets -var/updatecache -etc/localtime -var/ipfire/ovpn -etc/ssh/ssh_config -etc/ssh/sshd_config -etc/ssl/openssl.cnf -var/state/dhcp/dhcpd.leases diff --git a/config/rootfiles/core/65/filelists/GeoIP b/config/rootfiles/core/65/filelists/GeoIP deleted file mode 100644 index 0258236..0000000 --- a/config/rootfiles/core/65/filelists/GeoIP +++ /dev/null @@ -1 +0,0 @@ -usr/local/share/GeoIP/GeoIP.dat diff --git a/config/rootfiles/core/65/filelists/daq b/config/rootfiles/core/65/filelists/daq deleted file mode 120000 index d0e0956..0000000 --- a/config/rootfiles/core/65/filelists/daq +++ /dev/null @@ -1 +0,0 @@ -../../../common/daq \ No newline at end of file diff --git a/config/rootfiles/core/65/filelists/files b/config/rootfiles/core/65/filelists/files deleted file mode 100644 index 13788f1..0000000 --- a/config/rootfiles/core/65/filelists/files +++ /dev/null @@ -1,12 +0,0 @@ -etc/httpd/conf/vhosts.d/ipfire-interface-ssl.conf -etc/system-release -etc/issue -srv/web/ipfire/cgi-bin/logs.cgi/calamaris.dat -srv/web/ipfire/cgi-bin/ovpnmain.cgi -srv/web/ipfire/cgi-bin/routing.cgi -srv/web/ipfire/cgi-bin/vpnmain.cgi -usr/local/bin/launch-ether-wake -usr/sbin/ovpn-ccd-convert -var/ipfire/general-functions.pl -var/ipfire/langs -var/ipfire/backup/include diff --git a/config/rootfiles/core/65/meta b/config/rootfiles/core/65/meta deleted file mode 100644 index d547fa8..0000000 --- a/config/rootfiles/core/65/meta +++ /dev/null @@ -1 +0,0 @@ -DEPS="" diff --git a/config/rootfiles/core/65/update.sh b/config/rootfiles/core/65/update.sh deleted file mode 100644 index 88f5b36..0000000 --- a/config/rootfiles/core/65/update.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 3 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2012 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -/usr/local/bin/backupctrl exclude >/dev/null 2>&1 - -# -# Remove old core updates from pakfire cache to save space... -core=65 -for (( i=1; i<=$core; i++ )) -do - rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire -done - -# -#Stop services - -# -#Extract files -extract_files - -# -#Start services - -# -#Update Language cache -perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" - -# Convert OpenVPN RW connections. -/usr/sbin/ovpn-ccd-convert - -# Update crontab. -sed -i /var/spool/cron/root.orig \ - -e 's@^.*fcron.weekly.*$@&nice(10),bootrun 47 2 * * 1\ttest -x /usr/local/bin/run-parts && /usr/local/bin/run-parts /etc/fcron.weekly@' -fcrontab -z &>/dev/null - -# Reload apache configuration. -/etc/init.d/apache reload &>/dev/null - -#Rebuild module dep's -#arch=`uname -m` -#if [ ${arch::3} == "arm" ]; then -# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 -#else -# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 -# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 -#fi - - -#Rebuild initrd's because some compat-wireless modules are inside -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire -#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae -#fi -#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then -#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen -#fi - -sync - -# This update need a reboot... -#touch /var/run/need_reboot - -# -#Finish -/etc/init.d/fireinfo start -sendprofile -#Don't report the exitcode last command -exit 0 diff --git a/config/rootfiles/core/66/exclude b/config/rootfiles/core/66/exclude new file mode 100644 index 0000000..18141fd --- /dev/null +++ b/config/rootfiles/core/66/exclude @@ -0,0 +1,16 @@ +srv/web/ipfire/html/proxy.pac +etc/udev/rules.d/30-persistent-network.rules +etc/collectd.custom +etc/shadow +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +var/log/cache +var/updatecache +etc/localtime +var/ipfire/ovpn +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf +var/state/dhcp/dhcpd.leases diff --git a/config/rootfiles/core/66/filelists/GeoIP b/config/rootfiles/core/66/filelists/GeoIP new file mode 100644 index 0000000..0258236 --- /dev/null +++ b/config/rootfiles/core/66/filelists/GeoIP @@ -0,0 +1 @@ +usr/local/share/GeoIP/GeoIP.dat diff --git a/config/rootfiles/core/66/filelists/armv5tel/binutils b/config/rootfiles/core/66/filelists/armv5tel/binutils new file mode 120000 index 0000000..ac971f9 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/binutils @@ -0,0 +1 @@ +../../../../common/armv5tel/binutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/dracut b/config/rootfiles/core/66/filelists/armv5tel/dracut new file mode 120000 index 0000000..861df3f --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/dracut @@ -0,0 +1 @@ +../../../../common/armv5tel/dracut \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/gcc b/config/rootfiles/core/66/filelists/armv5tel/gcc new file mode 120000 index 0000000..84f7b93 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/gcc @@ -0,0 +1 @@ +../../../../common/armv5tel/gcc \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/glibc b/config/rootfiles/core/66/filelists/armv5tel/glibc new file mode 120000 index 0000000..4c70d72 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/glibc @@ -0,0 +1 @@ +../../../../common/armv5tel/glibc \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/linux-kirkwood b/config/rootfiles/core/66/filelists/armv5tel/linux-kirkwood new file mode 120000 index 0000000..7217107 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/linux-kirkwood @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-kirkwood \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/linux-omap b/config/rootfiles/core/66/filelists/armv5tel/linux-omap new file mode 120000 index 0000000..50bf786 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/linux-omap @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-omap \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/linux-rpi b/config/rootfiles/core/66/filelists/armv5tel/linux-rpi new file mode 120000 index 0000000..a651a49 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/linux-rpi @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-rpi \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/rpi-firmware b/config/rootfiles/core/66/filelists/armv5tel/rpi-firmware new file mode 120000 index 0000000..428fdf8 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/rpi-firmware @@ -0,0 +1 @@ +../../../../common/armv5tel/rpi-firmware \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/u-boot b/config/rootfiles/core/66/filelists/armv5tel/u-boot new file mode 120000 index 0000000..3df31a8 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/u-boot @@ -0,0 +1 @@ +../../../../common/armv5tel/u-boot \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/util-linux b/config/rootfiles/core/66/filelists/armv5tel/util-linux new file mode 120000 index 0000000..2596908 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/util-linux @@ -0,0 +1 @@ +../../../../common/armv5tel/util-linux \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/autoconf b/config/rootfiles/core/66/filelists/autoconf new file mode 120000 index 0000000..aa39ce6 --- /dev/null +++ b/config/rootfiles/core/66/filelists/autoconf @@ -0,0 +1 @@ +../../../common/autoconf \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/automake b/config/rootfiles/core/66/filelists/automake new file mode 120000 index 0000000..df3ee42 --- /dev/null +++ b/config/rootfiles/core/66/filelists/automake @@ -0,0 +1 @@ +../../../common/automake \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/bash b/config/rootfiles/core/66/filelists/bash new file mode 120000 index 0000000..de970cb --- /dev/null +++ b/config/rootfiles/core/66/filelists/bash @@ -0,0 +1 @@ +../../../common/bash \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/bind b/config/rootfiles/core/66/filelists/bind new file mode 120000 index 0000000..48a0eba --- /dev/null +++ b/config/rootfiles/core/66/filelists/bind @@ -0,0 +1 @@ +../../../common/bind \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/bridge-utils b/config/rootfiles/core/66/filelists/bridge-utils new file mode 120000 index 0000000..3dee211 --- /dev/null +++ b/config/rootfiles/core/66/filelists/bridge-utils @@ -0,0 +1 @@ +../../../common/bridge-utils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/cairo b/config/rootfiles/core/66/filelists/cairo new file mode 120000 index 0000000..bf48d25 --- /dev/null +++ b/config/rootfiles/core/66/filelists/cairo @@ -0,0 +1 @@ +../../../common/cairo \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/capi4k-utils b/config/rootfiles/core/66/filelists/capi4k-utils new file mode 120000 index 0000000..82982c4 --- /dev/null +++ b/config/rootfiles/core/66/filelists/capi4k-utils @@ -0,0 +1 @@ +../../../common/capi4k-utils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/cmake b/config/rootfiles/core/66/filelists/cmake new file mode 120000 index 0000000..491d25f --- /dev/null +++ b/config/rootfiles/core/66/filelists/cmake @@ -0,0 +1 @@ +../../../common/cmake \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/collectd b/config/rootfiles/core/66/filelists/collectd new file mode 120000 index 0000000..871b32f --- /dev/null +++ b/config/rootfiles/core/66/filelists/collectd @@ -0,0 +1 @@ +../../../common/collectd \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/compat-wireless b/config/rootfiles/core/66/filelists/compat-wireless new file mode 120000 index 0000000..5b5ac9e --- /dev/null +++ b/config/rootfiles/core/66/filelists/compat-wireless @@ -0,0 +1 @@ +../../../common/compat-wireless \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/conntrack-tools b/config/rootfiles/core/66/filelists/conntrack-tools new file mode 120000 index 0000000..88fbe06 --- /dev/null +++ b/config/rootfiles/core/66/filelists/conntrack-tools @@ -0,0 +1 @@ +../../../common/conntrack-tools \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/coreutils b/config/rootfiles/core/66/filelists/coreutils new file mode 120000 index 0000000..7351ed2 --- /dev/null +++ b/config/rootfiles/core/66/filelists/coreutils @@ -0,0 +1 @@ +../../../common/coreutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/curl b/config/rootfiles/core/66/filelists/curl new file mode 120000 index 0000000..4b84bef --- /dev/null +++ b/config/rootfiles/core/66/filelists/curl @@ -0,0 +1 @@ +../../../common/curl \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/cyrus-sasl b/config/rootfiles/core/66/filelists/cyrus-sasl new file mode 120000 index 0000000..bb51b4c --- /dev/null +++ b/config/rootfiles/core/66/filelists/cyrus-sasl @@ -0,0 +1 @@ +../../../common/cyrus-sasl \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/daq b/config/rootfiles/core/66/filelists/daq new file mode 120000 index 0000000..d0e0956 --- /dev/null +++ b/config/rootfiles/core/66/filelists/daq @@ -0,0 +1 @@ +../../../common/daq \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/dejavu-fonts-ttf b/config/rootfiles/core/66/filelists/dejavu-fonts-ttf new file mode 120000 index 0000000..0007a8b --- /dev/null +++ b/config/rootfiles/core/66/filelists/dejavu-fonts-ttf @@ -0,0 +1 @@ +../../../common/dejavu-fonts-ttf \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/dhcp b/config/rootfiles/core/66/filelists/dhcp new file mode 120000 index 0000000..32d8da4 --- /dev/null +++ b/config/rootfiles/core/66/filelists/dhcp @@ -0,0 +1 @@ +../../../common/dhcp \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/dvb-firmwares b/config/rootfiles/core/66/filelists/dvb-firmwares new file mode 120000 index 0000000..69d0cdc --- /dev/null +++ b/config/rootfiles/core/66/filelists/dvb-firmwares @@ -0,0 +1 @@ +../../../common/dvb-firmwares \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/e2fsprogs b/config/rootfiles/core/66/filelists/e2fsprogs new file mode 120000 index 0000000..37b55de --- /dev/null +++ b/config/rootfiles/core/66/filelists/e2fsprogs @@ -0,0 +1 @@ +../../../common/e2fsprogs \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/file b/config/rootfiles/core/66/filelists/file new file mode 120000 index 0000000..0c60e43 --- /dev/null +++ b/config/rootfiles/core/66/filelists/file @@ -0,0 +1 @@ +../../../common/file \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/files b/config/rootfiles/core/66/filelists/files new file mode 100644 index 0000000..a7f3664 --- /dev/null +++ b/config/rootfiles/core/66/filelists/files @@ -0,0 +1,51 @@ +etc/httpd/conf/vhosts.d/ipfire-interface-ssl.conf +etc/issue +etc/modprobe.d/cfg80211 +etc/rc.d/init.d/cleanfs +etc/rc.d/init.d/firewall +etc/rc.d/init.d/fsresize +etc/rc.d/init.d/halt +etc/rc.d/init.d/leds +etc/rc.d/init.d/mountfs +etc/rc.d/init.d/network +etc/rc.d/init.d/networking/dhcpcd.exe +etc/rc.d/init.d/networking/red +etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup +etc/rc.d/init.d/networking/red.up/98-leds +etc/rc.d/init.d/partresize +etc/rc.d/init.d/reboot +etc/rc.d/init.d/sendsignals +etc/rc.d/init.d/setclock +etc/rc.d/init.d/tmpfs +etc/rc.d/init.d/udev +etc/rc.d/init.d/udev_retry +etc/rc.d/rc0.d/K47setclock +etc/rc.d/rc6.d/K47setclock +etc/securetty +etc/sysctl.conf +etc/system-release +opt/pakfire/db/core/mine +opt/pakfire/etc/pakfire.conf +opt/pakfire/lib/functions.sh +srv/web/ipfire/cgi-bin/credits.cgi +srv/web/ipfire/cgi-bin/ids.cgi +srv/web/ipfire/cgi-bin/logs.cgi/calamaris.dat +srv/web/ipfire/cgi-bin/media.cgi +srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/proxy.cgi +srv/web/ipfire/cgi-bin/qos.cgi +srv/web/ipfire/cgi-bin/services.cgi +srv/web/ipfire/cgi-bin/updatexlrator.cgi +srv/web/ipfire/cgi-bin/vpnmain.cgi +usr/bin/watch +usr/local/bin/makegraphs +usr/local/bin/readhash +usr/local/bin/scanhd +usr/sbin/ovpn-ccd-convert +var/ipfire/backup/bin/backup.pl +var/ipfire/backup/include +var/ipfire/general-functions.pl +var/ipfire/langs +var/ipfire/outgoing/bin/outgoingfw.pl +var/ipfire/qos/bin/makeqosscripts.pl +var/ipfire/updatexlrator/bin/download diff --git a/config/rootfiles/core/66/filelists/fontconfig b/config/rootfiles/core/66/filelists/fontconfig new file mode 120000 index 0000000..6daeffd --- /dev/null +++ b/config/rootfiles/core/66/filelists/fontconfig @@ -0,0 +1 @@ +../../../common/fontconfig \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/fstrim b/config/rootfiles/core/66/filelists/fstrim new file mode 120000 index 0000000..5541351 --- /dev/null +++ b/config/rootfiles/core/66/filelists/fstrim @@ -0,0 +1 @@ +../../../common/fstrim \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/gawk b/config/rootfiles/core/66/filelists/gawk new file mode 120000 index 0000000..a3bbe32 --- /dev/null +++ b/config/rootfiles/core/66/filelists/gawk @@ -0,0 +1 @@ +../../../common/gawk \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/gettext b/config/rootfiles/core/66/filelists/gettext new file mode 120000 index 0000000..b6c6c6f --- /dev/null +++ b/config/rootfiles/core/66/filelists/gettext @@ -0,0 +1 @@ +../../../common/gettext \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/glib b/config/rootfiles/core/66/filelists/glib new file mode 120000 index 0000000..4466574 --- /dev/null +++ b/config/rootfiles/core/66/filelists/glib @@ -0,0 +1 @@ +../../../common/glib \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/gmp b/config/rootfiles/core/66/filelists/gmp new file mode 120000 index 0000000..8662a89 --- /dev/null +++ b/config/rootfiles/core/66/filelists/gmp @@ -0,0 +1 @@ +../../../common/gmp \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/gmp-compat b/config/rootfiles/core/66/filelists/gmp-compat new file mode 120000 index 0000000..10093cd --- /dev/null +++ b/config/rootfiles/core/66/filelists/gmp-compat @@ -0,0 +1 @@ +../../../common/gmp-compat \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/gnupg b/config/rootfiles/core/66/filelists/gnupg new file mode 120000 index 0000000..a1a1564 --- /dev/null +++ b/config/rootfiles/core/66/filelists/gnupg @@ -0,0 +1 @@ +../../../common/gnupg \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/grep b/config/rootfiles/core/66/filelists/grep new file mode 120000 index 0000000..ab5ef8b --- /dev/null +++ b/config/rootfiles/core/66/filelists/grep @@ -0,0 +1 @@ +../../../common/grep \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/hdparm b/config/rootfiles/core/66/filelists/hdparm new file mode 120000 index 0000000..b644751 --- /dev/null +++ b/config/rootfiles/core/66/filelists/hdparm @@ -0,0 +1 @@ +../../../common/hdparm \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/acpi-init b/config/rootfiles/core/66/filelists/i586/acpi-init new file mode 100644 index 0000000..982638a --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/acpi-init @@ -0,0 +1,4 @@ +etc/rc.d/init.d/acpid +etc/rc.d/rc0.d/K87acpid +etc/rc.d/rc3.d/S12acpid +etc/rc.d/rc6.d/K87acpid diff --git a/config/rootfiles/core/66/filelists/i586/acpid b/config/rootfiles/core/66/filelists/i586/acpid new file mode 120000 index 0000000..21d36ee --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/acpid @@ -0,0 +1 @@ +../../../../common/i586/acpid \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/binutils b/config/rootfiles/core/66/filelists/i586/binutils new file mode 120000 index 0000000..78695d7 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/binutils @@ -0,0 +1 @@ +../../../../common/i586/binutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/dracut b/config/rootfiles/core/66/filelists/i586/dracut new file mode 120000 index 0000000..9a09010 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/dracut @@ -0,0 +1 @@ +../../../../common/i586/dracut \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/gcc b/config/rootfiles/core/66/filelists/i586/gcc new file mode 120000 index 0000000..ba328e3 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/gcc @@ -0,0 +1 @@ +../../../../common/i586/gcc \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/glibc b/config/rootfiles/core/66/filelists/i586/glibc new file mode 120000 index 0000000..943021f --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/glibc @@ -0,0 +1 @@ +../../../../common/i586/glibc \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/grub b/config/rootfiles/core/66/filelists/i586/grub new file mode 120000 index 0000000..feb236a --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/grub @@ -0,0 +1 @@ +../../../../common/i586/grub \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/linux b/config/rootfiles/core/66/filelists/i586/linux new file mode 120000 index 0000000..693ec4b --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/linux @@ -0,0 +1 @@ +../../../../common/i586/linux \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/strongswan-padlock b/config/rootfiles/core/66/filelists/i586/strongswan-padlock new file mode 120000 index 0000000..2412824 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/strongswan-padlock @@ -0,0 +1 @@ +../../../../common/i586/strongswan-padlock \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/util-linux b/config/rootfiles/core/66/filelists/i586/util-linux new file mode 120000 index 0000000..c973106 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/util-linux @@ -0,0 +1 @@ +../../../../common/i586/util-linux \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/inetutils b/config/rootfiles/core/66/filelists/inetutils new file mode 120000 index 0000000..bcd329b --- /dev/null +++ b/config/rootfiles/core/66/filelists/inetutils @@ -0,0 +1 @@ +../../../common/inetutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/iproute2 b/config/rootfiles/core/66/filelists/iproute2 new file mode 120000 index 0000000..05f0f71 --- /dev/null +++ b/config/rootfiles/core/66/filelists/iproute2 @@ -0,0 +1 @@ +../../../common/iproute2 \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/iptables b/config/rootfiles/core/66/filelists/iptables new file mode 120000 index 0000000..8caf12b --- /dev/null +++ b/config/rootfiles/core/66/filelists/iptables @@ -0,0 +1 @@ +../../../common/iptables \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/kbd b/config/rootfiles/core/66/filelists/kbd new file mode 120000 index 0000000..9b85839 --- /dev/null +++ b/config/rootfiles/core/66/filelists/kbd @@ -0,0 +1 @@ +../../../common/kbd \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/less b/config/rootfiles/core/66/filelists/less new file mode 120000 index 0000000..65c0e07 --- /dev/null +++ b/config/rootfiles/core/66/filelists/less @@ -0,0 +1 @@ +../../../common/less \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libffi b/config/rootfiles/core/66/filelists/libffi new file mode 120000 index 0000000..c391acd --- /dev/null +++ b/config/rootfiles/core/66/filelists/libffi @@ -0,0 +1 @@ +../../../common/libffi \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libmnl b/config/rootfiles/core/66/filelists/libmnl new file mode 120000 index 0000000..f671c41 --- /dev/null +++ b/config/rootfiles/core/66/filelists/libmnl @@ -0,0 +1 @@ +../../../common/libmnl \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libnl b/config/rootfiles/core/66/filelists/libnl new file mode 120000 index 0000000..7181849 --- /dev/null +++ b/config/rootfiles/core/66/filelists/libnl @@ -0,0 +1 @@ +../../../common/libnl \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libsigc++ b/config/rootfiles/core/66/filelists/libsigc++ new file mode 120000 index 0000000..51f4c75 --- /dev/null +++ b/config/rootfiles/core/66/filelists/libsigc++ @@ -0,0 +1 @@ +../../../common/libsigc++ \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libtool b/config/rootfiles/core/66/filelists/libtool new file mode 120000 index 0000000..54f5666 --- /dev/null +++ b/config/rootfiles/core/66/filelists/libtool @@ -0,0 +1 @@ +../../../common/libtool \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libupnp b/config/rootfiles/core/66/filelists/libupnp new file mode 120000 index 0000000..7ec2b00 --- /dev/null +++ b/config/rootfiles/core/66/filelists/libupnp @@ -0,0 +1 @@ +../../../common/libupnp \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/linux-atm b/config/rootfiles/core/66/filelists/linux-atm new file mode 120000 index 0000000..8adccaf --- /dev/null +++ b/config/rootfiles/core/66/filelists/linux-atm @@ -0,0 +1 @@ +../../../common/linux-atm \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/linux-firmware b/config/rootfiles/core/66/filelists/linux-firmware new file mode 120000 index 0000000..4bf91bc --- /dev/null +++ b/config/rootfiles/core/66/filelists/linux-firmware @@ -0,0 +1 @@ +../../../common/linux-firmware \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/m4 b/config/rootfiles/core/66/filelists/m4 new file mode 120000 index 0000000..3f009cc --- /dev/null +++ b/config/rootfiles/core/66/filelists/m4 @@ -0,0 +1 @@ +../../../common/m4 \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/mISDNuser b/config/rootfiles/core/66/filelists/mISDNuser new file mode 120000 index 0000000..78537d4 --- /dev/null +++ b/config/rootfiles/core/66/filelists/mISDNuser @@ -0,0 +1 @@ +../../../common/mISDNuser \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/man b/config/rootfiles/core/66/filelists/man new file mode 120000 index 0000000..b04d65c --- /dev/null +++ b/config/rootfiles/core/66/filelists/man @@ -0,0 +1 @@ +../../../common/man \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/misc-progs b/config/rootfiles/core/66/filelists/misc-progs new file mode 120000 index 0000000..7223cad --- /dev/null +++ b/config/rootfiles/core/66/filelists/misc-progs @@ -0,0 +1 @@ +../../../common/misc-progs \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/mpfr b/config/rootfiles/core/66/filelists/mpfr new file mode 120000 index 0000000..c8468bf --- /dev/null +++ b/config/rootfiles/core/66/filelists/mpfr @@ -0,0 +1 @@ +../../../common/mpfr \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/ncurses b/config/rootfiles/core/66/filelists/ncurses new file mode 120000 index 0000000..512faef --- /dev/null +++ b/config/rootfiles/core/66/filelists/ncurses @@ -0,0 +1 @@ +../../../common/ncurses \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/newt b/config/rootfiles/core/66/filelists/newt new file mode 120000 index 0000000..fb3eb20 --- /dev/null +++ b/config/rootfiles/core/66/filelists/newt @@ -0,0 +1 @@ +../../../common/newt \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/openldap b/config/rootfiles/core/66/filelists/openldap new file mode 120000 index 0000000..80c324f --- /dev/null +++ b/config/rootfiles/core/66/filelists/openldap @@ -0,0 +1 @@ +../../../common/openldap \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/openssh b/config/rootfiles/core/66/filelists/openssh new file mode 120000 index 0000000..d8c77fd --- /dev/null +++ b/config/rootfiles/core/66/filelists/openssh @@ -0,0 +1 @@ +../../../common/openssh \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/openssl b/config/rootfiles/core/66/filelists/openssl new file mode 120000 index 0000000..e011a92 --- /dev/null +++ b/config/rootfiles/core/66/filelists/openssl @@ -0,0 +1 @@ +../../../common/openssl \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pam b/config/rootfiles/core/66/filelists/pam new file mode 120000 index 0000000..660a1d8 --- /dev/null +++ b/config/rootfiles/core/66/filelists/pam @@ -0,0 +1 @@ +../../../common/pam \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pango b/config/rootfiles/core/66/filelists/pango new file mode 120000 index 0000000..6c37231 --- /dev/null +++ b/config/rootfiles/core/66/filelists/pango @@ -0,0 +1 @@ +../../../common/pango \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pciutils b/config/rootfiles/core/66/filelists/pciutils new file mode 120000 index 0000000..aeb45e7 --- /dev/null +++ b/config/rootfiles/core/66/filelists/pciutils @@ -0,0 +1 @@ +../../../common/pciutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pcmciautils b/config/rootfiles/core/66/filelists/pcmciautils new file mode 120000 index 0000000..7cbf821 --- /dev/null +++ b/config/rootfiles/core/66/filelists/pcmciautils @@ -0,0 +1 @@ +../../../common/pcmciautils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pcre b/config/rootfiles/core/66/filelists/pcre new file mode 120000 index 0000000..b390d9a --- /dev/null +++ b/config/rootfiles/core/66/filelists/pcre @@ -0,0 +1 @@ +../../../common/pcre \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pcre-compat b/config/rootfiles/core/66/filelists/pcre-compat new file mode 120000 index 0000000..eff8a7d --- /dev/null +++ b/config/rootfiles/core/66/filelists/pcre-compat @@ -0,0 +1 @@ +../../../common/pcre-compat \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pixman b/config/rootfiles/core/66/filelists/pixman new file mode 120000 index 0000000..fdb6346 --- /dev/null +++ b/config/rootfiles/core/66/filelists/pixman @@ -0,0 +1 @@ +../../../common/pixman \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/popt b/config/rootfiles/core/66/filelists/popt new file mode 120000 index 0000000..d71a9ab --- /dev/null +++ b/config/rootfiles/core/66/filelists/popt @@ -0,0 +1 @@ +../../../common/popt \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pptp b/config/rootfiles/core/66/filelists/pptp new file mode 120000 index 0000000..2b3dfad --- /dev/null +++ b/config/rootfiles/core/66/filelists/pptp @@ -0,0 +1 @@ +../../../common/pptp \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/readline b/config/rootfiles/core/66/filelists/readline new file mode 120000 index 0000000..84209f1 --- /dev/null +++ b/config/rootfiles/core/66/filelists/readline @@ -0,0 +1 @@ +../../../common/readline \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/readline-compat b/config/rootfiles/core/66/filelists/readline-compat new file mode 120000 index 0000000..f96bc80 --- /dev/null +++ b/config/rootfiles/core/66/filelists/readline-compat @@ -0,0 +1 @@ +../../../common/readline-compat \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/reiserfsprogs b/config/rootfiles/core/66/filelists/reiserfsprogs new file mode 120000 index 0000000..008c3e8 --- /dev/null +++ b/config/rootfiles/core/66/filelists/reiserfsprogs @@ -0,0 +1 @@ +../../../common/reiserfsprogs \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/rrdtool b/config/rootfiles/core/66/filelists/rrdtool new file mode 120000 index 0000000..7a82e41 --- /dev/null +++ b/config/rootfiles/core/66/filelists/rrdtool @@ -0,0 +1 @@ +../../../common/rrdtool \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/screen b/config/rootfiles/core/66/filelists/screen new file mode 120000 index 0000000..81008f4 --- /dev/null +++ b/config/rootfiles/core/66/filelists/screen @@ -0,0 +1 @@ +../../../common/screen \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/sdparm b/config/rootfiles/core/66/filelists/sdparm new file mode 120000 index 0000000..86d9c24 --- /dev/null +++ b/config/rootfiles/core/66/filelists/sdparm @@ -0,0 +1 @@ +../../../common/sdparm \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/sed b/config/rootfiles/core/66/filelists/sed new file mode 120000 index 0000000..fc5f5c6 --- /dev/null +++ b/config/rootfiles/core/66/filelists/sed @@ -0,0 +1 @@ +../../../common/sed \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/setup b/config/rootfiles/core/66/filelists/setup new file mode 120000 index 0000000..209374b --- /dev/null +++ b/config/rootfiles/core/66/filelists/setup @@ -0,0 +1 @@ +../../../common/setup \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/shadow b/config/rootfiles/core/66/filelists/shadow new file mode 120000 index 0000000..c0824b7 --- /dev/null +++ b/config/rootfiles/core/66/filelists/shadow @@ -0,0 +1 @@ +../../../common/shadow \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/slang b/config/rootfiles/core/66/filelists/slang new file mode 120000 index 0000000..228e45e --- /dev/null +++ b/config/rootfiles/core/66/filelists/slang @@ -0,0 +1 @@ +../../../common/slang \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/smartmontools b/config/rootfiles/core/66/filelists/smartmontools new file mode 120000 index 0000000..fb66daf --- /dev/null +++ b/config/rootfiles/core/66/filelists/smartmontools @@ -0,0 +1 @@ +../../../common/smartmontools \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/snort b/config/rootfiles/core/66/filelists/snort new file mode 120000 index 0000000..9406ce0 --- /dev/null +++ b/config/rootfiles/core/66/filelists/snort @@ -0,0 +1 @@ +../../../common/snort \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/squid b/config/rootfiles/core/66/filelists/squid new file mode 120000 index 0000000..2dc8372 --- /dev/null +++ b/config/rootfiles/core/66/filelists/squid @@ -0,0 +1 @@ +../../../common/squid \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/stage2-partial b/config/rootfiles/core/66/filelists/stage2-partial new file mode 100644 index 0000000..df9ad8f --- /dev/null +++ b/config/rootfiles/core/66/filelists/stage2-partial @@ -0,0 +1,17 @@ +etc/bashrc +etc/profile +etc/profile.d/colorls.sh +etc/profile.d/extrapaths.sh +etc/profile.d/glib2-locale.sh +etc/profile.d/i18n.sh +etc/profile.d/lang.sh +etc/profile.d/readline.sh +etc/profile.d/term256.sh +etc/profile.d/umask.sh +etc/securetty +etc/sysctl.conf +root/.bash_logout +root/.bash_profile +root/.bashrc +usr/lib/libgcc_s.so.1 +usr/lib/libstdc++.so.6 diff --git a/config/rootfiles/core/66/filelists/strongswan b/config/rootfiles/core/66/filelists/strongswan new file mode 120000 index 0000000..90c727e --- /dev/null +++ b/config/rootfiles/core/66/filelists/strongswan @@ -0,0 +1 @@ +../../../common/strongswan \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/sysfsutils b/config/rootfiles/core/66/filelists/sysfsutils new file mode 120000 index 0000000..8f3ee3e --- /dev/null +++ b/config/rootfiles/core/66/filelists/sysfsutils @@ -0,0 +1 @@ +../../../common/sysfsutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/sysvinit b/config/rootfiles/core/66/filelists/sysvinit new file mode 120000 index 0000000..f3fb330 --- /dev/null +++ b/config/rootfiles/core/66/filelists/sysvinit @@ -0,0 +1 @@ +../../../common/sysvinit \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/texinfo b/config/rootfiles/core/66/filelists/texinfo new file mode 120000 index 0000000..fa9df02 --- /dev/null +++ b/config/rootfiles/core/66/filelists/texinfo @@ -0,0 +1 @@ +../../../common/texinfo \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/tzdata b/config/rootfiles/core/66/filelists/tzdata new file mode 120000 index 0000000..5a6e325 --- /dev/null +++ b/config/rootfiles/core/66/filelists/tzdata @@ -0,0 +1 @@ +../../../common/tzdata \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/udev b/config/rootfiles/core/66/filelists/udev new file mode 120000 index 0000000..e967a1c --- /dev/null +++ b/config/rootfiles/core/66/filelists/udev @@ -0,0 +1 @@ +../../../common/udev \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/usbutils b/config/rootfiles/core/66/filelists/usbutils new file mode 120000 index 0000000..31db5a7 --- /dev/null +++ b/config/rootfiles/core/66/filelists/usbutils @@ -0,0 +1 @@ +../../../common/usbutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/vim b/config/rootfiles/core/66/filelists/vim new file mode 120000 index 0000000..9861317 --- /dev/null +++ b/config/rootfiles/core/66/filelists/vim @@ -0,0 +1 @@ +../../../common/vim \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/wget b/config/rootfiles/core/66/filelists/wget new file mode 120000 index 0000000..fcb57df --- /dev/null +++ b/config/rootfiles/core/66/filelists/wget @@ -0,0 +1 @@ +../../../common/wget \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/wpa_supplicant b/config/rootfiles/core/66/filelists/wpa_supplicant new file mode 120000 index 0000000..1d04c03 --- /dev/null +++ b/config/rootfiles/core/66/filelists/wpa_supplicant @@ -0,0 +1 @@ +../../../common/wpa_supplicant \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/xz b/config/rootfiles/core/66/filelists/xz new file mode 120000 index 0000000..734e926 --- /dev/null +++ b/config/rootfiles/core/66/filelists/xz @@ -0,0 +1 @@ +../../../common/xz \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/zlib b/config/rootfiles/core/66/filelists/zlib new file mode 120000 index 0000000..e345663 --- /dev/null +++ b/config/rootfiles/core/66/filelists/zlib @@ -0,0 +1 @@ +../../../common/zlib \ No newline at end of file diff --git a/config/rootfiles/core/66/meta b/config/rootfiles/core/66/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/core/66/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/core/66/update.sh b/config/rootfiles/core/66/update.sh new file mode 100644 index 0000000..e0a7875 --- /dev/null +++ b/config/rootfiles/core/66/update.sh @@ -0,0 +1,379 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2013 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +function add_to_backup () +{ + # Add path to ROOTFILES but remove old entries to prevent double + # files in the tar + grep -v "^$1" /opt/pakfire/tmp/ROOTFILES > /opt/pakfire/tmp/ROOTFILES.tmp + mv /opt/pakfire/tmp/ROOTFILES.tmp /opt/pakfire/tmp/ROOTFILES + echo $1 >> /opt/pakfire/tmp/ROOTFILES +} + +# +# Remove old core updates from pakfire cache to save space... +# +core=66 +for (( i=1; i<=$core; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# +# Do some sanity checks. +case $(uname -r) in + *-ipfire-versatile ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update. versatile support is dropped." + # Report no error to pakfire. So it does not try to install it again. + exit 0 + ;; + *-ipfire-xen ) + BOOTSIZE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f2 | tail -n 1` + if [ $BOOTSIZE -lt 28000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update because not enough space on boot." + exit 2 + fi + ;; + *-ipfire* ) + # Ok. + ;; + * ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update. No IPFire Kernel." + # Report no error to pakfire. So it does not try to install it again. + exit 0 + ;; +esac + +if [ ! "$(mount | grep " reiser4 (")" == "" ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update because there is a reiser4 fs mounted." + exit 1 +fi + +# +# +KVER="3.2.38" +MOUNT=`grep "kernel" /boot/grub/grub.conf 2>/dev/null | tail -n 1 ` +# Nur den letzten Parameter verwenden +echo $MOUNT > /dev/null +MOUNT=$_ +if [ ! $MOUNT == "rw" ]; then + MOUNT="ro" +fi + +# +# check if we the backup file already exist +if [ -e /var/ipfire/backup/core-upgrade$core_$KVER.tar.xz ]; then + echo Moving backup to backup-old ... + mv -f /var/ipfire/backup/core-upgrade$core_$KVER.tar.xz \ + /var/ipfire/backup/core-upgrade$core_$KVER-old.tar.xz +fi +echo First we made a backup of all files that was inside of the +echo update archive. This may take a while ... +# Add some files that are not in the package to backup +add_to_backup lib/modules +add_to_backup etc/udev +add_to_backup lib/udev +add_to_backup boot +add_to_backup etc/snort +add_to_backup usr/lib/snort_* +add_to_backup usr/share/zoneinfo +add_to_backup lib/libncurses* +add_to_backup etc/dircolors +add_to_backup etc/profile.d +add_to_backup usr/share/terminfo +add_to_backup etc/sysconfig/lm_sensors +add_to_backup etc/sysconfig/rc.local +add_to_backup usr/local/bin/vpn-watch +add_to_backup usr/local/bin/updxsetperms +add_to_backup usr/libexec/ipsec + +# Backup the files +tar cJvf /var/ipfire/backup/core-upgrade$core_$KVER.tar.xz \ + -C / -T /opt/pakfire/tmp/ROOTFILES --exclude='#*' --exclude='/var/cache' > /dev/null 2>&1 + +# Check diskspace on root +ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + +if [ $ROOTSPACE -lt 70000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update because not enough free space on root." + exit 2 +fi + +# Add user nobody to group squid. +usermod -a -G squid nobody + +echo +echo Update Kernel to $KVER ... +# +# Remove old kernel, configs, initrd, modules ... +# +rm -rf /boot/System.map-* +rm -rf /boot/config-* +rm -rf /boot/ipfirerd-* +rm -rf /boot/vmlinuz-* +rm -rf /boot/uImage-ipfire-* +rm -rf /boot/uInit-ipfire-* +rm -rf /lib/modules +rm -rf /etc/dircolors +rm -rf /etc/profile.d +rm -rf /usr/share/terminfo +rm -rf /bin/[ + +# +# Remove old udev rules. +# +if [ -e /etc/udev/rules.d/29-ct-server-network.rules ]; then + cp /etc/udev/rules.d/29-ct-server-network.rules /tmp/ +fi +cp /etc/udev/rules.d/30-persistent-network.rules /tmp/ +rm -rf /etc/udev +rm -rf /lib/udev +mkdir -p /etc/udev/rules.d +if [ -e /tmp/rules.d/29-ct-server-network.rules ]; then + mv /tmp/29-ct-server-network.rules /etc/udev/rules.d/ +fi +mv /tmp/30-persistent-network.rules /etc/udev/rules.d/ + +case $(uname -m) in + i?86 ) + # + # Backup grub.conf + # + cp -vf /boot/grub/grub.conf /boot/grub/grub.conf.org + ;; +esac +# +#Stop services +/etc/init.d/snort stop +/etc/init.d/squid stop +/etc/init.d/ipsec stop +/etc/init.d/apache stop + + +#Remove old snort, zoneinfo and ncurses-libs(wrong path). +rm -rf /etc/snort +rm -rf /usr/lib/snort_* +rm -rf /usr/share/zoneinfo +rm -rf /lib/libncurses* + +# Remove old pluto binaries. +rm -f /usr/libexec/ipsec/{pluto,_pluto_adns,whack} +rm -f /usr/local/bin/vpn-watch + +# Remove update accelerator permissions script. +rm -f /usr/local/bin/updxsetperms + +# +#Extract files +tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C / + +# Check diskspace on boot +BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + +if [ $BOOTSPACE -lt 1000 ]; then + case $(uname -r) in + *-ipfire-kirkwood ) + # Special handling for old kirkwood images. + # (install only kirkwood kernel) + rm -rf /boot/* + tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p \ + --numeric-owner -C / --wildcards 'boot/*-kirkwood*' + ;; + * ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: FATAL-ERROR space run out on boot. System is not bootable..." + /etc/init.d/apache start + exit 4 + ;; + esac +fi + +# +#Reload init to close old linker/glibc +telinit u + +# Regenerate ipsec configuration files. +/srv/web/ipfire/cgi-bin/vpnmain.cgi + +# Convert OpenVPN RW connections. +/usr/sbin/ovpn-ccd-convert + +touch /var/ipfire/ovpn/ccd.conf +touch /var/ipfire/ovpn/ccdroute +touch /var/ipfire/ovpn/ccdroute2 +chown nobody:nobody /var/ipfire/ovpn/ccd.conf +chown nobody:nobody /var/ipfire/ovpn/ccdroute +chown nobody:nobody /var/ipfire/ovpn/ccdroute2 + +# Update crontab. +sed -i /var/spool/cron/root.orig \ + -e 's@^.*fcron.weekly.*$@&nice(10),bootrun 47 2 * * 1\ttest -x /usr/local/bin/run-parts && /usr/local/bin/run-parts /etc/fcron.weekly@' +fcrontab -z &>/dev/null + +# +# Start services +# +/etc/init.d/apache start +/etc/init.d/squid start +/etc/init.d/snort start +if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then + /etc/init.d/ipsec start +fi + +# +# Rebuild qosscript if enabled +# +if [ -e /var/ipfire/qos/enable ]; then + /usr/local/bin/qosctrl stop + /usr/local/bin/qosctrl generate + /usr/local/bin/qosctrl start +fi + +# Remove preloading libsafe. +rm -f /etc/ld.so.preload + +case $(uname -m) in + i?86 ) + # + # Modify grub.conf + # + echo + echo Update grub configuration ... + ROOT=`mount | grep " / " | cut -d" " -f1` + + if [ ! -z $ROOT ]; then + ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2` + fi + + if [ ! -z $ROOTUUID ]; then + sed -i "s|ROOT|UUID=$ROOTUUID|g" /boot/grub/grub.conf + else + sed -i "s|ROOT|$ROOT|g" /boot/grub/grub.conf + fi + sed -i "s|KVER|$KVER|g" /boot/grub/grub.conf + sed -i "s|MOUNT|$MOUNT|g" /boot/grub/grub.conf + + if [ "$(grep "^serial" /boot/grub/grub.conf.org)" == "" ]; then + echo "grub use default console ..." + else + echo "grub use serial console ..." + sed -i -e "s|splashimage|#splashimage|g" /boot/grub/grub.conf + sed -i -e "s|#serial|serial|g" /boot/grub/grub.conf + sed -i -e "s|#terminal|terminal|g" /boot/grub/grub.conf + sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" /boot/grub/grub.conf + fi + + # + # ReInstall grub + # + echo "(hd0) ${ROOT::`expr length $ROOT`-1}" > /boot/grub/device.map + grub-install --no-floppy ${ROOT::`expr length $ROOT`-1} + ;; +esac +# +# Delete old lm-sensor modullist to force search at next boot +# +rm -rf /etc/sysconfig/lm_sensors + +# +# Remove powerbutton loop from rc local. +# +sed -i "/# power button shutdown/,+3d" /etc/sysconfig/rc.local + +# +#Update Language cache +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +# +# Remove meta's of packages that are now common... +# +rm -rf /opt/pakfire/db/*/meta-fontconfig +rm -rf /opt/pakfire/db/*/meta-glib + +# Force (re)install pae kernel if pae is supported +rm -rf /opt/pakfire/db/*/meta-linux-pae +if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then + ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + if [ $BOOTSPACE -lt 8000 -o $ROOTSPACE -lt 70000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: WARNING not enough space for pae kernel." + else + echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae + echo "ProgVersion: 3.2.38" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Release: 27" >> /opt/pakfire/db/installed/meta-linux-pae + fi +fi + +# Force reinstall xen kernel if it was installed +if [ -e "/opt/pakfire/db/installed/meta-linux-xen" ]; then + echo "Name: linux-xen" > /opt/pakfire/db/installed/meta-linux-xen + echo "ProgVersion: 2.6.32.60" >> /opt/pakfire/db/installed/meta-linux-xen + echo "Release: 24" >> /opt/pakfire/db/installed/meta-linux-xen + # Add xvc0 to /etc/securetty + echo "xvc0" >> /etc/securetty +fi + +# +# After pakfire has ended run it again and update the lists and do upgrade +# +echo '#!/bin/bash' > /tmp/pak_update +echo 'while [ "$(ps -A | grep " update.sh")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo 'while [ "$(ps -A | grep " pakfire")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo '/opt/pakfire/pakfire update -y --force' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire "Core-upgrade finished. If you use a customized grub.cfg"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire "Check it before reboot !!!"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire " *** Please reboot... *** "' >> /tmp/pak_update +echo 'touch /var/run/need_reboot ' >> /tmp/pak_update +# +chmod +x /tmp/pak_update +/tmp/pak_update & + +sync + +# +#Finish +/etc/init.d/fireinfo start +sendprofile + +echo +echo Please wait until pakfire has ended... +echo +#Don't report the exitcode last command +exit 0 + diff --git a/config/rootfiles/installer/findutils b/config/rootfiles/installer/findutils new file mode 120000 index 0000000..1114c4c --- /dev/null +++ b/config/rootfiles/installer/findutils @@ -0,0 +1 @@ +../common/findutils \ No newline at end of file diff --git a/config/rootfiles/installer/kudzu b/config/rootfiles/installer/kudzu deleted file mode 120000 index da66b91..0000000 --- a/config/rootfiles/installer/kudzu +++ /dev/null @@ -1 +0,0 @@ -../common/kudzu \ No newline at end of file diff --git a/config/rootfiles/installer/libsafe b/config/rootfiles/installer/libsafe deleted file mode 120000 index c31e31d..0000000 --- a/config/rootfiles/installer/libsafe +++ /dev/null @@ -1 +0,0 @@ -../common/libsafe \ No newline at end of file diff --git a/config/rootfiles/installer/pcre b/config/rootfiles/installer/pcre new file mode 120000 index 0000000..ffd8616 --- /dev/null +++ b/config/rootfiles/installer/pcre @@ -0,0 +1 @@ +../common/pcre \ No newline at end of file diff --git a/config/rootfiles/oldcore/60/exclude b/config/rootfiles/oldcore/60/exclude new file mode 100644 index 0000000..7360266 --- /dev/null +++ b/config/rootfiles/oldcore/60/exclude @@ -0,0 +1,12 @@ +srv/web/ipfire/html/proxy.pac +etc/udev/rules.d/30-persistent-network.rules +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +var/updatecache +etc/localtime +var/ipfire/ovpn +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf diff --git a/config/rootfiles/oldcore/60/filelists/files b/config/rootfiles/oldcore/60/filelists/files new file mode 100644 index 0000000..409e5fe --- /dev/null +++ b/config/rootfiles/oldcore/60/filelists/files @@ -0,0 +1,2 @@ +etc/system-release +etc/issue diff --git a/config/rootfiles/oldcore/60/filelists/strongswan b/config/rootfiles/oldcore/60/filelists/strongswan new file mode 120000 index 0000000..90c727e --- /dev/null +++ b/config/rootfiles/oldcore/60/filelists/strongswan @@ -0,0 +1 @@ +../../../common/strongswan \ No newline at end of file diff --git a/config/rootfiles/oldcore/60/meta b/config/rootfiles/oldcore/60/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/oldcore/60/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/oldcore/60/update.sh b/config/rootfiles/oldcore/60/update.sh new file mode 100644 index 0000000..5aaa23e --- /dev/null +++ b/config/rootfiles/oldcore/60/update.sh @@ -0,0 +1,83 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2012 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +# +# Remove old core updates from pakfire cache to save space... +core=60 +for (( i=1; i<=$core; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# +#Stop services +/etc/init.d/ipsec stop + +# +#Extract files +extract_files +# +#Start services +if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then + /etc/init.d/ipsec start +fi + +# +#Update Language cache +#perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +#Rebuild module dep's +#arch=`uname -m` +#if [ ${arch::3} == "arm" ]; then +# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 +#else +# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 +#fi + + +#Rebuild initrd's because some compat-wireless modules are inside +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire +#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae +#fi +#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen +#fi + +sync + +# This update need a reboot... +#touch /var/run/need_reboot + +# +#Finish +/etc/init.d/fireinfo start +sendprofile +#Don't report the exitcode last command +exit 0 diff --git a/config/rootfiles/oldcore/61/exclude b/config/rootfiles/oldcore/61/exclude new file mode 100644 index 0000000..7360266 --- /dev/null +++ b/config/rootfiles/oldcore/61/exclude @@ -0,0 +1,12 @@ +srv/web/ipfire/html/proxy.pac +etc/udev/rules.d/30-persistent-network.rules +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +var/updatecache +etc/localtime +var/ipfire/ovpn +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf diff --git a/config/rootfiles/oldcore/61/filelists/GeoIP b/config/rootfiles/oldcore/61/filelists/GeoIP new file mode 100644 index 0000000..0258236 --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/GeoIP @@ -0,0 +1 @@ +usr/local/share/GeoIP/GeoIP.dat diff --git a/config/rootfiles/oldcore/61/filelists/Net-Telnet b/config/rootfiles/oldcore/61/filelists/Net-Telnet new file mode 120000 index 0000000..66ca926 --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/Net-Telnet @@ -0,0 +1 @@ +../../../common/Net-Telnet \ No newline at end of file diff --git a/config/rootfiles/oldcore/61/filelists/files b/config/rootfiles/oldcore/61/filelists/files new file mode 100644 index 0000000..55fbcf1 --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/files @@ -0,0 +1,15 @@ +etc/system-release +etc/issue +etc/rc.d/init.d/collectd +opt/pakfire/lib/functions.sh +srv/web/ipfire/cgi-bin/credits.cgi +srv/web/ipfire/cgi-bin/index.cgi +srv/web/ipfire/cgi-bin/connections.cgi +srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/proxy.cgi +srv/web/ipfire/cgi-bin/services.cgi +var/ipfire/general-functions.pl +var/ipfire/langs +var/ipfire/proxy/calamaris/bin/mkreport +usr/local/bin/getconntracktable +usr/sbin/redirect_wrapper diff --git a/config/rootfiles/oldcore/61/filelists/fireinfo b/config/rootfiles/oldcore/61/filelists/fireinfo new file mode 120000 index 0000000..c461155 --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/fireinfo @@ -0,0 +1 @@ +../../../common/fireinfo \ No newline at end of file diff --git a/config/rootfiles/oldcore/61/filelists/logwatch b/config/rootfiles/oldcore/61/filelists/logwatch new file mode 120000 index 0000000..f14eabd --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/logwatch @@ -0,0 +1 @@ +../../../common/logwatch \ No newline at end of file diff --git a/config/rootfiles/oldcore/61/filelists/openvpn b/config/rootfiles/oldcore/61/filelists/openvpn new file mode 120000 index 0000000..493f3f7 --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/openvpn @@ -0,0 +1 @@ +../../../common/openvpn \ No newline at end of file diff --git a/config/rootfiles/oldcore/61/filelists/pam b/config/rootfiles/oldcore/61/filelists/pam new file mode 120000 index 0000000..660a1d8 --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/pam @@ -0,0 +1 @@ +../../../common/pam \ No newline at end of file diff --git a/config/rootfiles/oldcore/61/filelists/php b/config/rootfiles/oldcore/61/filelists/php new file mode 120000 index 0000000..1ae48d7 --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/php @@ -0,0 +1 @@ +../../../common/php \ No newline at end of file diff --git a/config/rootfiles/oldcore/61/filelists/squid b/config/rootfiles/oldcore/61/filelists/squid new file mode 120000 index 0000000..2dc8372 --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/squid @@ -0,0 +1 @@ +../../../common/squid \ No newline at end of file diff --git a/config/rootfiles/oldcore/61/filelists/usb_modeswitch_data b/config/rootfiles/oldcore/61/filelists/usb_modeswitch_data new file mode 120000 index 0000000..4cbce46 --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/usb_modeswitch_data @@ -0,0 +1 @@ +../../../common/usb_modeswitch_data \ No newline at end of file diff --git a/config/rootfiles/oldcore/61/meta b/config/rootfiles/oldcore/61/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/oldcore/61/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/oldcore/61/update.sh b/config/rootfiles/oldcore/61/update.sh new file mode 100644 index 0000000..e6b504a --- /dev/null +++ b/config/rootfiles/oldcore/61/update.sh @@ -0,0 +1,85 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2012 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +# +# Remove old core updates from pakfire cache to save space... +core=61 +for (( i=1; i<=$core; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# +#Stop services + +# +#Remove old usb_modeswitch_data +rm -rf /usr/share/usb_modeswitch + +# +#Extract files +extract_files + +# +#Start services +/etc/init.d/squid restart &>/dev/null + +# +#Update Language cache +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +#Rebuild module dep's +#arch=`uname -m` +#if [ ${arch::3} == "arm" ]; then +# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 +#else +# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 +#fi + + +#Rebuild initrd's because some compat-wireless modules are inside +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire +#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae +#fi +#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen +#fi + +sync + +# This update need a reboot... +#touch /var/run/need_reboot + +# +#Finish +/etc/init.d/fireinfo start +sendprofile +#Don't report the exitcode last command +exit 0 diff --git a/config/rootfiles/oldcore/62/exclude b/config/rootfiles/oldcore/62/exclude new file mode 100644 index 0000000..7360266 --- /dev/null +++ b/config/rootfiles/oldcore/62/exclude @@ -0,0 +1,12 @@ +srv/web/ipfire/html/proxy.pac +etc/udev/rules.d/30-persistent-network.rules +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +var/updatecache +etc/localtime +var/ipfire/ovpn +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf diff --git a/config/rootfiles/oldcore/62/filelists/GeoIP b/config/rootfiles/oldcore/62/filelists/GeoIP new file mode 100644 index 0000000..0258236 --- /dev/null +++ b/config/rootfiles/oldcore/62/filelists/GeoIP @@ -0,0 +1 @@ +usr/local/share/GeoIP/GeoIP.dat diff --git a/config/rootfiles/oldcore/62/filelists/files b/config/rootfiles/oldcore/62/filelists/files new file mode 100644 index 0000000..34f0d16 --- /dev/null +++ b/config/rootfiles/oldcore/62/filelists/files @@ -0,0 +1,8 @@ +etc/system-release +etc/issue +etc/rc.d/init.d/network-vlans +etc/rc.d/rcsysinit.d/S91network-vlans +srv/web/ipfire/cgi-bin/connections.cgi +usr/lib/gconv +var/ipfire/ethernet/vlans +var/ipfire/outgoing/bin/outgoingfw.pl diff --git a/config/rootfiles/oldcore/62/filelists/hwdata b/config/rootfiles/oldcore/62/filelists/hwdata new file mode 100644 index 0000000..5a9672f --- /dev/null +++ b/config/rootfiles/oldcore/62/filelists/hwdata @@ -0,0 +1,2 @@ +usr/share/hwdata/pci.ids +usr/share/hwdata/usb.ids diff --git a/config/rootfiles/oldcore/62/filelists/php b/config/rootfiles/oldcore/62/filelists/php new file mode 120000 index 0000000..1ae48d7 --- /dev/null +++ b/config/rootfiles/oldcore/62/filelists/php @@ -0,0 +1 @@ +../../../common/php \ No newline at end of file diff --git a/config/rootfiles/oldcore/62/filelists/usb_modeswitch b/config/rootfiles/oldcore/62/filelists/usb_modeswitch new file mode 120000 index 0000000..acbab6f --- /dev/null +++ b/config/rootfiles/oldcore/62/filelists/usb_modeswitch @@ -0,0 +1 @@ +../../../common/usb_modeswitch \ No newline at end of file diff --git a/config/rootfiles/oldcore/62/filelists/usb_modeswitch_data b/config/rootfiles/oldcore/62/filelists/usb_modeswitch_data new file mode 120000 index 0000000..4cbce46 --- /dev/null +++ b/config/rootfiles/oldcore/62/filelists/usb_modeswitch_data @@ -0,0 +1 @@ +../../../common/usb_modeswitch_data \ No newline at end of file diff --git a/config/rootfiles/oldcore/62/meta b/config/rootfiles/oldcore/62/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/oldcore/62/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/oldcore/62/update.sh b/config/rootfiles/oldcore/62/update.sh new file mode 100644 index 0000000..0c37b83 --- /dev/null +++ b/config/rootfiles/oldcore/62/update.sh @@ -0,0 +1,80 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2012 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +# +# Remove old core updates from pakfire cache to save space... +core=62 +for (( i=1; i<=$core; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# +#Stop services + +# +#Extract files +extract_files + +# +#Start services + +# +#Update Language cache +#perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +#Rebuild module dep's +#arch=`uname -m` +#if [ ${arch::3} == "arm" ]; then +# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 +#else +# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 +#fi + + +#Rebuild initrd's because some compat-wireless modules are inside +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire +#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae +#fi +#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen +#fi + +sync + +# This update need a reboot... +#touch /var/run/need_reboot + +# +#Finish +/etc/init.d/fireinfo start +sendprofile +#Don't report the exitcode last command +exit 0 diff --git a/config/rootfiles/oldcore/63/exclude b/config/rootfiles/oldcore/63/exclude new file mode 100644 index 0000000..b6a8d1d --- /dev/null +++ b/config/rootfiles/oldcore/63/exclude @@ -0,0 +1,13 @@ +srv/web/ipfire/html/proxy.pac +etc/udev/rules.d/30-persistent-network.rules +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +var/updatecache +etc/localtime +var/ipfire/ovpn +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf +var/state/dhcp/dhcpd.leases diff --git a/config/rootfiles/oldcore/63/filelists/GeoIP b/config/rootfiles/oldcore/63/filelists/GeoIP new file mode 100644 index 0000000..0258236 --- /dev/null +++ b/config/rootfiles/oldcore/63/filelists/GeoIP @@ -0,0 +1 @@ +usr/local/share/GeoIP/GeoIP.dat diff --git a/config/rootfiles/oldcore/63/filelists/apache2 b/config/rootfiles/oldcore/63/filelists/apache2 new file mode 120000 index 0000000..eef95ef --- /dev/null +++ b/config/rootfiles/oldcore/63/filelists/apache2 @@ -0,0 +1 @@ +../../../common/apache2 \ No newline at end of file diff --git a/config/rootfiles/oldcore/63/filelists/dhcp b/config/rootfiles/oldcore/63/filelists/dhcp new file mode 120000 index 0000000..32d8da4 --- /dev/null +++ b/config/rootfiles/oldcore/63/filelists/dhcp @@ -0,0 +1 @@ +../../../common/dhcp \ No newline at end of file diff --git a/config/rootfiles/oldcore/63/filelists/files b/config/rootfiles/oldcore/63/filelists/files new file mode 100644 index 0000000..1455a87 --- /dev/null +++ b/config/rootfiles/oldcore/63/filelists/files @@ -0,0 +1,5 @@ +etc/system-release +etc/issue +etc/rc.d/init.d/network-vlans +srv/web/ipfire/cgi-bin/index.cgi +srv/web/ipfire/cgi-bin/ovpnmain.cgi diff --git a/config/rootfiles/oldcore/63/filelists/fireinfo b/config/rootfiles/oldcore/63/filelists/fireinfo new file mode 120000 index 0000000..c461155 --- /dev/null +++ b/config/rootfiles/oldcore/63/filelists/fireinfo @@ -0,0 +1 @@ +../../../common/fireinfo \ No newline at end of file diff --git a/config/rootfiles/oldcore/63/filelists/inetutils b/config/rootfiles/oldcore/63/filelists/inetutils new file mode 120000 index 0000000..bcd329b --- /dev/null +++ b/config/rootfiles/oldcore/63/filelists/inetutils @@ -0,0 +1 @@ +../../../common/inetutils \ No newline at end of file diff --git a/config/rootfiles/oldcore/63/meta b/config/rootfiles/oldcore/63/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/oldcore/63/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/oldcore/63/update.sh b/config/rootfiles/oldcore/63/update.sh new file mode 100644 index 0000000..f0764ae --- /dev/null +++ b/config/rootfiles/oldcore/63/update.sh @@ -0,0 +1,85 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2012 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +# +# Remove old core updates from pakfire cache to save space... +core=63 +for (( i=1; i<=$core; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# Remove old symlink to DHCP server configuration file. +rm -f /etc/dhcpd.conf + +# +#Stop services +/etc/init.d/apache stop + +# +#Extract files +extract_files + +# +#Start services +/etc/init.d/apache start + +# +#Update Language cache +#perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +#Rebuild module dep's +#arch=`uname -m` +#if [ ${arch::3} == "arm" ]; then +# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 +#else +# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 +#fi + + +#Rebuild initrd's because some compat-wireless modules are inside +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire +#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae +#fi +#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen +#fi + +sync + +# This update need a reboot... +#touch /var/run/need_reboot + +# +#Finish +/etc/init.d/fireinfo start +sendprofile +#Don't report the exitcode last command +exit 0 diff --git a/config/rootfiles/oldcore/64/exclude b/config/rootfiles/oldcore/64/exclude new file mode 100644 index 0000000..b6a8d1d --- /dev/null +++ b/config/rootfiles/oldcore/64/exclude @@ -0,0 +1,13 @@ +srv/web/ipfire/html/proxy.pac +etc/udev/rules.d/30-persistent-network.rules +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +var/updatecache +etc/localtime +var/ipfire/ovpn +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf +var/state/dhcp/dhcpd.leases diff --git a/config/rootfiles/oldcore/64/filelists/daq b/config/rootfiles/oldcore/64/filelists/daq new file mode 120000 index 0000000..d0e0956 --- /dev/null +++ b/config/rootfiles/oldcore/64/filelists/daq @@ -0,0 +1 @@ +../../../common/daq \ No newline at end of file diff --git a/config/rootfiles/oldcore/64/filelists/files b/config/rootfiles/oldcore/64/filelists/files new file mode 100644 index 0000000..072fc70 --- /dev/null +++ b/config/rootfiles/oldcore/64/filelists/files @@ -0,0 +1,7 @@ +etc/system-release +etc/issue +etc/rc.d/init.d/firewall +srv/web/ipfire/cgi-bin/credits.cgi +srv/web/ipfire/cgi-bin/ids.cgi +var/ipfire/outgoing/bin/outgoingfw.pl +var/ipfire/langs diff --git a/config/rootfiles/oldcore/64/filelists/snort b/config/rootfiles/oldcore/64/filelists/snort new file mode 120000 index 0000000..9406ce0 --- /dev/null +++ b/config/rootfiles/oldcore/64/filelists/snort @@ -0,0 +1 @@ +../../../common/snort \ No newline at end of file diff --git a/config/rootfiles/oldcore/64/meta b/config/rootfiles/oldcore/64/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/oldcore/64/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/oldcore/64/update.sh b/config/rootfiles/oldcore/64/update.sh new file mode 100644 index 0000000..c1e7545 --- /dev/null +++ b/config/rootfiles/oldcore/64/update.sh @@ -0,0 +1,82 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2012 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +# +# Remove old core updates from pakfire cache to save space... +core=64 +for (( i=1; i<=$core; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# +#Stop services +/etc/init.d/snort stop + +# +#Extract files +extract_files + +# +#Start services +/etc/init.d/snort start + +# +#Update Language cache +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +#Rebuild module dep's +#arch=`uname -m` +#if [ ${arch::3} == "arm" ]; then +# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 +#else +# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 +#fi + + +#Rebuild initrd's because some compat-wireless modules are inside +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire +#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae +#fi +#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen +#fi + +sync + +# This update need a reboot... +#touch /var/run/need_reboot + +# +#Finish +/etc/init.d/fireinfo start +sendprofile +#Don't report the exitcode last command +exit 0 diff --git a/config/rootfiles/oldcore/65/exclude b/config/rootfiles/oldcore/65/exclude new file mode 100644 index 0000000..b6a8d1d --- /dev/null +++ b/config/rootfiles/oldcore/65/exclude @@ -0,0 +1,13 @@ +srv/web/ipfire/html/proxy.pac +etc/udev/rules.d/30-persistent-network.rules +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +var/updatecache +etc/localtime +var/ipfire/ovpn +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf +var/state/dhcp/dhcpd.leases diff --git a/config/rootfiles/oldcore/65/filelists/GeoIP b/config/rootfiles/oldcore/65/filelists/GeoIP new file mode 100644 index 0000000..0258236 --- /dev/null +++ b/config/rootfiles/oldcore/65/filelists/GeoIP @@ -0,0 +1 @@ +usr/local/share/GeoIP/GeoIP.dat diff --git a/config/rootfiles/oldcore/65/filelists/daq b/config/rootfiles/oldcore/65/filelists/daq new file mode 120000 index 0000000..d0e0956 --- /dev/null +++ b/config/rootfiles/oldcore/65/filelists/daq @@ -0,0 +1 @@ +../../../common/daq \ No newline at end of file diff --git a/config/rootfiles/oldcore/65/filelists/files b/config/rootfiles/oldcore/65/filelists/files new file mode 100644 index 0000000..13788f1 --- /dev/null +++ b/config/rootfiles/oldcore/65/filelists/files @@ -0,0 +1,12 @@ +etc/httpd/conf/vhosts.d/ipfire-interface-ssl.conf +etc/system-release +etc/issue +srv/web/ipfire/cgi-bin/logs.cgi/calamaris.dat +srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/routing.cgi +srv/web/ipfire/cgi-bin/vpnmain.cgi +usr/local/bin/launch-ether-wake +usr/sbin/ovpn-ccd-convert +var/ipfire/general-functions.pl +var/ipfire/langs +var/ipfire/backup/include diff --git a/config/rootfiles/oldcore/65/meta b/config/rootfiles/oldcore/65/meta new file mode 100644 index 0000000..d547fa8 --- /dev/null +++ b/config/rootfiles/oldcore/65/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/oldcore/65/update.sh b/config/rootfiles/oldcore/65/update.sh new file mode 100644 index 0000000..88f5b36 --- /dev/null +++ b/config/rootfiles/oldcore/65/update.sh @@ -0,0 +1,91 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2012 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +# +# Remove old core updates from pakfire cache to save space... +core=65 +for (( i=1; i<=$core; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# +#Stop services + +# +#Extract files +extract_files + +# +#Start services + +# +#Update Language cache +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +# Convert OpenVPN RW connections. +/usr/sbin/ovpn-ccd-convert + +# Update crontab. +sed -i /var/spool/cron/root.orig \ + -e 's@^.*fcron.weekly.*$@&nice(10),bootrun 47 2 * * 1\ttest -x /usr/local/bin/run-parts && /usr/local/bin/run-parts /etc/fcron.weekly@' +fcrontab -z &>/dev/null + +# Reload apache configuration. +/etc/init.d/apache reload &>/dev/null + +#Rebuild module dep's +#arch=`uname -m` +#if [ ${arch::3} == "arm" ]; then +# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 +#else +# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 +#fi + + +#Rebuild initrd's because some compat-wireless modules are inside +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire +#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae +#fi +#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen +#fi + +sync + +# This update need a reboot... +#touch /var/run/need_reboot + +# +#Finish +/etc/init.d/fireinfo start +sendprofile +#Don't report the exitcode last command +exit 0 diff --git a/config/rootfiles/packages/alsa b/config/rootfiles/packages/alsa index c9db150..33e935b 100644 --- a/config/rootfiles/packages/alsa +++ b/config/rootfiles/packages/alsa @@ -1,4 +1,3 @@ -etc/rc.d/init.d/alsa lib/firmware/aica_firmware.bin #lib/firmware/asihpi lib/firmware/asihpi/dsp2400.bin @@ -46,25 +45,22 @@ lib/firmware/emagic/emi26-bitstream.bin lib/firmware/emagic/emi26-firmware.bin lib/firmware/emagic/emi26-loader.bin lib/firmware/emagic/emi62-bitstream.bin -lib/firmware/emagic/emi62-firmware.bin lib/firmware/emagic/emi62-firmware-midi.bin lib/firmware/emagic/emi62-firmware-spdif.bin +lib/firmware/emagic/emi62-firmware.bin lib/firmware/emagic/emi62-loader.bin lib/firmware/emagic/license.txt #lib/firmware/emu lib/firmware/emu/audio_dock.fw lib/firmware/emu/emu0404.fw -lib/firmware/emu/emu1010b.fw lib/firmware/emu/emu1010_notebook.fw +lib/firmware/emu/emu1010b.fw lib/firmware/emu/hana.fw lib/firmware/emu/micro_dock.fw -lib/firmware/ess/maestro3_assp_kernel.fw -lib/firmware/ess/maestro3_assp_minisrc.fw -lib/firmware/korg/k1212.dsp #lib/firmware/mixart -lib/firmware/mixart/miXart8AES.xlx lib/firmware/mixart/miXart8.elf lib/firmware/mixart/miXart8.xlx +lib/firmware/mixart/miXart8AES.xlx lib/firmware/multiface_firmware.bin lib/firmware/multiface_firmware_rev11.bin #lib/firmware/pcxhr @@ -91,11 +87,6 @@ lib/firmware/pcxhr/xlxc882hr.dat lib/firmware/pcxhr/xlxc924.dat lib/firmware/pcxhr/xlxint.dat lib/firmware/rpm_firmware.bin -lib/firmware/sb16/alaw_main.csp -lib/firmware/sb16/ima_adpcm_capture.csp -lib/firmware/sb16/ima_adpcm_init.csp -lib/firmware/sb16/ima_adpcm_playback.csp -lib/firmware/sb16/mulaw_main.csp #lib/firmware/turtlebeach lib/firmware/turtlebeach/msndinit.bin lib/firmware/turtlebeach/msndperm.bin @@ -115,10 +106,6 @@ lib/firmware/vx/x1_1_vp4.xlx lib/firmware/vx/x1_1_vx2.xlx lib/firmware/vx/x1_1_vxp.xlx lib/firmware/vx/x1_2_v22.xlx -lib/firmware/yamaha/ds1_ctrl.fw -lib/firmware/yamaha/ds1_dsp.fw -lib/firmware/yamaha/ds1e_ctrl.fw -lib/firmware/yamaha/yss225_registers.bin lib/udev/rules.d/90-alsa-restore.rules usr/bin/aconnect usr/bin/alsaloop @@ -140,28 +127,28 @@ usr/bin/speaker-test #usr/include/alsa/asoundef.h #usr/include/alsa/asoundlib.h #usr/include/alsa/conf.h -#usr/include/alsa/control_external.h #usr/include/alsa/control.h +#usr/include/alsa/control_external.h #usr/include/alsa/error.h #usr/include/alsa/global.h #usr/include/alsa/hwdep.h #usr/include/alsa/iatomic.h #usr/include/alsa/input.h -#usr/include/alsa/mixer_abst.h #usr/include/alsa/mixer.h +#usr/include/alsa/mixer_abst.h #usr/include/alsa/output.h +#usr/include/alsa/pcm.h #usr/include/alsa/pcm_external.h #usr/include/alsa/pcm_extplug.h -#usr/include/alsa/pcm.h #usr/include/alsa/pcm_ioplug.h #usr/include/alsa/pcm_old.h #usr/include/alsa/pcm_plugin.h #usr/include/alsa/pcm_rate.h #usr/include/alsa/rawmidi.h -#usr/include/alsa/seq_event.h #usr/include/alsa/seq.h -#usr/include/alsa/seqmid.h +#usr/include/alsa/seq_event.h #usr/include/alsa/seq_midi_event.h +#usr/include/alsa/seqmid.h #usr/include/alsa/sound #usr/include/alsa/sound/asound_fm.h #usr/include/alsa/sound/emu10k1.h @@ -176,19 +163,14 @@ usr/include/alsa/sound/hdspm.h #usr/include/sys/asoundlib.h #usr/lib/alsa-lib #usr/lib/alsa-lib/smixer -#usr/lib/alsa-lib/smixer/smixer-ac97.a #usr/lib/alsa-lib/smixer/smixer-ac97.la usr/lib/alsa-lib/smixer/smixer-ac97.so -#usr/lib/alsa-lib/smixer/smixer-hda.a #usr/lib/alsa-lib/smixer/smixer-hda.la usr/lib/alsa-lib/smixer/smixer-hda.so -#usr/lib/alsa-lib/smixer/smixer-python.a #usr/lib/alsa-lib/smixer/smixer-python.la usr/lib/alsa-lib/smixer/smixer-python.so -#usr/lib/alsa-lib/smixer/smixer-sbase.a #usr/lib/alsa-lib/smixer/smixer-sbase.la usr/lib/alsa-lib/smixer/smixer-sbase.so -#usr/lib/libasound.a #usr/lib/libasound.la usr/lib/libasound.so usr/lib/libasound.so.2 @@ -203,10 +185,10 @@ usr/local/share/alsa #usr/local/share/alsa/firmware/hdsploader/multiface_firmware_rev11.bin usr/local/share/alsa/firmware/hdsploader/rpm_firmware.bin #usr/local/share/alsa/firmware/mixartloader -#usr/local/share/alsa/firmware/mixartloader/miXart8AES.xlx +#usr/local/share/alsa/firmware/mixartloader/miXart.conf #usr/local/share/alsa/firmware/mixartloader/miXart8.elf #usr/local/share/alsa/firmware/mixartloader/miXart8.xlx -#usr/local/share/alsa/firmware/mixartloader/miXart.conf +#usr/local/share/alsa/firmware/mixartloader/miXart8AES.xlx #usr/local/share/alsa/firmware/pcxhrloader #usr/local/share/alsa/firmware/pcxhrloader/b321_512.b56 #usr/local/share/alsa/firmware/pcxhrloader/d321_512.d56 @@ -221,13 +203,13 @@ usr/local/share/alsa/firmware/hdsploader/rpm_firmware.bin #usr/local/share/alsa/firmware/pcxhrloader/dspe882.e56 #usr/local/share/alsa/firmware/pcxhrloader/dspe924.e56 #usr/local/share/alsa/firmware/pcxhrloader/e321_512.e56 +#usr/local/share/alsa/firmware/pcxhrloader/pcxhr.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr0.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr1.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr2.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr3.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr4.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr5.conf -#usr/local/share/alsa/firmware/pcxhrloader/pcxhr.conf #usr/local/share/alsa/firmware/pcxhrloader/xc_1_882.dat #usr/local/share/alsa/firmware/pcxhrloader/xi_1_882.dat #usr/local/share/alsa/firmware/pcxhrloader/xlxc1222e.dat @@ -240,17 +222,17 @@ usr/local/share/alsa/firmware/hdsploader/rpm_firmware.bin #usr/local/share/alsa/firmware/usx2yloader #usr/local/share/alsa/firmware/usx2yloader/tascam_loader.ihx #usr/local/share/alsa/firmware/usx2yloader/us122.conf -#usr/local/share/alsa/firmware/usx2yloader/us122fw.ihx #usr/local/share/alsa/firmware/usx2yloader/us122.prepad #usr/local/share/alsa/firmware/usx2yloader/us122.rbt +#usr/local/share/alsa/firmware/usx2yloader/us122fw.ihx #usr/local/share/alsa/firmware/usx2yloader/us224.conf -#usr/local/share/alsa/firmware/usx2yloader/us224fw.ihx #usr/local/share/alsa/firmware/usx2yloader/us224.prepad #usr/local/share/alsa/firmware/usx2yloader/us224.rbt +#usr/local/share/alsa/firmware/usx2yloader/us224fw.ihx #usr/local/share/alsa/firmware/usx2yloader/us428.conf -#usr/local/share/alsa/firmware/usx2yloader/us428fw.ihx #usr/local/share/alsa/firmware/usx2yloader/us428.prepad #usr/local/share/alsa/firmware/usx2yloader/us428.rbt +#usr/local/share/alsa/firmware/usx2yloader/us428fw.ihx #usr/local/share/alsa/firmware/vxloader #usr/local/share/alsa/firmware/vxloader/bd56002.boot #usr/local/share/alsa/firmware/vxloader/bd563s3.boot @@ -274,23 +256,23 @@ usr/sbin/alsactl #usr/share/aclocal/alsa.m4 usr/share/alsa #usr/share/alsa/alsa.conf +#usr/share/alsa/alsa.conf.d +usr/share/alsa/alsa.conf.d/README #usr/share/alsa/cards #usr/share/alsa/cards/AACI.conf -#usr/share/alsa/cards/aliases.alisp -#usr/share/alsa/cards/aliases.conf -#usr/share/alsa/cards/ATIIXP.conf #usr/share/alsa/cards/ATIIXP-MODEM.conf #usr/share/alsa/cards/ATIIXP-SPDMA.conf +#usr/share/alsa/cards/ATIIXP.conf #usr/share/alsa/cards/AU8810.conf #usr/share/alsa/cards/AU8820.conf #usr/share/alsa/cards/AU8830.conf -#usr/share/alsa/cards/Audigy2.conf #usr/share/alsa/cards/Audigy.conf +#usr/share/alsa/cards/Audigy2.conf #usr/share/alsa/cards/Aureon51.conf #usr/share/alsa/cards/Aureon71.conf #usr/share/alsa/cards/CA0106.conf -#usr/share/alsa/cards/CMI8338.conf #usr/share/alsa/cards/CMI8338-SWIEC.conf +#usr/share/alsa/cards/CMI8338.conf #usr/share/alsa/cards/CMI8738-MC6.conf #usr/share/alsa/cards/CMI8738-MC8.conf #usr/share/alsa/cards/CMI8788.conf @@ -300,14 +282,17 @@ usr/share/alsa #usr/share/alsa/cards/ENS1370.conf #usr/share/alsa/cards/ENS1371.conf #usr/share/alsa/cards/ES1968.conf +#usr/share/alsa/cards/Echo_Echo3G.conf #usr/share/alsa/cards/FM801.conf +#usr/share/alsa/cards/FWSpeakers.conf +#usr/share/alsa/cards/FireWave.conf #usr/share/alsa/cards/GUS.conf #usr/share/alsa/cards/HDA-Intel.conf #usr/share/alsa/cards/ICE1712.conf #usr/share/alsa/cards/ICE1724.conf -#usr/share/alsa/cards/ICH4.conf -#usr/share/alsa/cards/ICH.conf #usr/share/alsa/cards/ICH-MODEM.conf +#usr/share/alsa/cards/ICH.conf +#usr/share/alsa/cards/ICH4.conf #usr/share/alsa/cards/Maestro3.conf #usr/share/alsa/cards/NFORCE.conf #usr/share/alsa/cards/PC-Speaker.conf @@ -324,13 +309,15 @@ usr/share/alsa #usr/share/alsa/cards/TRID4DWAVENX.conf #usr/share/alsa/cards/USB-Audio.conf #usr/share/alsa/cards/VIA686A.conf -#usr/share/alsa/cards/VIA8233A.conf #usr/share/alsa/cards/VIA8233.conf +#usr/share/alsa/cards/VIA8233A.conf #usr/share/alsa/cards/VIA8237.conf #usr/share/alsa/cards/VX222.conf -#usr/share/alsa/cards/VXPocket440.conf #usr/share/alsa/cards/VXPocket.conf +#usr/share/alsa/cards/VXPocket440.conf #usr/share/alsa/cards/YMF744.conf +#usr/share/alsa/cards/aliases.alisp +#usr/share/alsa/cards/aliases.conf #usr/share/alsa/init #usr/share/alsa/init/00main #usr/share/alsa/init/default @@ -361,8 +348,8 @@ usr/share/alsa #usr/share/alsa/speaker-test/sample_map.csv #usr/share/locale/de/LC_MESSAGES/alsa-utils.mo #usr/share/locale/fr/LC_MESSAGES/alsa-utils.mo -#usr/share/locale/ja/LC_MESSAGES/alsaconf.mo #usr/share/locale/ja/LC_MESSAGES/alsa-utils.mo +#usr/share/locale/ja/LC_MESSAGES/alsaconf.mo #usr/share/locale/ru/LC_MESSAGES/alsaconf.mo #usr/share/man/fr/man8/alsaconf.8 #usr/share/man/man1/aconnect.1 @@ -392,3 +379,16 @@ usr/share/sounds/alsa #usr/share/sounds/alsa/Side_Left.wav #usr/share/sounds/alsa/Side_Right.wav var/lib/alsa +etc/rc.d/init.d/alsa +lib/firmware/ess/maestro3_assp_kernel.fw +lib/firmware/ess/maestro3_assp_minisrc.fw +lib/firmware/korg/k1212.dsp +lib/firmware/sb16/alaw_main.csp +lib/firmware/sb16/ima_adpcm_capture.csp +lib/firmware/sb16/ima_adpcm_init.csp +lib/firmware/sb16/ima_adpcm_playback.csp +lib/firmware/sb16/mulaw_main.csp +lib/firmware/yamaha/ds1_ctrl.fw +lib/firmware/yamaha/ds1_dsp.fw +lib/firmware/yamaha/ds1e_ctrl.fw +lib/firmware/yamaha/yss225_registers.bin diff --git a/config/rootfiles/packages/applejuice b/config/rootfiles/packages/applejuice deleted file mode 100644 index ca14dee..0000000 --- a/config/rootfiles/packages/applejuice +++ /dev/null @@ -1,141 +0,0 @@ -etc/httpd/conf/vhosts.d/phpaj.conf -etc/rc.d/init.d/applejuice -opt/applejuice -opt/applejuice/ajcore.jar -opt/applejuice/libajnetmask.so -srv/web/phpaj -srv/web/phpaj/export -srv/web/phpaj/export/Default.php -srv/web/phpaj/export/ajl.php -srv/web/phpaj/export/bb.php -srv/web/phpaj/export/html.php -srv/web/phpaj/index.php -srv/web/phpaj/language -srv/web/phpaj/language/deutsch.xml -srv/web/phpaj/language/english.xml -srv/web/phpaj/main -srv/web/phpaj/main/classes -srv/web/phpaj/main/classes/class_core.php -srv/web/phpaj/main/classes/class_downloads.php -srv/web/phpaj/main/classes/class_icons.php -srv/web/phpaj/main/classes/class_search.php -srv/web/phpaj/main/classes/class_server.php -srv/web/phpaj/main/classes/class_share.php -srv/web/phpaj/main/classes/class_uploads.php -srv/web/phpaj/main/directory.php -srv/web/phpaj/main/dl_parts.php -srv/web/phpaj/main/dl_users.php -srv/web/phpaj/main/downloads.php -srv/web/phpaj/main/extras.php -srv/web/phpaj/main/index.php -srv/web/phpaj/main/progressbar.php -srv/web/phpaj/main/search.php -srv/web/phpaj/main/server.php -srv/web/phpaj/main/settings.php -srv/web/phpaj/main/shareexport.php -srv/web/phpaj/main/sharefiles.php -srv/web/phpaj/main/shares.php -srv/web/phpaj/main/showparts.php -srv/web/phpaj/main/start.php -srv/web/phpaj/main/status.php -srv/web/phpaj/main/subs.php -srv/web/phpaj/main/top.php -srv/web/phpaj/main/uploads.php -srv/web/phpaj/minigui -srv/web/phpaj/minigui/downloads.php -srv/web/phpaj/minigui/index.php -srv/web/phpaj/minigui/minigui.php -srv/web/phpaj/plugins -srv/web/phpaj/plugins/ajl -srv/web/phpaj/plugins/ajl/ajl.php -srv/web/phpaj/plugins/ajl/icon.gif -srv/web/phpaj/plugins/ajl/info.php -srv/web/phpaj/plugins/register.php -srv/web/phpaj/plugins/sharestats -srv/web/phpaj/plugins/sharestats/info.php -srv/web/phpaj/plugins/sharestats/sharestats.php -srv/web/phpaj/plugins/versionchecker -srv/web/phpaj/plugins/versionchecker/info.php -srv/web/phpaj/plugins/versionchecker/versionchecker.php -srv/web/phpaj/plugins/wizard -srv/web/phpaj/plugins/wizard/icon.gif -srv/web/phpaj/plugins/wizard/info.php -srv/web/phpaj/plugins/wizard/wizard.php -srv/web/phpaj/plugins/wizard/wizard.xml -srv/web/phpaj/style -srv/web/phpaj/style/default -srv/web/phpaj/style/default/default_blue.css -srv/web/phpaj/style/default/default_green.css -srv/web/phpaj/style/default/default_grey.css -srv/web/phpaj/style/default/info.png -srv/web/phpaj/style/default/minus.png -srv/web/phpaj/style/default/os -srv/web/phpaj/style/default/os/bsd.png -srv/web/phpaj/style/default/os/linux.png -srv/web/phpaj/style/default/os/mac.png -srv/web/phpaj/style/default/os/na.png -srv/web/phpaj/style/default/os/netware.png -srv/web/phpaj/style/default/os/os2.png -srv/web/phpaj/style/default/os/solaris.png -srv/web/phpaj/style/default/os/win.png -srv/web/phpaj/style/default/plus.png -srv/web/phpaj/style/default/server -srv/web/phpaj/style/default/server/alt.gif -srv/web/phpaj/style/default/server/neu.gif -srv/web/phpaj/style/default/server/verbinde.gif -srv/web/phpaj/style/default/server/verbunden.gif -srv/web/phpaj/style/default/stop.png -srv/web/phpaj/style/default/tabs -srv/web/phpaj/style/default/tabs/download.gif -srv/web/phpaj/style/default/tabs/extras.gif -srv/web/phpaj/style/default/tabs/kill.gif -srv/web/phpaj/style/default/tabs/logout.gif -srv/web/phpaj/style/default/tabs/meinshare.gif -srv/web/phpaj/style/default/tabs/optionen.gif -srv/web/phpaj/style/default/tabs/server.gif -srv/web/phpaj/style/default/tabs/start.gif -srv/web/phpaj/style/default/tabs/suchen.gif -srv/web/phpaj/style/default/tabs/upload.gif -srv/web/phpaj/style/default/user -srv/web/phpaj/style/default/user/direct.png -srv/web/phpaj/style/default/user/indirect.png -srv/web/phpaj/style/default/user/tryindirect.png -srv/web/phpaj/style/default/user/unknown.png -srv/web/phpaj/style/default/warnung.gif -srv/web/phpaj/style/default/x.png -srv/web/phpaj/style/default_blue.php -srv/web/phpaj/style/default_green.php -srv/web/phpaj/style/default_grey.php -srv/web/phpaj/style/new -srv/web/phpaj/style/new.php -srv/web/phpaj/style/new/bg.png -srv/web/phpaj/style/new/new.css -srv/web/phpaj/style/tango -srv/web/phpaj/style/tango.php -srv/web/phpaj/style/tango/bg.png -srv/web/phpaj/style/tango/icons -srv/web/phpaj/style/tango/icons/direct.png -srv/web/phpaj/style/tango/icons/down.png -srv/web/phpaj/style/tango/icons/empty.png -srv/web/phpaj/style/tango/icons/extras.png -srv/web/phpaj/style/tango/icons/home.png -srv/web/phpaj/style/tango/icons/indirect.png -srv/web/phpaj/style/tango/icons/info.png -srv/web/phpaj/style/tango/icons/kill.png -srv/web/phpaj/style/tango/icons/logout.png -srv/web/phpaj/style/tango/icons/minus.png -srv/web/phpaj/style/tango/icons/plus.png -srv/web/phpaj/style/tango/icons/preferences.png -srv/web/phpaj/style/tango/icons/search.png -srv/web/phpaj/style/tango/icons/server.png -srv/web/phpaj/style/tango/icons/share.png -srv/web/phpaj/style/tango/icons/stop.png -srv/web/phpaj/style/tango/icons/up.png -srv/web/phpaj/style/tango/icons/warning.png -srv/web/phpaj/style/tango/icons/x.png -srv/web/phpaj/style/tango/tango.css -srv/web/phpaj/vars.php -usr/local/bin/applejuicectrl -var/ipfire/applejuice -var/ipfire/applejuice/settings -#usr/lib/libajnetmask.so diff --git a/config/rootfiles/packages/asterisk b/config/rootfiles/packages/asterisk index 7e7b25e..f7b6cde 100644 --- a/config/rootfiles/packages/asterisk +++ b/config/rootfiles/packages/asterisk @@ -156,8 +156,6 @@ usr/lib/asterisk/modules/app_channelredirect.so usr/lib/asterisk/modules/app_chanspy.so usr/lib/asterisk/modules/app_confbridge.so usr/lib/asterisk/modules/app_controlplayback.so -usr/lib/asterisk/modules/app_dahdibarge.so -usr/lib/asterisk/modules/app_dahdiras.so usr/lib/asterisk/modules/app_db.so usr/lib/asterisk/modules/app_dial.so usr/lib/asterisk/modules/app_dictate.so @@ -169,7 +167,6 @@ usr/lib/asterisk/modules/app_echo.so usr/lib/asterisk/modules/app_exec.so usr/lib/asterisk/modules/app_externalivr.so usr/lib/asterisk/modules/app_festival.so -usr/lib/asterisk/modules/app_flash.so usr/lib/asterisk/modules/app_followme.so usr/lib/asterisk/modules/app_forkcdr.so usr/lib/asterisk/modules/app_getcpeid.so @@ -177,7 +174,6 @@ usr/lib/asterisk/modules/app_ices.so usr/lib/asterisk/modules/app_image.so usr/lib/asterisk/modules/app_ivrdemo.so usr/lib/asterisk/modules/app_macro.so -usr/lib/asterisk/modules/app_meetme.so usr/lib/asterisk/modules/app_milliwatt.so usr/lib/asterisk/modules/app_minivm.so usr/lib/asterisk/modules/app_mixmonitor.so @@ -186,7 +182,6 @@ usr/lib/asterisk/modules/app_mp3.so usr/lib/asterisk/modules/app_mysql.so usr/lib/asterisk/modules/app_nbscat.so usr/lib/asterisk/modules/app_originate.so -usr/lib/asterisk/modules/app_page.so usr/lib/asterisk/modules/app_parkandannounce.so usr/lib/asterisk/modules/app_playback.so usr/lib/asterisk/modules/app_playtones.so @@ -237,7 +232,6 @@ usr/lib/asterisk/modules/chan_agent.so usr/lib/asterisk/modules/chan_alsa.so usr/lib/asterisk/modules/chan_bridge.so usr/lib/asterisk/modules/chan_capi.so -usr/lib/asterisk/modules/chan_dahdi.so usr/lib/asterisk/modules/chan_iax2.so usr/lib/asterisk/modules/chan_local.so usr/lib/asterisk/modules/chan_mgcp.so @@ -252,10 +246,10 @@ usr/lib/asterisk/modules/chan_unistim.so usr/lib/asterisk/modules/codec_a_mu.so usr/lib/asterisk/modules/codec_adpcm.so usr/lib/asterisk/modules/codec_alaw.so -usr/lib/asterisk/modules/codec_dahdi.so usr/lib/asterisk/modules/codec_g722.so usr/lib/asterisk/modules/codec_g726.so usr/lib/asterisk/modules/codec_gsm.so +usr/lib/asterisk/modules/codec_ilbc.so usr/lib/asterisk/modules/codec_lpc10.so usr/lib/asterisk/modules/codec_ulaw.so usr/lib/asterisk/modules/format_g719.so @@ -351,18 +345,32 @@ usr/lib/asterisk/modules/res_smdi.so usr/lib/asterisk/modules/res_snmp.so usr/lib/asterisk/modules/res_speech.so usr/lib/asterisk/modules/res_stun_monitor.so -usr/lib/asterisk/modules/res_timing_dahdi.so usr/lib/asterisk/modules/res_timing_pthread.so +usr/lib/asterisk/modules/res_timing_timerfd.so #usr/lib/pkgconfig/asterisk.pc +usr/sbin/aelparse +usr/sbin/astcanary usr/sbin/asterisk usr/sbin/astgenkey +usr/sbin/astman usr/sbin/autosupport +usr/sbin/check_expr +usr/sbin/check_expr2 +usr/sbin/conf2ael +usr/sbin/hashtest +usr/sbin/hashtest2 +usr/sbin/muted usr/sbin/rasterisk +usr/sbin/refcounter usr/sbin/safe_asterisk +usr/sbin/smsq +usr/sbin/stereorize +usr/sbin/streamplayer #usr/share/man/man8/asterisk.8 #usr/share/man/man8/astgenkey.8 #usr/share/man/man8/autosupport.8 #usr/share/man/man8/safe_asterisk.8 +#var/ipfire/asterisk var/ipfire/asterisk/adsi.conf var/ipfire/asterisk/agents.conf var/ipfire/asterisk/ais.conf @@ -2712,3 +2720,6 @@ var/spool/asterisk/voicemail/default/1234/INBOX var/spool/asterisk/voicemail/default/1234/en var/spool/asterisk/voicemail/default/1234/en/busy.gsm var/spool/asterisk/voicemail/default/1234/en/unavail.gsm +etc/rc.d/init.d/asterisk +srv/web/ipfire/cgi-bin/asterisk +var/ipfire/menu.d/EX-asterisk.menu diff --git a/config/rootfiles/packages/bluetooth b/config/rootfiles/packages/bluetooth index 278cbea..267e40e 100644 --- a/config/rootfiles/packages/bluetooth +++ b/config/rootfiles/packages/bluetooth @@ -6,7 +6,7 @@ etc/bluetooth/main.conf etc/bluetooth/network.conf etc/bluetooth/rfcomm.conf etc/dbus-1/system.d/bluetooth.conf -etc/udev/rules.d/24-bluetooth.rules +#lib/udev/rules.d/24-bluetooth.rules lib/firmware/BCM-LEGAL.txt lib/firmware/BCM2033-FW.bin lib/firmware/BCM2033-MD.hex diff --git a/config/rootfiles/packages/centerim b/config/rootfiles/packages/centerim deleted file mode 100644 index 26f9b48..0000000 --- a/config/rootfiles/packages/centerim +++ /dev/null @@ -1,10 +0,0 @@ -usr/bin/centerim -usr/bin/cicqconv -#usr/share/centerim -usr/share/centerim/email.wav -usr/share/centerim/msg.wav -usr/share/centerim/offline.wav -usr/share/centerim/online.wav -usr/share/centerim/sms.wav -usr/share/centerim/url.wav -#usr/share/man/man1/cicqconv.1 diff --git a/config/rootfiles/packages/cifs-utils b/config/rootfiles/packages/cifs-utils new file mode 100644 index 0000000..e26e37e --- /dev/null +++ b/config/rootfiles/packages/cifs-utils @@ -0,0 +1,3 @@ +sbin/mount.cifs +#usr/local/include/cifsidmap.h +#usr/local/share/man/man8/mount.cifs.8 diff --git a/config/rootfiles/packages/cups b/config/rootfiles/packages/cups index 5f90047..742cd8f 100644 --- a/config/rootfiles/packages/cups +++ b/config/rootfiles/packages/cups @@ -978,6 +978,7 @@ usr/share/doc/cups/robots.txt #usr/share/locale/ja/cups_ja.po #usr/share/locale/ko/cups_ko.po #usr/share/locale/nl/cups_nl.po +#usr/share/locale/no #usr/share/locale/no/cups_no.po #usr/share/locale/pl/cups_pl.po #usr/share/locale/pt/cups_pt.po diff --git a/config/rootfiles/packages/dahdi b/config/rootfiles/packages/dahdi deleted file mode 100644 index 8e7b8d7..0000000 --- a/config/rootfiles/packages/dahdi +++ /dev/null @@ -1,127 +0,0 @@ -etc/dahdi -#etc/hotplug -#etc/hotplug/usb -etc/hotplug/usb/xpp_fxloader -etc/hotplug/usb/xpp_fxloader.usermap -etc/modprobe.d/dahdi -etc/modprobe.d/dahdi.blacklist -etc/rc.d/init.d/dahdi -etc/rc.d/rc0.d/K30dahdi -etc/rc.d/rc3.d/S15dahdi -etc/rc.d/rc6.d/K30dahdi -etc/udev/rules.d/dahdi.rules -etc/udev/rules.d/xpp.rules -lib/firmware/.dahdi-fw-oct6114-064-1.05.01 -lib/firmware/.dahdi-fw-oct6114-128-1.05.01 -lib/firmware/.dahdi-fw-tc400m-MR6.12 -lib/firmware/dahdi-fw-oct6114-064.bin -lib/firmware/dahdi-fw-oct6114-128.bin -lib/firmware/dahdi-fw-tc400m.bin -#usr/include/dahdi -#usr/include/dahdi/dahdi_config.h -#usr/include/dahdi/fasthdlc.h -#usr/include/dahdi/kernel.h -#usr/include/dahdi/tonezone.h -#usr/include/dahdi/user.h -#usr/include/dahdi/wctdm_user.h -#usr/lib/hotplug -#usr/lib/hotplug/firmware -#usr/lib/hotplug/firmware/.dahdi-fw-oct6114-064-1.05.01 -#usr/lib/hotplug/firmware/.dahdi-fw-oct6114-128-1.05.01 -#usr/lib/hotplug/firmware/.dahdi-fw-tc400m-MR6.12 -#usr/lib/hotplug/firmware/dahdi-fw-oct6114-064.bin -#usr/lib/hotplug/firmware/dahdi-fw-oct6114-128.bin -#usr/lib/hotplug/firmware/dahdi-fw-tc400m.bin -#usr/lib/libtonezone.a -usr/lib/libtonezone.so -usr/lib/libtonezone.so.1 -usr/lib/libtonezone.so.1.0 -usr/lib/libtonezone.so.2 -usr/lib/libtonezone.so.2.0 -#usr/lib/perl5/site_perl/5.12.3/Dahdi -usr/lib/perl5/site_perl/5.12.3/Dahdi.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Chans.pm -#usr/lib/perl5/site_perl/5.12.3/Dahdi/Config -#usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Chandahdi.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Modules.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/System.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Unicall.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Users.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Xpporder.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Params.pm -#usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware -usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware/PCI.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware/USB.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Span.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Utils.pm -#usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp -usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Line.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Mpp.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Xbus.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Xpd.pm -usr/sbin/astribank_allow -usr/sbin/astribank_hexload -usr/sbin/astribank_is_starting -usr/sbin/astribank_tool -usr/sbin/dahdi_cfg -usr/sbin/dahdi_genconf -usr/sbin/dahdi_hardware -usr/sbin/dahdi_monitor -usr/sbin/dahdi_registration -usr/sbin/dahdi_scan -usr/sbin/dahdi_speed -usr/sbin/dahdi_test -usr/sbin/dahdi_tool -usr/sbin/fpga_load -usr/sbin/fxotune -usr/sbin/lsdahdi -usr/sbin/sethdlc -usr/sbin/twinstar -usr/sbin/xpp_blink -usr/sbin/xpp_sync -#usr/share/dahdi -usr/share/dahdi/FPGA_1141.hex -usr/share/dahdi/FPGA_1151.hex -usr/share/dahdi/FPGA_1161.hex -usr/share/dahdi/FPGA_FXS.hex -usr/share/dahdi/PIC_TYPE_1.hex -usr/share/dahdi/PIC_TYPE_2.hex -usr/share/dahdi/PIC_TYPE_3.hex -usr/share/dahdi/PIC_TYPE_4.hex -usr/share/dahdi/USB_FW.hex -usr/share/dahdi/XppConfig.pm -usr/share/dahdi/astribank_hook -usr/share/dahdi/init_card_1_30 -usr/share/dahdi/init_card_2_30 -usr/share/dahdi/init_card_3_30 -usr/share/dahdi/init_card_4_30 -usr/share/dahdi/waitfor_xpds -usr/share/dahdi/xpp_fxloader -#usr/share/man/man8/astribank_allow.8 -#usr/share/man/man8/astribank_hexload.8 -#usr/share/man/man8/astribank_is_starting.8 -#usr/share/man/man8/astribank_tool.8 -#usr/share/man/man8/dahdi_cfg.8 -#usr/share/man/man8/dahdi_genconf.8 -#usr/share/man/man8/dahdi_hardware.8 -#usr/share/man/man8/dahdi_monitor.8 -#usr/share/man/man8/dahdi_registration.8 -#usr/share/man/man8/dahdi_scan.8 -#usr/share/man/man8/dahdi_test.8 -#usr/share/man/man8/dahdi_tool.8 -#usr/share/man/man8/fpga_load.8 -#usr/share/man/man8/fxotune.8 -#usr/share/man/man8/lsdahdi.8 -#usr/share/man/man8/twinstar.8 -#usr/share/man/man8/xpp_blink.8 -#usr/share/man/man8/xpp_sync.8 -#var/ipfire/asterisk -#var/ipfire/asterisk/dahdi -var/ipfire/asterisk/dahdi/genconf_parameters -var/ipfire/asterisk/dahdi/init.conf -var/ipfire/asterisk/dahdi/modules -var/ipfire/asterisk/dahdi/system.conf diff --git a/config/rootfiles/packages/directfb b/config/rootfiles/packages/directfb deleted file mode 100644 index e69de29..0000000 diff --git a/config/rootfiles/packages/ebtables b/config/rootfiles/packages/ebtables index 65c346b..7e10eee 100644 --- a/config/rootfiles/packages/ebtables +++ b/config/rootfiles/packages/ebtables @@ -6,11 +6,13 @@ usr/lib/libebt_among.so usr/lib/libebt_arp.so usr/lib/libebt_arpreply.so usr/lib/libebt_ip.so +usr/lib/libebt_ip6.so usr/lib/libebt_limit.so usr/lib/libebt_log.so usr/lib/libebt_mark.so usr/lib/libebt_mark_m.so usr/lib/libebt_nat.so +usr/lib/libebt_nflog.so usr/lib/libebt_pkttype.so usr/lib/libebt_redirect.so usr/lib/libebt_standard.so diff --git a/config/rootfiles/packages/elinks b/config/rootfiles/packages/elinks index 3e71dc9..45c83b1 100644 --- a/config/rootfiles/packages/elinks +++ b/config/rootfiles/packages/elinks @@ -2,6 +2,9 @@ usr/local/bin/elinks #usr/local/etc #usr/local/etc/elinks usr/local/etc/elinks/elinks.conf +#usr/local/share/locale/af +#usr/local/share/locale/af/LC_MESSAGES +#usr/local/share/locale/af/LC_MESSAGES/elinks.mo #usr/local/share/locale/be #usr/local/share/locale/be/LC_MESSAGES #usr/local/share/locale/be/LC_MESSAGES/elinks.mo diff --git a/config/rootfiles/packages/flac b/config/rootfiles/packages/flac index d5ca870..e841bbf 100644 --- a/config/rootfiles/packages/flac +++ b/config/rootfiles/packages/flac @@ -28,8 +28,6 @@ usr/lib/libFLAC.so.8 usr/lib/libFLAC.so.8.2.0 #usr/lib/pkgconfig/flac++.pc #usr/lib/pkgconfig/flac.pc -#usr/man/man1/flac.1 -#usr/man/man1/metaflac.1 #usr/share/aclocal/libFLAC++.m4 #usr/share/aclocal/libFLAC.m4 #usr/share/doc/flac-1.2.1 @@ -312,3 +310,5 @@ usr/lib/libFLAC.so.8.2.0 #usr/share/doc/flac-1.2.1/html/ru/index.html #usr/share/doc/flac-1.2.1/html/ru/links.html #usr/share/doc/flac-1.2.1/html/ru/news.html +#usr/share/man/man1/flac.1 +#usr/share/man/man1/metaflac.1 diff --git a/config/rootfiles/packages/fontconfig b/config/rootfiles/packages/fontconfig deleted file mode 100644 index 6f3726f..0000000 --- a/config/rootfiles/packages/fontconfig +++ /dev/null @@ -1,423 +0,0 @@ -usr/bin/fc-cache -usr/bin/fc-cat -usr/bin/fc-list -usr/bin/fc-match -#etc/fonts -#etc/fonts/conf.avail -etc/fonts/conf.avail/10-autohint.conf -etc/fonts/conf.avail/10-no-sub-pixel.conf -etc/fonts/conf.avail/10-sub-pixel-bgr.conf -etc/fonts/conf.avail/10-sub-pixel-rgb.conf -etc/fonts/conf.avail/10-sub-pixel-vbgr.conf -etc/fonts/conf.avail/10-sub-pixel-vrgb.conf -etc/fonts/conf.avail/10-unhinted.conf -etc/fonts/conf.avail/20-fix-globaladvance.conf -etc/fonts/conf.avail/20-unhint-small-vera.conf -etc/fonts/conf.avail/25-unhint-nonlatin.conf -etc/fonts/conf.avail/30-metric-aliases.conf -etc/fonts/conf.avail/30-urw-aliases.conf -etc/fonts/conf.avail/40-nonlatin.conf -etc/fonts/conf.avail/45-latin.conf -etc/fonts/conf.avail/49-sansserif.conf -etc/fonts/conf.avail/50-user.conf -etc/fonts/conf.avail/51-local.conf -etc/fonts/conf.avail/60-latin.conf -etc/fonts/conf.avail/65-fonts-persian.conf -etc/fonts/conf.avail/65-khmer.conf -etc/fonts/conf.avail/65-nonlatin.conf -etc/fonts/conf.avail/69-unifont.conf -etc/fonts/conf.avail/70-no-bitmaps.conf -etc/fonts/conf.avail/70-yes-bitmaps.conf -etc/fonts/conf.avail/80-delicious.conf -etc/fonts/conf.avail/90-synthetic.conf -#etc/fonts/conf.d -etc/fonts/conf.d/20-fix-globaladvance.conf -etc/fonts/conf.d/20-unhint-small-vera.conf -etc/fonts/conf.d/30-metric-aliases.conf -etc/fonts/conf.d/30-urw-aliases.conf -etc/fonts/conf.d/40-nonlatin.conf -etc/fonts/conf.d/45-latin.conf -etc/fonts/conf.d/49-sansserif.conf -etc/fonts/conf.d/50-user.conf -etc/fonts/conf.d/51-local.conf -etc/fonts/conf.d/60-latin.conf -etc/fonts/conf.d/65-fonts-persian.conf -etc/fonts/conf.d/65-nonlatin.conf -etc/fonts/conf.d/69-unifont.conf -etc/fonts/conf.d/80-delicious.conf -etc/fonts/conf.d/90-synthetic.conf -#etc/fonts/conf.d/README -etc/fonts/fonts.conf -etc/fonts/fonts.dtd -#usr/include/fontconfig -#usr/include/fontconfig/fcfreetype.h -#usr/include/fontconfig/fcprivate.h -#usr/include/fontconfig/fontconfig.h -#usr/lib/libfontconfig.a -#usr/lib/libfontconfig.la -usr/lib/libfontconfig.so -usr/lib/libfontconfig.so.1 -usr/lib/libfontconfig.so.1.3.0 -usr/lib/pkgconfig/fontconfig.pc -usr/var/cache/fontconfig -#usr/share/doc/fontconfig -#usr/share/doc/fontconfig/fontconfig-devel -#usr/share/doc/fontconfig/fontconfig-devel.pdf -#usr/share/doc/fontconfig/fontconfig-devel.txt -#usr/share/doc/fontconfig/fontconfig-devel/index.html -#usr/share/doc/fontconfig/fontconfig-devel/r1034.html -#usr/share/doc/fontconfig/fontconfig-devel/r1056.html -#usr/share/doc/fontconfig/fontconfig-devel/r108.html -#usr/share/doc/fontconfig/fontconfig-devel/r1099.html -#usr/share/doc/fontconfig/fontconfig-devel/r1127.html -#usr/share/doc/fontconfig/fontconfig-devel/r1148.html -#usr/share/doc/fontconfig/fontconfig-devel/r1171.html -#usr/share/doc/fontconfig/fontconfig-devel/r1192.html -#usr/share/doc/fontconfig/fontconfig-devel/r1237.html -#usr/share/doc/fontconfig/fontconfig-devel/r1260.html -#usr/share/doc/fontconfig/fontconfig-devel/r1283.html -#usr/share/doc/fontconfig/fontconfig-devel/r129.html -#usr/share/doc/fontconfig/fontconfig-devel/r1309.html -#usr/share/doc/fontconfig/fontconfig-devel/r1336.html -#usr/share/doc/fontconfig/fontconfig-devel/r1367.html -#usr/share/doc/fontconfig/fontconfig-devel/r1389.html -#usr/share/doc/fontconfig/fontconfig-devel/r1412.html -#usr/share/doc/fontconfig/fontconfig-devel/r1434.html -#usr/share/doc/fontconfig/fontconfig-devel/r1460.html -#usr/share/doc/fontconfig/fontconfig-devel/r1482.html -#usr/share/doc/fontconfig/fontconfig-devel/r150.html -#usr/share/doc/fontconfig/fontconfig-devel/r1505.html -#usr/share/doc/fontconfig/fontconfig-devel/r1529.html -#usr/share/doc/fontconfig/fontconfig-devel/r1552.html -#usr/share/doc/fontconfig/fontconfig-devel/r1577.html -#usr/share/doc/fontconfig/fontconfig-devel/r1602.html -#usr/share/doc/fontconfig/fontconfig-devel/r1627.html -#usr/share/doc/fontconfig/fontconfig-devel/r1652.html -#usr/share/doc/fontconfig/fontconfig-devel/r1677.html -#usr/share/doc/fontconfig/fontconfig-devel/r1699.html -#usr/share/doc/fontconfig/fontconfig-devel/r171.html -#usr/share/doc/fontconfig/fontconfig-devel/r1724.html -#usr/share/doc/fontconfig/fontconfig-devel/r1749.html -#usr/share/doc/fontconfig/fontconfig-devel/r1774.html -#usr/share/doc/fontconfig/fontconfig-devel/r1801.html -#usr/share/doc/fontconfig/fontconfig-devel/r1829.html -#usr/share/doc/fontconfig/fontconfig-devel/r1858.html -#usr/share/doc/fontconfig/fontconfig-devel/r1883.html -#usr/share/doc/fontconfig/fontconfig-devel/r1905.html -#usr/share/doc/fontconfig/fontconfig-devel/r192.html -#usr/share/doc/fontconfig/fontconfig-devel/r1927.html -#usr/share/doc/fontconfig/fontconfig-devel/r1950.html -#usr/share/doc/fontconfig/fontconfig-devel/r1976.html -#usr/share/doc/fontconfig/fontconfig-devel/r2002.html -#usr/share/doc/fontconfig/fontconfig-devel/r2032.html -#usr/share/doc/fontconfig/fontconfig-devel/r2057.html -#usr/share/doc/fontconfig/fontconfig-devel/r2081.html -#usr/share/doc/fontconfig/fontconfig-devel/r2110.html -#usr/share/doc/fontconfig/fontconfig-devel/r213.html -#usr/share/doc/fontconfig/fontconfig-devel/r2131.html -#usr/share/doc/fontconfig/fontconfig-devel/r2155.html -#usr/share/doc/fontconfig/fontconfig-devel/r2178.html -#usr/share/doc/fontconfig/fontconfig-devel/r2201.html -#usr/share/doc/fontconfig/fontconfig-devel/r2227.html -#usr/share/doc/fontconfig/fontconfig-devel/r2256.html -#usr/share/doc/fontconfig/fontconfig-devel/r2286.html -#usr/share/doc/fontconfig/fontconfig-devel/r2316.html -#usr/share/doc/fontconfig/fontconfig-devel/r234.html -#usr/share/doc/fontconfig/fontconfig-devel/r2349.html -#usr/share/doc/fontconfig/fontconfig-devel/r2370.html -#usr/share/doc/fontconfig/fontconfig-devel/r2391.html -#usr/share/doc/fontconfig/fontconfig-devel/r2413.html -#usr/share/doc/fontconfig/fontconfig-devel/r2434.html -#usr/share/doc/fontconfig/fontconfig-devel/r2456.html -#usr/share/doc/fontconfig/fontconfig-devel/r2478.html -#usr/share/doc/fontconfig/fontconfig-devel/r2501.html -#usr/share/doc/fontconfig/fontconfig-devel/r2522.html -#usr/share/doc/fontconfig/fontconfig-devel/r2544.html -#usr/share/doc/fontconfig/fontconfig-devel/r2566.html -#usr/share/doc/fontconfig/fontconfig-devel/r258.html -#usr/share/doc/fontconfig/fontconfig-devel/r2588.html -#usr/share/doc/fontconfig/fontconfig-devel/r2609.html -#usr/share/doc/fontconfig/fontconfig-devel/r2631.html -#usr/share/doc/fontconfig/fontconfig-devel/r2655.html -#usr/share/doc/fontconfig/fontconfig-devel/r2676.html -#usr/share/doc/fontconfig/fontconfig-devel/r2698.html -#usr/share/doc/fontconfig/fontconfig-devel/r2721.html -#usr/share/doc/fontconfig/fontconfig-devel/r2744.html -#usr/share/doc/fontconfig/fontconfig-devel/r2767.html -#usr/share/doc/fontconfig/fontconfig-devel/r2788.html -#usr/share/doc/fontconfig/fontconfig-devel/r279.html -#usr/share/doc/fontconfig/fontconfig-devel/r2817.html -#usr/share/doc/fontconfig/fontconfig-devel/r2842.html -#usr/share/doc/fontconfig/fontconfig-devel/r2873.html -#usr/share/doc/fontconfig/fontconfig-devel/r2911.html -#usr/share/doc/fontconfig/fontconfig-devel/r2942.html -#usr/share/doc/fontconfig/fontconfig-devel/r2969.html -#usr/share/doc/fontconfig/fontconfig-devel/r2993.html -#usr/share/doc/fontconfig/fontconfig-devel/r301.html -#usr/share/doc/fontconfig/fontconfig-devel/r3021.html -#usr/share/doc/fontconfig/fontconfig-devel/r3045.html -#usr/share/doc/fontconfig/fontconfig-devel/r3069.html -#usr/share/doc/fontconfig/fontconfig-devel/r3094.html -#usr/share/doc/fontconfig/fontconfig-devel/r3118.html -#usr/share/doc/fontconfig/fontconfig-devel/r3142.html -#usr/share/doc/fontconfig/fontconfig-devel/r3164.html -#usr/share/doc/fontconfig/fontconfig-devel/r3192.html -#usr/share/doc/fontconfig/fontconfig-devel/r3213.html -#usr/share/doc/fontconfig/fontconfig-devel/r323.html -#usr/share/doc/fontconfig/fontconfig-devel/r3234.html -#usr/share/doc/fontconfig/fontconfig-devel/r3257.html -#usr/share/doc/fontconfig/fontconfig-devel/r3283.html -#usr/share/doc/fontconfig/fontconfig-devel/r3305.html -#usr/share/doc/fontconfig/fontconfig-devel/r3327.html -#usr/share/doc/fontconfig/fontconfig-devel/r3349.html -#usr/share/doc/fontconfig/fontconfig-devel/r3371.html -#usr/share/doc/fontconfig/fontconfig-devel/r3393.html -#usr/share/doc/fontconfig/fontconfig-devel/r3414.html -#usr/share/doc/fontconfig/fontconfig-devel/r3435.html -#usr/share/doc/fontconfig/fontconfig-devel/r344.html -#usr/share/doc/fontconfig/fontconfig-devel/r3460.html -#usr/share/doc/fontconfig/fontconfig-devel/r3496.html -#usr/share/doc/fontconfig/fontconfig-devel/r3518.html -#usr/share/doc/fontconfig/fontconfig-devel/r3553.html -#usr/share/doc/fontconfig/fontconfig-devel/r3581.html -#usr/share/doc/fontconfig/fontconfig-devel/r3607.html -#usr/share/doc/fontconfig/fontconfig-devel/r3629.html -#usr/share/doc/fontconfig/fontconfig-devel/r3656.html -#usr/share/doc/fontconfig/fontconfig-devel/r3683.html -#usr/share/doc/fontconfig/fontconfig-devel/r369.html -#usr/share/doc/fontconfig/fontconfig-devel/r3708.html -#usr/share/doc/fontconfig/fontconfig-devel/r3733.html -#usr/share/doc/fontconfig/fontconfig-devel/r3755.html -#usr/share/doc/fontconfig/fontconfig-devel/r3778.html -#usr/share/doc/fontconfig/fontconfig-devel/r3805.html -#usr/share/doc/fontconfig/fontconfig-devel/r3827.html -#usr/share/doc/fontconfig/fontconfig-devel/r3852.html -#usr/share/doc/fontconfig/fontconfig-devel/r3873.html -#usr/share/doc/fontconfig/fontconfig-devel/r3898.html -#usr/share/doc/fontconfig/fontconfig-devel/r3923.html -#usr/share/doc/fontconfig/fontconfig-devel/r3948.html -#usr/share/doc/fontconfig/fontconfig-devel/r397.html -#usr/share/doc/fontconfig/fontconfig-devel/r3973.html -#usr/share/doc/fontconfig/fontconfig-devel/r3999.html -#usr/share/doc/fontconfig/fontconfig-devel/r4021.html -#usr/share/doc/fontconfig/fontconfig-devel/r4043.html -#usr/share/doc/fontconfig/fontconfig-devel/r4065.html -#usr/share/doc/fontconfig/fontconfig-devel/r4090.html -#usr/share/doc/fontconfig/fontconfig-devel/r4119.html -#usr/share/doc/fontconfig/fontconfig-devel/r4144.html -#usr/share/doc/fontconfig/fontconfig-devel/r4176.html -#usr/share/doc/fontconfig/fontconfig-devel/r418.html -#usr/share/doc/fontconfig/fontconfig-devel/r4209.html -#usr/share/doc/fontconfig/fontconfig-devel/r4245.html -#usr/share/doc/fontconfig/fontconfig-devel/r4267.html -#usr/share/doc/fontconfig/fontconfig-devel/r4289.html -#usr/share/doc/fontconfig/fontconfig-devel/r4311.html -#usr/share/doc/fontconfig/fontconfig-devel/r4334.html -#usr/share/doc/fontconfig/fontconfig-devel/r4356.html -#usr/share/doc/fontconfig/fontconfig-devel/r4380.html -#usr/share/doc/fontconfig/fontconfig-devel/r4405.html -#usr/share/doc/fontconfig/fontconfig-devel/r4430.html -#usr/share/doc/fontconfig/fontconfig-devel/r4457.html -#usr/share/doc/fontconfig/fontconfig-devel/r446.html -#usr/share/doc/fontconfig/fontconfig-devel/r4484.html -#usr/share/doc/fontconfig/fontconfig-devel/r4509.html -#usr/share/doc/fontconfig/fontconfig-devel/r4530.html -#usr/share/doc/fontconfig/fontconfig-devel/r475.html -#usr/share/doc/fontconfig/fontconfig-devel/r570.html -#usr/share/doc/fontconfig/fontconfig-devel/r600.html -#usr/share/doc/fontconfig/fontconfig-devel/r707.html -#usr/share/doc/fontconfig/fontconfig-devel/r759.html -#usr/share/doc/fontconfig/fontconfig-devel/r782.html -#usr/share/doc/fontconfig/fontconfig-devel/r807.html -#usr/share/doc/fontconfig/fontconfig-devel/r828.html -#usr/share/doc/fontconfig/fontconfig-devel/r856.html -#usr/share/doc/fontconfig/fontconfig-devel/r878.html -#usr/share/doc/fontconfig/fontconfig-devel/r902.html -#usr/share/doc/fontconfig/fontconfig-devel/r923.html -#usr/share/doc/fontconfig/fontconfig-devel/r944.html -#usr/share/doc/fontconfig/fontconfig-devel/r967.html -#usr/share/doc/fontconfig/fontconfig-devel/r999.html -#usr/share/doc/fontconfig/fontconfig-devel/x102.html -#usr/share/doc/fontconfig/fontconfig-devel/x19.html -#usr/share/doc/fontconfig/fontconfig-devel/x31.html -#usr/share/doc/fontconfig/fontconfig-user.html -#usr/share/doc/fontconfig/fontconfig-user.pdf -#usr/share/doc/fontconfig/fontconfig-user.txt -#usr/share/man/man1/fc-cache.1 -#usr/share/man/man1/fc-cat.1 -#usr/share/man/man1/fc-list.1 -#usr/share/man/man1/fc-match.1 -#usr/share/man/man3/FcAtomicCreate.3 -#usr/share/man/man3/FcAtomicDeleteNew.3 -#usr/share/man/man3/FcAtomicDestroy.3 -#usr/share/man/man3/FcAtomicLock.3 -#usr/share/man/man3/FcAtomicNewFile.3 -#usr/share/man/man3/FcAtomicOrigFile.3 -#usr/share/man/man3/FcAtomicReplaceOrig.3 -#usr/share/man/man3/FcAtomicUnlock.3 -#usr/share/man/man3/FcBlanksAdd.3 -#usr/share/man/man3/FcBlanksCreate.3 -#usr/share/man/man3/FcBlanksDestroy.3 -#usr/share/man/man3/FcBlanksIsMember.3 -#usr/share/man/man3/FcCacheCopySet.3 -#usr/share/man/man3/FcCacheDir.3 -#usr/share/man/man3/FcCacheNumFont.3 -#usr/share/man/man3/FcCacheNumSubdir.3 -#usr/share/man/man3/FcCacheSubdir.3 -#usr/share/man/man3/FcCharSetAddChar.3 -#usr/share/man/man3/FcCharSetCopy.3 -#usr/share/man/man3/FcCharSetCount.3 -#usr/share/man/man3/FcCharSetCoverage.3 -#usr/share/man/man3/FcCharSetCreate.3 -#usr/share/man/man3/FcCharSetDestroy.3 -#usr/share/man/man3/FcCharSetEqual.3 -#usr/share/man/man3/FcCharSetFirstPage.3 -#usr/share/man/man3/FcCharSetHasChar.3 -#usr/share/man/man3/FcCharSetIntersect.3 -#usr/share/man/man3/FcCharSetIntersectCount.3 -#usr/share/man/man3/FcCharSetIsSubset.3 -#usr/share/man/man3/FcCharSetNew.3 -#usr/share/man/man3/FcCharSetNextPage.3 -#usr/share/man/man3/FcCharSetSubtract.3 -#usr/share/man/man3/FcCharSetSubtractCount.3 -#usr/share/man/man3/FcCharSetUnion.3 -#usr/share/man/man3/FcConfigAppFontAddDir.3 -#usr/share/man/man3/FcConfigAppFontAddFile.3 -#usr/share/man/man3/FcConfigAppFontClear.3 -#usr/share/man/man3/FcConfigBuildFonts.3 -#usr/share/man/man3/FcConfigCreate.3 -#usr/share/man/man3/FcConfigDestroy.3 -#usr/share/man/man3/FcConfigEnableHome.3 -#usr/share/man/man3/FcConfigFilename.3 -#usr/share/man/man3/FcConfigGetBlanks.3 -#usr/share/man/man3/FcConfigGetCache.3 -#usr/share/man/man3/FcConfigGetCacheDirs.3 -#usr/share/man/man3/FcConfigGetConfigDirs.3 -#usr/share/man/man3/FcConfigGetConfigFiles.3 -#usr/share/man/man3/FcConfigGetCurrent.3 -#usr/share/man/man3/FcConfigGetFontDirs.3 -#usr/share/man/man3/FcConfigGetFonts.3 -#usr/share/man/man3/FcConfigGetRescanInterval.3 -#usr/share/man/man3/FcConfigHome.3 -#usr/share/man/man3/FcConfigParseAndLoad.3 -#usr/share/man/man3/FcConfigSetCurrent.3 -#usr/share/man/man3/FcConfigSetRescanInterval.3 -#usr/share/man/man3/FcConfigSubstitute.3 -#usr/share/man/man3/FcConfigSubstituteWithPat.3 -#usr/share/man/man3/FcConfigUptoDate.3 -#usr/share/man/man3/FcDefaultSubstitute.3 -#usr/share/man/man3/FcDirCacheLoad.3 -#usr/share/man/man3/FcDirCacheLoadFile.3 -#usr/share/man/man3/FcDirCacheRead.3 -#usr/share/man/man3/FcDirCacheUnlink.3 -#usr/share/man/man3/FcDirCacheUnload.3 -#usr/share/man/man3/FcDirCacheValid.3 -#usr/share/man/man3/FcDirSave.3 -#usr/share/man/man3/FcDirScan.3 -#usr/share/man/man3/FcFileIsDir.3 -#usr/share/man/man3/FcFileScan.3 -#usr/share/man/man3/FcFini.3 -#usr/share/man/man3/FcFontList.3 -#usr/share/man/man3/FcFontMatch.3 -#usr/share/man/man3/FcFontRenderPrepare.3 -#usr/share/man/man3/FcFontSetAdd.3 -#usr/share/man/man3/FcFontSetCreate.3 -#usr/share/man/man3/FcFontSetDestroy.3 -#usr/share/man/man3/FcFontSetList.3 -#usr/share/man/man3/FcFontSetMatch.3 -#usr/share/man/man3/FcFontSetPrint.3 -#usr/share/man/man3/FcFontSetSort.3 -#usr/share/man/man3/FcFontSetSortDestroy.3 -#usr/share/man/man3/FcFontSort.3 -#usr/share/man/man3/FcFreeTypeCharIndex.3 -#usr/share/man/man3/FcFreeTypeCharSet.3 -#usr/share/man/man3/FcFreeTypeCharSetAndSpacing.3 -#usr/share/man/man3/FcFreeTypeQuery.3 -#usr/share/man/man3/FcFreeTypeQueryFace.3 -#usr/share/man/man3/FcGetLangs.3 -#usr/share/man/man3/FcGetVersion.3 -#usr/share/man/man3/FcInit.3 -#usr/share/man/man3/FcInitBringUptoDate.3 -#usr/share/man/man3/FcInitLoadConfig.3 -#usr/share/man/man3/FcInitLoadConfigAndFonts.3 -#usr/share/man/man3/FcInitReinitialize.3 -#usr/share/man/man3/FcIsLower.3 -#usr/share/man/man3/FcIsUpper.3 -#usr/share/man/man3/FcLangGetCharSet.3 -#usr/share/man/man3/FcLangSetAdd.3 -#usr/share/man/man3/FcLangSetCompare.3 -#usr/share/man/man3/FcLangSetContains.3 -#usr/share/man/man3/FcLangSetCopy.3 -#usr/share/man/man3/FcLangSetCreate.3 -#usr/share/man/man3/FcLangSetDestroy.3 -#usr/share/man/man3/FcLangSetEqual.3 -#usr/share/man/man3/FcLangSetHasLang.3 -#usr/share/man/man3/FcLangSetHash.3 -#usr/share/man/man3/FcMatrixCopy.3 -#usr/share/man/man3/FcMatrixEqual.3 -#usr/share/man/man3/FcMatrixInit.3 -#usr/share/man/man3/FcMatrixMultiply.3 -#usr/share/man/man3/FcMatrixRotate.3 -#usr/share/man/man3/FcMatrixScale.3 -#usr/share/man/man3/FcMatrixShear.3 -#usr/share/man/man3/FcNameConstant.3 -#usr/share/man/man3/FcNameGetConstant.3 -#usr/share/man/man3/FcNameGetObjectType.3 -#usr/share/man/man3/FcNameParse.3 -#usr/share/man/man3/FcNameRegisterConstants.3 -#usr/share/man/man3/FcNameRegisterObjectTypes.3 -#usr/share/man/man3/FcNameUnparse.3 -#usr/share/man/man3/FcNameUnregisterConstants.3 -#usr/share/man/man3/FcNameUnregisterObjectTypes.3 -#usr/share/man/man3/FcObjectSetAdd.3 -#usr/share/man/man3/FcObjectSetBuild.3 -#usr/share/man/man3/FcObjectSetCreate.3 -#usr/share/man/man3/FcObjectSetDestroy.3 -#usr/share/man/man3/FcPatternAdd-Type.3 -#usr/share/man/man3/FcPatternAdd.3 -#usr/share/man/man3/FcPatternAddWeak.3 -#usr/share/man/man3/FcPatternBuild.3 -#usr/share/man/man3/FcPatternCreate.3 -#usr/share/man/man3/FcPatternDel.3 -#usr/share/man/man3/FcPatternDestroy.3 -#usr/share/man/man3/FcPatternDuplicate.3 -#usr/share/man/man3/FcPatternEqual.3 -#usr/share/man/man3/FcPatternEqualSubset.3 -#usr/share/man/man3/FcPatternGet-Type.3 -#usr/share/man/man3/FcPatternGet.3 -#usr/share/man/man3/FcPatternHash.3 -#usr/share/man/man3/FcPatternPrint.3 -#usr/share/man/man3/FcPatternReference.3 -#usr/share/man/man3/FcPatternRemove.3 -#usr/share/man/man3/FcStrBasename.3 -#usr/share/man/man3/FcStrCmp.3 -#usr/share/man/man3/FcStrCmpIgnoreCase.3 -#usr/share/man/man3/FcStrCopy.3 -#usr/share/man/man3/FcStrCopyFilename.3 -#usr/share/man/man3/FcStrDowncase.3 -#usr/share/man/man3/FcStrFree.3 -#usr/share/man/man3/FcStrListCreate.3 -#usr/share/man/man3/FcStrListDone.3 -#usr/share/man/man3/FcStrListNext.3 -#usr/share/man/man3/FcStrPlus.3 -#usr/share/man/man3/FcStrSetAdd.3 -#usr/share/man/man3/FcStrSetAddFilename.3 -#usr/share/man/man3/FcStrSetCreate.3 -#usr/share/man/man3/FcStrSetDel.3 -#usr/share/man/man3/FcStrSetDestroy.3 -#usr/share/man/man3/FcStrSetEqual.3 -#usr/share/man/man3/FcStrSetMember.3 -#usr/share/man/man3/FcStrStr.3 -#usr/share/man/man3/FcStrStrIgnoreCase.3 -#usr/share/man/man3/FcToLower.3 -#usr/share/man/man3/FcUcs4ToUtf8.3 -#usr/share/man/man3/FcUtf16Len.3 -#usr/share/man/man3/FcUtf16ToUcs4.3 -#usr/share/man/man3/FcUtf8Len.3 -#usr/share/man/man3/FcUtf8ToUcs4.3 -#usr/share/man/man3/FcValueDestroy.3 -#usr/share/man/man3/FcValueEqual.3 -#usr/share/man/man3/FcValuePrint.3 -#usr/share/man/man3/FcValueSave.3 -#usr/share/man/man5/fonts-conf.5 -#usr/var/cache diff --git a/config/rootfiles/packages/git b/config/rootfiles/packages/git index b92070e..ada23da 100644 --- a/config/rootfiles/packages/git +++ b/config/rootfiles/packages/git @@ -9,8 +9,21 @@ usr/lib/perl5/site_perl/5.12.3/Error.pm usr/lib/perl5/site_perl/5.12.3/Git usr/lib/perl5/site_perl/5.12.3/Git.pm usr/lib/perl5/site_perl/5.12.3/Git/I18N.pm -#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Git -#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Git/.packlist +#usr/lib/perl5/site_perl/5.12.3/Git/IndexInfo.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN +#usr/lib/perl5/site_perl/5.12.3/Git/SVN.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Editor.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Fetcher.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/GlobSpec.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Log.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Memoize +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Memoize/YAML.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Migration.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Prompt.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Ra.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Utils.pm +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Git +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Git/.packlist usr/lib/python2.7/site-packages/git_remote_helpers #usr/lib/python2.7/site-packages/git_remote_helpers-0.1.0-py2.7.egg-info usr/lib/python2.7/site-packages/git_remote_helpers/__init__.py @@ -54,10 +67,12 @@ usr/libexec/git-core/git-cherry-pick usr/libexec/git-core/git-citool usr/libexec/git-core/git-clean usr/libexec/git-core/git-clone +usr/libexec/git-core/git-column usr/libexec/git-core/git-commit usr/libexec/git-core/git-commit-tree usr/libexec/git-core/git-config usr/libexec/git-core/git-count-objects +usr/libexec/git-core/git-credential usr/libexec/git-core/git-credential-cache usr/libexec/git-core/git-credential-cache--daemon usr/libexec/git-core/git-credential-store @@ -122,6 +137,7 @@ usr/libexec/git-core/git-mktree usr/libexec/git-core/git-mv usr/libexec/git-core/git-name-rev usr/libexec/git-core/git-notes +usr/libexec/git-core/git-p4 usr/libexec/git-core/git-pack-objects usr/libexec/git-core/git-pack-redundant usr/libexec/git-core/git-pack-refs @@ -149,6 +165,7 @@ usr/libexec/git-core/git-remote-ftps usr/libexec/git-core/git-remote-http usr/libexec/git-core/git-remote-https usr/libexec/git-core/git-remote-testgit +#usr/libexec/git-core/git-remote-testsvn usr/libexec/git-core/git-repack usr/libexec/git-core/git-replace usr/libexec/git-core/git-repo-config @@ -195,7 +212,9 @@ usr/libexec/git-core/git-write-tree usr/libexec/git-core/mergetools usr/libexec/git-core/mergetools/araxis usr/libexec/git-core/mergetools/bc3 +usr/libexec/git-core/mergetools/codecompare usr/libexec/git-core/mergetools/defaults +usr/libexec/git-core/mergetools/deltawalker usr/libexec/git-core/mergetools/diffuse usr/libexec/git-core/mergetools/ecmerge usr/libexec/git-core/mergetools/emerge @@ -298,7 +317,23 @@ usr/share/git-core/templates/info/exclude #usr/share/gitweb/static/git-logo.png #usr/share/gitweb/static/gitweb.css #usr/share/gitweb/static/gitweb.js +#usr/share/locale/da/LC_MESSAGES/git.mo +#usr/share/locale/de/LC_MESSAGES/git.mo #usr/share/locale/is/LC_MESSAGES/git.mo +#usr/share/locale/it/LC_MESSAGES/git.mo +#usr/share/locale/nl/LC_MESSAGES/git.mo +#usr/share/locale/pt_PT +#usr/share/locale/pt_PT/LC_MESSAGES +#usr/share/locale/pt_PT/LC_MESSAGES/git.mo +#usr/share/locale/sv/LC_MESSAGES/git.mo +#usr/share/locale/vi/LC_MESSAGES/git.mo +#usr/share/locale/zh_CN/LC_MESSAGES/git.mo #usr/share/man/man3/Git.3 #usr/share/man/man3/Git::I18N.3 +#usr/share/man/man3/Git::SVN::Editor.3 +#usr/share/man/man3/Git::SVN::Fetcher.3 +#usr/share/man/man3/Git::SVN::Memoize::YAML.3 +#usr/share/man/man3/Git::SVN::Prompt.3 +#usr/share/man/man3/Git::SVN::Ra.3 +#usr/share/man/man3/Git::SVN::Utils.3 #usr/share/man/man3/private-Error.3 diff --git a/config/rootfiles/packages/glib b/config/rootfiles/packages/glib deleted file mode 100644 index d4913a2..0000000 --- a/config/rootfiles/packages/glib +++ /dev/null @@ -1,641 +0,0 @@ -#usr/bin/glib-genmarshal -#usr/bin/glib-gettextize -#usr/bin/glib-mkenums -#usr/bin/gobject-query -#usr/bin/gtester -#usr/bin/gtester-report -#usr/include/gio-unix-2.0 -#usr/include/gio-unix-2.0/gio -#usr/include/gio-unix-2.0/gio/gdesktopappinfo.h -#usr/include/gio-unix-2.0/gio/gunixconnection.h -#usr/include/gio-unix-2.0/gio/gunixfdmessage.h -#usr/include/gio-unix-2.0/gio/gunixinputstream.h -#usr/include/gio-unix-2.0/gio/gunixmounts.h -#usr/include/gio-unix-2.0/gio/gunixoutputstream.h -#usr/include/gio-unix-2.0/gio/gunixsocketaddress.h -#usr/include/glib-2.0 -#usr/include/glib-2.0/gio -#usr/include/glib-2.0/gio/gappinfo.h -#usr/include/glib-2.0/gio/gasyncinitable.h -#usr/include/glib-2.0/gio/gasyncresult.h -#usr/include/glib-2.0/gio/gbufferedinputstream.h -#usr/include/glib-2.0/gio/gbufferedoutputstream.h -#usr/include/glib-2.0/gio/gcancellable.h -#usr/include/glib-2.0/gio/gcontenttype.h -#usr/include/glib-2.0/gio/gdatainputstream.h -#usr/include/glib-2.0/gio/gdataoutputstream.h -#usr/include/glib-2.0/gio/gdrive.h -#usr/include/glib-2.0/gio/gemblem.h -#usr/include/glib-2.0/gio/gemblemedicon.h -#usr/include/glib-2.0/gio/gfile.h -#usr/include/glib-2.0/gio/gfileattribute.h -#usr/include/glib-2.0/gio/gfileenumerator.h -#usr/include/glib-2.0/gio/gfileicon.h -#usr/include/glib-2.0/gio/gfileinfo.h -#usr/include/glib-2.0/gio/gfileinputstream.h -#usr/include/glib-2.0/gio/gfileiostream.h -#usr/include/glib-2.0/gio/gfilemonitor.h -#usr/include/glib-2.0/gio/gfilenamecompleter.h -#usr/include/glib-2.0/gio/gfileoutputstream.h -#usr/include/glib-2.0/gio/gfilterinputstream.h -#usr/include/glib-2.0/gio/gfilteroutputstream.h -#usr/include/glib-2.0/gio/gicon.h -#usr/include/glib-2.0/gio/ginetaddress.h -#usr/include/glib-2.0/gio/ginetsocketaddress.h -#usr/include/glib-2.0/gio/ginitable.h -#usr/include/glib-2.0/gio/ginputstream.h -#usr/include/glib-2.0/gio/gio.h -#usr/include/glib-2.0/gio/gioenums.h -#usr/include/glib-2.0/gio/gioenumtypes.h -#usr/include/glib-2.0/gio/gioerror.h -#usr/include/glib-2.0/gio/giomodule.h -#usr/include/glib-2.0/gio/gioscheduler.h -#usr/include/glib-2.0/gio/giostream.h -#usr/include/glib-2.0/gio/giotypes.h -#usr/include/glib-2.0/gio/gloadableicon.h -#usr/include/glib-2.0/gio/gmemoryinputstream.h -#usr/include/glib-2.0/gio/gmemoryoutputstream.h -#usr/include/glib-2.0/gio/gmount.h -#usr/include/glib-2.0/gio/gmountoperation.h -#usr/include/glib-2.0/gio/gnativevolumemonitor.h -#usr/include/glib-2.0/gio/gnetworkaddress.h -#usr/include/glib-2.0/gio/gnetworkservice.h -#usr/include/glib-2.0/gio/goutputstream.h -#usr/include/glib-2.0/gio/gresolver.h -#usr/include/glib-2.0/gio/gseekable.h -#usr/include/glib-2.0/gio/gsimpleasyncresult.h -#usr/include/glib-2.0/gio/gsocket.h -#usr/include/glib-2.0/gio/gsocketaddress.h -#usr/include/glib-2.0/gio/gsocketaddressenumerator.h -#usr/include/glib-2.0/gio/gsocketclient.h -#usr/include/glib-2.0/gio/gsocketconnectable.h -#usr/include/glib-2.0/gio/gsocketconnection.h -#usr/include/glib-2.0/gio/gsocketcontrolmessage.h -#usr/include/glib-2.0/gio/gsocketlistener.h -#usr/include/glib-2.0/gio/gsocketservice.h -#usr/include/glib-2.0/gio/gsrvtarget.h -#usr/include/glib-2.0/gio/gtcpconnection.h -#usr/include/glib-2.0/gio/gthemedicon.h -#usr/include/glib-2.0/gio/gthreadedsocketservice.h -#usr/include/glib-2.0/gio/gvfs.h -#usr/include/glib-2.0/gio/gvolume.h -#usr/include/glib-2.0/gio/gvolumemonitor.h -#usr/include/glib-2.0/glib -#usr/include/glib-2.0/glib-object.h -#usr/include/glib-2.0/glib.h -#usr/include/glib-2.0/glib/galloca.h -#usr/include/glib-2.0/glib/garray.h -#usr/include/glib-2.0/glib/gasyncqueue.h -#usr/include/glib-2.0/glib/gatomic.h -#usr/include/glib-2.0/glib/gbacktrace.h -#usr/include/glib-2.0/glib/gbase64.h -#usr/include/glib-2.0/glib/gbookmarkfile.h -#usr/include/glib-2.0/glib/gcache.h -#usr/include/glib-2.0/glib/gchecksum.h -#usr/include/glib-2.0/glib/gcompletion.h -#usr/include/glib-2.0/glib/gconvert.h -#usr/include/glib-2.0/glib/gdataset.h -#usr/include/glib-2.0/glib/gdate.h -#usr/include/glib-2.0/glib/gdir.h -#usr/include/glib-2.0/glib/gerror.h -#usr/include/glib-2.0/glib/gfileutils.h -#usr/include/glib-2.0/glib/ghash.h -#usr/include/glib-2.0/glib/ghook.h -#usr/include/glib-2.0/glib/ghostutils.h -#usr/include/glib-2.0/glib/gi18n-lib.h -#usr/include/glib-2.0/glib/gi18n.h -#usr/include/glib-2.0/glib/giochannel.h -#usr/include/glib-2.0/glib/gkeyfile.h -#usr/include/glib-2.0/glib/glist.h -#usr/include/glib-2.0/glib/gmacros.h -#usr/include/glib-2.0/glib/gmain.h -#usr/include/glib-2.0/glib/gmappedfile.h -#usr/include/glib-2.0/glib/gmarkup.h -#usr/include/glib-2.0/glib/gmem.h -#usr/include/glib-2.0/glib/gmessages.h -#usr/include/glib-2.0/glib/gnode.h -#usr/include/glib-2.0/glib/goption.h -#usr/include/glib-2.0/glib/gpattern.h -#usr/include/glib-2.0/glib/gpoll.h -#usr/include/glib-2.0/glib/gprimes.h -#usr/include/glib-2.0/glib/gprintf.h -#usr/include/glib-2.0/glib/gqsort.h -#usr/include/glib-2.0/glib/gquark.h -#usr/include/glib-2.0/glib/gqueue.h -#usr/include/glib-2.0/glib/grand.h -#usr/include/glib-2.0/glib/gregex.h -#usr/include/glib-2.0/glib/grel.h -#usr/include/glib-2.0/glib/gscanner.h -#usr/include/glib-2.0/glib/gsequence.h -#usr/include/glib-2.0/glib/gshell.h -#usr/include/glib-2.0/glib/gslice.h -#usr/include/glib-2.0/glib/gslist.h -#usr/include/glib-2.0/glib/gspawn.h -#usr/include/glib-2.0/glib/gstdio.h -#usr/include/glib-2.0/glib/gstrfuncs.h -#usr/include/glib-2.0/glib/gstring.h -#usr/include/glib-2.0/glib/gtestutils.h -#usr/include/glib-2.0/glib/gthread.h -#usr/include/glib-2.0/glib/gthreadpool.h -#usr/include/glib-2.0/glib/gtimer.h -#usr/include/glib-2.0/glib/gtree.h -#usr/include/glib-2.0/glib/gtypes.h -#usr/include/glib-2.0/glib/gunicode.h -#usr/include/glib-2.0/glib/gurifuncs.h -#usr/include/glib-2.0/glib/gutils.h -#usr/include/glib-2.0/glib/gwin32.h -#usr/include/glib-2.0/gmodule.h -#usr/include/glib-2.0/gobject -#usr/include/glib-2.0/gobject/gboxed.h -#usr/include/glib-2.0/gobject/gclosure.h -#usr/include/glib-2.0/gobject/genums.h -#usr/include/glib-2.0/gobject/gmarshal.h -#usr/include/glib-2.0/gobject/gobject.h -#usr/include/glib-2.0/gobject/gobjectnotifyqueue.c -#usr/include/glib-2.0/gobject/gparam.h -#usr/include/glib-2.0/gobject/gparamspecs.h -#usr/include/glib-2.0/gobject/gsignal.h -#usr/include/glib-2.0/gobject/gsourceclosure.h -#usr/include/glib-2.0/gobject/gtype.h -#usr/include/glib-2.0/gobject/gtypemodule.h -#usr/include/glib-2.0/gobject/gtypeplugin.h -#usr/include/glib-2.0/gobject/gvalue.h -#usr/include/glib-2.0/gobject/gvaluearray.h -#usr/include/glib-2.0/gobject/gvaluecollector.h -#usr/include/glib-2.0/gobject/gvaluetypes.h -#usr/lib/gio -#usr/lib/gio/modules -#usr/lib/glib-2.0 -#usr/lib/glib-2.0/include -#usr/lib/glib-2.0/include/glibconfig.h -#usr/lib/libgio-2.0.la -usr/lib/libgio-2.0.so -usr/lib/libgio-2.0.so.0 -usr/lib/libgio-2.0.so.0.2200.2 -#usr/lib/libglib-2.0.la -usr/lib/libglib-2.0.so -usr/lib/libglib-2.0.so.0 -usr/lib/libglib-2.0.so.0.2200.2 -#usr/lib/libgmodule-2.0.la -usr/lib/libgmodule-2.0.so -usr/lib/libgmodule-2.0.so.0 -usr/lib/libgmodule-2.0.so.0.2200.2 -#usr/lib/libgobject-2.0.la -usr/lib/libgobject-2.0.so -usr/lib/libgobject-2.0.so.0 -usr/lib/libgobject-2.0.so.0.2200.2 -#usr/lib/libgthread-2.0.la -usr/lib/libgthread-2.0.so -usr/lib/libgthread-2.0.so.0 -usr/lib/libgthread-2.0.so.0.2200.2 -#usr/lib/pkgconfig/gio-2.0.pc -#usr/lib/pkgconfig/gio-unix-2.0.pc -#usr/lib/pkgconfig/glib-2.0.pc -#usr/lib/pkgconfig/gmodule-2.0.pc -#usr/lib/pkgconfig/gmodule-export-2.0.pc -#usr/lib/pkgconfig/gmodule-no-export-2.0.pc -#usr/lib/pkgconfig/gobject-2.0.pc -#usr/lib/pkgconfig/gthread-2.0.pc -#usr/share/aclocal/glib-2.0.m4 -#usr/share/aclocal/glib-gettext.m4 -#usr/share/gdb -#usr/share/gdb/auto-load -usr/share/gdb/auto-load/libglib-2.0.so.0.2200.2-gdb.py -usr/share/gdb/auto-load/libgobject-2.0.so.0.2200.2-gdb.py -#usr/share/glib-2.0 -#usr/share/glib-2.0/gdb -usr/share/glib-2.0/gdb/glib.py -usr/share/glib-2.0/gdb/gobject.py -#usr/share/glib-2.0/gettext -#usr/share/glib-2.0/gettext/mkinstalldirs -#usr/share/glib-2.0/gettext/po -#usr/share/glib-2.0/gettext/po/Makefile.in.in -#usr/share/gtk-doc/html/gio -#usr/share/gtk-doc/html/gio/GAppInfo.html -#usr/share/gtk-doc/html/gio/GAsyncInitable.html -#usr/share/gtk-doc/html/gio/GAsyncResult.html -#usr/share/gtk-doc/html/gio/GBufferedInputStream.html -#usr/share/gtk-doc/html/gio/GBufferedOutputStream.html -#usr/share/gtk-doc/html/gio/GCancellable.html -#usr/share/gtk-doc/html/gio/GDataInputStream.html -#usr/share/gtk-doc/html/gio/GDataOutputStream.html -#usr/share/gtk-doc/html/gio/GDrive.html -#usr/share/gtk-doc/html/gio/GEmblem.html -#usr/share/gtk-doc/html/gio/GEmblemedIcon.html -#usr/share/gtk-doc/html/gio/GFile.html -#usr/share/gtk-doc/html/gio/GFileEnumerator.html -#usr/share/gtk-doc/html/gio/GFileIOStream.html -#usr/share/gtk-doc/html/gio/GFileIcon.html -#usr/share/gtk-doc/html/gio/GFileInfo.html -#usr/share/gtk-doc/html/gio/GFileInputStream.html -#usr/share/gtk-doc/html/gio/GFileMonitor.html -#usr/share/gtk-doc/html/gio/GFileOutputStream.html -#usr/share/gtk-doc/html/gio/GFilenameCompleter.html -#usr/share/gtk-doc/html/gio/GFilterInputStream.html -#usr/share/gtk-doc/html/gio/GFilterOutputStream.html -#usr/share/gtk-doc/html/gio/GIOModule.html -#usr/share/gtk-doc/html/gio/GIOStream.html -#usr/share/gtk-doc/html/gio/GIcon.html -#usr/share/gtk-doc/html/gio/GInetAddress.html -#usr/share/gtk-doc/html/gio/GInetSocketAddress.html -#usr/share/gtk-doc/html/gio/GInitable.html -#usr/share/gtk-doc/html/gio/GInputStream.html -#usr/share/gtk-doc/html/gio/GLoadableIcon.html -#usr/share/gtk-doc/html/gio/GMemoryInputStream.html -#usr/share/gtk-doc/html/gio/GMemoryOutputStream.html -#usr/share/gtk-doc/html/gio/GMount.html -#usr/share/gtk-doc/html/gio/GMountOperation.html -#usr/share/gtk-doc/html/gio/GNetworkAddress.html -#usr/share/gtk-doc/html/gio/GNetworkService.html -#usr/share/gtk-doc/html/gio/GOutputStream.html -#usr/share/gtk-doc/html/gio/GResolver.html -#usr/share/gtk-doc/html/gio/GSeekable.html -#usr/share/gtk-doc/html/gio/GSimpleAsyncResult.html -#usr/share/gtk-doc/html/gio/GSocket.html -#usr/share/gtk-doc/html/gio/GSocketAddress.html -#usr/share/gtk-doc/html/gio/GSocketClient.html -#usr/share/gtk-doc/html/gio/GSocketConnectable.html -#usr/share/gtk-doc/html/gio/GSocketConnection.html -#usr/share/gtk-doc/html/gio/GSocketControlMessage.html -#usr/share/gtk-doc/html/gio/GSocketListener.html -#usr/share/gtk-doc/html/gio/GSocketService.html -#usr/share/gtk-doc/html/gio/GThemedIcon.html -#usr/share/gtk-doc/html/gio/GThreadedSocketService.html -#usr/share/gtk-doc/html/gio/GUnixFDMessage.html -#usr/share/gtk-doc/html/gio/GUnixInputStream.html -#usr/share/gtk-doc/html/gio/GUnixOutputStream.html -#usr/share/gtk-doc/html/gio/GUnixSocketAddress.html -#usr/share/gtk-doc/html/gio/GVfs.html -#usr/share/gtk-doc/html/gio/GVolume.html -#usr/share/gtk-doc/html/gio/GVolumeMonitor.html -#usr/share/gtk-doc/html/gio/async.html -#usr/share/gtk-doc/html/gio/ch01.html -#usr/share/gtk-doc/html/gio/ch02.html -#usr/share/gtk-doc/html/gio/ch03.html -#usr/share/gtk-doc/html/gio/ch18.html -#usr/share/gtk-doc/html/gio/ch19.html -#usr/share/gtk-doc/html/gio/ch19s02.html -#usr/share/gtk-doc/html/gio/ch19s03.html -#usr/share/gtk-doc/html/gio/extending-gio.html -#usr/share/gtk-doc/html/gio/extending.html -#usr/share/gtk-doc/html/gio/failable_initialization.html -#usr/share/gtk-doc/html/gio/file_mon.html -#usr/share/gtk-doc/html/gio/file_ops.html -#usr/share/gtk-doc/html/gio/gio-Desktop-file-based-GAppInfo.html -#usr/share/gtk-doc/html/gio/gio-Extension-Points.html -#usr/share/gtk-doc/html/gio/gio-GContentType.html -#usr/share/gtk-doc/html/gio/gio-GFileAttribute.html -#usr/share/gtk-doc/html/gio/gio-GIOError.html -#usr/share/gtk-doc/html/gio/gio-GIOScheduler.html -#usr/share/gtk-doc/html/gio/gio-GSrvTarget.html -#usr/share/gtk-doc/html/gio/gio-Unix-Mounts.html -#usr/share/gtk-doc/html/gio/gio-hierarchy.html -#usr/share/gtk-doc/html/gio/gio.devhelp -#usr/share/gtk-doc/html/gio/gio.devhelp2 -#usr/share/gtk-doc/html/gio/gvfs-overview.png -#usr/share/gtk-doc/html/gio/highlevel-socket.html -#usr/share/gtk-doc/html/gio/home.png -#usr/share/gtk-doc/html/gio/icons.html -#usr/share/gtk-doc/html/gio/index.html -#usr/share/gtk-doc/html/gio/index.sgml -#usr/share/gtk-doc/html/gio/ix01.html -#usr/share/gtk-doc/html/gio/ix02.html -#usr/share/gtk-doc/html/gio/ix03.html -#usr/share/gtk-doc/html/gio/ix04.html -#usr/share/gtk-doc/html/gio/ix05.html -#usr/share/gtk-doc/html/gio/left.png -#usr/share/gtk-doc/html/gio/migrating.html -#usr/share/gtk-doc/html/gio/networking.html -#usr/share/gtk-doc/html/gio/pt01.html -#usr/share/gtk-doc/html/gio/pt02.html -#usr/share/gtk-doc/html/gio/resolver.html -#usr/share/gtk-doc/html/gio/right.png -#usr/share/gtk-doc/html/gio/streaming.html -#usr/share/gtk-doc/html/gio/style.css -#usr/share/gtk-doc/html/gio/types.html -#usr/share/gtk-doc/html/gio/up.png -#usr/share/gtk-doc/html/gio/utils.html -#usr/share/gtk-doc/html/gio/volume_mon.html -#usr/share/gtk-doc/html/glib -#usr/share/gtk-doc/html/glib/file-name-encodings.png -#usr/share/gtk-doc/html/glib/glib-Arrays.html -#usr/share/gtk-doc/html/glib/glib-Asynchronous-Queues.html -#usr/share/gtk-doc/html/glib/glib-Atomic-Operations.html -#usr/share/gtk-doc/html/glib/glib-Automatic-String-Completion.html -#usr/share/gtk-doc/html/glib/glib-Balanced-Binary-Trees.html -#usr/share/gtk-doc/html/glib/glib-Base64-Encoding.html -#usr/share/gtk-doc/html/glib/glib-Basic-Types.html -#usr/share/gtk-doc/html/glib/glib-Bookmark-file-parser.html -#usr/share/gtk-doc/html/glib/glib-Byte-Arrays.html -#usr/share/gtk-doc/html/glib/glib-Byte-Order-Macros.html -#usr/share/gtk-doc/html/glib/glib-Caches.html -#usr/share/gtk-doc/html/glib/glib-Character-Set-Conversion.html -#usr/share/gtk-doc/html/glib/glib-Commandline-option-parser.html -#usr/share/gtk-doc/html/glib/glib-Data-Checksums.html -#usr/share/gtk-doc/html/glib/glib-Datasets.html -#usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html -#usr/share/gtk-doc/html/glib/glib-Double-ended-Queues.html -#usr/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html -#usr/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.html -#usr/share/gtk-doc/html/glib/glib-Error-Reporting.html -#usr/share/gtk-doc/html/glib/glib-File-Utilities.html -#usr/share/gtk-doc/html/glib/glib-Glob-style-pattern-matching.html -#usr/share/gtk-doc/html/glib/glib-Hash-Tables.html -#usr/share/gtk-doc/html/glib/glib-Hook-Functions.html -#usr/share/gtk-doc/html/glib/glib-Hostname-Utilities.html -#usr/share/gtk-doc/html/glib/glib-I18N.html -#usr/share/gtk-doc/html/glib/glib-IO-Channels.html -#usr/share/gtk-doc/html/glib/glib-Key-value-file-parser.html -#usr/share/gtk-doc/html/glib/glib-Keyed-Data-Lists.html -#usr/share/gtk-doc/html/glib/glib-Lexical-Scanner.html -#usr/share/gtk-doc/html/glib/glib-Limits-of-Basic-Types.html -#usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html -#usr/share/gtk-doc/html/glib/glib-Memory-Allocators.html -#usr/share/gtk-doc/html/glib/glib-Memory-Chunks.html -#usr/share/gtk-doc/html/glib/glib-Memory-Slices.html -#usr/share/gtk-doc/html/glib/glib-Message-Logging.html -#usr/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html -#usr/share/gtk-doc/html/glib/glib-Miscellaneous-Utility-Functions.html -#usr/share/gtk-doc/html/glib/glib-N-ary-Trees.html -#usr/share/gtk-doc/html/glib/glib-Numerical-Definitions.html -#usr/share/gtk-doc/html/glib/glib-Perl-compatible-regular-expressions.html -#usr/share/gtk-doc/html/glib/glib-Pointer-Arrays.html -#usr/share/gtk-doc/html/glib/glib-Quarks.html -#usr/share/gtk-doc/html/glib/glib-Random-Numbers.html -#usr/share/gtk-doc/html/glib/glib-Relations-and-Tuples.html -#usr/share/gtk-doc/html/glib/glib-Sequences.html -#usr/share/gtk-doc/html/glib/glib-Shell-related-Utilities.html -#usr/share/gtk-doc/html/glib/glib-Simple-XML-Subset-Parser.html -#usr/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html -#usr/share/gtk-doc/html/glib/glib-Spawning-Processes.html -#usr/share/gtk-doc/html/glib/glib-Standard-Macros.html -#usr/share/gtk-doc/html/glib/glib-String-Chunks.html -#usr/share/gtk-doc/html/glib/glib-String-Utility-Functions.html -#usr/share/gtk-doc/html/glib/glib-Strings.html -#usr/share/gtk-doc/html/glib/glib-Testing.html -#usr/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html -#usr/share/gtk-doc/html/glib/glib-Thread-Pools.html -#usr/share/gtk-doc/html/glib/glib-Threads.html -#usr/share/gtk-doc/html/glib/glib-Timers.html -#usr/share/gtk-doc/html/glib/glib-Trash-Stacks.html -#usr/share/gtk-doc/html/glib/glib-Type-Conversion-Macros.html -#usr/share/gtk-doc/html/glib/glib-URI-Functions.html -#usr/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html -#usr/share/gtk-doc/html/glib/glib-Version-Information.html -#usr/share/gtk-doc/html/glib/glib-Warnings-and-Assertions.html -#usr/share/gtk-doc/html/glib/glib-Windows-Compatibility-Functions.html -#usr/share/gtk-doc/html/glib/glib-building.html -#usr/share/gtk-doc/html/glib/glib-changes.html -#usr/share/gtk-doc/html/glib/glib-compiling.html -#usr/share/gtk-doc/html/glib/glib-core.html -#usr/share/gtk-doc/html/glib/glib-cross-compiling.html -#usr/share/gtk-doc/html/glib/glib-data-types.html -#usr/share/gtk-doc/html/glib/glib-fundamentals.html -#usr/share/gtk-doc/html/glib/glib-gettextize.html -#usr/share/gtk-doc/html/glib/glib-regex-syntax.html -#usr/share/gtk-doc/html/glib/glib-resources.html -#usr/share/gtk-doc/html/glib/glib-running.html -#usr/share/gtk-doc/html/glib/glib-utilities.html -#usr/share/gtk-doc/html/glib/glib.devhelp -#usr/share/gtk-doc/html/glib/glib.devhelp2 -#usr/share/gtk-doc/html/glib/glib.html -#usr/share/gtk-doc/html/glib/gtester-report.html -#usr/share/gtk-doc/html/glib/gtester.html -#usr/share/gtk-doc/html/glib/home.png -#usr/share/gtk-doc/html/glib/index.html -#usr/share/gtk-doc/html/glib/index.sgml -#usr/share/gtk-doc/html/glib/ix01.html -#usr/share/gtk-doc/html/glib/ix02.html -#usr/share/gtk-doc/html/glib/ix03.html -#usr/share/gtk-doc/html/glib/ix04.html -#usr/share/gtk-doc/html/glib/ix05.html -#usr/share/gtk-doc/html/glib/ix06.html -#usr/share/gtk-doc/html/glib/ix07.html -#usr/share/gtk-doc/html/glib/ix08.html -#usr/share/gtk-doc/html/glib/ix09.html -#usr/share/gtk-doc/html/glib/ix10.html -#usr/share/gtk-doc/html/glib/ix11.html -#usr/share/gtk-doc/html/glib/ix12.html -#usr/share/gtk-doc/html/glib/ix13.html -#usr/share/gtk-doc/html/glib/left.png -#usr/share/gtk-doc/html/glib/mainloop-states.gif -#usr/share/gtk-doc/html/glib/right.png -#usr/share/gtk-doc/html/glib/style.css -#usr/share/gtk-doc/html/glib/tools.html -#usr/share/gtk-doc/html/glib/up.png -#usr/share/gtk-doc/html/gobject -#usr/share/gtk-doc/html/gobject/GTypeModule.html -#usr/share/gtk-doc/html/gobject/GTypePlugin.html -#usr/share/gtk-doc/html/gobject/ch01s02.html -#usr/share/gtk-doc/html/gobject/ch06s03.html -#usr/share/gtk-doc/html/gobject/chapter-gobject.html -#usr/share/gtk-doc/html/gobject/chapter-gtype.html -#usr/share/gtk-doc/html/gobject/chapter-intro.html -#usr/share/gtk-doc/html/gobject/chapter-signal.html -#usr/share/gtk-doc/html/gobject/glib-genmarshal.html -#usr/share/gtk-doc/html/gobject/glib-mkenums.html -#usr/share/gtk-doc/html/gobject/glue.png -#usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html -#usr/share/gtk-doc/html/gobject/gobject-Closures.html -#usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html -#usr/share/gtk-doc/html/gobject/gobject-GParamSpec.html -#usr/share/gtk-doc/html/gobject/gobject-Generic-values.html -#usr/share/gtk-doc/html/gobject/gobject-Signals.html -#usr/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html -#usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html -#usr/share/gtk-doc/html/gobject/gobject-Type-Information.html -#usr/share/gtk-doc/html/gobject/gobject-Value-arrays.html -#usr/share/gtk-doc/html/gobject/gobject-Varargs-Value-Collection.html -#usr/share/gtk-doc/html/gobject/gobject-memory.html -#usr/share/gtk-doc/html/gobject/gobject-properties.html -#usr/share/gtk-doc/html/gobject/gobject-query.html -#usr/share/gtk-doc/html/gobject/gobject.devhelp -#usr/share/gtk-doc/html/gobject/gobject.devhelp2 -#usr/share/gtk-doc/html/gobject/gtype-conventions.html -#usr/share/gtk-doc/html/gobject/gtype-instantiable-classed.html -#usr/share/gtk-doc/html/gobject/gtype-non-instantiable-classed.html -#usr/share/gtk-doc/html/gobject/gtype-non-instantiable.html -#usr/share/gtk-doc/html/gobject/home.png -#usr/share/gtk-doc/html/gobject/howto-gobject-chainup.html -#usr/share/gtk-doc/html/gobject/howto-gobject-code.html -#usr/share/gtk-doc/html/gobject/howto-gobject-construction.html -#usr/share/gtk-doc/html/gobject/howto-gobject-destruction.html -#usr/share/gtk-doc/html/gobject/howto-gobject-methods.html -#usr/share/gtk-doc/html/gobject/howto-gobject.html -#usr/share/gtk-doc/html/gobject/howto-interface-implement.html -#usr/share/gtk-doc/html/gobject/howto-interface-properties.html -#usr/share/gtk-doc/html/gobject/howto-interface.html -#usr/share/gtk-doc/html/gobject/howto-signals.html -#usr/share/gtk-doc/html/gobject/index.html -#usr/share/gtk-doc/html/gobject/index.sgml -#usr/share/gtk-doc/html/gobject/ix01.html -#usr/share/gtk-doc/html/gobject/ix02.html -#usr/share/gtk-doc/html/gobject/ix03.html -#usr/share/gtk-doc/html/gobject/ix04.html -#usr/share/gtk-doc/html/gobject/ix05.html -#usr/share/gtk-doc/html/gobject/ix06.html -#usr/share/gtk-doc/html/gobject/ix07.html -#usr/share/gtk-doc/html/gobject/ix08.html -#usr/share/gtk-doc/html/gobject/ix09.html -#usr/share/gtk-doc/html/gobject/ix10.html -#usr/share/gtk-doc/html/gobject/ix11.html -#usr/share/gtk-doc/html/gobject/left.png -#usr/share/gtk-doc/html/gobject/pr01.html -#usr/share/gtk-doc/html/gobject/pt01.html -#usr/share/gtk-doc/html/gobject/pt02.html -#usr/share/gtk-doc/html/gobject/pt03.html -#usr/share/gtk-doc/html/gobject/right.png -#usr/share/gtk-doc/html/gobject/rn01.html -#usr/share/gtk-doc/html/gobject/rn02.html -#usr/share/gtk-doc/html/gobject/signal.html -#usr/share/gtk-doc/html/gobject/style.css -#usr/share/gtk-doc/html/gobject/tools-ginspector.html -#usr/share/gtk-doc/html/gobject/tools-gob.html -#usr/share/gtk-doc/html/gobject/tools-gtkdoc.html -#usr/share/gtk-doc/html/gobject/tools-refdb.html -#usr/share/gtk-doc/html/gobject/tools-vala.html -#usr/share/gtk-doc/html/gobject/up.png -#usr/share/locale/am -#usr/share/locale/am/LC_MESSAGES -#usr/share/locale/am/LC_MESSAGES/glib20.mo -#usr/share/locale/ar/LC_MESSAGES/glib20.mo -#usr/share/locale/as/LC_MESSAGES/glib20.mo -#usr/share/locale/az -#usr/share/locale/az/LC_MESSAGES -#usr/share/locale/az/LC_MESSAGES/glib20.mo -#usr/share/locale/be/LC_MESSAGES/glib20.mo -#usr/share/locale/be@latin -#usr/share/locale/be@latin/LC_MESSAGES -#usr/share/locale/be@latin/LC_MESSAGES/glib20.mo -#usr/share/locale/bg/LC_MESSAGES/glib20.mo -#usr/share/locale/bn/LC_MESSAGES/glib20.mo -#usr/share/locale/bn_IN/LC_MESSAGES/glib20.mo -#usr/share/locale/bs/LC_MESSAGES/glib20.mo -#usr/share/locale/ca/LC_MESSAGES/glib20.mo -#usr/share/locale/ca@valencia -#usr/share/locale/ca@valencia/LC_MESSAGES -#usr/share/locale/ca@valencia/LC_MESSAGES/glib20.mo -#usr/share/locale/cs/LC_MESSAGES/glib20.mo -#usr/share/locale/cy/LC_MESSAGES/glib20.mo -#usr/share/locale/da/LC_MESSAGES/glib20.mo -#usr/share/locale/de/LC_MESSAGES/glib20.mo -#usr/share/locale/dz -#usr/share/locale/dz/LC_MESSAGES -#usr/share/locale/dz/LC_MESSAGES/glib20.mo -#usr/share/locale/el/LC_MESSAGES/glib20.mo -#usr/share/locale/en_CA -#usr/share/locale/en_CA/LC_MESSAGES -#usr/share/locale/en_CA/LC_MESSAGES/glib20.mo -#usr/share/locale/en_GB/LC_MESSAGES/glib20.mo -#usr/share/locale/eo -#usr/share/locale/eo/LC_MESSAGES -#usr/share/locale/eo/LC_MESSAGES/glib20.mo -#usr/share/locale/es/LC_MESSAGES/glib20.mo -#usr/share/locale/et/LC_MESSAGES/glib20.mo -#usr/share/locale/eu -#usr/share/locale/eu/LC_MESSAGES -#usr/share/locale/eu/LC_MESSAGES/glib20.mo -#usr/share/locale/fa -#usr/share/locale/fa/LC_MESSAGES -#usr/share/locale/fa/LC_MESSAGES/glib20.mo -#usr/share/locale/fi/LC_MESSAGES/glib20.mo -#usr/share/locale/fr/LC_MESSAGES/glib20.mo -#usr/share/locale/ga -#usr/share/locale/ga/LC_MESSAGES -#usr/share/locale/ga/LC_MESSAGES/glib20.mo -#usr/share/locale/gl/LC_MESSAGES/glib20.mo -#usr/share/locale/gu/LC_MESSAGES/glib20.mo -#usr/share/locale/he/LC_MESSAGES/glib20.mo -#usr/share/locale/hi/LC_MESSAGES/glib20.mo -#usr/share/locale/hr/LC_MESSAGES/glib20.mo -#usr/share/locale/hu/LC_MESSAGES/glib20.mo -#usr/share/locale/hy/LC_MESSAGES/glib20.mo -#usr/share/locale/id/LC_MESSAGES/glib20.mo -#usr/share/locale/is/LC_MESSAGES/glib20.mo -#usr/share/locale/it/LC_MESSAGES/glib20.mo -#usr/share/locale/ja/LC_MESSAGES/glib20.mo -#usr/share/locale/ka/LC_MESSAGES/glib20.mo -#usr/share/locale/kn/LC_MESSAGES/glib20.mo -#usr/share/locale/ko/LC_MESSAGES/glib20.mo -#usr/share/locale/ku/LC_MESSAGES/glib20.mo -#usr/share/locale/lt/LC_MESSAGES/glib20.mo -#usr/share/locale/lv/LC_MESSAGES/glib20.mo -#usr/share/locale/mai -#usr/share/locale/mai/LC_MESSAGES -#usr/share/locale/mai/LC_MESSAGES/glib20.mo -#usr/share/locale/mg -#usr/share/locale/mg/LC_MESSAGES -#usr/share/locale/mg/LC_MESSAGES/glib20.mo -#usr/share/locale/mk/LC_MESSAGES/glib20.mo -#usr/share/locale/ml/LC_MESSAGES/glib20.mo -#usr/share/locale/mn -#usr/share/locale/mn/LC_MESSAGES -#usr/share/locale/mn/LC_MESSAGES/glib20.mo -#usr/share/locale/mr/LC_MESSAGES/glib20.mo -#usr/share/locale/ms/LC_MESSAGES/glib20.mo -#usr/share/locale/nb/LC_MESSAGES/glib20.mo -#usr/share/locale/ne -#usr/share/locale/ne/LC_MESSAGES -#usr/share/locale/ne/LC_MESSAGES/glib20.mo -#usr/share/locale/nl/LC_MESSAGES/glib20.mo -#usr/share/locale/nn/LC_MESSAGES/glib20.mo -#usr/share/locale/oc -#usr/share/locale/oc/LC_MESSAGES -#usr/share/locale/oc/LC_MESSAGES/glib20.mo -#usr/share/locale/or/LC_MESSAGES/glib20.mo -#usr/share/locale/pa/LC_MESSAGES/glib20.mo -#usr/share/locale/pl/LC_MESSAGES/glib20.mo -#usr/share/locale/ps -#usr/share/locale/ps/LC_MESSAGES -#usr/share/locale/ps/LC_MESSAGES/glib20.mo -#usr/share/locale/pt/LC_MESSAGES/glib20.mo -#usr/share/locale/pt_BR/LC_MESSAGES/glib20.mo -#usr/share/locale/ro/LC_MESSAGES/glib20.mo -#usr/share/locale/ru/LC_MESSAGES/glib20.mo -#usr/share/locale/rw -#usr/share/locale/rw/LC_MESSAGES -#usr/share/locale/rw/LC_MESSAGES/glib20.mo -#usr/share/locale/si/LC_MESSAGES/glib20.mo -#usr/share/locale/sk/LC_MESSAGES/glib20.mo -#usr/share/locale/sl/LC_MESSAGES/glib20.mo -#usr/share/locale/sq/LC_MESSAGES/glib20.mo -#usr/share/locale/sr/LC_MESSAGES/glib20.mo -#usr/share/locale/sr@ije -#usr/share/locale/sr@ije/LC_MESSAGES -#usr/share/locale/sr@ije/LC_MESSAGES/glib20.mo -#usr/share/locale/sr@latin -#usr/share/locale/sr@latin/LC_MESSAGES -#usr/share/locale/sr@latin/LC_MESSAGES/glib20.mo -#usr/share/locale/sv/LC_MESSAGES/glib20.mo -#usr/share/locale/ta/LC_MESSAGES/glib20.mo -#usr/share/locale/te/LC_MESSAGES/glib20.mo -#usr/share/locale/th -#usr/share/locale/th/LC_MESSAGES -#usr/share/locale/th/LC_MESSAGES/glib20.mo -#usr/share/locale/tl -#usr/share/locale/tl/LC_MESSAGES -#usr/share/locale/tl/LC_MESSAGES/glib20.mo -#usr/share/locale/tr/LC_MESSAGES/glib20.mo -#usr/share/locale/tt -#usr/share/locale/tt/LC_MESSAGES -#usr/share/locale/tt/LC_MESSAGES/glib20.mo -#usr/share/locale/uk/LC_MESSAGES/glib20.mo -#usr/share/locale/vi/LC_MESSAGES/glib20.mo -#usr/share/locale/wa/LC_MESSAGES/glib20.mo -#usr/share/locale/xh -#usr/share/locale/xh/LC_MESSAGES -#usr/share/locale/xh/LC_MESSAGES/glib20.mo -#usr/share/locale/yi -#usr/share/locale/yi/LC_MESSAGES -#usr/share/locale/yi/LC_MESSAGES/glib20.mo -#usr/share/locale/zh_CN/LC_MESSAGES/glib20.mo -#usr/share/locale/zh_HK -#usr/share/locale/zh_HK/LC_MESSAGES -#usr/share/locale/zh_HK/LC_MESSAGES/glib20.mo -#usr/share/locale/zh_TW/LC_MESSAGES/glib20.mo -#usr/share/man/man1/glib-genmarshal.1 -#usr/share/man/man1/glib-gettextize.1 -#usr/share/man/man1/glib-mkenums.1 -#usr/share/man/man1/gobject-query.1 -#usr/share/man/man1/gtester-report.1 -#usr/share/man/man1/gtester.1 diff --git a/config/rootfiles/packages/gnump3d b/config/rootfiles/packages/gnump3d index f7b18a7..450adfb 100644 --- a/config/rootfiles/packages/gnump3d +++ b/config/rootfiles/packages/gnump3d @@ -1,9 +1,9 @@ +etc/fcron.daily/gnump3d-index #etc/gnump3d etc/gnump3d/file.types etc/gnump3d/gnump3d.conf etc/gnump3d/mime.types etc/rc.d/init.d/gnump3d -etc/fcron.daily/gnump3d-index usr/bin/gnump3d usr/bin/gnump3d-index usr/bin/gnump3d-top @@ -43,7 +43,8 @@ usr/lib/perl5/5.12.3/gnump3d/readtags.pm usr/lib/perl5/5.12.3/gnump3d/sorting.pm usr/lib/perl5/5.12.3/gnump3d/tagcache.pm usr/lib/perl5/5.12.3/gnump3d/url.pm -usr/lib/perl5/5.12.3/Pod +#usr/local/man +#usr/local/man/man1 #usr/local/man/man1/gnump3d-index.1 #usr/local/man/man1/gnump3d-top.1 #usr/local/man/man1/gnump3d.1 @@ -53,7 +54,6 @@ usr/share/gnump3d #usr/share/gnump3d/Avalon/AUTHOR #usr/share/gnump3d/Avalon/COPYING.html #usr/share/gnump3d/Avalon/base.css -#usr/share/gnump3d/Avalon/bug.html #usr/share/gnump3d/Avalon/error.html #usr/share/gnump3d/Avalon/gnump3d-logo.jpg #usr/share/gnump3d/Avalon/html_footer.tmpl @@ -77,7 +77,6 @@ usr/share/gnump3d #usr/share/gnump3d/BlueBox/AUTHOR #usr/share/gnump3d/BlueBox/BlueBox.css #usr/share/gnump3d/BlueBox/COPYING.html -#usr/share/gnump3d/BlueBox/bug.html #usr/share/gnump3d/BlueBox/error.html #usr/share/gnump3d/BlueBox/extras.html #usr/share/gnump3d/BlueBox/footer.tmpl @@ -99,7 +98,6 @@ usr/share/gnump3d #usr/share/gnump3d/Clean #usr/share/gnump3d/Clean/AUTHOR #usr/share/gnump3d/Clean/COPYING.html -#usr/share/gnump3d/Clean/bug.html #usr/share/gnump3d/Clean/error.html #usr/share/gnump3d/Clean/index.html #usr/share/gnump3d/Clean/info.html @@ -118,7 +116,6 @@ usr/share/gnump3d #usr/share/gnump3d/LaFrere #usr/share/gnump3d/LaFrere/AUTHOR #usr/share/gnump3d/LaFrere/COPYING.html -#usr/share/gnump3d/LaFrere/bug.html #usr/share/gnump3d/LaFrere/error.html #usr/share/gnump3d/LaFrere/index.html #usr/share/gnump3d/LaFrere/info.html @@ -137,7 +134,6 @@ usr/share/gnump3d #usr/share/gnump3d/Liquid/AUTHOR #usr/share/gnump3d/Liquid/COPYING.html #usr/share/gnump3d/Liquid/bck.gif -#usr/share/gnump3d/Liquid/bug.html #usr/share/gnump3d/Liquid/cel-bar-anthrazite-act.gif #usr/share/gnump3d/Liquid/cel-bar-anthrazite.gif #usr/share/gnump3d/Liquid/cel-bar-aqua-act.gif @@ -188,7 +184,6 @@ usr/share/gnump3d #usr/share/gnump3d/Musicus #usr/share/gnump3d/Musicus/AUTHOR #usr/share/gnump3d/Musicus/COPYING.html -#usr/share/gnump3d/Musicus/bug.html #usr/share/gnump3d/Musicus/error.html #usr/share/gnump3d/Musicus/extras.html #usr/share/gnump3d/Musicus/footer.tmpl @@ -214,7 +209,6 @@ usr/share/gnump3d #usr/share/gnump3d/Nomad/Nomad_theme.css #usr/share/gnump3d/Nomad/SmallHome.gif #usr/share/gnump3d/Nomad/bg.gif -#usr/share/gnump3d/Nomad/bug.html #usr/share/gnump3d/Nomad/error.html #usr/share/gnump3d/Nomad/gnump3d_themes_footer.tmpl #usr/share/gnump3d/Nomad/gnump3d_themes_header.tmpl @@ -235,7 +229,6 @@ usr/share/gnump3d #usr/share/gnump3d/SchwartzNGrau #usr/share/gnump3d/SchwartzNGrau/AUTHOR #usr/share/gnump3d/SchwartzNGrau/COPYING.html -#usr/share/gnump3d/SchwartzNGrau/bug.html #usr/share/gnump3d/SchwartzNGrau/clear.gif #usr/share/gnump3d/SchwartzNGrau/error.html #usr/share/gnump3d/SchwartzNGrau/index.html @@ -254,7 +247,6 @@ usr/share/gnump3d #usr/share/gnump3d/Tabular #usr/share/gnump3d/Tabular/AUTHOR #usr/share/gnump3d/Tabular/COPYING.html -#usr/share/gnump3d/Tabular/bug.html #usr/share/gnump3d/Tabular/error.html #usr/share/gnump3d/Tabular/extras.html #usr/share/gnump3d/Tabular/footer.tmpl @@ -276,7 +268,6 @@ usr/share/gnump3d #usr/share/gnump3d/Thexder #usr/share/gnump3d/Thexder/AUTHOR #usr/share/gnump3d/Thexder/COPYING.html -#usr/share/gnump3d/Thexder/bug.html #usr/share/gnump3d/Thexder/dig_temp2_01.jpg #usr/share/gnump3d/Thexder/dig_temp2_02.jpg #usr/share/gnump3d/Thexder/dig_temp2_03.gif @@ -308,7 +299,6 @@ usr/share/gnump3d #usr/share/gnump3d/default #usr/share/gnump3d/default/AUTHOR #usr/share/gnump3d/default/COPYING.html -#usr/share/gnump3d/default/bug.html #usr/share/gnump3d/default/error.html #usr/share/gnump3d/default/footer.tmpl #usr/share/gnump3d/default/header.tmpl @@ -328,7 +318,6 @@ usr/share/gnump3d #usr/share/gnump3d/dotNET #usr/share/gnump3d/dotNET/AUTHOR #usr/share/gnump3d/dotNET/COPYING.html -#usr/share/gnump3d/dotNET/bug.html #usr/share/gnump3d/dotNET/content.tmpl #usr/share/gnump3d/dotNET/error.html #usr/share/gnump3d/dotNET/header.tmpl @@ -365,7 +354,6 @@ usr/share/gnump3d #usr/share/gnump3d/nausicaa #usr/share/gnump3d/nausicaa/AUTHOR #usr/share/gnump3d/nausicaa/COPYING.html -#usr/share/gnump3d/nausicaa/bug.html #usr/share/gnump3d/nausicaa/error.html #usr/share/gnump3d/nausicaa/extras.html #usr/share/gnump3d/nausicaa/index.html @@ -382,7 +370,6 @@ usr/share/gnump3d #usr/share/gnump3d/redgrey #usr/share/gnump3d/redgrey/AUTHOR #usr/share/gnump3d/redgrey/COPYING.html -#usr/share/gnump3d/redgrey/bug.html #usr/share/gnump3d/redgrey/error.html #usr/share/gnump3d/redgrey/header.tmpl #usr/share/gnump3d/redgrey/index.html @@ -400,5 +387,4 @@ usr/share/gnump3d var/cache/gnump3d var/cache/gnump3d/serving var/log/gnump3d -#var/mp3 var/mp3/info diff --git a/config/rootfiles/packages/gpgme b/config/rootfiles/packages/gpgme new file mode 100644 index 0000000..2a03523 --- /dev/null +++ b/config/rootfiles/packages/gpgme @@ -0,0 +1,18 @@ +usr/bin/gpgme-config +#usr/include/gpgme.h +#usr/lib/libgpgme-pthread.la +usr/lib/libgpgme-pthread.so +usr/lib/libgpgme-pthread.so.11 +usr/lib/libgpgme-pthread.so.11.8.1 +#usr/lib/libgpgme.la +usr/lib/libgpgme.so +usr/lib/libgpgme.so.11 +usr/lib/libgpgme.so.11.8.1 +#usr/share/aclocal/gpgme.m4 +usr/share/common-lisp/source/gpgme +usr/share/common-lisp/source/gpgme/gpgme-package.lisp +usr/share/common-lisp/source/gpgme/gpgme.asd +usr/share/common-lisp/source/gpgme/gpgme.lisp +#usr/share/info/gpgme.info +#usr/share/info/gpgme.info-1 +#usr/share/info/gpgme.info-2 diff --git a/config/rootfiles/packages/hplip b/config/rootfiles/packages/hplip index 551afa7..74a2711 100644 --- a/config/rootfiles/packages/hplip +++ b/config/rootfiles/packages/hplip @@ -1,289 +1,242 @@ -usr/bin/hpijs -#usr/share/doc/hplip-2.7.10 -#usr/share/doc/hplip-2.7.10/COPYING -#usr/share/doc/hplip-2.7.10/README_LIBJPG -#usr/share/doc/hplip-2.7.10/about.html -#usr/share/doc/hplip-2.7.10/contacts.html -#usr/share/doc/hplip-2.7.10/downloads.html -#usr/share/doc/hplip-2.7.10/faqs.html -#usr/share/doc/hplip-2.7.10/features.html -#usr/share/doc/hplip-2.7.10/howtos -#usr/share/doc/hplip-2.7.10/howtos/build.html -#usr/share/doc/hplip-2.7.10/howtos/faxing.html -#usr/share/doc/hplip-2.7.10/howtos/index.html -#usr/share/doc/hplip-2.7.10/howtos/install.html -#usr/share/doc/hplip-2.7.10/howtos/io.html -#usr/share/doc/hplip-2.7.10/howtos/known.html -#usr/share/doc/hplip-2.7.10/howtos/negative.html -#usr/share/doc/hplip-2.7.10/howtos/other.html -#usr/share/doc/hplip-2.7.10/howtos/pcard.html -#usr/share/doc/hplip-2.7.10/howtos/printing.html -#usr/share/doc/hplip-2.7.10/howtos/scanning.html -#usr/share/doc/hplip-2.7.10/howtos/toolbox.html -#usr/share/doc/hplip-2.7.10/howtos/uninstall.html -#usr/share/doc/hplip-2.7.10/images -#usr/share/doc/hplip-2.7.10/images/Screenshot-xsane.png -#usr/share/doc/hplip-2.7.10/images/back.png -#usr/share/doc/hplip-2.7.10/images/button.png -#usr/share/doc/hplip-2.7.10/images/circular.gif -#usr/share/doc/hplip-2.7.10/images/cups_device_list.png -#usr/share/doc/hplip-2.7.10/images/cups_left.png -#usr/share/doc/hplip-2.7.10/images/cups_model_list.png -#usr/share/doc/hplip-2.7.10/images/cups_opening.png -#usr/share/doc/hplip-2.7.10/images/cups_printer_model.png -#usr/share/doc/hplip-2.7.10/images/download.png -#usr/share/doc/hplip-2.7.10/images/favicon.ico -#usr/share/doc/hplip-2.7.10/images/favicon2.ico -#usr/share/doc/hplip-2.7.10/images/fullbleed_1.png -#usr/share/doc/hplip-2.7.10/images/fullbleed_2.png -#usr/share/doc/hplip-2.7.10/images/fullbleed_3.png -#usr/share/doc/hplip-2.7.10/images/fullbleed_4.png -#usr/share/doc/hplip-2.7.10/images/gs_hpijs.png -#usr/share/doc/hplip-2.7.10/images/hp-tux-printer.png -#usr/share/doc/hplip-2.7.10/images/hp_invent_logo.png -#usr/share/doc/hplip-2.7.10/images/hplip_overview.png -#usr/share/doc/hplip-2.7.10/images/hpliplogo.png -#usr/share/doc/hplip-2.7.10/images/hplogo.png -#usr/share/doc/hplip-2.7.10/images/hplogo2.png -#usr/share/doc/hplip-2.7.10/images/linux_printing_logo.png -#usr/share/doc/hplip-2.7.10/images/linuxlogo.png -#usr/share/doc/hplip-2.7.10/images/network_appssocket.png -#usr/share/doc/hplip-2.7.10/images/network_device_list.png -#usr/share/doc/hplip-2.7.10/images/network_device_uri.png -#usr/share/doc/hplip-2.7.10/images/network_model_list.png -#usr/share/doc/hplip-2.7.10/images/osi_certified.png -#usr/share/doc/hplip-2.7.10/images/python-logo.png -#usr/share/doc/hplip-2.7.10/images/rest2web.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_copies.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_fax.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_unload.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_xsane.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step2.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step3.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step4.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step5.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step6.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_10_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_11.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_12.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_13.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_14.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_15.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_2.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_3.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_4.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_5.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_6.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_7_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_9_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_emailalerts.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions_autorefresh.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions_commands.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_control.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_functions.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_print.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_print1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_settings.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_settings.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_status.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_supplies.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_tools.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_copies.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_fax.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_unload.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_xsane.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step2.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step3.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step4.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step5.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step6.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_10_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_11.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_12.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_13.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_14.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_15.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_2.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_3.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_4.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_5.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_6.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_7_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_9_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_emailalerts.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions_autorefresh.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions_commands.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_control.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_functions.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_print.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_print1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_settings.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_settings.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_status.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_supplies.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_tools.png -#usr/share/doc/hplip-2.7.10/images/sflogo.png -#usr/share/doc/hplip-2.7.10/images/topbar.png -#usr/share/doc/hplip-2.7.10/images/tux.png -#usr/share/doc/hplip-2.7.10/images/tuxlogo.png -#usr/share/doc/hplip-2.7.10/images/tuxlogo2.png -#usr/share/doc/hplip-2.7.10/images/view.png -#usr/share/doc/hplip-2.7.10/images/yast_hardware.png -#usr/share/doc/hplip-2.7.10/images/yast_opening_hw.png -#usr/share/doc/hplip-2.7.10/images/yast_other_configure.png -#usr/share/doc/hplip-2.7.10/images/yast_other_kind.png -#usr/share/doc/hplip-2.7.10/images/yast_other_printer.png -#usr/share/doc/hplip-2.7.10/images/yast_printer_model.png -#usr/share/doc/hplip-2.7.10/index.html -#usr/share/doc/hplip-2.7.10/install -#usr/share/doc/hplip-2.7.10/install/index.html -#usr/share/doc/hplip-2.7.10/install/install -#usr/share/doc/hplip-2.7.10/install/install/index.html -#usr/share/doc/hplip-2.7.10/install/manual -#usr/share/doc/hplip-2.7.10/install/manual/configure.html -#usr/share/doc/hplip-2.7.10/install/manual/distros -#usr/share/doc/hplip-2.7.10/install/manual/distros/centos.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/debian.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/fedora_core.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/freebsd.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/gentoo.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/index.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/lfs.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/linspire.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/mac.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/mandriva.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/mepis.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/novell.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/other.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/redhat.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/redhatenterprise.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/slackware.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/ubuntu.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/windows.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/xandros.html -#usr/share/doc/hplip-2.7.10/install/manual/download.html -#usr/share/doc/hplip-2.7.10/install/manual/final.html -#usr/share/doc/hplip-2.7.10/install/manual/hp_setup.html -#usr/share/doc/hplip-2.7.10/install/manual/index.html -#usr/share/doc/hplip-2.7.10/install/manual/make.html -#usr/share/doc/hplip-2.7.10/install/manual/make_install.html -#usr/share/doc/hplip-2.7.10/install/manual/permissions.html -#usr/share/doc/hplip-2.7.10/install/step1 -#usr/share/doc/hplip-2.7.10/install/step1/apt.html -#usr/share/doc/hplip-2.7.10/install/step1/index.html -#usr/share/doc/hplip-2.7.10/install/step1/rpm.html -#usr/share/doc/hplip-2.7.10/install/step2 -#usr/share/doc/hplip-2.7.10/install/step2/debian.html -#usr/share/doc/hplip-2.7.10/install/step2/fc4.html -#usr/share/doc/hplip-2.7.10/install/step2/freebsd.html -#usr/share/doc/hplip-2.7.10/install/step2/index.html -#usr/share/doc/hplip-2.7.10/install/step2/mandriva06.html -#usr/share/doc/hplip-2.7.10/install/step2/other.html -#usr/share/doc/hplip-2.7.10/install/step2/slackware.html -#usr/share/doc/hplip-2.7.10/install/step2/suse10.html -#usr/share/doc/hplip-2.7.10/install/step2/ubuntu510.html -#usr/share/doc/hplip-2.7.10/install/step2/ubuntu606.html -#usr/share/doc/hplip-2.7.10/install/step3 -#usr/share/doc/hplip-2.7.10/install/step3/index.html -#usr/share/doc/hplip-2.7.10/install/step4 -#usr/share/doc/hplip-2.7.10/install/step4/cups -#usr/share/doc/hplip-2.7.10/install/step4/cups/index.html -#usr/share/doc/hplip-2.7.10/install/step4/cups/local.html -#usr/share/doc/hplip-2.7.10/install/step4/cups/net.html -#usr/share/doc/hplip-2.7.10/install/step4/index.html -#usr/share/doc/hplip-2.7.10/install/step4/setup -#usr/share/doc/hplip-2.7.10/install/step4/setup/index.html -#usr/share/doc/hplip-2.7.10/install/step4/setup/local.html -#usr/share/doc/hplip-2.7.10/install/step4/setup/net.html -#usr/share/doc/hplip-2.7.10/install/step4/suse -#usr/share/doc/hplip-2.7.10/install/step4/suse/index.html -#usr/share/doc/hplip-2.7.10/legal.html -#usr/share/doc/hplip-2.7.10/license.html -#usr/share/doc/hplip-2.7.10/mailing_lists.html -#usr/share/doc/hplip-2.7.10/other_support.html -#usr/share/doc/hplip-2.7.10/release_notes.html -#usr/share/doc/hplip-2.7.10/screenshots.html -#usr/share/doc/hplip-2.7.10/styles -#usr/share/doc/hplip-2.7.10/styles/default.css -#usr/share/doc/hplip-2.7.10/styles/rest.css -#usr/share/doc/hplip-2.7.10/support_statement.html -#usr/share/doc/hplip-2.7.10/supported_devices -#usr/share/doc/hplip-2.7.10/supported_devices/color_laser.html -#usr/share/doc/hplip-2.7.10/supported_devices/color_laser_mfp.html -#usr/share/doc/hplip-2.7.10/supported_devices/combined.html -#usr/share/doc/hplip-2.7.10/supported_devices/edgeline.html -#usr/share/doc/hplip-2.7.10/supported_devices/index.html -#usr/share/doc/hplip-2.7.10/supported_devices/inkjet.html -#usr/share/doc/hplip-2.7.10/supported_devices/inkjet_aio.html -#usr/share/doc/hplip-2.7.10/supported_devices/laser.html -#usr/share/doc/hplip-2.7.10/supported_devices/mono_laser_mfp.html -#usr/share/doc/hplip-2.7.10/supported_devices/photosmart.html -#usr/share/doc/hplip-2.7.10/supported_devices/scanjet.html -#usr/share/doc/hplip-2.7.10/supported_devices/unsupported.html -#usr/share/doc/hplip-2.7.10/system_requirements.html -#usr/share/doc/hplip-2.7.10/tech_docs -#usr/share/doc/hplip-2.7.10/tech_docs/device_classes.html -#usr/share/doc/hplip-2.7.10/tech_docs/hpijs.html -#usr/share/doc/hplip-2.7.10/tech_docs/index.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/align.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/check.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/clean.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/colorcal.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/fab.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/firmware.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/hpssd.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/index.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/info.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/install.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/levels.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/makecopies.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/makeuri.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/print.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/probe.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/scan.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/sendfax.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/setup.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/testpage.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/timedate.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/toolbox.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/unload.html -#usr/share/doc/hplip-2.7.10/tech_docs/overview.html -#usr/share/doc/hplip-2.7.10/tech_docs/page_sizes.html -#usr/share/doc/hplip-2.7.10/tech_docs/printable_areas.html -#usr/share/doc/hplip-2.7.10/tech_docs/tarball_install.html -#usr/share/doc/hplip-2.7.10/troubleshooting -#usr/share/doc/hplip-2.7.10/troubleshooting/build.html -#usr/share/doc/hplip-2.7.10/troubleshooting/distro.html -#usr/share/doc/hplip-2.7.10/troubleshooting/faxing.html -#usr/share/doc/hplip-2.7.10/troubleshooting/index.html -#usr/share/doc/hplip-2.7.10/troubleshooting/install.html -#usr/share/doc/hplip-2.7.10/troubleshooting/io.html -#usr/share/doc/hplip-2.7.10/troubleshooting/network.html -#usr/share/doc/hplip-2.7.10/troubleshooting/other.html -#usr/share/doc/hplip-2.7.10/troubleshooting/parallel.html -#usr/share/doc/hplip-2.7.10/troubleshooting/pcard.html -#usr/share/doc/hplip-2.7.10/troubleshooting/printing.html -#usr/share/doc/hplip-2.7.10/troubleshooting/scanning.html -#usr/share/doc/hplip-2.7.10/troubleshooting/toolbox.html -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_3800.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4Si_v2011.110.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_4200_Series.ppd.gz -usr/share/foomatic/db/source/printer/HP-OfficeJet_J3600.xml -usr/share/foomatic/db/source/printer/HP-OfficeJet_J5500.xml -usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K8600.xml -usr/share/foomatic/db/source/printer/HP-Officejet_K7100.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_C4380.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_C6200.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_C7200.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_C8100.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_D5300.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7200.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7400.xml +#usr/share/doc/hplip-3.12.6 +#usr/share/doc/hplip-3.12.6/COPYING +#usr/share/doc/hplip-3.12.6/README_LIBJPG +#usr/share/doc/hplip-3.12.6/commandline.html +#usr/share/doc/hplip-3.12.6/copying.html +#usr/share/doc/hplip-3.12.6/copyright +#usr/share/doc/hplip-3.12.6/devicemanager.html +#usr/share/doc/hplip-3.12.6/faxtrouble.html +#usr/share/doc/hplip-3.12.6/gettinghelp.html +#usr/share/doc/hplip-3.12.6/hpscan.html +#usr/share/doc/hplip-3.12.6/images +#usr/share/doc/hplip-3.12.6/images/favicon.ico +#usr/share/doc/hplip-3.12.6/images/print.png +#usr/share/doc/hplip-3.12.6/images/toolbox_actions.png +#usr/share/doc/hplip-3.12.6/images/toolbox_fax.png +#usr/share/doc/hplip-3.12.6/images/toolbox_print_control.png +#usr/share/doc/hplip-3.12.6/images/toolbox_print_settings.png +#usr/share/doc/hplip-3.12.6/images/toolbox_status.png +#usr/share/doc/hplip-3.12.6/images/toolbox_supplies.png +#usr/share/doc/hplip-3.12.6/images/xsane.png +#usr/share/doc/hplip-3.12.6/index.html +#usr/share/doc/hplip-3.12.6/mainttask.html +#usr/share/doc/hplip-3.12.6/plugins.html +#usr/share/doc/hplip-3.12.6/print.html +#usr/share/doc/hplip-3.12.6/printing.html +#usr/share/doc/hplip-3.12.6/printoptions.html +#usr/share/doc/hplip-3.12.6/printtroubleshooting.html +#usr/share/doc/hplip-3.12.6/scanning.html +#usr/share/doc/hplip-3.12.6/scantrouble.html +#usr/share/doc/hplip-3.12.6/sendfax.html +#usr/share/doc/hplip-3.12.6/setup.html +#usr/share/doc/hplip-3.12.6/styles +#usr/share/doc/hplip-3.12.6/styles/css.css +#usr/share/doc/hplip-3.12.6/systray.html +#usr/share/doc/hplip-3.12.6/troubleshooting.html +#usr/share/doc/hplip-3.12.6/uninstalling.html +#usr/share/doc/hplip-3.12.6/upgrading.html usr/share/hplip +#usr/share/ppd +usr/share/ppd/HP +#usr/share/ppd/HP/hp-business_inkjet_2250-ps.ppd.gz +#usr/share/ppd/HP/hp-business_inkjet_2280-ps.ppd.gz +#usr/share/ppd/HP/hp-business_inkjet_2300-ps.ppd.gz +#usr/share/ppd/HP/hp-business_inkjet_2600-ps.ppd.gz +#usr/share/ppd/HP/hp-business_inkjet_2800-ps.ppd.gz +#usr/share/ppd/HP/hp-business_inkjet_3000-ps.ppd.gz +#usr/share/ppd/HP/hp-cm8050_mfp_with_edgeline-ps.ppd.gz +#usr/share/ppd/HP/hp-cm8060_mfp_with_edgeline-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2500-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2500_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2550_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2605-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2605dn-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2605dtn-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2700-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2700n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2800-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2820-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2830-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2840-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_3000-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_3700-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_3700n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_3800-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4500-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4550-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4600-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4600_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4610-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4650-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4700-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4730mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_5500-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_5550-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_5m-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_8500-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_8550-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_9500-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_9500_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm1015-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm1017-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm1312_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm1312nfi_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm2320_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm2320fxi_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm2320n_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm2320nf_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm3530_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm4540_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm4730_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm6030_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm6040_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm6049_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp1514n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp1515n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp1518ni-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp2025-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp2025dn-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp2025n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp2025x-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp3505-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp3525-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp4005-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp4020_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp4520_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp5225-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp5225dn-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp5225n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp5520_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp6015-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_4000ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_4020ps-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_4500mfp.ppd.gz +#usr/share/ppd/HP/hp-designjet_4500ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_4520mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_4520ps-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1100ps_24in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1100ps_44in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1120ps_24in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1120ps_44in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1200_postscript-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1300_postscript-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t2300_postscript-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t7100ps-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t7100ps_monochrome-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t770_postscript-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t770ps_24in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t790ps_24in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t790ps_44in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_z6100ps_42in_photo-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_z6100ps_60in_photo-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_z6200_42in_photo-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_z6200_60in_photo-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_100_color_mfp_m175-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1200-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1200n-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1220-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1220se-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1300-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1300n-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1300xi-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1320-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1320_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1320n-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1320nw-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1320tn-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_200_colormfp_m275-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2100-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2100_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2200-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2200_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2300-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2300_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2410-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2420-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2430-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3015-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3020-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3030-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3050-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3052-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3200m-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3300_3310_3320-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3380-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3390-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4000_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_400_m401-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_400_m401d-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_400_mfp_m425-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4050_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4100_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4100_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4200-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4240-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4250-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4300-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4345_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4350-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4_plus-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4ml-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4mp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4si-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4v-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5000-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5000_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_500_color_m551-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_500_color_mfp_m575-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_500_mfp_m525-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5100_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5200-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5200l-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5200lx-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5mp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5p-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5si-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5si_mopier-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_600_m601_m602_m603-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_6mp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_6p-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_8000-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_8000_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_8100_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_8100_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_8150_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9000_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9000_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9040-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9040_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9050-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9050_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9055mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9065mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_cm1410_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_cp1520_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m1522_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m1522n_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m1522nf_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m1530_mfp_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m2727_mfp_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m3027_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m3035_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m4345_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m4349_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m4555_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m5025_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m5035_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m9040_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m9050_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m9059_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p2015_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p2055_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p3004-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p3005-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p3010_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p4010_series-ps.ppd.gz +#usr/share/ppd/HP/hp-lj_300_400_color_m351_m451-ps.ppd.gz +#usr/share/ppd/HP/hp-lj_300_400_color_mfp_m375_m475-ps.ppd.gz +#usr/share/ppd/HP/hp-mopier_240-ps.ppd.gz +#usr/share/ppd/HP/hp-mopier_320-ps.ppd.gz +#usr/share/ppd/HP/hp-officejet_pro_8000_enterprise_a811a-ps.ppd.gz diff --git a/config/rootfiles/packages/ipfireseeder b/config/rootfiles/packages/ipfireseeder deleted file mode 100644 index 0577ade..0000000 --- a/config/rootfiles/packages/ipfireseeder +++ /dev/null @@ -1,5 +0,0 @@ -etc/rc.d/init.d/ipfireseeder -#var/ipfire/seeder -var/ipfire/seeder/ipfire-2.9.MACHINE-full-core51.iso.torrent -#var/log/seeder -var/log/seeder/info diff --git a/config/rootfiles/packages/lcr b/config/rootfiles/packages/lcr index 2633518..0739db4 100644 --- a/config/rootfiles/packages/lcr +++ b/config/rootfiles/packages/lcr @@ -385,6 +385,7 @@ var/ipfire/lcr/vbox_german/record_play.isdn var/ipfire/lcr/vbox_german/record_record.isdn var/ipfire/lcr/vbox_german/store_ask.isdn var/ipfire/lcr/vbox_german/store_done.isdn +var/log/lcr usr/sbin/genextension usr/sbin/genrc usr/sbin/lcr diff --git a/config/rootfiles/packages/libassuan b/config/rootfiles/packages/libassuan new file mode 100644 index 0000000..efe0df5 --- /dev/null +++ b/config/rootfiles/packages/libassuan @@ -0,0 +1,8 @@ +usr/bin/libassuan-config +#usr/include/assuan.h +#usr/lib/libassuan.la +usr/lib/libassuan.so +usr/lib/libassuan.so.0 +usr/lib/libassuan.so.0.3.0 +#usr/share/aclocal/libassuan.m4 +#usr/share/info/assuan.info diff --git a/config/rootfiles/packages/libgpg-error b/config/rootfiles/packages/libgpg-error new file mode 100644 index 0000000..dad751c --- /dev/null +++ b/config/rootfiles/packages/libgpg-error @@ -0,0 +1,25 @@ +usr/bin/gpg-error +usr/bin/gpg-error-config +#usr/include/gpg-error.h +#usr/lib/libgpg-error.la +usr/lib/libgpg-error.so +usr/lib/libgpg-error.so.0 +usr/lib/libgpg-error.so.0.8.0 +#usr/share/aclocal/gpg-error.m4 +usr/share/common-lisp +usr/share/common-lisp/source +usr/share/common-lisp/source/gpg-error +usr/share/common-lisp/source/gpg-error/gpg-error-codes.lisp +usr/share/common-lisp/source/gpg-error/gpg-error-package.lisp +usr/share/common-lisp/source/gpg-error/gpg-error.asd +usr/share/common-lisp/source/gpg-error/gpg-error.lisp +#usr/share/locale/cs/LC_MESSAGES/libgpg-error.mo +usr/share/locale/de/LC_MESSAGES/libgpg-error.mo +usr/share/locale/fr/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/it/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/nl/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/pl/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/ro/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/sv/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/vi/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/zh_CN/LC_MESSAGES/libgpg-error.mo diff --git a/config/rootfiles/packages/libogg b/config/rootfiles/packages/libogg index e9ba57a..21a8d63 100644 --- a/config/rootfiles/packages/libogg +++ b/config/rootfiles/packages/libogg @@ -4,85 +4,83 @@ #usr/include/ogg/os_types.h #usr/lib/libogg.a #usr/lib/libogg.la -usr/lib/libogg.so +#usr/lib/libogg.so usr/lib/libogg.so.0 -usr/lib/libogg.so.0.6.0 +usr/lib/libogg.so.0.8.0 #usr/lib/pkgconfig/ogg.pc #usr/share/aclocal/ogg.m4 -#usr/share/doc/libogg-1.1.4 -#usr/share/doc/libogg-1.1.4/framing.html -#usr/share/doc/libogg-1.1.4/index.html -#usr/share/doc/libogg-1.1.4/ogg -#usr/share/doc/libogg-1.1.4/ogg-multiplex.html -#usr/share/doc/libogg-1.1.4/ogg/bitpacking.html -#usr/share/doc/libogg-1.1.4/ogg/datastructures.html -#usr/share/doc/libogg-1.1.4/ogg/decoding.html -#usr/share/doc/libogg-1.1.4/ogg/encoding.html -#usr/share/doc/libogg-1.1.4/ogg/general.html -#usr/share/doc/libogg-1.1.4/ogg/index.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_packet.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_packet_clear.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_bos.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_checksum_set.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_continued.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_eos.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_granulepos.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_packets.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_pageno.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_serialno.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_version.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_clear.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_destroy.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_eos.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_flush.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_init.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetin.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetout.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetpeek.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_pagein.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_pageout.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_reset.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_reset_serialno.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_state.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_buffer.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_clear.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_destroy.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_init.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_pageout.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_pageseek.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_reset.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_state.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_wrote.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_adv.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_adv1.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_bits.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_buffer.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_bytes.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_get_buffer.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_look.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_look1.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_read.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_read1.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_readinit.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_reset.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_write.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_writealign.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_writeclear.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_writecopy.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_writeinit.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_writetrunc.html -#usr/share/doc/libogg-1.1.4/ogg/overview.html -#usr/share/doc/libogg-1.1.4/ogg/reference.html -#usr/share/doc/libogg-1.1.4/ogg/style.css -#usr/share/doc/libogg-1.1.4/ogg/vorbis_comment.html -#usr/share/doc/libogg-1.1.4/ogg/vorbis_info.html -#usr/share/doc/libogg-1.1.4/oggstream.html -#usr/share/doc/libogg-1.1.4/rfc3533.txt -#usr/share/doc/libogg-1.1.4/rfc3534.txt -#usr/share/doc/libogg-1.1.4/stream.png -#usr/share/doc/libogg-1.1.4/vorbisword2.png -#usr/share/doc/libogg-1.1.4/white-ogg.png -#usr/share/doc/libogg-1.1.4/white-xifish.png -#usr/share/doc/libogg-1.1.4/rfc5334.txt -#usr/share/doc/libogg-1.1.4/skeleton.html +#usr/share/doc/libogg-1.3.0 +#usr/share/doc/libogg-1.3.0/framing.html +#usr/share/doc/libogg-1.3.0/index.html +#usr/share/doc/libogg-1.3.0/ogg +#usr/share/doc/libogg-1.3.0/ogg-multiplex.html +#usr/share/doc/libogg-1.3.0/ogg/bitpacking.html +#usr/share/doc/libogg-1.3.0/ogg/datastructures.html +#usr/share/doc/libogg-1.3.0/ogg/decoding.html +#usr/share/doc/libogg-1.3.0/ogg/encoding.html +#usr/share/doc/libogg-1.3.0/ogg/general.html +#usr/share/doc/libogg-1.3.0/ogg/index.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_packet.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_packet_clear.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_bos.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_checksum_set.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_continued.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_eos.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_granulepos.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_packets.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_pageno.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_serialno.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_version.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_clear.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_destroy.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_eos.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_flush.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_init.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetin.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetout.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetpeek.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pagein.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pageout.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pageout_fill.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_reset.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_reset_serialno.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_state.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_buffer.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_clear.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_destroy.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_init.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_pageout.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_pageseek.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_reset.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_state.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_wrote.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_adv.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_adv1.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_bits.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_buffer.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_bytes.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_get_buffer.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_look.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_look1.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_read.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_read1.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_readinit.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_reset.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_write.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_writealign.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_writeclear.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_writecopy.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_writeinit.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_writetrunc.html +#usr/share/doc/libogg-1.3.0/ogg/overview.html +#usr/share/doc/libogg-1.3.0/ogg/reference.html +#usr/share/doc/libogg-1.3.0/ogg/style.css +#usr/share/doc/libogg-1.3.0/oggstream.html +#usr/share/doc/libogg-1.3.0/rfc3533.txt +#usr/share/doc/libogg-1.3.0/rfc5334.txt +#usr/share/doc/libogg-1.3.0/skeleton.html +#usr/share/doc/libogg-1.3.0/stream.png +#usr/share/doc/libogg-1.3.0/vorbisword2.png +#usr/share/doc/libogg-1.3.0/white-ogg.png +#usr/share/doc/libogg-1.3.0/white-xifish.png diff --git a/config/rootfiles/packages/libsolv b/config/rootfiles/packages/libsolv index 587d514..de1d12d 100644 --- a/config/rootfiles/packages/libsolv +++ b/config/rootfiles/packages/libsolv @@ -1,13 +1,13 @@ #usr/include/solv #usr/include/solv/bitmap.h #usr/include/solv/chksum.h +#usr/include/solv/dataiterator.h #usr/include/solv/dirpool.h #usr/include/solv/evr.h #usr/include/solv/hash.h #usr/include/solv/knownid.h #usr/include/solv/policy.h #usr/include/solv/pool.h -#usr/include/solv/pool_fileconflicts.h #usr/include/solv/poolarch.h #usr/include/solv/poolid.h #usr/include/solv/pooltypes.h @@ -15,22 +15,9 @@ #usr/include/solv/problems.h #usr/include/solv/queue.h #usr/include/solv/repo.h -#usr/include/solv/repo_content.h -#usr/include/solv/repo_deb.h -#usr/include/solv/repo_deltainfoxml.h -#usr/include/solv/repo_helix.h -#usr/include/solv/repo_products.h -#usr/include/solv/repo_releasefile_products.h -#usr/include/solv/repo_repomdxml.h -#usr/include/solv/repo_rpmdb.h -#usr/include/solv/repo_rpmmd.h #usr/include/solv/repo_solv.h -#usr/include/solv/repo_susetags.h -#usr/include/solv/repo_updateinfoxml.h #usr/include/solv/repo_write.h -#usr/include/solv/repo_zyppdb.h #usr/include/solv/repodata.h -#usr/include/solv/repopage.h #usr/include/solv/rules.h #usr/include/solv/solv_xfopen.h #usr/include/solv/solvable.h @@ -38,10 +25,14 @@ #usr/include/solv/solverdebug.h #usr/include/solv/solvversion.h #usr/include/solv/strpool.h +#usr/include/solv/testcase.h #usr/include/solv/tools_util.h #usr/include/solv/transaction.h #usr/include/solv/util.h -usr/lib/libsolv.so +#usr/lib/libsolv.so usr/lib/libsolv.so.0 -usr/lib/libsolvext.so +#usr/lib/libsolvext.so usr/lib/libsolvext.so.0 +#usr/share/cmake +#usr/share/cmake/Modules +#usr/share/cmake/Modules/FindLibSolv.cmake diff --git a/config/rootfiles/packages/libtool b/config/rootfiles/packages/libtool deleted file mode 100644 index 528eac7..0000000 --- a/config/rootfiles/packages/libtool +++ /dev/null @@ -1,33 +0,0 @@ -#usr/bin/libtool -#usr/bin/libtoolize -#usr/include/ltdl.h -#usr/lib/libltdl.a -#usr/lib/libltdl.la -usr/lib/libltdl.so -usr/lib/libltdl.so.3 -usr/lib/libltdl.so.3.1.4 -#usr/share/aclocal/libtool.m4 -#usr/share/aclocal/ltdl.m4 -#usr/share/info/libtool.info -#usr/share/libtool -#usr/share/libtool/config.guess -#usr/share/libtool/config.sub -#usr/share/libtool/install-sh -#usr/share/libtool/libltdl -#usr/share/libtool/libltdl/COPYING.LIB -#usr/share/libtool/libltdl/Makefile.am -#usr/share/libtool/libltdl/Makefile.in -#usr/share/libtool/libltdl/README -#usr/share/libtool/libltdl/acinclude.m4 -#usr/share/libtool/libltdl/aclocal.m4 -#usr/share/libtool/libltdl/config-h.in -#usr/share/libtool/libltdl/config.guess -#usr/share/libtool/libltdl/config.sub -#usr/share/libtool/libltdl/configure -#usr/share/libtool/libltdl/configure.ac -#usr/share/libtool/libltdl/install-sh -#usr/share/libtool/libltdl/ltdl.c -#usr/share/libtool/libltdl/ltdl.h -#usr/share/libtool/libltdl/ltmain.sh -#usr/share/libtool/libltdl/missing -#usr/share/libtool/ltmain.sh diff --git a/config/rootfiles/packages/libvorbis b/config/rootfiles/packages/libvorbis index 212e864..e7f7c3c 100644 --- a/config/rootfiles/packages/libvorbis +++ b/config/rootfiles/packages/libvorbis @@ -4,128 +4,167 @@ #usr/include/vorbis/vorbisfile.h #usr/lib/libvorbis.a #usr/lib/libvorbis.la -usr/lib/libvorbis.so +#usr/lib/libvorbis.so usr/lib/libvorbis.so.0 -usr/lib/libvorbis.so.0.4.3 +usr/lib/libvorbis.so.0.4.6 #usr/lib/libvorbisenc.a #usr/lib/libvorbisenc.la -usr/lib/libvorbisenc.so +#usr/lib/libvorbisenc.so usr/lib/libvorbisenc.so.2 -usr/lib/libvorbisenc.so.2.0.6 +usr/lib/libvorbisenc.so.2.0.9 #usr/lib/libvorbisfile.a #usr/lib/libvorbisfile.la -usr/lib/libvorbisfile.so +#usr/lib/libvorbisfile.so usr/lib/libvorbisfile.so.3 -usr/lib/libvorbisfile.so.3.3.2 +usr/lib/libvorbisfile.so.3.3.5 #usr/lib/pkgconfig/vorbis.pc #usr/lib/pkgconfig/vorbisenc.pc #usr/lib/pkgconfig/vorbisfile.pc #usr/share/aclocal/vorbis.m4 -#usr/share/doc/libvorbis-1.2.3 -#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.cfg -#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.css -#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.html -#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.pdf -#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.tex -#usr/share/doc/libvorbis-1.2.3/eightphase.png -#usr/share/doc/libvorbis-1.2.3/evenlsp.png -#usr/share/doc/libvorbis-1.2.3/fish_xiph_org.png -#usr/share/doc/libvorbis-1.2.3/floor1_inverse_dB_table.html -#usr/share/doc/libvorbis-1.2.3/floorval.png -#usr/share/doc/libvorbis-1.2.3/fourphase.png -#usr/share/doc/libvorbis-1.2.3/framing.html -#usr/share/doc/libvorbis-1.2.3/helper.html -#usr/share/doc/libvorbis-1.2.3/index.html -#usr/share/doc/libvorbis-1.2.3/lspmap.png -#usr/share/doc/libvorbis-1.2.3/oddlsp.png -#usr/share/doc/libvorbis-1.2.3/oggstream.html -#usr/share/doc/libvorbis-1.2.3/programming.html -#usr/share/doc/libvorbis-1.2.3/rfc5215.txt -#usr/share/doc/libvorbis-1.2.3/rfc5215.xml -#usr/share/doc/libvorbis-1.2.3/squarepolar.png -#usr/share/doc/libvorbis-1.2.3/stereo.html -#usr/share/doc/libvorbis-1.2.3/stream.png -#usr/share/doc/libvorbis-1.2.3/v-comment.html -#usr/share/doc/libvorbis-1.2.3/vorbis-clip.txt -#usr/share/doc/libvorbis-1.2.3/vorbis-errors.txt -#usr/share/doc/libvorbis-1.2.3/vorbis-fidelity.html -#usr/share/doc/libvorbis-1.2.3/vorbis.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc -#usr/share/doc/libvorbis-1.2.3/vorbisenc/changes.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/examples.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/index.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/ov_ectl_ratemanage2_arg.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/ov_ectl_ratemanage_arg.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/overview.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/reference.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/style.css -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_ctl.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_init.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_init_vbr.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_init.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_managed.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_vbr.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_info.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile -#usr/share/doc/libvorbis-1.2.3/vorbisfile/OggVorbis_File.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/callbacks.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/chaining_example_c.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/chainingexample.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/crosslap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/datastructures.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/decoding.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/example.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/exampleindex.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/fileinfo.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/index.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/initialization.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_bitrate.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_bitrate_instant.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_callbacks.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_clear.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_comment.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_crosslap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_fopen.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_info.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_open.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_open_callbacks.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_lap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_page.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_page_lap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_tell.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_total.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_seek.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_seek_lap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_tell.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_total.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_read.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_read_float.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_seekable.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_serialnumber.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_streams.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test_callbacks.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test_open.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_lap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_page.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_page_lap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_tell.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_total.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/overview.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/reference.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/return.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/seekexample.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking_example_c.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking_test_c.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/seekingexample.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/style.css -#usr/share/doc/libvorbis-1.2.3/vorbisfile/threads.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbis_comment.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbis_info.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbisfile_example_c.html -#usr/share/doc/libvorbis-1.2.3/vorbisword2.png -#usr/share/doc/libvorbis-1.2.3/wait.png -#usr/share/doc/libvorbis-1.2.3/white-xifish.png +#usr/share/doc/libvorbis-1.3.3 +#usr/share/doc/libvorbis-1.3.3/doxygen-build.stamp +#usr/share/doc/libvorbis-1.3.3/eightphase.png +#usr/share/doc/libvorbis-1.3.3/evenlsp.png +#usr/share/doc/libvorbis-1.3.3/fish_xiph_org.png +#usr/share/doc/libvorbis-1.3.3/floor1_inverse_dB_table.html +#usr/share/doc/libvorbis-1.3.3/floorval.png +#usr/share/doc/libvorbis-1.3.3/fourphase.png +#usr/share/doc/libvorbis-1.3.3/framing.html +#usr/share/doc/libvorbis-1.3.3/helper.html +#usr/share/doc/libvorbis-1.3.3/index.html +#usr/share/doc/libvorbis-1.3.3/libvorbis +#usr/share/doc/libvorbis-1.3.3/libvorbis/index.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/overview.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/reference.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/return.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/style.css +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_blockout.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_buffer.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_headerout.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_init.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_wrote.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_bitrate_addblock.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_bitrate_flushpacket.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block_clear.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block_init.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_add.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_add_tag.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_clear.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_init.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_query.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_query_count.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_commentheader_out.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_dsp_clear.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_dsp_state.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_granule_time.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_blocksize.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_clear.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_init.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_packet_blocksize.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_blockin.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_halfrate.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_halfrate_p.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_headerin.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_idheader.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_init.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_lapout.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_pcmout.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_read.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_restart.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_trackonly.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_version_string.html +#usr/share/doc/libvorbis-1.3.3/lspmap.png +#usr/share/doc/libvorbis-1.3.3/oddlsp.png +#usr/share/doc/libvorbis-1.3.3/oggstream.html +#usr/share/doc/libvorbis-1.3.3/programming.html +#usr/share/doc/libvorbis-1.3.3/rfc5215.txt +#usr/share/doc/libvorbis-1.3.3/rfc5215.xml +#usr/share/doc/libvorbis-1.3.3/squarepolar.png +#usr/share/doc/libvorbis-1.3.3/stereo.html +#usr/share/doc/libvorbis-1.3.3/stream.png +#usr/share/doc/libvorbis-1.3.3/v-comment.html +#usr/share/doc/libvorbis-1.3.3/vorbis-clip.txt +#usr/share/doc/libvorbis-1.3.3/vorbis-errors.txt +#usr/share/doc/libvorbis-1.3.3/vorbis-fidelity.html +#usr/share/doc/libvorbis-1.3.3/vorbis.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc +#usr/share/doc/libvorbis-1.3.3/vorbisenc/changes.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/examples.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/index.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/ovectl_ratemanage2_arg.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/ovectl_ratemanage_arg.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/overview.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/reference.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/style.css +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_ctl.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_init.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_init_vbr.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_init.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_managed.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_vbr.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile +#usr/share/doc/libvorbis-1.3.3/vorbisfile/OggVorbis_File.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/callbacks.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/chaining_example_c.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/chainingexample.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/crosslap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/datastructures.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/decoding.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/example.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/exampleindex.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/fileinfo.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/index.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/initialization.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_bitrate.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_bitrate_instant.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_callbacks.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_clear.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_comment.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_crosslap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_fopen.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_info.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_open.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_open_callbacks.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_lap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_page.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_page_lap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_tell.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_total.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_seek.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_seek_lap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_tell.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_total.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read_filter.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read_float.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_seekable.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_serialnumber.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_streams.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test_callbacks.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test_open.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_lap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_page.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_page_lap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_tell.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_total.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/overview.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/reference.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/seekexample.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking_example_c.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking_test_c.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/seekingexample.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/style.css +#usr/share/doc/libvorbis-1.3.3/vorbisfile/threads.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/vorbisfile_example_c.html +#usr/share/doc/libvorbis-1.3.3/vorbisword2.png +#usr/share/doc/libvorbis-1.3.3/wait.png +#usr/share/doc/libvorbis-1.3.3/white-xifish.png diff --git a/config/rootfiles/packages/linux-pae b/config/rootfiles/packages/linux-pae index c4899a4..5a54f24 100644 --- a/config/rootfiles/packages/linux-pae +++ b/config/rootfiles/packages/linux-pae @@ -10,38 +10,29 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/arch/x86 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/aes-i586.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/aesni-intel.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/crc32c-intel.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/salsa20-i586.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/twofish-i586.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/apm.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/cpufreq-nforce2.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/e_powersaver.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/gx-suspmod.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/longhaul.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/longrun.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k6.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k7.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-ich.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-lib.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-smi.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/mcheck #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/microcode.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/msr.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/scx200.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm-amd.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm-intel.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/scx200 +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/scx200/scx200.ko #lib/modules/KVER-ipfire-pae/kernel/crypto #lib/modules/KVER-ipfire-pae/kernel/crypto/aes_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/af_alg.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/algif_hash.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/algif_skcipher.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/ansi_cprng.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/anubis.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/arc4.ko @@ -53,7 +44,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx/async_xor.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx/raid6test.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/authenc.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/camellia.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/cast5.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/cast6.ko @@ -61,6 +54,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/ccm.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/crc32c.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/cryptd.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/crypto_user.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/ctr.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/cts.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/des_generic.ko @@ -72,9 +66,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/khazad.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/lrw.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/md4.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/md5.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/michael_mic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/pcrypt.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/rmd128.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/rmd160.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/rmd256.ko @@ -88,8 +84,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/sha512_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/tea.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/tgr192.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/twofish.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/twofish_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/vmac.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/wp512.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/xcbc.ko @@ -99,26 +95,31 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/ac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_ipmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_pad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/battery.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/button.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/container.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/ec_sys.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/fan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/pci_slot.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/power_meter.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/processor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/sbs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/sbshc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/thermal.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/video.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/acard-ahci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ahci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ahci_platform.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ata_generic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ata_piix.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/libahci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/libata.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_acpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_ali.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_amd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_arasan_cf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_artop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_atiixp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_atp867x.ko @@ -151,7 +152,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pcmcia.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pdc2027x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pdc202xx_old.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_qdi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_piccolo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_radisys.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_rdc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_rz1000.ko @@ -163,7 +164,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_sl82c105.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_triflex.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_via.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_winbond.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pdc_adma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_inic162x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_mv.ko @@ -195,6 +195,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/suni.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/uPD98402.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/zatm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/base +#lib/modules/KVER-ipfire-pae/kernel/drivers/base/regmap +#lib/modules/KVER-ipfire-pae/kernel/drivers/base/regmap/regmap-i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/bcma +#lib/modules/KVER-ipfire-pae/kernel/drivers/bcma/bcma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block #lib/modules/KVER-ipfire-pae/kernel/drivers/block/DAC960.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/aoe @@ -205,9 +210,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/block/floppy.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/nbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/osdblk.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/rbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/sx8.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/virtio_blk.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/ath3k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bcm203x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bfusb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bluecard_cs.ko @@ -218,6 +225,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btsdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btuart_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btwilink.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/dtl1_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/hci_uart.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/hci_vhci.ko @@ -232,11 +240,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/ati-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/efficeon-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/intel-agp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/intel-gtt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/nvidia-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/sis-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/sworks-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/via-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/cs5535_gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hangcheck-timer.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/amd-rng.ko @@ -256,56 +264,91 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/char/lp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/mwave #lib/modules/KVER-ipfire-pae/kernel/drivers/char/mwave/mwave.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/nozomi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/nsc_gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/nvram.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/pc8736x_gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia/ipwireless -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia/synclink_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/ppdev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/scx200_gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/toshiba.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource +#lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource/cs5535-clockevt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource/scx200_hrt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/connector #lib/modules/KVER-ipfire-pae/kernel/drivers/connector/cn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/acpi-cpufreq.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq-nforce2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_conservative.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_ondemand.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_powersave.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_userspace.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/e_powersaver.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/gx-suspmod.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/longhaul.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/longrun.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/mperf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/p4-clockmod.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/pcc-cpufreq.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k6.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k7.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k8.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-centrino.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-ich.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-smi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/geode-aes.ko.off -#lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/hifn_795x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/padlock-aes.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/padlock-sha.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dca #lib/modules/KVER-ipfire-pae/kernel/drivers/dca/dca.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/dmatest.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/intel_mid_dma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/ioat #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/ioat/ioatdma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/pch_dma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/timb_dma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-net.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-ohci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-sbp2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firmware +#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/dmi-sysfs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/iscsi_ibft.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/sigma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-adp5588.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-cs5535.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-generic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-it8761e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-janz-ttl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max7300.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max730x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-mcp23s08.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-ml-ioh.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pca953x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pcf857x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-rdc321x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-sch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-vx855.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm_kms_helper.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i810 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i810/i810.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i830 -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i830/i830.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i915 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i915/i915.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mga #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/nouveau +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/nouveau/nouveau.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/r128 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/r128/r128.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/radeon @@ -320,39 +363,72 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/ttm/ttm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/via #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/via/via.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/vmwgfx +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/stub +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/stub/poulsbo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-a4tech.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-apple.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-axff.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-belkin.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-cherry.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-chicony.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-drff.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-dr.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-elecom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ezkey.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-gaff.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-holtekff.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-kensington.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-keytouch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-kye.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-logitech-dj.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-logitech.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-magicmouse.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-microsoft.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-monterey.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-multitouch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ortek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-picolcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-pl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-primax.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-prodikeys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-quanta.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-samsung.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sjoy.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-speedlink.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sunplus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-tmff.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-topseed.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-uclogic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-wacom.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-waltop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-wiimote.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-zpff.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-zydacron.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/usbhid #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hv +#lib/modules/KVER-ipfire-pae/kernel/drivers/hv/hv_utils.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hv/hv_vmbus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/abituguru.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/abituguru3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/acpi_power_meter.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ad7414.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ad7418.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm1021.ko @@ -361,36 +437,46 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm1029.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm1031.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ads1015.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7411.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7462.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7470.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7473.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/amc6821.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/applesmc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/asb100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/asc7621.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/asus_atk0110.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/atxp1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/coretemp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/dme1737.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc2103.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc6w201.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f71805f.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f71882fg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/fam15h_power.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/fschmd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/g760a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gl518sm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hdaps.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hp_accel.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gpio-fan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hwmon-vid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hwmon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/i5k_amb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ibmaem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ibmpex.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/jc42.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/k10temp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/k8temp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lis3lv02d.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lineage-pem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm73.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm75.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm77.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm78.ko @@ -402,20 +488,48 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm92.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm93.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4151.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4215.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max16065.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6642.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ntc_thermistor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pc87360.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pc87427.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ltc2978.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/zl6100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sht21.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sis5595.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smm665.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47b397.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47m1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47m192.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/tmp102.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/tmp401.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/via-cputemp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/via686a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/vt1211.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/vt8231.ko @@ -425,10 +539,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83791d.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83792d.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83795.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83l785ts.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83l786ng.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/wm831x-hwmon.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/wm8350-hwmon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/algos #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/algos/i2c-algo-bit.ko @@ -440,7 +553,13 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd756.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-eg20t.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-i801.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-intel-mid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-isch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-nforce2.ko @@ -456,16 +575,20 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis630.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis96x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-taos-evm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-tiny-usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-via.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-voodoo3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-xiic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/scx200_acb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/chips -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/chips/ds1682.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/chips/tsl2550.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-mux.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/gpio-i2cmux.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/pca9541.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/pca954x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ieee802154 #lib/modules/KVER-ipfire-pae/kernel/drivers/ieee802154/fakehard.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input @@ -473,34 +596,48 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/input/input-polldev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/adp5589-keys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/gpio_keys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/gpio_keys_polled.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lkkbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/matrix_keypad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/mcs_touchkey.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/mpr121_touchkey.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/newtonkbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/qt1070.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/qt2160.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/stowaway.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/tca6416-keypad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/xtkbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ad714x-i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ad714x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/apanel.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ati_remote.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/bma150.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/keyspan_remote.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcf8574_keypad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcspkr.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/powermate.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/winbond-cir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/wm831x-on.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/xen-kbdfront.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/yealink.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/xen-kbdfront.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/sparse-keymap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/act2000 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/act2000/act2000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capidrv.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capifs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/kernelcapi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/divert #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/divert/dss1_divert.ko @@ -526,6 +663,17 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon/divacapi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon/divadidd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon/divas.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/avmfritz.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/hfcpci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/mISDNinfineon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/mISDNipac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/mISDNisar.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/netjet.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/speedfax.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/w6692.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/avma1_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/elsa_cs.ko @@ -545,56 +693,73 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/i4l/isdnhdlc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/icn #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/icn/icn.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/l1oip.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/mISDN_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/mISDN_dsp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/pcbit #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/pcbit/pcbit.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/sc #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/sc/sc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/led-class.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-alix2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/dell-led.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-bd2802.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-clevo-mail.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-gpio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lm3530.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lt3593.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-net48xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-net5501.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca9532.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-wm831x-status.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-wm8350.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-ss4200.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-wrap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-backlight.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-default-on.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-heartbeat.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-netdev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-timer.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/lguest #lib/modules/KVER-ipfire-pae/kernel/drivers/lguest/lg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-bufio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-crypt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-delay.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-flakey.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-log-userspace.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-log.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-mirror.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-multipath.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-raid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-region-hash.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-round-robin.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-service-time.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-snapshot.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-thin-pool.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-zero.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/linear.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/md-mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/persistent-data/dm-persistent-data.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid0.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid456.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid6_pq.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/mc44s803.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda18271.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda827x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda8290.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda9887.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tea5761.ko @@ -602,12 +767,110 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-simple.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-types.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/xc4000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/xc5000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb #lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb/dvb-core #lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/rc-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l1-compat.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/ir-kbd-i2c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l2-common.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l2-int-device.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/videodev.ko @@ -617,6 +880,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/core/mspro_block.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/jmb38x_ms.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/r592.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/tifm_ms.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/message #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion @@ -627,35 +891,61 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptscsih.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptspi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/ab3100-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/ab3100-otp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/cs5535-mfd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/janz-cmodio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/lpc_sch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/mfd-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/rdc321x-southbridge.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm831x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm8350-i2c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm8350.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/timberdale.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps6105x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps65010.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps6507x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/vx855.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wl1273-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm8400-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/apds9802als.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/apds990x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bh1770glc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bh1780gli.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bmp085.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port/c2port-duramar2150.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port/core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cb710 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cb710/cb710.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cs5535-mfgpt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ds1682.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/at24.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/eeprom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/eeprom_93cx6.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/max6875.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/hmc6352.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/hpilo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ics932s401.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/isl29003.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/isl29020.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/iwmc3200top +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/pch_phub.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st/st_drv.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tifm_7xx1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tifm_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tsl2550.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/vmw_balloon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card/mmc_block.ko @@ -665,13 +955,14 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/core/mmc_core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/cb710-mmc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/ricoh_mmc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pltfm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdricoh_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/tifm_sd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/ushc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/via-sdmmc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/vub300.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/wbsd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ar7part.ko @@ -686,8 +977,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtd_blkdevs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdblock.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdconcat.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/nand/nand_ecc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/sm_ftl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests +#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_nandecctest.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_oobtest.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_pagetest.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_readtest.ko @@ -698,83 +992,217 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ubi #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ubi/ubi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c501.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c503.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c505.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c507.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c509.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c515.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c523.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c527.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c59x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8139cp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8139too.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/82596.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8390.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8390p.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ac3200.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/acenic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/amd8111e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/at1700.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1c -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1c/atl1c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1e -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1e/atl1e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atlx -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atlx/atl1.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atlx/atl2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/b44.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/benet -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/benet/be2net.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/bnx2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/bnx2x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/bonding #lib/modules/KVER-ipfire-pae/kernel/drivers/net/bonding/bonding.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/bsd_comp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cassini.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/chelsio -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/chelsio/cxgb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cnic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cs89x0.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cxgb3 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cxgb3/cxgb3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/de600.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/de620.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/depca.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/dl2k.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/dnet.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000/e1000.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000e -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000e/e1000e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e2100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/eepro.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/eexpress.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/enic -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/enic/enic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/epic100.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/eql.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/es3210.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/eth16i.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethoc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ewrk3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/fealnx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/forcedeth.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hamachi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hp-plus.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hp100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ibmlana.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c501.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c509.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c515.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c574_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c589_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c59x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/typhoon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/3c503.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/8390.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/8390p.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ac3200.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/axnet_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/e2100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/es3210.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/hp-plus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/hp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/lne390.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne2k-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne3210.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/pcnet_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-mca.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-ultra.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-ultra32.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/wd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/adaptec +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/adaptec/starfire.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/alteon +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/alteon/acenic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/amd8111e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/depca.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/lance.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/ni65.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/nmclan_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/pcnet32.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1c +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1e +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1e/atl1e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atlx +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atlx/atl1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/bnx2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/bnx2x +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/cnic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/tg3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade/bna +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb3 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4vf +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cirrus +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cirrus/cs89x0.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco/enic +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco/enic/enic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/ewrk3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/tulip.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/de600.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/de620.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/dl2k.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/sundance.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/emulex +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/emulex/benet +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/emulex/benet/be2net.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fealnx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/at1700.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/eth16i.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/hp +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/hp/hp100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c505.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c507.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c523.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c527.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/82596.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/eepro.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/eexpress.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/lp486e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/ni52.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/znet.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/icplus +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/icplus/ipg.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000/e1000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000e +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igb +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igb/igb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igbvf +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgb +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgb/ixgb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbe +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbevf +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/jme.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/skge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/sky2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox/mlx4 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel/ksz884x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom/myri10ge +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/ibmlana.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/natsemi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/ns83820.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion/s2io.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion/vxge +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion/vxge/vxge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/nvidia +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/nvidia/forcedeth.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi/pch_gbe +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines/hamachi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines/yellowfin.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/netxen +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qla3xxx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlcnic +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlge +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlge/qlge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/rdc +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/rdc/r6040.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/8139cp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/8139too.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/atp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/r8169.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/seeq +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/seeq/seeq8005.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sfc +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sfc/sfc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/silan +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/silan/sc92031.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sis +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sis/sis190.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sis/sis900.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/epic100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/smc9194.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/smsc9420.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/cassini.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/niu.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/sungem.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/sunhme.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/tehuti +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/tehuti/tehuti.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/ti +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/ti/tlan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via/via-rhine.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/xircom +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ifb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igb -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igb/igb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igbvf -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igbvf/igbvf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ipg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/ali-ircc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/donauboe.ko @@ -791,137 +1219,74 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/via-ircc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/vlsi_ir.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/w83977af_ir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgb -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgb/ixgb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgbe -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgbe/ixgbe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/jme.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ks8842.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ks8851_mll.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/lance.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/lne390.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/lp486e.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/macvtap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/mdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/mii.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/mlx4 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/mlx4/mlx4_core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/mlx4/mlx4_en.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/myri10ge -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/myri10ge/myri10ge.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/natsemi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne2k-pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne3210.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/netxen -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/netxen/netxen_nic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ni52.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ni65.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/niu.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ns83820.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/3c574_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/3c589_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/axnet_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/fmvj18x_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/nmclan_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/pcnet_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/smc91c92_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/xirc2ps_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcnet32.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/broadcom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/cicada.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/dp83640.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/et1011c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/icplus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/lxt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/marvell.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/micrel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/national.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/qsemi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/realtek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/smsc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/ste10Xp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/vitesse.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_async.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_deflate.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_mppe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_synctty.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pppoe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pppol2tp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pppox.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/qla3xxx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/qlge -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/qlge/qlge.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/r6040.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/r8169.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/s2io.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pptp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/sb1000.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sc92031.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/seeq8005.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sfc -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sfc/sfc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sis190.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sis900.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/skge.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sky2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slhc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc-mca.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc-ultra.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc-ultra32.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc9194.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smsc9420.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/starfire.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sundance.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sungem.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip/slip.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/sungem_phy.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sunhme.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tehuti.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tg3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tlan.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/de2104x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/de4x5.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/dmfe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/tulip.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/uli526x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/winbond-840.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/xircom_cb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/tun.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/typhoon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/asix.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/catc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc-phonet.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_eem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_ncm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cx82310_eth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/dm9601.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/gl620a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/hso.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/kalmia.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/lg-vl600.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/mcs7830.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/net1080.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/pegasus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/plusb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/rndis_host.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/smsc75xx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/smsc95xx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/usbnet.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/zaurus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/veth.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/via-rhine.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/via-velocity.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/virtio_net.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/vmxnet3 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/vmxnet3/vmxnet3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/vxge -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/vxge/vxge.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/c101.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/cosa.ko @@ -945,95 +1310,25 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/sealevel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/wanxl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/z85230.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m/i2400m.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/adm8211.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/airo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/airo_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/at76c50x-usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ar9170 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath5k -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel_pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43/b43.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43legacy -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43legacy/b43legacy.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/libipw.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwmc3200wifi -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas_sdio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/usb8xxx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwl8k.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54common.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/prism54 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/prism54/prism54.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ray_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rndis_wlan.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt61pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt73usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8180.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8187.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl12xx -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl12xx/wl1251.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl3501_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1201.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1211rw -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netback +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netback/xen-netback.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netfront.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/yellowfin.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/znet.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/parport #lib/modules/KVER-ipfire-pae/kernel/drivers/parport/parport.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/parport/parport_ax88796.ko @@ -1047,42 +1342,53 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/i82365.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pcmcia.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pcmcia_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pcmcia_rsrc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pd6729.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/rsrc_nonstatic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/tcic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/yenta_socket.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/acer-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/acerhdf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus_acpi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/classmate-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/compal-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-wmi-aio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/fujitsu-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hdaps.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hp-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hp_accel.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/ibm_rtl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/ideapad-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_ips.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_menlow.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_oaktrail.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/msi-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/msi-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/mxm-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/panasonic-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/samsung-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/samsung-q10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/sony-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/tc1100-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/thinkpad_acpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/topstar-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/toshiba_acpi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/toshiba_bluetooth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/wmi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/bq27x00_battery.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/ds2782_battery.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/max17040_battery.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/pcf50633-charger.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/wm831x_power.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/wm8350_power.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/xo15-ebook.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pps #lib/modules/KVER-ipfire-pae/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ptp +#lib/modules/KVER-ipfire-pae/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator +#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator/fixed.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator/gpio-regulator.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ab3100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-bq32k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-bq4802.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-cmos.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1286.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1307.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1374.ko @@ -1090,29 +1396,32 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1553.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1672.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-em3027.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-isl12022.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-isl1208.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-lib.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m41t80.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t35.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t59.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t86.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-msm6242.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf50633.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8563.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rp5c01.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rv3029c2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rx8025.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rx8581.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-s35390a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-stk17ta8.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-test.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-v3020.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-wm831x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-wm8350.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-x1205.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/3w-9xxx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/3w-sas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/3w-xxxx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/53c700.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/BusLogic.ko @@ -1138,11 +1447,17 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/be2iscsi/be2iscsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bfa #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bfa/bfa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2fc +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2fc/bnx2fc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2i #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2i/bnx2i.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ch.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgb3i -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb3i +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb4i +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb4i/cxgb4i.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/libcxgbi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/dc395x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler/scsi_dh.ko @@ -1164,6 +1479,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/g_NCR5380.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/g_NCR5380_mmio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/gdth.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/hpsa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/hptiop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ibmmca.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/imm.ko @@ -1171,6 +1487,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/initio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ipr.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ips.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/isci +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/isci/isci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/iscsi_boot_sysfs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/iscsi_tcp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/libfc #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/libfc/libfc.ko @@ -1189,6 +1508,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mpt2sas/mpt2sas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvsas #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvsas/mvsas.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvumi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/nsp32.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd/libosd.ko @@ -1200,6 +1520,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/nsp_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/qlogic_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001 +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001/pm8001.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pmcraid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ppa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qla1280.ko @@ -1209,6 +1531,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qla4xxx/qla4xxx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qlogicfas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qlogicfas408.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/raid_class.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_fc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_iscsi.ko @@ -1229,37 +1552,55 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/tmscsim.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/u14-34f.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ultrastor.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/vmw_pvscsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/wd7000.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_accent.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_boca.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_exar_st16c554.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_fourport.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_hub6.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/serial_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ssb #lib/modules/KVER-ipfire-pae/kernel/drivers/ssb/ssb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/et131x #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/et131x/et131x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_blkvsc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_mouse.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_netvsc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_storvsc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_vmbus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/mei +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/mei/mei.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/phison #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/phison/phison.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/slicoss #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/slicoss/slicoss.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/usbip-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/usbip-host.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/ipwireless +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/ipwireless/ipwireless.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_accent.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_boca.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_exar_st16c554.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_fourport.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_hub6.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/altera_jtaguart.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/altera_uart.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/mfd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/pch_uart.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/serial_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/timbuart.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/uartlite.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/xilinx_uartps.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_aec.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_cif.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_netx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pci_generic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pdrv.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pdrv_genirq.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_sercos3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_smx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm/cxacru.ko @@ -1272,24 +1613,22 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/cdc-wdm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/usblp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/usbtmc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/core -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/core/usbcore.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/ehci-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/hwa-hc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/isp116x-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/ohci-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/oxu210hp-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/r8a66597-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/sl811-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/u132-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/uhci-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/whci #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/xhci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/xhci-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/berry_charge.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/cypress_cy7c63.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/cytherm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/emi26.ko @@ -1303,8 +1642,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usbled.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usbsevseg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/uss720.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/vstusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/yurex.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg/gpio_vbus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg/nop-usb-xceiv.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/aircable.ko @@ -1316,10 +1656,14 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/digi_acceleport.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/empeg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/funsoft.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/garmin_gps.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/hp4x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ipaq.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ir-usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/iuu_phoenix.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/keyspan_pda.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/mct_u232.ko @@ -1330,23 +1674,33 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/option.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/oti6858.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/qcaux.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/qcserial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/safe_serial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/siemens_mpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/sierra.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ssu100.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/symbolserial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/usb_wwan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/vivopay-serial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/zio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/uas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-alauda.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-eneub6250.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-freecom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-isd200.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-jumpshot.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-karma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-realtek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-sddr09.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-sddr55.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-usbat.ko @@ -1361,14 +1715,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/dfu #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/i1480-est.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/i1480u-wlp -#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/umc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/uwb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/whc-rc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/whci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/wlp -#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/wlp/wlp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/vhost +#lib/modules/KVER-ipfire-pae/kernel/drivers/vhost/vhost_net.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video #lib/modules/KVER-ipfire-pae/kernel/drivers/video/arkfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty @@ -1376,14 +1728,16 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/atyfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/radeonfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/adp8860_bl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/adp8870_bl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/apple_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/cr_bllcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/generic_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/kb3886_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/mbp_nvidia_bl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/pcf50633-backlight.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/platform_lcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/wm831x_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/cirrusfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/cyber2000fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/display @@ -1425,6 +1779,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sis #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sis/sisfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sm501fb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/smscufx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sstfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/svgalib.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/syscopyarea.ko @@ -1444,17 +1799,23 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/video/xen-fbfront.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_balloon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_mmio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds1wm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds2482.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds2490.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/matrox_w1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/w1-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2423.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2431.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2433.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2780.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_smem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_therm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/wire.ko @@ -1465,6 +1826,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/alim7101_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/cpu5wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/eurotechwdt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/f71808e_wdt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/geodewdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/hpwdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/i6300esb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/iTCO_wdt.ko @@ -1473,6 +1836,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/it8712f_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/it87_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/machzwd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/nv_tco.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pc87413_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_usb.ko @@ -1487,6 +1851,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/scx200_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/smsc37b787_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sp5100_tco.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83627hf_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83697hf_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83697ug_wdt.ko @@ -1494,15 +1859,16 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83977f_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wafer5823wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wdt_pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wm831x_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wm8350_wdt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/xen_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen -#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/evtchn.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-evtchn.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-gntalloc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-gntdev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-pciback +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-pciback/xen-pciback.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xenfs #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xenfs/xenfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs -#lib/modules/KVER-ipfire-pae/kernel/fs/autofs -#lib/modules/KVER-ipfire-pae/kernel/fs/autofs/autofs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/autofs4 #lib/modules/KVER-ipfire-pae/kernel/fs/autofs4/autofs4.ko #lib/modules/KVER-ipfire-pae/kernel/fs/cachefiles @@ -1513,12 +1879,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/fs/ecryptfs/ecryptfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/exportfs #lib/modules/KVER-ipfire-pae/kernel/fs/exportfs/exportfs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/ext2 -#lib/modules/KVER-ipfire-pae/kernel/fs/ext2/ext2.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/ext3 -#lib/modules/KVER-ipfire-pae/kernel/fs/ext3/ext3.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/ext4 -#lib/modules/KVER-ipfire-pae/kernel/fs/ext4/ext4.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fat #lib/modules/KVER-ipfire-pae/kernel/fs/fat/fat.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fat/vfat.ko @@ -1529,17 +1889,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/fs/fuse/fuse.ko #lib/modules/KVER-ipfire-pae/kernel/fs/isofs #lib/modules/KVER-ipfire-pae/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/jbd -#lib/modules/KVER-ipfire-pae/kernel/fs/jbd/jbd.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/jbd2 -#lib/modules/KVER-ipfire-pae/kernel/fs/jbd2/jbd2.ko #lib/modules/KVER-ipfire-pae/kernel/fs/jffs2 #lib/modules/KVER-ipfire-pae/kernel/fs/jffs2/jffs2.ko #lib/modules/KVER-ipfire-pae/kernel/fs/jfs #lib/modules/KVER-ipfire-pae/kernel/fs/jfs/jfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/lockd #lib/modules/KVER-ipfire-pae/kernel/fs/lockd/lockd.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/mbcache.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfs #lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfs_common @@ -1550,26 +1905,24 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_tree.ko #lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_v1.ko #lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_v2.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/reiser4 -#lib/modules/KVER-ipfire-pae/kernel/fs/reiser4/reiser4.ko #lib/modules/KVER-ipfire-pae/kernel/fs/reiserfs #lib/modules/KVER-ipfire-pae/kernel/fs/reiserfs/reiserfs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/smbfs -#lib/modules/KVER-ipfire-pae/kernel/fs/smbfs/smbfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/udf #lib/modules/KVER-ipfire-pae/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/ufs +#lib/modules/KVER-ipfire-pae/kernel/fs/ufs/ufs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/xfs #lib/modules/KVER-ipfire-pae/kernel/fs/xfs/xfs.ko #lib/modules/KVER-ipfire-pae/kernel/lib +#lib/modules/KVER-ipfire-pae/kernel/lib/cordic.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc-ccitt.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc-itu-t.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc-t10dif.ko -#lib/modules/KVER-ipfire-pae/kernel/lib/crc16.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/crc8.ko #lib/modules/KVER-ipfire-pae/kernel/lib/libcrc32c.ko -#lib/modules/KVER-ipfire-pae/kernel/lib/lzo -#lib/modules/KVER-ipfire-pae/kernel/lib/lzo/lzo_compress.ko -#lib/modules/KVER-ipfire-pae/kernel/lib/lzo/lzo_decompress.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/raid6 +#lib/modules/KVER-ipfire-pae/kernel/lib/raid6/raid6_pq.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_bm.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_fsm.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_kmp.ko @@ -1586,6 +1939,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/atm/br2684.ko #lib/modules/KVER-ipfire-pae/kernel/net/atm/clip.ko #lib/modules/KVER-ipfire-pae/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire-pae/kernel/net/batman-adv +#lib/modules/KVER-ipfire-pae/kernel/net/batman-adv/batman-adv.ko #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/bluetooth.ko #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/bnep @@ -1594,10 +1949,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/cmtp/cmtp.ko #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/hidp #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/hidp/hidp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/l2cap.ko #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/rfcomm #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/rfcomm/rfcomm.ko -#lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/sco.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge #lib/modules/KVER-ipfire-pae/kernel/net/bridge/bridge.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter @@ -1623,13 +1976,16 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_filter.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_nat.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ceph +#lib/modules/KVER-ipfire-pae/kernel/net/ceph/libceph.ko #lib/modules/KVER-ipfire-pae/kernel/net/ieee802154 +#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/6lowpan.ko #lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/nl802154.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/wpan-class.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/ieee802154.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ah4.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/gre.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/inet_diag.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ip_gre.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ipcomp.ko @@ -1648,7 +2004,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_REJECT.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ULOG.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_addrtype.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ah.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ecn.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ipp2p.ko @@ -1691,7 +2046,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/esp6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ip6_tunnel.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ipcomp6.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ipv6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/mip6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6_queue.ko @@ -1709,6 +2063,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_mangle.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_raw.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/sit.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/tunnel6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/xfrm6_mode_beet.ko @@ -1727,6 +2082,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/irda/irnet/irnet.ko #lib/modules/KVER-ipfire-pae/kernel/net/key #lib/modules/KVER-ipfire-pae/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ppp.ko #lib/modules/KVER-ipfire-pae/kernel/net/llc #lib/modules/KVER-ipfire-pae/kernel/net/llc/llc.ko #lib/modules/KVER-ipfire-pae/kernel/net/mac80211 @@ -1736,6 +2097,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_broadcast.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_ftp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_h323.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_irc.ko @@ -1748,40 +2110,48 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_proto_udplite.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_sane.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_snmp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_tftp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_tproxy_core.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_log.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_queue.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/x_tables.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CHECKSUM.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CLASSIFY.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CONNMARK.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CT.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_DSCP.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_IDLETIMER.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_IMQ.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_LED.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_MARK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NFLOG.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NFQUEUE.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NOTRACK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_RATEEST.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TCPMSS.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TEE.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TPROXY.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_addrtype.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_cluster.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_comment.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connbytes.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connlimit.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connmark.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_cpu.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_devgroup.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_dscp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_esp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_hashlimit.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_helper.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_hl.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_ipvs.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_layer7.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_length.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_limit.ko @@ -1806,24 +2176,21 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_tcpudp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_time.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_u32.ko -#lib/modules/KVER-ipfire-pae/kernel/net/phonet -#lib/modules/KVER-ipfire-pae/kernel/net/phonet/phonet.ko -#lib/modules/KVER-ipfire-pae/kernel/net/phonet/pn_pep.ko -#lib/modules/KVER-ipfire-pae/kernel/net/rds -#lib/modules/KVER-ipfire-pae/kernel/net/rds/rds.ko -#lib/modules/KVER-ipfire-pae/kernel/net/rds/rds_tcp.ko #lib/modules/KVER-ipfire-pae/kernel/net/rfkill +#lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill-regulator.ko #lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill.ko #lib/modules/KVER-ipfire-pae/kernel/net/rxrpc #lib/modules/KVER-ipfire-pae/kernel/net/rxrpc/af-rxrpc.ko #lib/modules/KVER-ipfire-pae/kernel/net/rxrpc/rxkad.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched +#lib/modules/KVER-ipfire-pae/kernel/net/sched/act_csum.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_gact.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_ipt.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_mirred.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_nat.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_pedit.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/act_simple.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_skbedit.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_basic.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_flow.ko @@ -1840,16 +2207,20 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/em_u32.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_atm.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_choke.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_drr.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_dsmark.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_gred.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_hfsc.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_htb.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_mqprio.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_multiq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_netem.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_qfq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_sfb.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_sfq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_tbf.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_teql.ko @@ -1858,8 +2229,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/sunrpc.ko -#lib/modules/KVER-ipfire-pae/kernel/net/wimax -#lib/modules/KVER-ipfire-pae/kernel/net/wimax/wimax.ko #lib/modules/KVER-ipfire-pae/kernel/net/wireless #lib/modules/KVER-ipfire-pae/kernel/net/wireless/cfg80211.ko #lib/modules/KVER-ipfire-pae/kernel/net/wireless/lib80211.ko @@ -1870,6 +2239,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/xfrm/xfrm_ipcomp.ko #lib/modules/KVER-ipfire-pae/kernel/net/xfrm/xfrm_user.ko #lib/modules/KVER-ipfire-pae/kernel/sound +#lib/modules/KVER-ipfire-pae/kernel/sound/ac97_bus.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core #lib/modules/KVER-ipfire-pae/kernel/sound/core/oss #lib/modules/KVER-ipfire-pae/kernel/sound/core/oss/snd-mixer-oss.ko @@ -1879,17 +2249,239 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/oss/snd-seq-oss.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-device.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-midi-emul.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-virmidi.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-hwdep.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-page-alloc.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-rawmidi.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-timer.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl3 +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl3/snd-opl3-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl3/snd-opl3-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4 +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4/snd-opl4-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4/snd-opl4-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-aloop.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-mts64.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/vx +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/vx/snd-vx-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/firewire +#lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-firewire-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-firewire-speakers.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-isight.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4113.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4114.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4117.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4xxx-adda.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-pt2258.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-tea575x-tuner.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/snd-cs8427.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/snd-i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/snd-tea6330t.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1816a +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1816a/snd-ad1816a.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1848 +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1848/snd-ad1848.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/cs423x +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/cs423x/snd-cs4231.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/cs423x/snd-cs4236.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/es1688 +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/es1688/snd-es1688-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/es1688/snd-es1688.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/galaxy +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/galaxy/snd-azt1605.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/galaxy/snd-azt2316.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gus-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gusclassic.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gusextreme.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gusmax.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-interwave-stb.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-interwave.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd/snd-msnd-classic.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd/snd-msnd-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd/snd-msnd-pinnacle.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-miro.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-opti92x-ad1848.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-opti92x-cs4231.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-opti93x.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-emu8000-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-jazz16.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb-common.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb16-csp.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb16-dsp.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb16.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb8-dsp.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb8.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sbawe.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-adlib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-als100.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-azt2320.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-cmi8330.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-es18xx.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-opl3sa2.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-sc6000.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-sscape.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wavefront +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wavefront/snd-wavefront.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wss +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wss/snd-wss-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ac97 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ali5451 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ali5451/snd-ali5451.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/asihpi +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/asihpi/snd-asihpi.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8810.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8820.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8830.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/aw2 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/aw2/snd-aw2.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ca0106 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ca0106/snd-ca0106.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs46xx +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs46xx/snd-cs46xx.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs5535audio +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ctxfi +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ctxfi/snd-ctxfi.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-darla20.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-darla24.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-echo3g.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-gina20.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-gina24.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigo.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigodj.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigodjx.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigoio.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigoiox.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-layla20.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-layla24.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-mia.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-mona.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1/snd-emu10k1.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1/snd-emu10k1x.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-analog.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-ca0132.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-conexant.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-idt.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-realtek.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-si3054.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-via.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-intel.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712/snd-ice1712.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712/snd-ice1724.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/korg1212 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/korg1212/snd-korg1212.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lola +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lola/snd-lola.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lx6464es +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lx6464es/snd-lx6464es.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/mixart +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/mixart/snd-mixart.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/nm256 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/nm256/snd-nm256.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen/snd-oxygen-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen/snd-oxygen.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen/snd-virtuoso.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/pcxhr +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/pcxhr/snd-pcxhr.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/riptide +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/riptide/snd-riptide.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652/snd-hdsp.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652/snd-hdspm.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652/snd-rme9652.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-ad1889.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-als300.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-als4000.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-atiixp-modem.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-atiixp.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-azt3328.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-bt87x.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-cmipci.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-cs4281.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-cs5530.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-ens1370.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-ens1371.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-es1938.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-es1968.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-fm801.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-intel8x0.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-intel8x0m.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-maestro3.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-rme32.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-rme96.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-sis7019.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-sonicvibes.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-via82xx-modem.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-via82xx.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/trident +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/trident/snd-trident.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/vx222 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/vx222/snd-vx222.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ymfpci +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ymfpci/snd-ymfpci.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia +#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/pdaudiocf +#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/vx +#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/vx/snd-vxpocket.ko #lib/modules/KVER-ipfire-pae/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/synth +#lib/modules/KVER-ipfire-pae/kernel/sound/synth/emux +#lib/modules/KVER-ipfire-pae/kernel/sound/synth/emux/snd-emux-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/synth/snd-util-mem.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/misc +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/usx2y +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/usx2y/snd-usb-us122l.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/usx2y/snd-usb-usx2y.ko #lib/modules/KVER-ipfire-pae/modules.alias #lib/modules/KVER-ipfire-pae/modules.alias.bin +#lib/modules/KVER-ipfire-pae/modules.builtin #lib/modules/KVER-ipfire-pae/modules.ccwmap #lib/modules/KVER-ipfire-pae/modules.dep #lib/modules/KVER-ipfire-pae/modules.dep.bin diff --git a/config/rootfiles/packages/linux-xen b/config/rootfiles/packages/linux-xen index 7a3bc21..a05e1e7 100644 --- a/config/rootfiles/packages/linux-xen +++ b/config/rootfiles/packages/linux-xen @@ -1,1944 +1,1946 @@ -boot/System.map-KVER-ipfire-xen +boot/System.map-2.6.32.60-ipfire-xen boot/System.map-ipfire-xen -boot/config-KVER-ipfire-xen -boot/vmlinuz-KVER-ipfire-xen +boot/config-2.6.32.60-ipfire-xen +boot/vmlinuz-2.6.32.60-ipfire-xen boot/vmlinuz-ipfire-xen #lib/firmware/bnx2x-e1-5.0.21.0.fw #lib/firmware/bnx2x-e1h-5.0.21.0.fw #lib/modules -lib/modules/KVER-ipfire-xen -#lib/modules/KVER-ipfire-xen/build -#lib/modules/KVER-ipfire-xen/kernel -#lib/modules/KVER-ipfire-xen/kernel/arch -#lib/modules/KVER-ipfire-xen/kernel/arch/x86 -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/aes-i586.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/crc32c-intel.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/salsa20-i586.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/twofish-i586.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/microcode.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/msr.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/scx200.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto -#lib/modules/KVER-ipfire-xen/kernel/crypto/aes_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/ansi_cprng.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/anubis.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/arc4.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_memcpy.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_pq.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_raid6_recov.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_tx.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_xor.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/authenc.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/blowfish.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/camellia.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/cast5.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/cast6.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/cbc.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/ccm.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/crc32c.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/cryptd.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/ctr.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/cts.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/des_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/ecb.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/fcrypt.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/gcm.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/gf128mul.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/ghash-generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/khazad.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/lrw.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/lzo.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/md5.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/michael_mic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/pcbc.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd128.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd160.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd256.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd320.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/salsa20_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/seed.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/seqiv.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/serpent.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/sha1_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/sha256_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/sha512_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/tea.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/tgr192.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/twofish.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/twofish_common.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/vmac.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/wp512.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/xcbc.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/xor.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/xts.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/zlib.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/ac.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/acpi_pad.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/battery.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/button.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/container.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/fan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/pci_slot.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/power_meter.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/processor.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/sbs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/sbshc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/thermal.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/video.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ahci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ata_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ata_piix.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/libata.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_acpi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ali.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_amd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_artop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_atiixp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_atp867x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cmd640.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cmd64x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5520.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5530.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5535.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5536.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cypress.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_efar.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt366.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt37x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt3x2n.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt3x3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_it8213.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_it821x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_jmicron.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_marvell.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_mpiix.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_netcell.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ninja32.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ns87410.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ns87415.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_oldpiix.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_opti.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_optidma.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pcmcia.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pdc2027x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pdc202xx_old.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_radisys.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_rdc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_rz1000.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sc1200.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sch.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_serverworks.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sil680.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sis.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sl82c105.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_triflex.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_via.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pdc_adma.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_inic162x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_mv.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_nv.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_promise.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_qstor.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sil.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sil24.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sis.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_svw.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sx4.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_uli.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_via.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_vsc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/ambassador.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/atmtcp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/eni.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/firestream.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/fore_200e.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/he.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/horizon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/idt77105.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/idt77252.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/iphase.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/lanai.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/nicstar.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/solos-pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/suni.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/uPD98402.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/zatm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/DAC960.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/aoe -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/aoe/aoe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cciss.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cpqarray.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cryptoloop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/floppy.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/nbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/osdblk.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/sx8.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bcm203x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bfusb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bluecard_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bpa10x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bt3c_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btmrvl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btmrvl_sdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btsdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btuart_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btusb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/dtl1_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/hci_uart.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/hci_vhci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/agpgart.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/ali-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/amd-k7-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/amd64-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/ati-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/efficeon-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/intel-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/nvidia-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/sis-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/sworks-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/via-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/cs5535_gpio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hangcheck-timer.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/amd-rng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/geode-rng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/intel-rng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/rng-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/timeriomem-rng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/via-rng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/i8k.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_devintf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_msghandler.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_poweroff.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_si.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_watchdog.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/lp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nozomi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nsc_gpio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nvram.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pc8736x_gpio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/synclink_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ppdev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/scx200_gpio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/toshiba.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/clocksource -#lib/modules/KVER-ipfire-xen/kernel/drivers/clocksource/scx200_hrt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/connector -#lib/modules/KVER-ipfire-xen/kernel/drivers/connector/cn.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto -#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/geode-aes.ko.off -#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/hifn_795x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/padlock-aes.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/padlock-sha.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/dca -#lib/modules/KVER-ipfire-xen/kernel/drivers/dca/dca.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/dma -#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/dmatest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/ioat -#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/ioat/ioatdma.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire -#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-net.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-ohci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-sbp2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/firmware -#lib/modules/KVER-ipfire-xen/kernel/drivers/firmware/iscsi_ibft.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/drm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/drm_kms_helper.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i810 -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i810/i810.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i830 -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i830/i830.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i915 -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i915/i915.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/mga -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/mga/mga.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/r128 -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/r128/r128.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/radeon -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/radeon/radeon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/savage -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/savage/savage.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/sis -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/sis/sis.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/tdfx -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/tdfx/tdfx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/ttm -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/ttm/ttm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/via -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/via/via.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-apple.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-belkin.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-cherry.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-chicony.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-drff.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-ezkey.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-gaff.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-gyration.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-kensington.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-kye.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-logitech.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-monterey.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-ntrig.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-petalynx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-pl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-samsung.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sjoy.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sony.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sunplus.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-tmff.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-topseed.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-twinhan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-wacom.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-zpff.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/usbhid -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/usbhid/usbhid.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/abituguru.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/abituguru3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ad7414.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ad7418.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1021.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1025.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1026.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1029.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1031.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm9240.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ads7828.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7462.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7470.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7473.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7475.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/applesmc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/asb100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/asus_atk0110.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/atxp1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/coretemp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/dme1737.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ds1621.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f71805f.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f71882fg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f75375s.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/fschmd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/g760a.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/gl518sm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hdaps.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hp_accel.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hwmon-vid.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hwmon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/i5k_amb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ibmaem.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ibmpex.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/it87.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/k8temp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lis3lv02d.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm63.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm75.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm77.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm78.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm80.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm83.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm85.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm87.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm90.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm92.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm93.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm95241.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ltc4215.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ltc4245.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/max1619.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/max6650.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pc87360.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pc87427.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pcf8591.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/sis5595.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47b397.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47m1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47m192.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/thmc50.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/tmp401.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/tmp421.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/via686a.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/vt1211.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/vt8231.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83627ehf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83627hf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83781d.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83791d.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83792d.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83793.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83l785ts.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83l786ng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/wm831x-hwmon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/wm8350-hwmon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-bit.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-pca.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1535.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1563.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali15x3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd8111.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-i801.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-isch.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ocores.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport-light.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-pca-platform.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-piix4.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-scmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-simtec.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis5595.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis630.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis96x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-stub.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-tiny-usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-via.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-voodoo3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/scx200_acb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips/ds1682.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips/tsl2550.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/i2c-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/i2c-dev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ieee802154 -#lib/modules/KVER-ipfire-xen/kernel/drivers/ieee802154/fakehard.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/ff-memless.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/input-polldev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/adp5588-keys.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/lkkbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/lm8323.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/max7359_keypad.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/newtonkbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/opencores-kbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/stowaway.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/sunkbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/xtkbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/apanel.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/ati_remote.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/cm109.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/pcspkr.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/powermate.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/winbond-cir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/wm831x-on.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/yealink.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/capi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/capidrv.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/kernelcapi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/divert -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/divert/dss1_divert.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/bas_gigaset.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/gigaset.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/ser_gigaset.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/usb_gigaset.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/avm_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1dma.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/c4.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/t1pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_idi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divacapi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divadidd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/avma1_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/elsa_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hfc_usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_isac.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_st5481.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/sedlbauer_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/teles_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hysdn -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hysdn/hysdn.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdn.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdnhdlc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/led-class.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-alix2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-bd2802.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-clevo-mail.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-lp3944.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-net48xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-pca9532.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wm831x-status.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wm8350.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wrap.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-default-on.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-heartbeat.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-timer.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-crypt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-delay.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-log-userspace.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-log.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-mirror.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-mod.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-multipath.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-queue-length.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-region-hash.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-round-robin.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-service-time.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-snapshot.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-zero.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/linear.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/md-mod.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/multipath.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid0.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid10.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid456.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid6_pq.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb/dvb-core -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb/dvb-core/dvb-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l1-compat.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/videodev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core/memstick.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core/mspro_block.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host/jmb38x_ms.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host/tifm_ms.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptbase.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptctl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptfc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptsas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptscsih.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptspi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/ab3100-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/ab3100-otp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/mfd-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm831x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8350-i2c.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8350.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8400-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port/c2port-duramar2150.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port/core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/cb710 -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/cb710/cb710.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/at24.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/eeprom.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/eeprom_93cx6.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/max6875.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/enclosure.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/hpilo.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/ics932s401.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/isl29003.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/tifm_7xx1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/tifm_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/mmc_block.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/mmc_test.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/sdio_uart.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/core -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/core/mmc_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/cb710-mmc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/ricoh_mmc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci-pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci-pltfm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdricoh_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/tifm_sd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/via-sdmmc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/wbsd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ar7part.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/chips -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/chips/chipreg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr/lpddr_cmds.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr/qinfo_probe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/maps -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/maps/physmap.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtd_blkdevs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdblock.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdconcat.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_torturetest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ubi -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ubi/ubi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/3c59x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8139cp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8139too.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8390.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/acenic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/amd8111e.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1c -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1c/atl1c.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1e -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1e/atl1e.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx/atl1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx/atl2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/b44.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/benet -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/benet/be2net.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bnx2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bnx2x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bonding -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bonding/bonding.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bsd_comp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cassini.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/chelsio -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/chelsio/cxgb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cnic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cxgb3 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cxgb3/cxgb3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/de600.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/de620.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dl2k.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dnet.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000/e1000.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000e -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000e/e1000e.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/enic -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/enic/enic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/epic100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/eql.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ethoc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/fealnx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/forcedeth.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/hamachi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/hp100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ifb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igb -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igb/igb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igbvf -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igbvf/igbvf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ipg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ali-ircc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/donauboe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/nsc-ircc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/smsc-ircc2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/stir4200.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/via-ircc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/vlsi_ir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/w83977af_ir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgb -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgb/ixgb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgbe -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgbe/ixgbe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/jme.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ks8842.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ks8851_mll.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/macvlan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mii.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4/mlx4_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4/mlx4_en.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/myri10ge -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/myri10ge/myri10ge.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/natsemi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ne2k-pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/netxen -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/netxen/netxen_nic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/niu.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ns83820.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/3c574_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/3c589_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/axnet_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/fmvj18x_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/nmclan_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/pcnet_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/smc91c92_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/xirc2ps_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcnet32.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/broadcom.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/cicada.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/davicom.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/et1011c.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/icplus.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/lxt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/marvell.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/mdio-bitbang.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/national.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/qsemi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/realtek.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/smsc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/ste10Xp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/vitesse.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_async.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_deflate.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_mppe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_synctty.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppoe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppol2tp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppox.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qla3xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qlge -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qlge/qlge.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/r6040.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/r8169.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/s2io.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sb1000.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sc92031.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sis190.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sis900.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/skge.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sky2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/slhc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/slip.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/smsc9420.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/starfire.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sundance.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sungem.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sungem_phy.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sunhme.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tehuti.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tg3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tlan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/de2104x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/de4x5.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/dmfe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/tulip.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/uli526x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/winbond-840.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/xircom_cb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tun.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/typhoon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/asix.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/catc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc-phonet.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_eem.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_ether.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_subset.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/dm9601.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/gl620a.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/hso.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/int51x1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/kaweth.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/mcs7830.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/net1080.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/pegasus.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/plusb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/rndis_host.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/rtl8150.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/smsc95xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/usbnet.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/zaurus.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/veth.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/via-rhine.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/via-velocity.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/vxge -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/vxge/vxge.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/adm8211.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/airo.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/airo_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/at76c50x-usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel_pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43/b43.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43legacy -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43legacy/b43legacy.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/libipw.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_sdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/usb8xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/mwl8k.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54common.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/prism54 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/prism54/prism54.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ray_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rndis_wlan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt61pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt73usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8180.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8187.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl3501_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1201.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1211rw -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/yellowfin.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/parport -#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_ax88796.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_pc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pci -#lib/modules/KVER-ipfire-xen/kernel/drivers/pci/pci-stub.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/i82092.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pcmcia.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pcmcia_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pd6729.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/rsrc_nonstatic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/yenta_socket.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86 -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/acer-wmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/asus-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/asus_acpi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/compal-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/dell-wmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/fujitsu-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/hp-wmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/intel_menlow.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/msi-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/panasonic-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/sony-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/tc1100-wmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/thinkpad_acpi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/topstar-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/toshiba_acpi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/wmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/bq27x00_battery.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/ds2782_battery.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/max17040_battery.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/pcf50633-charger.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/wm831x_power.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/wm8350_power.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pps -#lib/modules/KVER-ipfire-xen/kernel/drivers/pps/pps_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ab3100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-bq4802.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-cmos.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1286.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1307.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1374.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1511.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1553.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1672.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1742.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-fm3130.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-isl1208.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-lib.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m41t80.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t35.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t59.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t86.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-max6900.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf50633.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf8563.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf8583.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rs5c372.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rx8025.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rx8581.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-s35390a.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-stk17ta8.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-test.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-v3020.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-wm831x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-wm8350.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-x1205.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/3w-9xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/3w-xxxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/BusLogic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/a100u2w.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aacraid -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aacraid/aacraid.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/advansys.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic79xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic7xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic94xx -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic94xx/aic94xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/arcmsr -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/arcmsr/arcmsr.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/atp870u.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/be2iscsi -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/be2iscsi/be2iscsi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bfa -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bfa/bfa.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bnx2i -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bnx2i/bnx2i.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ch.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/cxgb3i -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/cxgb3i/cxgb3i.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dc395x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dmx3191d.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dpt_i2o.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/eata.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe/fcoe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe/libfcoe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fdomain.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fnic -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fnic/fnic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/gdth.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/hptiop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/imm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/initio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ipr.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ips.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/iscsi_tcp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libfc -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libfc/libfc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libiscsi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libiscsi_tcp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libsas -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libsas/libsas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/lpfc -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/lpfc/lpfc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mbox.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_sas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/mvsas -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/mvsas/mvsas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/nsp32.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd/libosd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd/osd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/aha152x_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/fdomain_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/nsp_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/qlogic_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pmcraid.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ppa.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla1280.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla2xxx -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla2xxx/qla2xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla4xxx -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla4xxx/qla4xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qlogicfas408.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_mod.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_fc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_iscsi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_sas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_spi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_wait_scan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sd_mod.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ses.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sr_mod.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/stex.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2 -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/tmscsim.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/serial -#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/jsm -#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/jsm/jsm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/serial_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ssb -#lib/modules/KVER-ipfire-xen/kernel/drivers/ssb/ssb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/staging -#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/et131x -#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/et131x/et131x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/slicoss -#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/slicoss/slicoss.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_aec.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_cif.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pci_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pdrv.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pdrv_genirq.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_sercos3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_smx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/cxacru.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/speedtch.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/ueagle-atm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/usbatm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/xusbatm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/cdc-acm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/cdc-wdm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/usblp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/usbtmc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/core -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/core/usbcore.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/ehci-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/hwa-hc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/isp116x-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/ohci-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/r8a66597-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/u132-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/uhci-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/whci -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/xhci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/berry_charge.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/cypress_cy7c63.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/cytherm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/emi26.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/emi62.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/ftdi-elan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/iowarrior.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/isight_firmware.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/sisusbvga -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usblcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usbled.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usbsevseg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/uss720.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/vstusb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/otg -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/otg/nop-usb-xceiv.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/aircable.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ark3116.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/belkin_sa.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ch341.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/cp210x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/cypress_m8.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/digi_acceleport.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/empeg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ftdi_sio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/garmin_gps.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/hp4x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/io_edgeport.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ipw.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/iuu_phoenix.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/keyspan_pda.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mct_u232.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mos7720.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mos7840.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/moto_modem.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/opticon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/option.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/oti6858.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/pl2303.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/safe_serial.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/siemens_mpi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/sierra.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/spcp8x5.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/symbolserial.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ti_usb_3410_5052.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/usbserial.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/whiteheat.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-alauda.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-cypress.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-freecom.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-isd200.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-jumpshot.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-karma.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-onetouch.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-sddr09.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-sddr55.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-usbat.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/usb-storage.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-cbaf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-wa.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusbcore.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/hwa-rc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480 -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/dfu -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480-est.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/umc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/uwb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/whc-rc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/whci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/wlp -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/wlp/wlp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/arkfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/aty128fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/atyfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/radeonfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/cr_bllcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/generic_bl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/kb3886_bl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/mbp_nvidia_bl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/platform_lcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/wm831x_bl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/broadsheetfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/cirrusfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/cyber2000fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/display -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/display/display.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/fb_ddc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/fb_sys_fops.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/gx1fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/gxfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/lxfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/i810 -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/i810/i810fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/kyro -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/kyro/kyrofb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/macmodes.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/g450_pll.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/i2c-matroxfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_DAC1064.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_Ti3026.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_accel.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_base.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_crtc2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_g450.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_maven.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_misc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/mb862xx -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/mb862xx/mb862xxfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/metronomefb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/neofb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/nvidia -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/nvidia/nvidiafb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/output.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/pm2fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/pm3fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/riva -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/riva/rivafb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/s3fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/savage -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/savage/savagefb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sis -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sis/sisfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sm501fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sstfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/svgalib.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/syscopyarea.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sysfillrect.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sysimgblt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tdfxfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tmiofb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tridentfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/uvesafb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion/crvml.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion/vmlfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vgastate.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/via -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/via/viafb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vt8623fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1 -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/ds2482.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/ds2490.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/matrox_w1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_bq27000.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2431.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2433.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2760.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_smem.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_therm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/wire.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/acquirewdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/advantechwdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/alim1535_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/alim7101_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/cpu5wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/eurotechwdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/hpwdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/i6300esb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/iTCO_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/ib700wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/ibmasr.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/it8712f_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/it87_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/machzwd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pc87413_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pcwd_pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pcwd_usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc60xxwdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc7240_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc8360.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc_epx_c3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sc1200wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sc520_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sch311x_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/scx200_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/smsc37b787_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/softdog.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83627hf_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83697hf_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83697ug_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83877f_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83977f_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wafer5823wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wdt_pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wm831x_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wm8350_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/blktap2 -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/blktap2/blktap.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsiback -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsiback/xen-scsibk.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsifront -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsifront/xenscsi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbback -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbback/usbbk.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbfront -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbfront/xen-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/fs -#lib/modules/KVER-ipfire-xen/kernel/fs/autofs -#lib/modules/KVER-ipfire-xen/kernel/fs/autofs/autofs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/autofs4 -#lib/modules/KVER-ipfire-xen/kernel/fs/autofs4/autofs4.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/cifs -#lib/modules/KVER-ipfire-xen/kernel/fs/cifs/cifs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/ecryptfs -#lib/modules/KVER-ipfire-xen/kernel/fs/ecryptfs/ecryptfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/exportfs -#lib/modules/KVER-ipfire-xen/kernel/fs/exportfs/exportfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/ext2 -#lib/modules/KVER-ipfire-xen/kernel/fs/ext2/ext2.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/ext3 -#lib/modules/KVER-ipfire-xen/kernel/fs/ext3/ext3.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/ext4 -#lib/modules/KVER-ipfire-xen/kernel/fs/ext4/ext4.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/fat -#lib/modules/KVER-ipfire-xen/kernel/fs/fat/fat.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/fat/vfat.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/fuse -#lib/modules/KVER-ipfire-xen/kernel/fs/fuse/cuse.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/fuse/fuse.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/isofs -#lib/modules/KVER-ipfire-xen/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/jbd -#lib/modules/KVER-ipfire-xen/kernel/fs/jbd/jbd.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/jbd2 -#lib/modules/KVER-ipfire-xen/kernel/fs/jbd2/jbd2.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/jffs2 -#lib/modules/KVER-ipfire-xen/kernel/fs/jffs2/jffs2.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/jfs -#lib/modules/KVER-ipfire-xen/kernel/fs/jfs/jfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/lockd -#lib/modules/KVER-ipfire-xen/kernel/fs/lockd/lockd.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/mbcache.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/nfs -#lib/modules/KVER-ipfire-xen/kernel/fs/nfs/nfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/nfs_common -#lib/modules/KVER-ipfire-xen/kernel/fs/nfs_common/nfs_acl.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/nfsd -#lib/modules/KVER-ipfire-xen/kernel/fs/nfsd/nfsd.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/quota -#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_tree.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_v1.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_v2.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/reiser4 -#lib/modules/KVER-ipfire-xen/kernel/fs/reiser4/reiser4.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/reiserfs -#lib/modules/KVER-ipfire-xen/kernel/fs/reiserfs/reiserfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/smbfs -#lib/modules/KVER-ipfire-xen/kernel/fs/smbfs/smbfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/udf -#lib/modules/KVER-ipfire-xen/kernel/fs/udf/udf.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/xfs -#lib/modules/KVER-ipfire-xen/kernel/fs/xfs/xfs.ko -#lib/modules/KVER-ipfire-xen/kernel/lib -#lib/modules/KVER-ipfire-xen/kernel/lib/crc-ccitt.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/crc-itu-t.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/crc-t10dif.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/crc16.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/crc7.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/libcrc32c.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/lzo -#lib/modules/KVER-ipfire-xen/kernel/lib/lzo/lzo_compress.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/lzo/lzo_decompress.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/ts_bm.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/ts_fsm.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/ts_kmp.ko -#lib/modules/KVER-ipfire-xen/kernel/net -#lib/modules/KVER-ipfire-xen/kernel/net/802 -#lib/modules/KVER-ipfire-xen/kernel/net/802/garp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/802/p8022.ko -#lib/modules/KVER-ipfire-xen/kernel/net/802/psnap.ko -#lib/modules/KVER-ipfire-xen/kernel/net/802/stp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/8021q -#lib/modules/KVER-ipfire-xen/kernel/net/8021q/8021q.ko -#lib/modules/KVER-ipfire-xen/kernel/net/atm -#lib/modules/KVER-ipfire-xen/kernel/net/atm/atm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/atm/br2684.ko -#lib/modules/KVER-ipfire-xen/kernel/net/atm/clip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/atm/pppoatm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bluetooth.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bnep -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bnep/bnep.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/cmtp -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/cmtp/cmtp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/hidp -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/hidp/hidp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/l2cap.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/rfcomm -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/rfcomm/rfcomm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/sco.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/bridge.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_802_3.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_among.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_arp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_arpreply.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_dnat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_limit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_log.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark_m.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_nflog.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_pkttype.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_redirect.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_snat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_stp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ulog.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_vlan.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_broute.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_filter.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_nat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtables.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154 -#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/nl802154.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/wpan-class.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4 -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ah4.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/esp4.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/inet_diag.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ip_gre.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ipcomp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ipip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arp_tables.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arpt_mangle.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ip_queue.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ip_tables.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_LOG.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REJECT.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ULOG.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_addrtype.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ecn.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipp2p.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_filter.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_mangle.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_nat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_raw.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_ftp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_irc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_sip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_tftp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_bic.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_cubic.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_diag.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_highspeed.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_htcp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_hybla.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_illinois.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_lp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_scalable.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_vegas.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_veno.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_westwood.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_yeah.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tunnel4.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/xfrm4_tunnel.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6 -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ah6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/esp6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ip6_tunnel.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ipcomp6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ipv6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/mip6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6_queue.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_LOG.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_REJECT.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ah.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_eui64.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_frag.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_hbh.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_mh.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_rt.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_filter.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_mangle.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_raw.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/sit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/tunnel6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_beet.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_ro.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_transport.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_tunnel.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/KVER-ipfire-xen/kernel/net/irda -#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm -#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/irda/irda.ko -#lib/modules/KVER-ipfire-xen/kernel/net/irda/irlan -#lib/modules/KVER-ipfire-xen/kernel/net/irda/irlan/irlan.ko -#lib/modules/KVER-ipfire-xen/kernel/net/irda/irnet -#lib/modules/KVER-ipfire-xen/kernel/net/irda/irnet/irnet.ko -#lib/modules/KVER-ipfire-xen/kernel/net/key -#lib/modules/KVER-ipfire-xen/kernel/net/key/af_key.ko -#lib/modules/KVER-ipfire-xen/kernel/net/llc -#lib/modules/KVER-ipfire-xen/kernel/net/llc/llc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/mac80211 -#lib/modules/KVER-ipfire-xen/kernel/net/mac80211/mac80211.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/ipvs -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/ipvs/ip_vs.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_amanda.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_ftp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_h323.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_irc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_netbios_ns.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_netlink.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_pptp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_dccp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_gre.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_sctp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_udplite.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_sane.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_sip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_tftp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_tproxy_core.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink_log.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink_queue.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/x_tables.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_CLASSIFY.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_CONNMARK.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_DSCP.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_HL.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_IMQ.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_LED.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_MARK.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NFLOG.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NOTRACK.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_RATEEST.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TCPMSS.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TCPOPTSTRIP.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TPROXY.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TRACE.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_cluster.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_comment.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connbytes.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connlimit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connmark.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_conntrack.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_dccp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_dscp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_esp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_hashlimit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_helper.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_hl.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_iprange.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_layer7.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_length.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_limit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_mac.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_mark.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_multiport.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_osf.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_owner.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_physdev.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_pkttype.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_policy.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_quota.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_rateest.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_realm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_recent.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_sctp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_socket.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_state.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_statistic.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_string.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_tcpmss.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_tcpudp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_time.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_u32.ko -#lib/modules/KVER-ipfire-xen/kernel/net/phonet -#lib/modules/KVER-ipfire-xen/kernel/net/phonet/phonet.ko -#lib/modules/KVER-ipfire-xen/kernel/net/phonet/pn_pep.ko -#lib/modules/KVER-ipfire-xen/kernel/net/rds -#lib/modules/KVER-ipfire-xen/kernel/net/rds/rds.ko -#lib/modules/KVER-ipfire-xen/kernel/net/rds/rds_tcp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/rfkill -#lib/modules/KVER-ipfire-xen/kernel/net/rfkill/rfkill.ko -#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc -#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc/af-rxrpc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc/rxkad.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_gact.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_ipt.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_mirred.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_nat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_pedit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_police.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_skbedit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_basic.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_flow.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_fw.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_route.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_rsvp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_rsvp6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_tcindex.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_u32.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_cmp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_meta.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_nbyte.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_text.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_u32.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_atm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_cbq.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_drr.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_dsmark.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_gred.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_hfsc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_htb.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_ingress.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_multiq.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_netem.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_prio.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_red.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_sfq.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_tbf.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_teql.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc -#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss -#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/sunrpc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wimax -#lib/modules/KVER-ipfire-xen/kernel/net/wimax/wimax.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wireless -#lib/modules/KVER-ipfire-xen/kernel/net/wireless/cfg80211.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_ccmp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_tkip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_wep.ko -#lib/modules/KVER-ipfire-xen/kernel/net/xfrm -#lib/modules/KVER-ipfire-xen/kernel/net/xfrm/xfrm_ipcomp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/xfrm/xfrm_user.ko -#lib/modules/KVER-ipfire-xen/kernel/sound -#lib/modules/KVER-ipfire-xen/kernel/sound/ac97_bus.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core -#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss -#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss/snd-mixer-oss.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss/snd-pcm-oss.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/oss -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/oss/snd-seq-oss.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-device.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-dummy.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-emul.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-event.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-virmidi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-hwdep.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-page-alloc.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-pcm.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-rawmidi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-timer.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401 -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3 -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-lib.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-synth.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-dummy.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-mtpav.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-mts64.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-portman2x4.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-serial-u16550.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-virmidi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/vx -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/vx/snd-vx-lib.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4114.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4117.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4xxx-adda.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-pt2258.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/snd-cs8427.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/snd-i2c.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/isa -#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb -#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb/snd-sb-common.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb/snd-sb16-dsp.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ac97 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ac97/snd-ac97-codec.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ali5451 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ali5451/snd-ali5451.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8810.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8820.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8830.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ca0106 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ca0106/snd-ca0106.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs46xx -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs46xx/snd-cs46xx.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs5535audio -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ctxfi -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ctxfi/snd-ctxfi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla20.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla24.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-echo3g.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina20.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina24.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigo.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodj.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodjx.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoio.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoiox.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla20.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla24.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-mia.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-mona.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1x.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-analog.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-atihdmi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-conexant.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-idt.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-intelhdmi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-nvhdmi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-realtek.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-si3054.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-via.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-intel.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1712.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1724.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/korg1212 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/korg1212/snd-korg1212.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/lx6464es -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/lx6464es/snd-lx6464es.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/mixart -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/mixart/snd-mixart.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/nm256 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/nm256/snd-nm256.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-hifier.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen-lib.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-virtuoso.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/pcxhr -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/pcxhr/snd-pcxhr.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/riptide -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/riptide/snd-riptide.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-hdsp.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-hdspm.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-rme9652.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ad1889.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-als300.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-als4000.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-atiixp-modem.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-atiixp.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-bt87x.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cmipci.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cs4281.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cs5530.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ens1370.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ens1371.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-es1938.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-es1968.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-fm801.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-intel8x0.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-intel8x0m.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-maestro3.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-rme32.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-rme96.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-sis7019.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-sonicvibes.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-via82xx-modem.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-via82xx.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/trident -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/trident/snd-trident.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/vx222 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/vx222/snd-vx222.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ymfpci -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ymfpci/snd-ymfpci.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia -#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/pdaudiocf -#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/vx -#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/vx/snd-vxpocket.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ad73311.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4535.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4642.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-cs4270.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-l3.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-max9877.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-pcm3008.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-spdif.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ssm2602.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda134x.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda1380.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm-hubs.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8350.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8400.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8510.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8523.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8580.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8728.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8731.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8750.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8753.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8776.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8900.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8903.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8940.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8960.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8961.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8971.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8974.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8988.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8990.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8993.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm9081.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/snd-soc-core.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soundcore.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/synth -#lib/modules/KVER-ipfire-xen/kernel/sound/synth/emux -#lib/modules/KVER-ipfire-xen/kernel/sound/synth/emux/snd-emux-synth.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/synth/snd-util-mem.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/usb -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/caiaq -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/caiaq/snd-usb-caiaq.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/snd-usb-audio.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/snd-usb-lib.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-us122l.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-usx2y.ko -#lib/modules/KVER-ipfire-xen/modules.alias -#lib/modules/KVER-ipfire-xen/modules.alias.bin -#lib/modules/KVER-ipfire-xen/modules.ccwmap -#lib/modules/KVER-ipfire-xen/modules.dep -#lib/modules/KVER-ipfire-xen/modules.dep.bin -#lib/modules/KVER-ipfire-xen/modules.ieee1394map -#lib/modules/KVER-ipfire-xen/modules.inputmap -#lib/modules/KVER-ipfire-xen/modules.isapnpmap -#lib/modules/KVER-ipfire-xen/modules.ofmap -#lib/modules/KVER-ipfire-xen/modules.order -#lib/modules/KVER-ipfire-xen/modules.pcimap -#lib/modules/KVER-ipfire-xen/modules.seriomap -#lib/modules/KVER-ipfire-xen/modules.symbols -#lib/modules/KVER-ipfire-xen/modules.symbols.bin -#lib/modules/KVER-ipfire-xen/modules.usbmap -#lib/modules/KVER-ipfire-xen/source +lib/modules/2.6.32.60-ipfire-xen +#lib/modules/2.6.32.60-ipfire-xen/build +#lib/modules/2.6.32.60-ipfire-xen/kernel +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86 +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/aes-i586.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/crc32c-intel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/salsa20-i586.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/twofish-i586.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel/microcode.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel/msr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel/scx200.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/aes_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ansi_cprng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/anubis.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/arc4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_memcpy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_pq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_raid6_recov.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_tx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_xor.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/authenc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/blowfish.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/camellia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cast5.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cast6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cbc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ccm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/crc32c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cryptd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ctr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cts.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/des_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ecb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/fcrypt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/gcm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/gf128mul.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ghash-generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/khazad.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/lrw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/lzo.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/md5.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/michael_mic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/pcbc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd128.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd160.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd256.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd320.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/salsa20_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/seed.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/seqiv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/serpent.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/sha1_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/sha256_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/sha512_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/tea.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/tgr192.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/twofish.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/twofish_common.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/vmac.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/wp512.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/xcbc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/xor.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/xts.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/zlib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/ac.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/acpi_pad.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/battery.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/button.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/container.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/fan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/pci_slot.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/power_meter.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/processor.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/sbs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/sbshc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/thermal.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/video.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/ahci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/ata_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/ata_piix.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/libata.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_acpi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ali.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_amd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_artop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_atiixp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_atp867x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cmd640.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cmd64x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5520.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5530.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5535.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5536.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cypress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_efar.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt366.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt37x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt3x2n.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt3x3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_it8213.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_it821x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_jmicron.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_marvell.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_mpiix.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_netcell.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ninja32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ns87410.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ns87415.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_oldpiix.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_opti.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_optidma.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_pcmcia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_pdc2027x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_pdc202xx_old.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_radisys.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_rdc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_rz1000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sc1200.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sch.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_serverworks.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sil680.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sis.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sl82c105.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_triflex.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_via.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pdc_adma.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_inic162x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_mv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_nv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_promise.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_qstor.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sil.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sil24.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sis.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_svw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sx4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_uli.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_via.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_vsc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/ambassador.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/atmtcp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/eni.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/firestream.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/fore_200e.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/he.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/horizon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/idt77105.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/idt77252.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/iphase.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/lanai.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/nicstar.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/solos-pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/suni.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/uPD98402.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/zatm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/DAC960.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/aoe +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/aoe/aoe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/cciss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/cpqarray.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/cryptoloop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/floppy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/nbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/osdblk.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/sx8.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bcm203x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bfusb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bluecard_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bpa10x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bt3c_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btmrvl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btmrvl_sdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btsdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btuart_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btusb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/dtl1_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/hci_uart.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/hci_vhci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/agpgart.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/ali-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/amd-k7-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/amd64-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/ati-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/efficeon-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/intel-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/nvidia-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/sis-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/sworks-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/via-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/cs5535_gpio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hangcheck-timer.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/amd-rng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/geode-rng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/intel-rng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/rng-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/timeriomem-rng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/via-rng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/i8k.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_devintf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_msghandler.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_poweroff.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_si.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_watchdog.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/lp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/nozomi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/nsc_gpio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/nvram.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pc8736x_gpio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia/synclink_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ppdev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/scx200_gpio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/toshiba.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/clocksource +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/clocksource/scx200_hrt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/connector +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/connector/cn.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/geode-aes.ko.off +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/hifn_795x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/padlock-aes.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/padlock-sha.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dca +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dca/dca.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma/dmatest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma/ioat +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma/ioat/ioatdma.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-net.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-ohci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-sbp2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firmware +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firmware/iscsi_ibft.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/drm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/drm_kms_helper.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i810 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i810/i810.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i830 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i830/i830.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i915 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i915/i915.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/mga +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/r128 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/r128/r128.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/radeon +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/radeon/radeon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/savage +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/savage/savage.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/sis +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/sis/sis.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/tdfx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/tdfx/tdfx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/ttm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/ttm/ttm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/via +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/via/via.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-a4tech.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-apple.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-belkin.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-cherry.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-chicony.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-cypress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-drff.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-ezkey.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-gaff.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-gyration.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-kensington.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-kye.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-logitech.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-microsoft.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-monterey.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-pl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-samsung.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-sjoy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-sony.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-sunplus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-tmff.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-topseed.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-wacom.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-zpff.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/usbhid +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/abituguru.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/abituguru3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ad7414.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ad7418.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1021.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1025.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1026.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1029.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1031.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm9240.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ads7828.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7462.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7470.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7473.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7475.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/applesmc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/asb100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/asus_atk0110.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/atxp1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/coretemp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/dme1737.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ds1621.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/f71805f.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/f71882fg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/f75375s.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/fschmd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/g760a.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/gl518sm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/gl520sm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hdaps.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hp_accel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hwmon-vid.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hwmon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/i5k_amb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ibmaem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/it87.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/k8temp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lis3lv02d.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm63.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm75.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm77.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm78.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm80.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm83.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm85.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm87.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm90.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm92.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm93.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm95241.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ltc4215.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/max1619.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/max6650.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/pc87360.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/pc87427.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/sis5595.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/smsc47b397.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/smsc47m1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/smsc47m192.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/thmc50.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/tmp401.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/tmp421.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/via686a.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/vt1211.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/vt8231.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83627ehf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83627hf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83781d.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83791d.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83792d.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83793.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83l785ts.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83l786ng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/wm831x-hwmon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/wm8350-hwmon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/algos +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-bit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-pca.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1535.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1563.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali15x3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-i801.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-isch.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ocores.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport-light.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-pca-platform.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-piix4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-scmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-simtec.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis5595.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis630.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis96x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-tiny-usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-via.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-viapro.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-voodoo3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/scx200_acb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/chips +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/chips/ds1682.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/chips/tsl2550.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/i2c-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ieee802154 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/ff-memless.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/input-polldev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/lkkbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/newtonkbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/stowaway.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/apanel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/ati_remote.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/cm109.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/keyspan_remote.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/pcspkr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/powermate.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/winbond-cir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/wm831x-on.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/yealink.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi/capi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi/capidrv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi/kernelcapi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/divert +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/divert/dss1_divert.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/bas_gigaset.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/gigaset.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/ser_gigaset.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/usb_gigaset.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/avm_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1dma.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/c4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/t1pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_idi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divacapi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divadidd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/avma1_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/elsa_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hfc_usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax_isac.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax_st5481.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/sedlbauer_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/teles_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hysdn +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hysdn/hysdn.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l/isdn.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l/isdnhdlc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/led-class.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-alix2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-clevo-mail.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-net48xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-pca9532.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-pca955x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-wm831x-status.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-wm8350.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-wrap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-backlight.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-default-on.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-heartbeat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-netdev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-timer.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-crypt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-delay.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-log-userspace.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-log.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-mirror.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-mod.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-multipath.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-queue-length.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-region-hash.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-round-robin.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-service-time.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-snapshot.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-zero.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/linear.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/md-mod.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/multipath.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid0.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid10.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid456.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid6_pq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/mc44s803.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tda8290.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tda9887.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tea5761.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tea5767.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tuner-simple.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tuner-types.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/xc5000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/dvb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/dvb/dvb-core +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/v4l1-compat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/v4l2-common.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/v4l2-int-device.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/videodev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/core +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/core/memstick.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/core/mspro_block.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/host +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/host/jmb38x_ms.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/host/tifm_ms.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptbase.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptctl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptfc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptsas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptscsih.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptspi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/ab3100-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/ab3100-otp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/mfd-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/pcf50633-adc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/pcf50633-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/sm501.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm831x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm8350-i2c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm8350.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm8400-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/c2port +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/c2port/c2port-duramar2150.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/c2port/core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/cb710 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/cb710/cb710.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/at24.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/eeprom.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/max6875.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/enclosure.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/hpilo.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/ics932s401.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/isl29003.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/tifm_7xx1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/tifm_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card/mmc_block.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card/mmc_test.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card/sdio_uart.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/core +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/core/mmc_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/cb710-mmc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/ricoh_mmc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdhci-pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdhci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdricoh_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/tifm_sd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/via-sdmmc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/wbsd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/ar7part.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/chips +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/chips/chipreg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/lpddr +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/lpddr/lpddr_cmds.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/lpddr/qinfo_probe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/maps +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/maps/physmap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtd_blkdevs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtdblock.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtdchar.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtdconcat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_oobtest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_pagetest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_readtest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_speedtest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_stresstest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_subpagetest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_torturetest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/ubi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/ubi/ubi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/3c59x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/8139cp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/8139too.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/8390.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/acenic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/amd8111e.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1c +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1c/atl1c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1e +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1e/atl1e.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atlx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atlx/atl1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atlx/atl2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/b44.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/benet +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/benet/be2net.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bnx2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bnx2x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bonding +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bonding/bonding.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bsd_comp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cassini.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/chelsio +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/chelsio/cxgb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cnic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cxgb3 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cxgb3/cxgb3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/de600.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/de620.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/dl2k.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/dnet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/dummy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000/e1000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000e +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000e/e1000e.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/enic +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/enic/enic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/epic100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/eql.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ethoc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/fealnx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/forcedeth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/hamachi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/hp100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ifb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igb/igb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igbvf +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igbvf/igbvf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/imq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ipg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/ali-ircc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/donauboe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/irda-usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/irtty-sir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/kingsun-sir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/ks959-sir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/ksdazzle-sir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/mcs7780.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/nsc-ircc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/sir-dev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/smsc-ircc2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/stir4200.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/via-ircc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/vlsi_ir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/w83977af_ir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgb/ixgb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgbe +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgbe/ixgbe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/jme.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ks8842.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ks8851_mll.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/macvlan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mii.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mlx4 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mlx4/mlx4_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mlx4/mlx4_en.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/myri10ge +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/myri10ge/myri10ge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/natsemi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ne2k-pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/netxen +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/netxen/netxen_nic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/niu.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ns83820.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/3c574_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/3c589_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/axnet_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/fmvj18x_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/nmclan_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/pcnet_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/smc91c92_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/xirc2ps_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcnet32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/broadcom.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/cicada.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/davicom.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/et1011c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/icplus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/lxt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/marvell.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/national.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/qsemi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/realtek.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/smsc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/ste10Xp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/vitesse.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_async.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_deflate.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_mppe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_synctty.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pppoe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pppol2tp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pppox.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/qla3xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/qlge +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/qlge/qlge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/r6040.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/r8169.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/s2io.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sb1000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sc92031.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sis190.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sis900.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/skge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sky2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/slhc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/slip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/smsc9420.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/starfire.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sundance.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sungem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sungem_phy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sunhme.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tehuti.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tg3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tlan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/de2104x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/de4x5.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/dmfe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/tulip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/uli526x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/winbond-840.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/xircom_cb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tun.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/typhoon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/asix.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/catc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc-phonet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc_eem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/dm9601.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/gl620a.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/hso.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/int51x1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/kaweth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/mcs7830.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/net1080.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/pegasus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/plusb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/rndis_host.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/smsc95xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/usbnet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/zaurus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/veth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/via-rhine.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/via-velocity.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/vxge +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/vxge/vxge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/adm8211.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/airo.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/airo_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/atmel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/atmel_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/atmel_pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43/b43.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43legacy +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43legacy/b43legacy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_plx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/libipw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/usb8xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas_tf +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/mwl8k.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54/p54common.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54/p54pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54/p54usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/prism54 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/prism54/prism54.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ray_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt61pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rtl818x +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8180.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8187.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl12xx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl3501_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/zd1211rw +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/yellowfin.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport_ax88796.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport_pc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pci +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pci/pci-stub.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/i82092.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/pcmcia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/pcmcia_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/pd6729.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/rsrc_nonstatic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/yenta_socket.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/acer-wmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/asus-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/asus_acpi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/compal-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/dell-wmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/fujitsu-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/hp-wmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/intel_menlow.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/msi-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/panasonic-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/sony-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/tc1100-wmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/thinkpad_acpi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/topstar-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/toshiba_acpi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/wmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/bq27x00_battery.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/ds2782_battery.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/max17040_battery.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/pcf50633-charger.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/wm831x_power.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/wm8350_power.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pps +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pps/pps_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ab3100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-bq4802.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-cmos.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1286.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1307.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1374.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1511.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1553.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1672.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-isl1208.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m41t80.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m48t35.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m48t59.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m48t86.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-pcf8563.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-rx8025.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-rx8581.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-s35390a.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-stk17ta8.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-test.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-v3020.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-wm831x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-wm8350.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-x1205.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/3w-9xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/3w-xxxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/BusLogic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/a100u2w.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aacraid +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aacraid/aacraid.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/advansys.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic7xxx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic79xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic7xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic94xx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic94xx/aic94xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/arcmsr +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/arcmsr/arcmsr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/atp870u.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/be2iscsi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/be2iscsi/be2iscsi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bfa +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bfa/bfa.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bnx2i +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bnx2i/bnx2i.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ch.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/cxgb3i +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/cxgb3i/cxgb3i.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/dc395x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/dmx3191d.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/dpt_i2o.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/eata.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fcoe +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fcoe/fcoe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fcoe/libfcoe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fdomain.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fnic +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fnic/fnic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/gdth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/hptiop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/imm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/initio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ipr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ips.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/iscsi_tcp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libfc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libfc/libfc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libiscsi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libiscsi_tcp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libsas +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libsas/libsas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/lpfc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/lpfc/lpfc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mbox.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_sas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/mvsas +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/mvsas/mvsas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/nsp32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/osd +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/osd/libosd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/osd/osd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/aha152x_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/fdomain_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/nsp_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/qlogic_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pmcraid.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ppa.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla1280.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla2xxx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla2xxx/qla2xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla4xxx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla4xxx/qla4xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qlogicfas408.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_mod.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_fc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_iscsi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_sas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_spi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_srp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_wait_scan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sd_mod.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ses.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sr_mod.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/stex.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/tmscsim.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial/jsm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial/jsm/jsm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial/serial_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ssb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ssb/ssb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/et131x +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/et131x/et131x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/slicoss +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/slicoss/slicoss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_aec.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_cif.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_pci_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_pdrv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_pdrv_genirq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_sercos3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_smx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/cxacru.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/speedtch.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/ueagle-atm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/usbatm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/cdc-acm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/cdc-wdm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/usblp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/usbtmc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/core +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/core/usbcore.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/ehci-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/hwa-hc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/isp116x-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/isp1362-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/ohci-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/oxu210hp-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/r8a66597-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/sl811-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/uhci-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/whci +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/whci/whci-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/xhci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/berry_charge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/cypress_cy7c63.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/emi26.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/emi62.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/ftdi-elan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/iowarrior.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/isight_firmware.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/sisusbvga +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/usblcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/usbled.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/usbsevseg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/uss720.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/vstusb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/otg +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/otg/nop-usb-xceiv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/aircable.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ark3116.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/belkin_sa.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ch341.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/cp210x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/cypress_m8.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/digi_acceleport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/empeg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/garmin_gps.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/hp4x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ipw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/iuu_phoenix.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/mct_u232.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/mos7720.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/mos7840.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/moto_modem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/opticon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/option.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/oti6858.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/siemens_mpi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/sierra.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/symbolserial.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-alauda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-freecom.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-isd200.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-jumpshot.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-karma.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-sddr09.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-sddr55.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-usbat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/usb-storage.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-cbaf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-wa.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore/wusbcore.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/hwa-rc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/dfu +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/i1480-est.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/umc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/uwb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/whc-rc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/whci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/wlp +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/wlp/wlp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/arkfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty/aty128fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty/atyfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty/radeonfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/cr_bllcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/generic_bl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/kb3886_bl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/lcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/mbp_nvidia_bl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/platform_lcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/progear_bl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/wm831x_bl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/broadsheetfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/cirrusfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/cyber2000fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/display +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/display/display.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/fb_ddc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/fb_sys_fops.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode/gx1fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode/gxfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode/lxfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/i810 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/i810/i810fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/kyro +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/kyro/kyrofb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/macmodes.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/g450_pll.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/i2c-matroxfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_DAC1064.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_Ti3026.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_accel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_base.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_crtc2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_g450.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_maven.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_misc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/mb862xx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/mb862xx/mb862xxfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/metronomefb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/neofb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/nvidia +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/nvidia/nvidiafb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/output.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/pm2fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/pm3fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/riva +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/riva/rivafb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/s3fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/savage +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/savage/savagefb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sis +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sis/sisfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sm501fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sstfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/svgalib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/syscopyarea.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sysfillrect.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sysimgblt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/tdfxfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/tmiofb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/tridentfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/uvesafb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vermilion +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vermilion/crvml.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vermilion/vmlfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vgastate.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/via +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/via/viafb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vt8623fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters/ds2482.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters/ds2490.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters/matrox_w1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2431.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2433.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_smem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_therm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/wire.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/acquirewdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/advantechwdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/alim1535_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/alim7101_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/cpu5wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/eurotechwdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/hpwdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/i6300esb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/iTCO_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/ib700wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/ibmasr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/it8712f_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/it87_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/machzwd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/pc87413_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/pcwd_pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/pcwd_usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc60xxwdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc7240_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc8360.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc_epx_c3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sc1200wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sc520_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sch311x_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/scx200_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/smsc37b787_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/softdog.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83627hf_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83697hf_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83697ug_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83877f_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83977f_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wafer5823wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wdt_pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wm831x_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wm8350_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/blktap2 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/blktap2/blktap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsiback +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsiback/xen-scsibk.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsifront +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsifront/xenscsi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbback +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbback/usbbk.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbfront +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbfront/xen-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs/autofs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs4 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs4/autofs4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/cifs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/cifs/cifs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ecryptfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ecryptfs/ecryptfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/exportfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/exportfs/exportfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext2 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext2/ext2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext3 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext3/ext3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext4 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext4/ext4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fat +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fat/fat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fat/vfat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fuse +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fuse/cuse.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fuse/fuse.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/isofs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/isofs/isofs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd/jbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd2 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd2/jbd2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jffs2 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jffs2/jffs2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jfs/jfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/lockd +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/lockd/lockd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/mbcache.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs/nfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs_common +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs_common/nfs_acl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfsd +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfsd/nfsd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota/quota_tree.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota/quota_v1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota/quota_v2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiser4 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiser4/reiser4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiserfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiserfs/reiserfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/smbfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/smbfs/smbfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/udf +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/udf/udf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ufs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ufs/xfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/xfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/xfs/xfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc-ccitt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc-itu-t.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc-t10dif.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc16.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc7.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/libcrc32c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/lzo +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/lzo/lzo_compress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/lzo/lzo_decompress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/ts_bm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/ts_fsm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/ts_kmp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802 +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/garp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/p8022.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/psnap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/stp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/8021q +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/8021q/8021q.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/atm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/br2684.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/clip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/pppoatm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/bluetooth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/bnep +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/bnep/bnep.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/cmtp +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/cmtp/cmtp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/hidp +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/hidp/hidp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/l2cap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/rfcomm +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/rfcomm/rfcomm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/sco.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/bridge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_802_3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_among.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_arp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_arpreply.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_dnat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_limit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_log.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark_m.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_nflog.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_pkttype.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_redirect.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_snat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_stp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_ulog.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_vlan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtable_broute.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtable_filter.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtable_nat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154 +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154/af_802154.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154/nl802154.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154/wpan-class.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4 +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ah4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/esp4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/inet_diag.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ip_gre.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ipcomp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ipip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/arp_tables.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/arpt_mangle.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/arptable_filter.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ip_queue.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ip_tables.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ECN.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_LOG.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_NETMAP.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REJECT.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ULOG.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_addrtype.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ah.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ecn.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_filter.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_mangle.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_nat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_raw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_amanda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_h323.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_pptp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_sip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_tftp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_bic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_cubic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_diag.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_highspeed.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_htcp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_hybla.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_illinois.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_lp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_scalable.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_vegas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_veno.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_westwood.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_yeah.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tunnel4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/xfrm4_tunnel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6 +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ah6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/esp6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ip6_tunnel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ipcomp6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ipv6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/mip6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6_queue.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6_tables.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_REJECT.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ah.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_eui64.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_frag.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_hbh.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_rt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_filter.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_raw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/sit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/tunnel6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_beet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_ro.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_transport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_tunnel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_tunnel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/ircomm +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/ircomm/ircomm-tty.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/ircomm/ircomm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irlan +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irlan/irlan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irnet +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irnet/irnet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/key +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/key/af_key.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/llc +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/llc/llc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/mac80211 +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/mac80211/mac80211.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/ipvs +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/ipvs/ip_vs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_ftp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_h323.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_irc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_netbios_ns.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_netlink.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_pptp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_dccp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_gre.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_sctp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_udplite.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_sane.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_tproxy_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nfnetlink.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nfnetlink_log.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nfnetlink_queue.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/x_tables.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_CONNMARK.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_DSCP.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_HL.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_IMQ.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_LED.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_MARK.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_NFLOG.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_NFQUEUE.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_NOTRACK.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TCPMSS.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TPROXY.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_cluster.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_comment.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_connlimit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_connmark.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_dccp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_dscp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_esp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_hashlimit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_helper.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_hl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_iprange.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_layer7.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_length.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_limit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_mac.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_mark.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_multiport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_osf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_owner.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_physdev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_pkttype.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_policy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_quota.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_rateest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_realm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_recent.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_sctp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_socket.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_state.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_statistic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_string.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_tcpmss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_tcpudp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_time.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_u32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/phonet +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/phonet/phonet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/phonet/pn_pep.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rds +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rds/rds.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rds/rds_tcp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rfkill +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rfkill/rfkill.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rxrpc +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rxrpc/af-rxrpc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rxrpc/rxkad.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_gact.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_ipt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_mirred.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_nat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_pedit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_police.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_skbedit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_basic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_flow.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_fw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_route.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_rsvp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_rsvp6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_tcindex.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_u32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_cmp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_meta.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_nbyte.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_text.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_u32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_atm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_cbq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_drr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_dsmark.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_gred.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_hfsc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_htb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_ingress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_multiq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_netem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_prio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_red.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_sfq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_tbf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_teql.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/auth_gss +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/sunrpc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wimax +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wimax/wimax.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/cfg80211.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211_crypt_ccmp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211_crypt_tkip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211_crypt_wep.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/xfrm +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/xfrm/xfrm_ipcomp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/xfrm/xfrm_user.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/ac97_bus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/oss +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/oss/snd-mixer-oss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/oss/snd-pcm-oss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/oss +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/oss/snd-seq-oss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-device.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-emul.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-virmidi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-hwdep.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-page-alloc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-pcm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-rawmidi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-timer.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/mpu401 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/opl3 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-synth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-dummy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-mts64.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/vx +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/vx/snd-vx-lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-ak4114.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-ak4117.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-ak4xxx-adda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-pt2258.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/snd-cs8427.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/snd-i2c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa/sb +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa/sb/snd-sb-common.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa/sb/snd-sb16-dsp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ac97 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ali5451 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ali5451/snd-ali5451.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0/snd-au8810.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0/snd-au8820.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0/snd-au8830.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ca0106 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ca0106/snd-ca0106.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs46xx +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs46xx/snd-cs46xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs5535audio +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ctxfi +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ctxfi/snd-ctxfi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla20.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla24.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-echo3g.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina20.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina24.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigo.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodj.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodjx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoiox.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla20.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla24.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-mia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-mona.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-analog.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-atihdmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-conexant.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-idt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-intelhdmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-nvhdmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-realtek.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-si3054.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-via.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-intel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1712.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1724.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/korg1212 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/korg1212/snd-korg1212.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/lx6464es +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/lx6464es/snd-lx6464es.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/mixart +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/mixart/snd-mixart.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/nm256 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/nm256/snd-nm256.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-hifier.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen-lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-virtuoso.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/pcxhr +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/pcxhr/snd-pcxhr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/riptide +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/riptide/snd-riptide.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652/snd-hdsp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652/snd-hdspm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652/snd-rme9652.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-ad1889.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-als300.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-als4000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-atiixp-modem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-atiixp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-bt87x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-cmipci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-cs4281.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-cs5530.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-ens1370.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-ens1371.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-es1938.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-es1968.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-fm801.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-intel8x0.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-intel8x0m.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-maestro3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-rme32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-rme96.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-sis7019.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-sonicvibes.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-via82xx-modem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-via82xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/trident +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/trident/snd-trident.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/vx222 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/vx222/snd-vx222.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ymfpci +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ymfpci/snd-ymfpci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/pdaudiocf +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/vx +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/vx/snd-vxpocket.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ad73311.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4535.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4642.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-cs4270.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-l3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-max9877.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-pcm3008.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-spdif.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ssm2602.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda134x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda1380.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm-hubs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8350.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8400.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8510.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8523.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8580.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8728.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8731.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8750.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8753.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8776.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8900.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8903.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8940.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8960.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8961.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8971.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8974.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8988.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8990.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8993.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm9081.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/snd-soc-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soundcore.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth/emux +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth/emux/snd-emux-synth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth/snd-util-mem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/caiaq +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/snd-usb-lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/usx2y +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-us122l.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-usx2y.ko +#lib/modules/2.6.32.60-ipfire-xen/modules.alias +#lib/modules/2.6.32.60-ipfire-xen/modules.alias.bin +#lib/modules/2.6.32.60-ipfire-xen/modules.ccwmap +#lib/modules/2.6.32.60-ipfire-xen/modules.dep +#lib/modules/2.6.32.60-ipfire-xen/modules.dep.bin +#lib/modules/2.6.32.60-ipfire-xen/modules.ieee1394map +#lib/modules/2.6.32.60-ipfire-xen/modules.inputmap +#lib/modules/2.6.32.60-ipfire-xen/modules.isapnpmap +#lib/modules/2.6.32.60-ipfire-xen/modules.ofmap +#lib/modules/2.6.32.60-ipfire-xen/modules.order +#lib/modules/2.6.32.60-ipfire-xen/modules.pcimap +#lib/modules/2.6.32.60-ipfire-xen/modules.seriomap +#lib/modules/2.6.32.60-ipfire-xen/modules.symbols +#lib/modules/2.6.32.60-ipfire-xen/modules.symbols.bin +#lib/modules/2.6.32.60-ipfire-xen/modules.usbmap +#lib/modules/2.6.32.60-ipfire-xen/source diff --git a/config/rootfiles/packages/mc b/config/rootfiles/packages/mc index bb7e6d7..47109e9 100644 --- a/config/rootfiles/packages/mc +++ b/config/rootfiles/packages/mc @@ -1,22 +1,30 @@ +#etc/mc +etc/mc/edit.indent.rc +etc/mc/filehighlight.ini +etc/mc/mc.ext +etc/mc/mc.keymap +etc/mc/mc.keymap.default +etc/mc/mc.keymap.emacs +etc/mc/mc.menu +etc/mc/mc.menu.sr +etc/mc/mcedit.menu +etc/mc/sfs.ini usr/bin/mc usr/bin/mcdiff usr/bin/mcedit usr/bin/mcview -usr/etc -usr/etc/mc -usr/etc/mc/cedit.menu -usr/etc/mc/edit.indent.rc -usr/etc/mc/edit.spell.rc -usr/etc/mc/filehighlight.ini -usr/etc/mc/mc.ext -usr/etc/mc/mc.keymap -usr/etc/mc/mc.keymap.default -usr/etc/mc/mc.keymap.emacs -usr/etc/mc/mc.menu -usr/etc/mc/mc.menu.sr -usr/etc/mc/sfs.ini #usr/libexec/mc usr/libexec/mc/cons.saver +#usr/libexec/mc/ext.d +usr/libexec/mc/ext.d/archive.sh +usr/libexec/mc/ext.d/doc.sh +usr/libexec/mc/ext.d/image.sh +usr/libexec/mc/ext.d/misc.sh +usr/libexec/mc/ext.d/package.sh +usr/libexec/mc/ext.d/sound.sh +usr/libexec/mc/ext.d/text.sh +usr/libexec/mc/ext.d/video.sh +usr/libexec/mc/ext.d/web.sh #usr/libexec/mc/extfs.d #usr/libexec/mc/extfs.d/README #usr/libexec/mc/extfs.d/README.extfs @@ -24,15 +32,18 @@ usr/libexec/mc/extfs.d/a+ usr/libexec/mc/extfs.d/apt+ usr/libexec/mc/extfs.d/audio usr/libexec/mc/extfs.d/bpp +usr/libexec/mc/extfs.d/changesetfs usr/libexec/mc/extfs.d/deb usr/libexec/mc/extfs.d/deba usr/libexec/mc/extfs.d/debd usr/libexec/mc/extfs.d/dpkg+ +usr/libexec/mc/extfs.d/gitfs+ usr/libexec/mc/extfs.d/hp48+ usr/libexec/mc/extfs.d/iso9660 usr/libexec/mc/extfs.d/lslR usr/libexec/mc/extfs.d/mailfs usr/libexec/mc/extfs.d/patchfs +usr/libexec/mc/extfs.d/patchsetfs usr/libexec/mc/extfs.d/rpm usr/libexec/mc/extfs.d/rpms+ usr/libexec/mc/extfs.d/s3+ @@ -47,6 +58,7 @@ usr/libexec/mc/extfs.d/uc1541 usr/libexec/mc/extfs.d/ucab usr/libexec/mc/extfs.d/uha usr/libexec/mc/extfs.d/ulha +usr/libexec/mc/extfs.d/ulib usr/libexec/mc/extfs.d/urar usr/libexec/mc/extfs.d/uzip usr/libexec/mc/extfs.d/uzoo @@ -66,6 +78,7 @@ usr/libexec/mc/fish/mv usr/libexec/mc/fish/rmdir usr/libexec/mc/fish/send usr/libexec/mc/fish/unlink +usr/libexec/mc/fish/utime usr/libexec/mc/mc-wrapper.csh usr/libexec/mc/mc-wrapper.sh usr/libexec/mc/mc.csh @@ -74,6 +87,15 @@ usr/libexec/mc/mc.sh #usr/share/man/man1/mcedit.1 #usr/share/man/man1/mcview.1 #usr/share/mc +#usr/share/mc/examples +#usr/share/mc/examples/macros.d +#usr/share/mc/examples/macros.d/macro.0.sh +#usr/share/mc/examples/macros.d/macro.1.sh +#usr/share/mc/examples/macros.d/macro.3.sh +#usr/share/mc/examples/macros.d/macro.4.sh +#usr/share/mc/examples/macros.d/macro.5.sh +#usr/share/mc/examples/macros.d/macro.6.sh +#usr/share/mc/examples/macros.d/macro.7.sh #usr/share/mc/help usr/share/mc/help/mc.hlp #usr/share/mc/hints @@ -89,10 +111,13 @@ usr/share/mc/skins/featured.ini usr/share/mc/skins/gotar.ini usr/share/mc/skins/mc46.ini usr/share/mc/skins/nicedark.ini +usr/share/mc/skins/sand256.ini +usr/share/mc/skins/xoria256.ini #usr/share/mc/syntax usr/share/mc/syntax/PKGBUILD.syntax usr/share/mc/syntax/Syntax usr/share/mc/syntax/ada95.syntax +usr/share/mc/syntax/as.syntax usr/share/mc/syntax/aspx.syntax usr/share/mc/syntax/assembler.syntax usr/share/mc/syntax/awk.syntax diff --git a/config/rootfiles/packages/pakfire3 b/config/rootfiles/packages/pakfire3 new file mode 100644 index 0000000..effabc8 --- /dev/null +++ b/config/rootfiles/packages/pakfire3 @@ -0,0 +1,118 @@ +#etc/pakfire +etc/pakfire/builder.conf +etc/pakfire/client.conf +etc/pakfire/daemon.conf +etc/pakfire/distros +etc/pakfire/distros/ipfire3.conf +etc/pakfire/general.conf +etc/pakfire/repos +usr/bin/pakfire-builder +usr/bin/pakfire-client +usr/bin/pakfire-daemon +usr/bin/pakfire-key +usr/bin/pakfire-server +usr/lib/libpakfire_preload.so +usr/lib/pakfire +usr/lib/pakfire/builder +usr/lib/pakfire/chroot-shell +usr/lib/pakfire/cleanup +usr/lib/pakfire/compress-man-pages +usr/lib/pakfire/extract-debuginfo +usr/lib/pakfire/find-common +usr/lib/pakfire/find-prerequires +usr/lib/pakfire/find-provides +usr/lib/pakfire/find-requires +usr/lib/pakfire/functions-common +usr/lib/pakfire/functions-constants +usr/lib/pakfire/functions-directories +usr/lib/pakfire/functions-files +usr/lib/pakfire/functions-lists +usr/lib/pakfire/functions-logging +usr/lib/pakfire/macros +usr/lib/pakfire/macros/arch.macro +usr/lib/pakfire/macros/build.macro +usr/lib/pakfire/macros/cflags.macro +usr/lib/pakfire/macros/constants.macro +usr/lib/pakfire/macros/package-default.macro +usr/lib/pakfire/macros/quality-agent.macro +usr/lib/pakfire/macros/systemd.macro +usr/lib/pakfire/macros/templates.macro +usr/lib/pakfire/pakfire-multicall.py +usr/lib/pakfire/patch +usr/lib/pakfire/perl.prov +usr/lib/pakfire/perl.req +usr/lib/pakfire/py-compile +usr/lib/pakfire/quality-agent +usr/lib/pakfire/remove-static-libs +usr/lib/python2.7/site-packages/pakfire +usr/lib/python2.7/site-packages/pakfire/__init__.py +usr/lib/python2.7/site-packages/pakfire/__version__.py +usr/lib/python2.7/site-packages/pakfire/_lzma.so +usr/lib/python2.7/site-packages/pakfire/_pakfire.so +usr/lib/python2.7/site-packages/pakfire/actions.py +usr/lib/python2.7/site-packages/pakfire/api.py +usr/lib/python2.7/site-packages/pakfire/base.py +usr/lib/python2.7/site-packages/pakfire/builder.py +usr/lib/python2.7/site-packages/pakfire/cgroup.py +usr/lib/python2.7/site-packages/pakfire/chroot.py +usr/lib/python2.7/site-packages/pakfire/cli.py +usr/lib/python2.7/site-packages/pakfire/client +usr/lib/python2.7/site-packages/pakfire/client/__init__.py +usr/lib/python2.7/site-packages/pakfire/client/base.py +usr/lib/python2.7/site-packages/pakfire/client/builder.py +usr/lib/python2.7/site-packages/pakfire/client/test.py +usr/lib/python2.7/site-packages/pakfire/client/transport.py +usr/lib/python2.7/site-packages/pakfire/compress.py +usr/lib/python2.7/site-packages/pakfire/config.py +usr/lib/python2.7/site-packages/pakfire/constants.py +usr/lib/python2.7/site-packages/pakfire/distro.py +usr/lib/python2.7/site-packages/pakfire/downloader.py +usr/lib/python2.7/site-packages/pakfire/errors.py +usr/lib/python2.7/site-packages/pakfire/filelist.py +usr/lib/python2.7/site-packages/pakfire/i18n.py +usr/lib/python2.7/site-packages/pakfire/keyring.py +usr/lib/python2.7/site-packages/pakfire/logger.py +usr/lib/python2.7/site-packages/pakfire/lzma.py +usr/lib/python2.7/site-packages/pakfire/packages +usr/lib/python2.7/site-packages/pakfire/packages/__init__.py +usr/lib/python2.7/site-packages/pakfire/packages/base.py +usr/lib/python2.7/site-packages/pakfire/packages/file.py +usr/lib/python2.7/site-packages/pakfire/packages/installed.py +usr/lib/python2.7/site-packages/pakfire/packages/lexer.py +usr/lib/python2.7/site-packages/pakfire/packages/make.py +usr/lib/python2.7/site-packages/pakfire/packages/packager.py +usr/lib/python2.7/site-packages/pakfire/packages/solv.py +usr/lib/python2.7/site-packages/pakfire/repository +usr/lib/python2.7/site-packages/pakfire/repository/__init__.py +usr/lib/python2.7/site-packages/pakfire/repository/base.py +usr/lib/python2.7/site-packages/pakfire/repository/cache.py +usr/lib/python2.7/site-packages/pakfire/repository/database.py +usr/lib/python2.7/site-packages/pakfire/repository/index.py +usr/lib/python2.7/site-packages/pakfire/repository/local.py +usr/lib/python2.7/site-packages/pakfire/repository/metadata.py +usr/lib/python2.7/site-packages/pakfire/repository/remote.py +usr/lib/python2.7/site-packages/pakfire/repository/system.py +usr/lib/python2.7/site-packages/pakfire/satsolver.py +usr/lib/python2.7/site-packages/pakfire/server.py +usr/lib/python2.7/site-packages/pakfire/system.py +usr/lib/python2.7/site-packages/pakfire/transaction.py +usr/lib/python2.7/site-packages/pakfire/util.py +usr/lib/quality-agent +usr/lib/quality-agent/001-include-files +usr/lib/quality-agent/001-remove-info-files +usr/lib/quality-agent/001-unsafe-files +usr/lib/quality-agent/002-bad-symlinks +usr/lib/quality-agent/003-libs-location +usr/lib/quality-agent/050-canary +usr/lib/quality-agent/050-execstacks +usr/lib/quality-agent/050-invalid-interpreters +usr/lib/quality-agent/050-libs-needed +usr/lib/quality-agent/050-libs-soname +usr/lib/quality-agent/050-libs-x86_64 +usr/lib/quality-agent/050-nx +usr/lib/quality-agent/050-relro +usr/lib/quality-agent/050-rpaths +usr/lib/quality-agent/090-python-hardlinks +usr/lib/quality-agent/095-directory-layout +usr/lib/quality-agent/qa-include +var/ipfire/backup/addons/includes/pakfire3 diff --git a/config/rootfiles/packages/pakfire3-deps b/config/rootfiles/packages/pakfire3-deps deleted file mode 100644 index 464f5ca..0000000 --- a/config/rootfiles/packages/pakfire3-deps +++ /dev/null @@ -1 +0,0 @@ -var/ipfire/pakfire3-deps diff --git a/config/rootfiles/packages/pycurl b/config/rootfiles/packages/pycurl new file mode 100644 index 0000000..ddbe585 --- /dev/null +++ b/config/rootfiles/packages/pycurl @@ -0,0 +1,53 @@ +usr/lib/python2.7/site-packages/curl +usr/lib/python2.7/site-packages/curl/__init__.py +usr/lib/python2.7/site-packages/curl/__init__.pyc +#usr/lib/python2.7/site-packages/pycurl-7.19.0-py2.7.egg-info +usr/lib/python2.7/site-packages/pycurl.so +#usr/share/doc/pycurl +#usr/share/doc/pycurl/COPYING +#usr/share/doc/pycurl/COPYING2 +#usr/share/doc/pycurl/ChangeLog +#usr/share/doc/pycurl/INSTALL +#usr/share/doc/pycurl/README +#usr/share/doc/pycurl/TODO +#usr/share/doc/pycurl/examples +#usr/share/doc/pycurl/examples/basicfirst.py +#usr/share/doc/pycurl/examples/file_upload.py +#usr/share/doc/pycurl/examples/linksys.py +#usr/share/doc/pycurl/examples/retriever-multi.py +#usr/share/doc/pycurl/examples/retriever.py +#usr/share/doc/pycurl/examples/sfquery.py +#usr/share/doc/pycurl/examples/xmlrpc_curl.py +#usr/share/doc/pycurl/html +#usr/share/doc/pycurl/html/callbacks.html +#usr/share/doc/pycurl/html/curlmultiobject.html +#usr/share/doc/pycurl/html/curlobject.html +#usr/share/doc/pycurl/html/curlshareobject.html +#usr/share/doc/pycurl/html/pycurl.html +#usr/share/doc/pycurl/tests +#usr/share/doc/pycurl/tests/test.py +#usr/share/doc/pycurl/tests/test_cb.py +#usr/share/doc/pycurl/tests/test_debug.py +#usr/share/doc/pycurl/tests/test_ftp.py +#usr/share/doc/pycurl/tests/test_getinfo.py +#usr/share/doc/pycurl/tests/test_gtk.py +#usr/share/doc/pycurl/tests/test_internals.py +#usr/share/doc/pycurl/tests/test_memleak.py +#usr/share/doc/pycurl/tests/test_multi.py +#usr/share/doc/pycurl/tests/test_multi2.py +#usr/share/doc/pycurl/tests/test_multi3.py +#usr/share/doc/pycurl/tests/test_multi4.py +#usr/share/doc/pycurl/tests/test_multi5.py +#usr/share/doc/pycurl/tests/test_multi6.py +#usr/share/doc/pycurl/tests/test_multi_socket.py +#usr/share/doc/pycurl/tests/test_multi_socket_select.py +#usr/share/doc/pycurl/tests/test_multi_timer.py +#usr/share/doc/pycurl/tests/test_multi_vs_thread.py +#usr/share/doc/pycurl/tests/test_post.py +#usr/share/doc/pycurl/tests/test_post2.py +#usr/share/doc/pycurl/tests/test_post3.py +#usr/share/doc/pycurl/tests/test_share.py +#usr/share/doc/pycurl/tests/test_socketopen.py +#usr/share/doc/pycurl/tests/test_stringio.py +#usr/share/doc/pycurl/tests/test_xmlrpc.py +#usr/share/doc/pycurl/tests/util.py diff --git a/config/rootfiles/packages/pygpgme b/config/rootfiles/packages/pygpgme new file mode 100644 index 0000000..83ffaf8 --- /dev/null +++ b/config/rootfiles/packages/pygpgme @@ -0,0 +1,7 @@ +usr/lib/python2.7/site-packages/gpgme +usr/lib/python2.7/site-packages/gpgme/__init__.py +usr/lib/python2.7/site-packages/gpgme/__init__.pyc +usr/lib/python2.7/site-packages/gpgme/_gpgme.so +usr/lib/python2.7/site-packages/gpgme/editutil.py +usr/lib/python2.7/site-packages/gpgme/editutil.pyc +#usr/lib/python2.7/site-packages/pygpgme-0.3-py2.7.egg-info diff --git a/config/rootfiles/packages/python-rssdler b/config/rootfiles/packages/python-rssdler index 0c8bf8d..e5e3e3b 100644 --- a/config/rootfiles/packages/python-rssdler +++ b/config/rootfiles/packages/python-rssdler @@ -1,4 +1,5 @@ usr/bin/rssdler +#usr/lib/python2.7/site-packages/drv_libxml2.pyc #usr/lib/python2.7/site-packages/rssdler-0.4.0-py2.7.egg-info usr/lib/python2.7/site-packages/rssdler.py -usr/lib/python2.7/site-packages/rssdler.pyc +#usr/lib/python2.7/site-packages/rssdler.pyc diff --git a/config/rootfiles/packages/qemu-kqemu b/config/rootfiles/packages/qemu-kqemu deleted file mode 100644 index 7a908f7..0000000 --- a/config/rootfiles/packages/qemu-kqemu +++ /dev/null @@ -1,2 +0,0 @@ -usr/bin/qemu-kqemu -usr/share/qemu/bios-kqemu.bin diff --git a/config/rootfiles/packages/samba b/config/rootfiles/packages/samba index 0616b4b..fc8cc44 100644 --- a/config/rootfiles/packages/samba +++ b/config/rootfiles/packages/samba @@ -1,11 +1,5 @@ usr/bin/eventlogadm usr/bin/findsmb -usr/bin/ldbadd -usr/bin/ldbdel -usr/bin/ldbedit -usr/bin/ldbmodify -usr/bin/ldbrename -usr/bin/ldbsearch usr/bin/net usr/bin/nmblookup usr/bin/ntlm_auth @@ -21,10 +15,12 @@ usr/bin/smbget usr/bin/smbpasswd usr/bin/smbspool usr/bin/smbstatus +usr/bin/smbta-util usr/bin/smbtar usr/bin/smbtree usr/bin/tdbbackup usr/bin/tdbdump +usr/bin/tdbrestore usr/bin/tdbtool usr/bin/testparm usr/bin/wbinfo @@ -33,7 +29,6 @@ usr/bin/wbinfo #usr/include/smb_share_modes.h #usr/include/talloc.h #usr/include/tdb.h -#usr/include/wbc_async.h #usr/include/wbclient.h usr/lib/libnetapi.so usr/lib/libnetapi.so.0 @@ -43,8 +38,10 @@ usr/lib/libsmbsharemodes.so usr/lib/libsmbsharemodes.so.0 usr/lib/libtalloc.so usr/lib/libtalloc.so.2 +usr/lib/libtalloc.so.2.0.5 usr/lib/libtdb.so usr/lib/libtdb.so.1 +usr/lib/libtdb.so.1.2.9 usr/lib/libwbclient.so usr/lib/libwbclient.so.0 #usr/lib/samba @@ -55,11 +52,11 @@ usr/lib/samba/charset/CP437.so usr/lib/samba/charset/CP850.so usr/lib/samba/gpext usr/lib/samba/idmap +usr/lib/samba/idmap/autorid.so usr/lib/samba/lowcase.dat usr/lib/samba/nss_info usr/lib/samba/pdb usr/lib/samba/perfcount -usr/lib/samba/rpc usr/lib/samba/upcase.dat usr/lib/samba/valid.dat #usr/lib/samba/vfs @@ -68,6 +65,7 @@ usr/lib/samba/vfs/acl_xattr.so usr/lib/samba/vfs/audit.so usr/lib/samba/vfs/cap.so usr/lib/samba/vfs/catia.so +usr/lib/samba/vfs/crossrename.so usr/lib/samba/vfs/default_quota.so usr/lib/samba/vfs/dirsort.so usr/lib/samba/vfs/expand_msdfs.so @@ -75,6 +73,7 @@ usr/lib/samba/vfs/extd_audit.so usr/lib/samba/vfs/fake_perms.so usr/lib/samba/vfs/fileid.so usr/lib/samba/vfs/full_audit.so +usr/lib/samba/vfs/linux_xfs_sgid.so usr/lib/samba/vfs/netatalk.so usr/lib/samba/vfs/preopen.so usr/lib/samba/vfs/readahead.so @@ -87,11 +86,11 @@ usr/lib/samba/vfs/smb_traffic_analyzer.so usr/lib/samba/vfs/streams_depot.so usr/lib/samba/vfs/streams_xattr.so usr/lib/samba/vfs/syncops.so +usr/lib/samba/vfs/time_audit.so usr/lib/samba/vfs/xattr_tdb.so usr/lib/security usr/lib/security/pam_smbpass.so usr/lib/security/pam_winbind.so -usr/sbin/mount.cifs usr/sbin/nmbd usr/sbin/smbd usr/sbin/winbindd @@ -116,12 +115,6 @@ usr/sbin/winbindd #usr/share/locale/zh_CN/LC_MESSAGES/pam_winbind.mo #usr/share/locale/zh_TW/LC_MESSAGES/pam_winbind.mo #usr/share/man/man1/findsmb.1 -#usr/share/man/man1/ldbadd.1 -#usr/share/man/man1/ldbdel.1 -#usr/share/man/man1/ldbedit.1 -#usr/share/man/man1/ldbmodify.1 -#usr/share/man/man1/ldbrename.1 -#usr/share/man/man1/ldbsearch.1 #usr/share/man/man1/log2pcap.1 #usr/share/man/man1/nmblookup.1 #usr/share/man/man1/ntlm_auth.1 @@ -150,13 +143,13 @@ usr/sbin/winbindd #usr/share/man/man8/eventlogadm.8 #usr/share/man/man8/idmap_ad.8 #usr/share/man/man8/idmap_adex.8 +#usr/share/man/man8/idmap_autorid.8 #usr/share/man/man8/idmap_hash.8 #usr/share/man/man8/idmap_ldap.8 #usr/share/man/man8/idmap_nss.8 #usr/share/man/man8/idmap_rid.8 #usr/share/man/man8/idmap_tdb.8 #usr/share/man/man8/idmap_tdb2.8 -#usr/share/man/man8/mount.cifs.8 #usr/share/man/man8/net.8 #usr/share/man/man8/nmbd.8 #usr/share/man/man8/pam_winbind.8 @@ -164,19 +157,21 @@ usr/sbin/winbindd #usr/share/man/man8/smbd.8 #usr/share/man/man8/smbpasswd.8 #usr/share/man/man8/smbspool.8 +#usr/share/man/man8/smbta-util.8 #usr/share/man/man8/swat.8 #usr/share/man/man8/tdbbackup.8 #usr/share/man/man8/tdbdump.8 #usr/share/man/man8/tdbtool.8 -#usr/share/man/man8/umount.cifs.8 #usr/share/man/man8/vfs_acl_tdb.8 #usr/share/man/man8/vfs_acl_xattr.8 #usr/share/man/man8/vfs_aio_fork.8 +#usr/share/man/man8/vfs_aio_pthread.8 #usr/share/man/man8/vfs_audit.8 #usr/share/man/man8/vfs_cacheprime.8 #usr/share/man/man8/vfs_cap.8 #usr/share/man/man8/vfs_catia.8 #usr/share/man/man8/vfs_commit.8 +#usr/share/man/man8/vfs_crossrename.8 #usr/share/man/man8/vfs_default_quota.8 #usr/share/man/man8/vfs_dirsort.8 #usr/share/man/man8/vfs_extd_audit.8 @@ -197,6 +192,7 @@ usr/sbin/winbindd #usr/share/man/man8/vfs_smb_traffic_analyzer.8 #usr/share/man/man8/vfs_streams_depot.8 #usr/share/man/man8/vfs_streams_xattr.8 +#usr/share/man/man8/vfs_time_audit.8 #usr/share/man/man8/vfs_xattr_tdb.8 #usr/share/man/man8/winbindd.8 var/ipfire/backup/addons/includes/samba @@ -218,6 +214,7 @@ var/ipfire/samba/smb.conf var/ipfire/samba/smb.conf.default var/lib/samba var/log/samba +var/nmbd etc/rc.d/init.d/samba etc/rc.d/init.d/winbind srv/web/ipfire/cgi-bin/samba.cgi diff --git a/config/rootfiles/packages/splix b/config/rootfiles/packages/splix deleted file mode 100644 index f9c7579..0000000 --- a/config/rootfiles/packages/splix +++ /dev/null @@ -1,87 +0,0 @@ -usr/lib/cups/filter/pstoqpdl -usr/lib/cups/filter/rastertoqpdl -usr/share/cups/model/dell -usr/share/cups/model/dell/1100.ppd -usr/share/cups/model/dell/1100fr.ppd -usr/share/cups/model/dell/1110.ppd -usr/share/cups/model/dell/1110fr.ppd -usr/share/cups/model/samsung -usr/share/cups/model/samsung/clp200.ppd -usr/share/cups/model/samsung/clp200fr.ppd -usr/share/cups/model/samsung/clp300.ppd -usr/share/cups/model/samsung/clp300fr.ppd -usr/share/cups/model/samsung/clp500.ppd -usr/share/cups/model/samsung/clp500fr.ppd -usr/share/cups/model/samsung/clp510.ppd -usr/share/cups/model/samsung/clp510fr.ppd -usr/share/cups/model/samsung/clp550.ppd -usr/share/cups/model/samsung/clp550fr.ppd -usr/share/cups/model/samsung/clp600.ppd -usr/share/cups/model/samsung/clp600fr.ppd -usr/share/cups/model/samsung/clp610.ppd -usr/share/cups/model/samsung/clp610fr.ppd -usr/share/cups/model/samsung/clx216x.ppd -usr/share/cups/model/samsung/clx216xfr.ppd -usr/share/cups/model/samsung/clx2170.ppd -usr/share/cups/model/samsung/clx2170fr.ppd -usr/share/cups/model/samsung/clx3160.ppd -usr/share/cups/model/samsung/clx3160fr.ppd -usr/share/cups/model/samsung/ml1510.ppd -usr/share/cups/model/samsung/ml1510fr.ppd -usr/share/cups/model/samsung/ml1520.ppd -usr/share/cups/model/samsung/ml1520fr.ppd -usr/share/cups/model/samsung/ml1610.ppd -usr/share/cups/model/samsung/ml1610fr.ppd -usr/share/cups/model/samsung/ml1630.ppd -usr/share/cups/model/samsung/ml1630fr.ppd -usr/share/cups/model/samsung/ml1710.ppd -usr/share/cups/model/samsung/ml1710fr.ppd -usr/share/cups/model/samsung/ml1740.ppd -usr/share/cups/model/samsung/ml1740fr.ppd -usr/share/cups/model/samsung/ml1750.ppd -usr/share/cups/model/samsung/ml1750fr.ppd -usr/share/cups/model/samsung/ml2010.ppd -usr/share/cups/model/samsung/ml2010fr.ppd -usr/share/cups/model/samsung/ml2150.ppd -usr/share/cups/model/samsung/ml2150fr.ppd -usr/share/cups/model/samsung/ml2250.ppd -usr/share/cups/model/samsung/ml2250fr.ppd -usr/share/cups/model/samsung/ml2251.ppd -usr/share/cups/model/samsung/ml2251fr.ppd -usr/share/cups/model/samsung/ml2510.ppd -usr/share/cups/model/samsung/ml2510fr.ppd -usr/share/cups/model/samsung/ml2550.ppd -usr/share/cups/model/samsung/ml2550fr.ppd -usr/share/cups/model/samsung/ml3050.ppd -usr/share/cups/model/samsung/ml3050fr.ppd -usr/share/cups/model/samsung/ml3560.ppd -usr/share/cups/model/samsung/ml3560fr.ppd -usr/share/cups/model/xerox -usr/share/cups/model/xerox/ph3115.ppd -usr/share/cups/model/xerox/ph3115fr.ppd -usr/share/cups/model/xerox/ph3116.ppd -usr/share/cups/model/xerox/ph3116fr.ppd -usr/share/cups/model/xerox/ph3117.ppd -usr/share/cups/model/xerox/ph3117fr.ppd -usr/share/cups/model/xerox/ph3120.ppd -usr/share/cups/model/xerox/ph3120fr.ppd -usr/share/cups/model/xerox/ph3121.ppd -usr/share/cups/model/xerox/ph3121fr.ppd -usr/share/cups/model/xerox/ph3122.ppd -usr/share/cups/model/xerox/ph3122fr.ppd -usr/share/cups/model/xerox/ph3130.ppd -usr/share/cups/model/xerox/ph3130fr.ppd -usr/share/cups/model/xerox/ph3150.ppd -usr/share/cups/model/xerox/ph3150fr.ppd -usr/share/cups/model/xerox/ph3160.ppd -usr/share/cups/model/xerox/ph3160fr.ppd -usr/share/cups/model/xerox/ph3420.ppd -usr/share/cups/model/xerox/ph3420fr.ppd -usr/share/cups/model/xerox/ph3425.ppd -usr/share/cups/model/xerox/ph3425fr.ppd -usr/share/cups/model/xerox/ph5500.ppd -usr/share/cups/model/xerox/ph5500fr.ppd -usr/share/cups/model/xerox/ph6100.ppd -usr/share/cups/model/xerox/ph6100fr.ppd -usr/share/cups/model/xerox/ph6110.ppd -usr/share/cups/model/xerox/ph6110fr.ppd diff --git a/config/rootfiles/packages/transmission b/config/rootfiles/packages/transmission index af8a68a..3321b71 100644 --- a/config/rootfiles/packages/transmission +++ b/config/rootfiles/packages/transmission @@ -16,31 +16,8 @@ usr/share/transmission #usr/share/transmission/web #usr/share/transmission/web/LICENSE #usr/share/transmission/web/images -#usr/share/transmission/web/images/buttons -#usr/share/transmission/web/images/buttons/cancel.png -#usr/share/transmission/web/images/buttons/file_priority_buttons.png -#usr/share/transmission/web/images/buttons/file_wanted_buttons.png -#usr/share/transmission/web/images/buttons/info_activity.png -#usr/share/transmission/web/images/buttons/info_files.png -#usr/share/transmission/web/images/buttons/info_general.png -#usr/share/transmission/web/images/buttons/info_peers.png -#usr/share/transmission/web/images/buttons/info_trackers.png -#usr/share/transmission/web/images/buttons/tab_backgrounds.png -#usr/share/transmission/web/images/buttons/tab_backgrounds_highlight.png -#usr/share/transmission/web/images/buttons/toolbar_buttons.png -#usr/share/transmission/web/images/buttons/torrent_buttons.png #usr/share/transmission/web/images/favicon.ico #usr/share/transmission/web/images/favicon.png -#usr/share/transmission/web/images/graphics -#usr/share/transmission/web/images/graphics/blue-turtle.png -#usr/share/transmission/web/images/graphics/chrome.png -#usr/share/transmission/web/images/graphics/filter_bar.png -#usr/share/transmission/web/images/graphics/filter_icon.png -#usr/share/transmission/web/images/graphics/iphone_chrome.png -#usr/share/transmission/web/images/graphics/lock_icon.png -#usr/share/transmission/web/images/graphics/logo.png -#usr/share/transmission/web/images/progress -#usr/share/transmission/web/images/progress/progress.png #usr/share/transmission/web/images/webclip-icon.png #usr/share/transmission/web/index.html #usr/share/transmission/web/javascript @@ -53,17 +30,58 @@ usr/share/transmission #usr/share/transmission/web/javascript/jquery/jquery.contextmenu.min.js #usr/share/transmission/web/javascript/jquery/jquery.form.js #usr/share/transmission/web/javascript/jquery/jquery.form.min.js +#usr/share/transmission/web/javascript/jquery/jquery.min.js #usr/share/transmission/web/javascript/jquery/jquery.transmenu.min.js +#usr/share/transmission/web/javascript/jquery/jqueryui-1.8.16.min.js #usr/share/transmission/web/javascript/jquery/json2.min.js +#usr/share/transmission/web/javascript/notifications.js #usr/share/transmission/web/javascript/prefs-dialog.js #usr/share/transmission/web/javascript/remote.js #usr/share/transmission/web/javascript/torrent-row.js #usr/share/transmission/web/javascript/torrent.js #usr/share/transmission/web/javascript/transmission.js -#usr/share/transmission/web/stylesheets -#usr/share/transmission/web/stylesheets/common.css -#usr/share/transmission/web/stylesheets/ie7.css -#usr/share/transmission/web/stylesheets/ieAll.css -#usr/share/transmission/web/stylesheets/mobile.css +#usr/share/transmission/web/style +#usr/share/transmission/web/style/jqueryui +#usr/share/transmission/web/style/jqueryui/images +#usr/share/transmission/web/style/jqueryui/images/ui-bg_flat_75_ffffff_40x100.png +#usr/share/transmission/web/style/jqueryui/images/ui-bg_glass_65_ffffff_1x400.png +#usr/share/transmission/web/style/jqueryui/images/ui-bg_glass_75_dadada_1x400.png +#usr/share/transmission/web/style/jqueryui/images/ui-bg_glass_75_e6e6e6_1x400.png +#usr/share/transmission/web/style/jqueryui/images/ui-bg_highlight-soft_75_cccccc_1x100.png +#usr/share/transmission/web/style/jqueryui/images/ui-icons_222222_256x240.png +#usr/share/transmission/web/style/jqueryui/images/ui-icons_454545_256x240.png +#usr/share/transmission/web/style/jqueryui/jqueryui-1.8.16.css +#usr/share/transmission/web/style/transmission +#usr/share/transmission/web/style/transmission/common.css +#usr/share/transmission/web/style/transmission/images +#usr/share/transmission/web/style/transmission/images/arrow-down.png +#usr/share/transmission/web/style/transmission/images/arrow-up.png +#usr/share/transmission/web/style/transmission/images/blue-turtle.png +#usr/share/transmission/web/style/transmission/images/buttons +#usr/share/transmission/web/style/transmission/images/buttons/torrent_buttons.png +#usr/share/transmission/web/style/transmission/images/compact.png +#usr/share/transmission/web/style/transmission/images/file-priority-high.png +#usr/share/transmission/web/style/transmission/images/file-priority-low.png +#usr/share/transmission/web/style/transmission/images/file-priority-normal.png +#usr/share/transmission/web/style/transmission/images/filter_bar.png +#usr/share/transmission/web/style/transmission/images/filter_icon.png +#usr/share/transmission/web/style/transmission/images/inspector-files.png +#usr/share/transmission/web/style/transmission/images/inspector-info.png +#usr/share/transmission/web/style/transmission/images/inspector-peers.png +#usr/share/transmission/web/style/transmission/images/inspector-trackers.png +#usr/share/transmission/web/style/transmission/images/lock_icon.png +#usr/share/transmission/web/style/transmission/images/logo.png +#usr/share/transmission/web/style/transmission/images/progress.png +#usr/share/transmission/web/style/transmission/images/settings.png +#usr/share/transmission/web/style/transmission/images/toolbar-close.png +#usr/share/transmission/web/style/transmission/images/toolbar-folder.png +#usr/share/transmission/web/style/transmission/images/toolbar-info.png +#usr/share/transmission/web/style/transmission/images/toolbar-pause-all.png +#usr/share/transmission/web/style/transmission/images/toolbar-pause.png +#usr/share/transmission/web/style/transmission/images/toolbar-start-all.png +#usr/share/transmission/web/style/transmission/images/toolbar-start.png +#usr/share/transmission/web/style/transmission/images/turtle.png +#usr/share/transmission/web/style/transmission/images/wrench.png +#usr/share/transmission/web/style/transmission/mobile.css var/ipfire/backup/addons/includes/transmission etc/rc.d/init.d/transmission diff --git a/config/rootfiles/packages/urlgrabber b/config/rootfiles/packages/urlgrabber index 66b9bb2..a98c7b1 100644 --- a/config/rootfiles/packages/urlgrabber +++ b/config/rootfiles/packages/urlgrabber @@ -1,22 +1,18 @@ usr/bin/urlgrabber -#usr/lib/python2.7/site-packages/urlgrabber -#usr/lib/python2.7/site-packages/urlgrabber-3.1.0-py2.7.egg-info -#usr/lib/python2.7/site-packages/urlgrabber/__init__.py +usr/lib/python2.7/site-packages/urlgrabber +#usr/lib/python2.7/site-packages/urlgrabber-3.9.1-py2.7.egg-info +usr/lib/python2.7/site-packages/urlgrabber/__init__.py usr/lib/python2.7/site-packages/urlgrabber/__init__.pyc -#usr/lib/python2.7/site-packages/urlgrabber/byterange.py +usr/lib/python2.7/site-packages/urlgrabber/byterange.py usr/lib/python2.7/site-packages/urlgrabber/byterange.pyc -#usr/lib/python2.7/site-packages/urlgrabber/grabber.py +usr/lib/python2.7/site-packages/urlgrabber/grabber.py usr/lib/python2.7/site-packages/urlgrabber/grabber.pyc -#usr/lib/python2.7/site-packages/urlgrabber/keepalive.py -usr/lib/python2.7/site-packages/urlgrabber/keepalive.pyc -#usr/lib/python2.7/site-packages/urlgrabber/mirror.py +usr/lib/python2.7/site-packages/urlgrabber/mirror.py usr/lib/python2.7/site-packages/urlgrabber/mirror.pyc -#usr/lib/python2.7/site-packages/urlgrabber/progress.py +usr/lib/python2.7/site-packages/urlgrabber/progress.py usr/lib/python2.7/site-packages/urlgrabber/progress.pyc -#usr/lib/python2.7/site-packages/urlgrabber/sslfactory.py -usr/lib/python2.7/site-packages/urlgrabber/sslfactory.pyc -#usr/share/doc/urlgrabber-3.1.0 -#usr/share/doc/urlgrabber-3.1.0/ChangeLog -#usr/share/doc/urlgrabber-3.1.0/LICENSE -#usr/share/doc/urlgrabber-3.1.0/README -#usr/share/doc/urlgrabber-3.1.0/TODO +#usr/share/doc/urlgrabber-3.9.1 +#usr/share/doc/urlgrabber-3.9.1/ChangeLog +#usr/share/doc/urlgrabber-3.9.1/LICENSE +#usr/share/doc/urlgrabber-3.9.1/README +#usr/share/doc/urlgrabber-3.9.1/TODO diff --git a/config/rootfiles/packages/videolan b/config/rootfiles/packages/videolan deleted file mode 100644 index 2b980f9..0000000 --- a/config/rootfiles/packages/videolan +++ /dev/null @@ -1,415 +0,0 @@ -usr/bin/vlc -usr/bin/vlc-config -#usr/include/vlc -#usr/include/vlc/aout.h -#usr/include/vlc/decoder.h -#usr/include/vlc/input.h -#usr/include/vlc/intf.h -#usr/include/vlc/libvlc.h -#usr/include/vlc/mediacontrol.h -#usr/include/vlc/mediacontrol_structures.h -#usr/include/vlc/sout.h -#usr/include/vlc/vlc.h -#usr/include/vlc/vout.h -#usr/lib/libvlc.a -#usr/lib/vlc -#usr/lib/vlc/access -usr/lib/vlc/access/libaccess_directory_plugin.so -usr/lib/vlc/access/libaccess_fake_plugin.so -usr/lib/vlc/access/libaccess_file_plugin.so -usr/lib/vlc/access/libaccess_ftp_plugin.so -usr/lib/vlc/access/libaccess_http_plugin.so -usr/lib/vlc/access/libaccess_mms_plugin.so -usr/lib/vlc/access/libaccess_smb_plugin.so -usr/lib/vlc/access/libaccess_tcp_plugin.so -usr/lib/vlc/access/libaccess_udp_plugin.so -usr/lib/vlc/access/libcdda_plugin.so -usr/lib/vlc/access/libdvb_plugin.so -usr/lib/vlc/access/libv4l_plugin.so -usr/lib/vlc/access/libvcd_plugin.so -#usr/lib/vlc/access_filter -usr/lib/vlc/access_filter/libaccess_filter_dump_plugin.so -usr/lib/vlc/access_filter/libaccess_filter_record_plugin.so -usr/lib/vlc/access_filter/libaccess_filter_timeshift_plugin.so -#usr/lib/vlc/access_output -usr/lib/vlc/access_output/libaccess_output_dummy_plugin.so -usr/lib/vlc/access_output/libaccess_output_file_plugin.so -usr/lib/vlc/access_output/libaccess_output_http_plugin.so -usr/lib/vlc/access_output/libaccess_output_shout_plugin.so -usr/lib/vlc/access_output/libaccess_output_udp_plugin.so -#usr/lib/vlc/audio_filter -usr/lib/vlc/audio_filter/liba52tospdif_plugin.so -usr/lib/vlc/audio_filter/libaudio_format_plugin.so -usr/lib/vlc/audio_filter/libbandlimited_resampler_plugin.so -usr/lib/vlc/audio_filter/libdolby_surround_decoder_plugin.so -usr/lib/vlc/audio_filter/libdtstospdif_plugin.so -usr/lib/vlc/audio_filter/libequalizer_plugin.so -usr/lib/vlc/audio_filter/libfixed32tofloat32_plugin.so -usr/lib/vlc/audio_filter/libfixed32tos16_plugin.so -usr/lib/vlc/audio_filter/libfloat32tos16_plugin.so -usr/lib/vlc/audio_filter/libfloat32tos8_plugin.so -usr/lib/vlc/audio_filter/libfloat32tou16_plugin.so -usr/lib/vlc/audio_filter/libfloat32tou8_plugin.so -usr/lib/vlc/audio_filter/libheadphone_channel_mixer_plugin.so -usr/lib/vlc/audio_filter/liblinear_resampler_plugin.so -usr/lib/vlc/audio_filter/libmpgatofixed32_plugin.so -usr/lib/vlc/audio_filter/libnormvol_plugin.so -usr/lib/vlc/audio_filter/libparam_eq_plugin.so -usr/lib/vlc/audio_filter/libs16tofixed32_plugin.so -usr/lib/vlc/audio_filter/libs16tofloat32_plugin.so -usr/lib/vlc/audio_filter/libs16tofloat32swab_plugin.so -usr/lib/vlc/audio_filter/libs8tofloat32_plugin.so -usr/lib/vlc/audio_filter/libsimple_channel_mixer_plugin.so -usr/lib/vlc/audio_filter/libtrivial_channel_mixer_plugin.so -usr/lib/vlc/audio_filter/libtrivial_resampler_plugin.so -usr/lib/vlc/audio_filter/libu8tofixed32_plugin.so -usr/lib/vlc/audio_filter/libu8tofloat32_plugin.so -usr/lib/vlc/audio_filter/libugly_resampler_plugin.so -#usr/lib/vlc/audio_mixer -usr/lib/vlc/audio_mixer/libfloat32_mixer_plugin.so -usr/lib/vlc/audio_mixer/libspdif_mixer_plugin.so -usr/lib/vlc/audio_mixer/libtrivial_mixer_plugin.so -#usr/lib/vlc/audio_output -usr/lib/vlc/audio_output/libalsa_plugin.so -usr/lib/vlc/audio_output/libaout_file_plugin.so -usr/lib/vlc/audio_output/libaout_sdl_plugin.so -usr/lib/vlc/audio_output/liboss_plugin.so -#usr/lib/vlc/codec -usr/lib/vlc/codec/liba52_plugin.so -usr/lib/vlc/codec/libadpcm_plugin.so -usr/lib/vlc/codec/libaraw_plugin.so -usr/lib/vlc/codec/libcinepak_plugin.so -usr/lib/vlc/codec/libcmml_plugin.so -usr/lib/vlc/codec/libcvdsub_plugin.so -usr/lib/vlc/codec/libdts_plugin.so -usr/lib/vlc/codec/libdvbsub_plugin.so -usr/lib/vlc/codec/libfaad_plugin.so -usr/lib/vlc/codec/libfake_plugin.so -usr/lib/vlc/codec/libflacdec_plugin.so -usr/lib/vlc/codec/liblibmpeg2_plugin.so -usr/lib/vlc/codec/liblpcm_plugin.so -usr/lib/vlc/codec/libmpeg_audio_plugin.so -usr/lib/vlc/codec/libpng_plugin.so -usr/lib/vlc/codec/librawvideo_plugin.so -usr/lib/vlc/codec/libspudec_plugin.so -usr/lib/vlc/codec/libsubsdec_plugin.so -usr/lib/vlc/codec/libsvcdsub_plugin.so -usr/lib/vlc/codec/libtelx_plugin.so -usr/lib/vlc/codec/libvorbis_plugin.so -#usr/lib/vlc/control -usr/lib/vlc/control/libgestures_plugin.so -usr/lib/vlc/control/libhotkeys_plugin.so -usr/lib/vlc/control/libhttp_plugin.so -usr/lib/vlc/control/libnetsync_plugin.so -usr/lib/vlc/control/librc_plugin.so -usr/lib/vlc/control/libshowintf_plugin.so -usr/lib/vlc/control/libtelnet_plugin.so -#usr/lib/vlc/demux -usr/lib/vlc/demux/liba52sys_plugin.so -usr/lib/vlc/demux/libaiff_plugin.so -usr/lib/vlc/demux/libasf_plugin.so -usr/lib/vlc/demux/libau_plugin.so -usr/lib/vlc/demux/libavi_plugin.so -usr/lib/vlc/demux/libdemuxdump_plugin.so -usr/lib/vlc/demux/libdtssys_plugin.so -usr/lib/vlc/demux/libflac_plugin.so -usr/lib/vlc/demux/libh264_plugin.so -usr/lib/vlc/demux/libid3tag_plugin.so -usr/lib/vlc/demux/libm3u_plugin.so -usr/lib/vlc/demux/libm4a_plugin.so -usr/lib/vlc/demux/libm4v_plugin.so -usr/lib/vlc/demux/libmjpeg_plugin.so -usr/lib/vlc/demux/libmp4_plugin.so -usr/lib/vlc/demux/libmpga_plugin.so -usr/lib/vlc/demux/libmpgv_plugin.so -usr/lib/vlc/demux/libnsc_plugin.so -usr/lib/vlc/demux/libnsv_plugin.so -usr/lib/vlc/demux/libnuv_plugin.so -usr/lib/vlc/demux/libogg_plugin.so -usr/lib/vlc/demux/libplaylist_plugin.so -usr/lib/vlc/demux/libps_plugin.so -usr/lib/vlc/demux/libpva_plugin.so -usr/lib/vlc/demux/librawdv_plugin.so -usr/lib/vlc/demux/libreal_plugin.so -usr/lib/vlc/demux/libsgimb_plugin.so -usr/lib/vlc/demux/libsubtitle_plugin.so -usr/lib/vlc/demux/libts_plugin.so -usr/lib/vlc/demux/libtta_plugin.so -usr/lib/vlc/demux/libty_plugin.so -usr/lib/vlc/demux/libvobsub_plugin.so -usr/lib/vlc/demux/libvoc_plugin.so -usr/lib/vlc/demux/libwav_plugin.so -usr/lib/vlc/demux/libxa_plugin.so -#usr/lib/vlc/gui -usr/lib/vlc/gui/libncurses_plugin.so -#usr/lib/vlc/libffmpeg.a -#usr/lib/vlc/libi420_rgb_mmx.a -#usr/lib/vlc/libi420_ymga_mmx.a -#usr/lib/vlc/libi420_yuy2_mmx.a -#usr/lib/vlc/libi422_yuy2_mmx.a -#usr/lib/vlc/libmemcpy3dn.a -#usr/lib/vlc/libmemcpymmx.a -#usr/lib/vlc/libmemcpymmxext.a -#usr/lib/vlc/libmux_ts.a -#usr/lib/vlc/libstream_out_switcher.a -#usr/lib/vlc/misc -usr/lib/vlc/misc/libdummy_plugin.so -usr/lib/vlc/misc/libexport_plugin.so -usr/lib/vlc/misc/libfreetype_plugin.so -usr/lib/vlc/misc/libgrowl_plugin.so -usr/lib/vlc/misc/libipv4_plugin.so -usr/lib/vlc/misc/libipv6_plugin.so -usr/lib/vlc/misc/liblogger_plugin.so -usr/lib/vlc/misc/libmemcpy_plugin.so -usr/lib/vlc/misc/libscreensaver_plugin.so -usr/lib/vlc/misc/libvod_rtsp_plugin.so -usr/lib/vlc/misc/libxml_plugin.so -usr/lib/vlc/misc/libxtag_plugin.so -#usr/lib/vlc/mux -usr/lib/vlc/mux/libmux_asf_plugin.so -usr/lib/vlc/mux/libmux_avi_plugin.so -usr/lib/vlc/mux/libmux_dummy_plugin.so -usr/lib/vlc/mux/libmux_mp4_plugin.so -usr/lib/vlc/mux/libmux_mpjpeg_plugin.so -usr/lib/vlc/mux/libmux_ogg_plugin.so -usr/lib/vlc/mux/libmux_ps_plugin.so -usr/lib/vlc/mux/libmux_wav_plugin.so -#usr/lib/vlc/packetizer -usr/lib/vlc/packetizer/libpacketizer_copy_plugin.so -usr/lib/vlc/packetizer/libpacketizer_h264_plugin.so -usr/lib/vlc/packetizer/libpacketizer_mpeg4audio_plugin.so -usr/lib/vlc/packetizer/libpacketizer_mpeg4video_plugin.so -usr/lib/vlc/packetizer/libpacketizer_mpegvideo_plugin.so -#usr/lib/vlc/services_discovery -usr/lib/vlc/services_discovery/libpodcast_plugin.so -usr/lib/vlc/services_discovery/libsap_plugin.so -usr/lib/vlc/services_discovery/libshout_plugin.so -usr/lib/vlc/services_discovery/libupnp_intel_plugin.so -#usr/lib/vlc/stream_out -usr/lib/vlc/stream_out/libstream_out_bridge_plugin.so -usr/lib/vlc/stream_out/libstream_out_description_plugin.so -usr/lib/vlc/stream_out/libstream_out_display_plugin.so -usr/lib/vlc/stream_out/libstream_out_dummy_plugin.so -usr/lib/vlc/stream_out/libstream_out_duplicate_plugin.so -usr/lib/vlc/stream_out/libstream_out_es_plugin.so -usr/lib/vlc/stream_out/libstream_out_gather_plugin.so -usr/lib/vlc/stream_out/libstream_out_mosaic_bridge_plugin.so -usr/lib/vlc/stream_out/libstream_out_rtp_plugin.so -usr/lib/vlc/stream_out/libstream_out_standard_plugin.so -usr/lib/vlc/stream_out/libstream_out_transcode_plugin.so -#usr/lib/vlc/video_chroma -usr/lib/vlc/video_chroma/libi420_rgb_plugin.so -usr/lib/vlc/video_chroma/libi420_ymga_plugin.so -usr/lib/vlc/video_chroma/libi420_yuy2_plugin.so -usr/lib/vlc/video_chroma/libi422_yuy2_plugin.so -#usr/lib/vlc/video_filter -usr/lib/vlc/video_filter/libadjust_plugin.so -usr/lib/vlc/video_filter/libblend_plugin.so -usr/lib/vlc/video_filter/libclone_plugin.so -usr/lib/vlc/video_filter/libcrop_plugin.so -usr/lib/vlc/video_filter/libdeinterlace_plugin.so -usr/lib/vlc/video_filter/libdistort_plugin.so -usr/lib/vlc/video_filter/libinvert_plugin.so -usr/lib/vlc/video_filter/liblogo_plugin.so -usr/lib/vlc/video_filter/libmagnify_plugin.so -usr/lib/vlc/video_filter/libmarq_plugin.so -usr/lib/vlc/video_filter/libmosaic_plugin.so -usr/lib/vlc/video_filter/libmotionblur_plugin.so -usr/lib/vlc/video_filter/libmotiondetect_plugin.so -usr/lib/vlc/video_filter/libosdmenu_plugin.so -usr/lib/vlc/video_filter/librss_plugin.so -usr/lib/vlc/video_filter/librv32_plugin.so -usr/lib/vlc/video_filter/libscale_plugin.so -usr/lib/vlc/video_filter/libtime_plugin.so -usr/lib/vlc/video_filter/libtransform_plugin.so -usr/lib/vlc/video_filter/libwall_plugin.so -#usr/lib/vlc/video_output -usr/lib/vlc/video_output/libdirectfb_plugin.so -usr/lib/vlc/video_output/libfb_plugin.so -usr/lib/vlc/video_output/libimage_plugin.so -usr/lib/vlc/video_output/libvout_sdl_plugin.so -#usr/lib/vlc/visualization -usr/lib/vlc/visualization/libvisual_plugin.so -#usr/share/applications/vlc.desktop -#usr/share/doc/vlc -#usr/share/doc/vlc/bugreport-howto.txt -#usr/share/doc/vlc/fortunes.txt -#usr/share/doc/vlc/intf-cdda.txt -#usr/share/doc/vlc/intf-vcd.txt -#usr/share/vlc -#usr/share/vlc/http -usr/share/vlc/http/.hosts -#usr/share/vlc/http/dialogs -usr/share/vlc/http/dialogs/.hosts -usr/share/vlc/http/dialogs/browse -usr/share/vlc/http/dialogs/footer -usr/share/vlc/http/dialogs/input -usr/share/vlc/http/dialogs/main -usr/share/vlc/http/dialogs/mosaic -usr/share/vlc/http/dialogs/playlist -usr/share/vlc/http/dialogs/sout -usr/share/vlc/http/dialogs/vlm -usr/share/vlc/http/favicon.ico -usr/share/vlc/http/iehacks.css -#usr/share/vlc/http/images -usr/share/vlc/http/images/delete.png -usr/share/vlc/http/images/delete_small.png -usr/share/vlc/http/images/eject.png -usr/share/vlc/http/images/empty.png -usr/share/vlc/http/images/fullscreen.png -usr/share/vlc/http/images/help.png -usr/share/vlc/http/images/info.png -usr/share/vlc/http/images/loop.png -usr/share/vlc/http/images/minus.png -usr/share/vlc/http/images/next.png -usr/share/vlc/http/images/pause.png -usr/share/vlc/http/images/play.png -usr/share/vlc/http/images/playlist.png -usr/share/vlc/http/images/playlist_small.png -usr/share/vlc/http/images/plus.png -usr/share/vlc/http/images/prev.png -usr/share/vlc/http/images/refresh.png -usr/share/vlc/http/images/repeat.png -usr/share/vlc/http/images/sd.png -usr/share/vlc/http/images/shuffle.png -usr/share/vlc/http/images/slider_bar.png -usr/share/vlc/http/images/slider_left.png -usr/share/vlc/http/images/slider_point.png -usr/share/vlc/http/images/slider_right.png -usr/share/vlc/http/images/slow.png -usr/share/vlc/http/images/snapshot.png -usr/share/vlc/http/images/sort.png -usr/share/vlc/http/images/sout.png -usr/share/vlc/http/images/speaker.png -usr/share/vlc/http/images/speaker_mute.png -usr/share/vlc/http/images/stop.png -usr/share/vlc/http/images/vlc16x16.png -usr/share/vlc/http/images/volume_down.png -usr/share/vlc/http/images/volume_up.png -usr/share/vlc/http/images/white.png -usr/share/vlc/http/images/white_cross_small.png -usr/share/vlc/http/index.html -#usr/share/vlc/http/js -usr/share/vlc/http/js/functions.js -usr/share/vlc/http/js/mosaic.js -usr/share/vlc/http/js/vlm.js -usr/share/vlc/http/mosaic.html -#usr/share/vlc/http/old -usr/share/vlc/http/old/.hosts -#usr/share/vlc/http/old/admin -usr/share/vlc/http/old/admin/.access -usr/share/vlc/http/old/admin/browse.html -usr/share/vlc/http/old/admin/dboxfiles.html -usr/share/vlc/http/old/admin/index.html -usr/share/vlc/http/old/cone_minus.png -usr/share/vlc/http/old/cone_plus.png -usr/share/vlc/http/old/index.html -usr/share/vlc/http/old/info.html -usr/share/vlc/http/old/style.css -#usr/share/vlc/http/old/vlm -usr/share/vlc/http/old/vlm/edit.html -usr/share/vlc/http/old/vlm/index.html -usr/share/vlc/http/old/vlm/new.html -usr/share/vlc/http/old/vlm/show.html -usr/share/vlc/http/old/webcam.html -#usr/share/vlc/http/requests -usr/share/vlc/http/requests/browse.xml -usr/share/vlc/http/requests/playlist.xml -usr/share/vlc/http/requests/readme -usr/share/vlc/http/requests/status.xml -usr/share/vlc/http/requests/vlm.xml -usr/share/vlc/http/requests/vlm_cmd.xml -usr/share/vlc/http/style.css -usr/share/vlc/http/vlm.html -usr/share/vlc/http/vlm_export.html -#usr/share/vlc/osdmenu -#usr/share/vlc/osdmenu/default -usr/share/vlc/osdmenu/default.cfg -#usr/share/vlc/osdmenu/default/selected -usr/share/vlc/osdmenu/default/selected/bw.png -usr/share/vlc/osdmenu/default/selected/esc.png -usr/share/vlc/osdmenu/default/selected/fw.png -usr/share/vlc/osdmenu/default/selected/next.png -usr/share/vlc/osdmenu/default/selected/play_pause.png -usr/share/vlc/osdmenu/default/selected/previous.png -usr/share/vlc/osdmenu/default/selected/stop.png -usr/share/vlc/osdmenu/default/selected/volume.png -#usr/share/vlc/osdmenu/default/selection -usr/share/vlc/osdmenu/default/selection/bw.png -usr/share/vlc/osdmenu/default/selection/esc.png -usr/share/vlc/osdmenu/default/selection/fw.png -usr/share/vlc/osdmenu/default/selection/next.png -usr/share/vlc/osdmenu/default/selection/play_pause.png -usr/share/vlc/osdmenu/default/selection/previous.png -usr/share/vlc/osdmenu/default/selection/stop.png -usr/share/vlc/osdmenu/default/selection/volume.png -usr/share/vlc/osdmenu/default/unselected.png -#usr/share/vlc/osdmenu/default/volume -usr/share/vlc/osdmenu/default/volume/volume_00.png -usr/share/vlc/osdmenu/default/volume/volume_01.png -usr/share/vlc/osdmenu/default/volume/volume_02.png -usr/share/vlc/osdmenu/default/volume/volume_03.png -usr/share/vlc/osdmenu/default/volume/volume_04.png -usr/share/vlc/osdmenu/default/volume/volume_05.png -usr/share/vlc/osdmenu/default/volume/volume_06.png -usr/share/vlc/osdmenu/default/volume/volume_07.png -usr/share/vlc/osdmenu/default/volume/volume_08.png -usr/share/vlc/osdmenu/default/volume/volume_09.png -usr/share/vlc/osdmenu/default/volume/volume_10.png -#usr/share/vlc/osdmenu/dvd -usr/share/vlc/osdmenu/dvd.cfg -#usr/share/vlc/osdmenu/dvd/selected -usr/share/vlc/osdmenu/dvd/selected/bw.png -usr/share/vlc/osdmenu/dvd/selected/esc.png -usr/share/vlc/osdmenu/dvd/selected/fw.png -usr/share/vlc/osdmenu/dvd/selected/mute.png -usr/share/vlc/osdmenu/dvd/selected/next.png -usr/share/vlc/osdmenu/dvd/selected/pause.png -usr/share/vlc/osdmenu/dvd/selected/play.png -usr/share/vlc/osdmenu/dvd/selected/previous.png -usr/share/vlc/osdmenu/dvd/selected/slow.png -usr/share/vlc/osdmenu/dvd/selected/stop.png -usr/share/vlc/osdmenu/dvd/selected/volume.png -#usr/share/vlc/osdmenu/dvd/selection -usr/share/vlc/osdmenu/dvd/selection/bw.png -usr/share/vlc/osdmenu/dvd/selection/esc.png -usr/share/vlc/osdmenu/dvd/selection/fw.png -usr/share/vlc/osdmenu/dvd/selection/mute.png -usr/share/vlc/osdmenu/dvd/selection/next.png -usr/share/vlc/osdmenu/dvd/selection/pause.png -usr/share/vlc/osdmenu/dvd/selection/play.png -usr/share/vlc/osdmenu/dvd/selection/previous.png -usr/share/vlc/osdmenu/dvd/selection/slow.png -usr/share/vlc/osdmenu/dvd/selection/stop.png -#usr/share/vlc/osdmenu/dvd/unselect -usr/share/vlc/osdmenu/dvd/unselect/barroff.png -#usr/share/vlc/osdmenu/dvd/volume -usr/share/vlc/osdmenu/dvd/volume/volume00.png -usr/share/vlc/osdmenu/dvd/volume/volume01.png -usr/share/vlc/osdmenu/dvd/volume/volume02.png -usr/share/vlc/osdmenu/dvd/volume/volume03.png -usr/share/vlc/osdmenu/dvd/volume/volume04.png -usr/share/vlc/osdmenu/dvd/volume/volume05.png -usr/share/vlc/pda-forwardb16x16.xpm -usr/share/vlc/pda-openb16x16.xpm -usr/share/vlc/pda-pauseb16x16.xpm -usr/share/vlc/pda-playb16x16.xpm -usr/share/vlc/pda-playlistb16x16.xpm -usr/share/vlc/pda-preferencesb16x16.xpm -usr/share/vlc/pda-rewindb16x16.xpm -usr/share/vlc/pda-stopb16x16.xpm -#usr/share/vlc/skins2 -usr/share/vlc/skins2/default.vlt -#usr/share/vlc/skins2/fonts -usr/share/vlc/skins2/fonts/FreeSans.ttf -usr/share/vlc/skins2/fonts/FreeSansBold.ttf -usr/share/vlc/skins2/skin.catalog -usr/share/vlc/skins2/skin.dtd -usr/share/vlc/skins2/winamp2.xml -usr/share/vlc/vlc128x128.png -usr/share/vlc/vlc16x16.png -usr/share/vlc/vlc16x16.xpm -usr/share/vlc/vlc32x32.png -usr/share/vlc/vlc32x32.xpm -usr/share/vlc/vlc48x48.ico -usr/share/vlc/vlc48x48.png diff --git a/config/rootfiles/packages/w_scan b/config/rootfiles/packages/w_scan index 40d3546..b0744c2 100644 --- a/config/rootfiles/packages/w_scan +++ b/config/rootfiles/packages/w_scan @@ -1,2 +1,3 @@ -opt/vdr/bin/w_scan -opt/vdr/bin/w_scan_start +usr/bin/w_scan +usr/bin/w_scan_start +#usr/share/man/man1/w_scan.1 diff --git a/config/rpi-firmware/config.txt b/config/rpi-firmware/config.txt new file mode 100644 index 0000000..47bfc80 --- /dev/null +++ b/config/rpi-firmware/config.txt @@ -0,0 +1,36 @@ +############################################################################### +# +# Raspberry Pi - Videocore configuration file +# +############################################################################### + +############################################################################### +# +# GPU Memory Settings (16,32,64 ... ) +# 16MB has a issue at reboot so we use 32MB memory split +############################################################################### +gpu_mem_256=32 +gpu_mem_512=32 + +############################################################################### +# +# Turbo Mode (cpufreq) Settings ... +# default clocks are arm=700, core=250 and sdram=400 +# +############################################################################### +# +# underclock at idle +#arm_freq_min=500 +#sdram_freq_min=250 +# +# use following paramters to overclock at load +#arm_freq=1000 +#core_freq=450 +#sdram_freq=450 +#over_voltage=3 + +################################################################################ +# +# end +# +################################################################################ diff --git a/config/syslinux/syslinux.cfg b/config/syslinux/syslinux.cfg index 68ad82a..5a6a975 100644 --- a/config/syslinux/syslinux.cfg +++ b/config/syslinux/syslinux.cfg @@ -3,6 +3,9 @@ DISPLAY boot.msg PROMPT 1 DEFAULT vmlinuz APPEND initrd=instroot vga=791 splash=silent ro +LABEL ipfire + KERNEL vmlinuz + APPEND initrd=instroot vga=791 splash=silent ro LABEL novga KERNEL vmlinuz APPEND initrd=instroot ro diff --git a/config/u-boot/boot.scr b/config/u-boot/boot.scr new file mode 100755 index 0000000..aad40ae Binary files /dev/null and b/config/u-boot/boot.scr differ diff --git a/config/u-boot/boot.script b/config/u-boot/boot.script new file mode 100755 index 0000000..0f71815 --- /dev/null +++ b/config/u-boot/boot.script @@ -0,0 +1,4 @@ +fatload mmc 0:1 0x80000000 uImage-ipfire-omap +fatload mmc 0:1 0x81600000 uInit-ipfire-omap +setenv bootargs vram=32M console=tty1 rootwait smsc95xx.macaddr=$usbethaddr root=/dev/mmcblk0p3 ro +bootm 0x80000000 0x81600000 diff --git a/config/u-boot/convert_bootscript b/config/u-boot/convert_bootscript new file mode 100755 index 0000000..962191f --- /dev/null +++ b/config/u-boot/convert_bootscript @@ -0,0 +1 @@ +mkimage -A arm -T script -C none -d boot.script boot.scr diff --git a/config/uClibc/busybox.config b/config/uClibc/busybox.config deleted file mode 100644 index 9682385..0000000 --- a/config/uClibc/busybox.config +++ /dev/null @@ -1,643 +0,0 @@ -# -# Automatically generated make config: don't edit -# -HAVE_DOT_CONFIG=y - -# -# Busybox Settings -# - -# -# General Configuration -# -# CONFIG_NITPICK is not set -# CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set -# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set -# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set -CONFIG_SHOW_USAGE=y -CONFIG_FEATURE_VERBOSE_USAGE=y -CONFIG_FEATURE_COMPRESS_USAGE=y -# CONFIG_FEATURE_INSTALLER is not set -# CONFIG_LOCALE_SUPPORT is not set -CONFIG_GETOPT_LONG=y -# CONFIG_FEATURE_DEVPTS is not set -# CONFIG_FEATURE_CLEAN_UP is not set -# CONFIG_FEATURE_SUID is not set -# CONFIG_FEATURE_SUID_CONFIG is not set -# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set -# CONFIG_SELINUX is not set -CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" - -# -# Build Options -# -# CONFIG_STATIC is not set -# CONFIG_BUILD_LIBBUSYBOX is not set -# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set -# CONFIG_FEATURE_SHARED_BUSYBOX is not set -CONFIG_LFS=y -USING_CROSS_COMPILER=y -CROSS_COMPILER_PREFIX="/opt/i586-uClibc/bin/i586-linux-" -# CONFIG_BUILD_AT_ONCE is not set - -# -# Debugging Options -# -# CONFIG_DEBUG is not set -# CONFIG_DEBUG_PESSIMIZE is not set -# CONFIG_NO_DEBUG_LIB is not set -# CONFIG_DMALLOC is not set -# CONFIG_EFENCE is not set -# CONFIG_DEBUG_YANK_SUSv2 is not set - -# -# Installation Options -# -CONFIG_INSTALL_NO_USR=y -CONFIG_INSTALL_APPLET_SYMLINKS=y -# CONFIG_INSTALL_APPLET_HARDLINKS is not set -# CONFIG_INSTALL_APPLET_DONT is not set -PREFIX="/install/initrd" - -# -# Busybox Library Tuning -# -CONFIG_MD5_SIZE_VS_SPEED=3 - -# -# Applets -# - -# -# Archival Utilities -# -# CONFIG_AR is not set -# CONFIG_FEATURE_AR_LONG_FILENAMES is not set -# CONFIG_BUNZIP2 is not set -# CONFIG_CPIO is not set -# CONFIG_DPKG is not set -# CONFIG_DPKG_DEB is not set -# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set -# CONFIG_GUNZIP is not set -# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set -CONFIG_GZIP=y -# CONFIG_RPM2CPIO is not set -# CONFIG_RPM is not set -CONFIG_TAR=y -# CONFIG_FEATURE_TAR_CREATE is not set -CONFIG_FEATURE_TAR_BZIP2=y -CONFIG_FEATURE_TAR_LZMA=y -# CONFIG_FEATURE_TAR_FROM is not set -CONFIG_FEATURE_TAR_GZIP=y -# CONFIG_FEATURE_TAR_COMPRESS is not set -CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y -CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y -CONFIG_FEATURE_TAR_LONG_OPTIONS=y -# CONFIG_UNCOMPRESS is not set -# CONFIG_UNLZMA is not set -# CONFIG_FEATURE_LZMA_FAST is not set -CONFIG_UNZIP=y - -# -# Common options for cpio and tar -# -# CONFIG_FEATURE_UNARCHIVE_TAPE is not set -# CONFIG_FEATURE_DEB_TAR_GZ is not set -# CONFIG_FEATURE_DEB_TAR_BZ2 is not set -# CONFIG_FEATURE_DEB_TAR_LZMA is not set - -# -# Coreutils -# -CONFIG_BASENAME=y -# CONFIG_CAL is not set -CONFIG_CAT=y -# CONFIG_CATV is not set -# CONFIG_CHGRP is not set -CONFIG_CHMOD=y -CONFIG_CHOWN=y -CONFIG_CHROOT=y -# CONFIG_CKSUM is not set -# CONFIG_CMP is not set -# CONFIG_COMM is not set -CONFIG_CP=y -CONFIG_CUT=y -CONFIG_DATE=y -CONFIG_FEATURE_DATE_ISOFMT=y -CONFIG_DD=y -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -# CONFIG_FEATURE_DD_IBS_OBS is not set -CONFIG_DF=y -# CONFIG_DIFF is not set -# CONFIG_FEATURE_DIFF_BINARY is not set -# CONFIG_FEATURE_DIFF_DIR is not set -# CONFIG_FEATURE_DIFF_MINIMAL is not set -# CONFIG_DIRNAME is not set -# CONFIG_DOS2UNIX is not set -# CONFIG_UNIX2DOS is not set -CONFIG_DU=y -CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y -CONFIG_ECHO=y -CONFIG_FEATURE_FANCY_ECHO=y -# CONFIG_ENV is not set -# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set -# CONFIG_EXPR is not set -# CONFIG_EXPR_MATH_SUPPORT_64 is not set -# CONFIG_FALSE is not set -# CONFIG_FOLD is not set -CONFIG_HEAD=y -# CONFIG_FEATURE_FANCY_HEAD is not set -# CONFIG_HOSTID is not set -# CONFIG_ID is not set -# CONFIG_INSTALL is not set -# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set -# CONFIG_LENGTH is not set -CONFIG_LN=y -# CONFIG_LOGNAME is not set -CONFIG_LS=y -CONFIG_FEATURE_LS_FILETYPES=y -CONFIG_FEATURE_LS_FOLLOWLINKS=y -CONFIG_FEATURE_LS_RECURSIVE=y -CONFIG_FEATURE_LS_SORTFILES=y -CONFIG_FEATURE_LS_TIMESTAMPS=y -CONFIG_FEATURE_LS_USERNAME=y -CONFIG_FEATURE_LS_COLOR=y -# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set -CONFIG_MD5SUM=y -CONFIG_MKDIR=y -# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set -CONFIG_MKFIFO=y -CONFIG_MKNOD=y -CONFIG_MV=y -CONFIG_FEATURE_MV_LONG_OPTIONS=y -CONFIG_NICE=y -# CONFIG_NOHUP is not set -# CONFIG_OD is not set -# CONFIG_PRINTENV is not set -# CONFIG_PRINTF is not set -# CONFIG_PWD is not set -# CONFIG_REALPATH is not set -CONFIG_RM=y -# CONFIG_RMDIR is not set -CONFIG_SEQ=y -# CONFIG_SHA1SUM is not set -CONFIG_SLEEP=y -# CONFIG_FEATURE_FANCY_SLEEP is not set -CONFIG_SORT=y -CONFIG_FEATURE_SORT_BIG=y -# CONFIG_STAT is not set -# CONFIG_FEATURE_STAT_FORMAT is not set -# CONFIG_STTY is not set -# CONFIG_SUM is not set -CONFIG_SYNC=y -CONFIG_TAIL=y -CONFIG_FEATURE_FANCY_TAIL=y -CONFIG_TEE=y -# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set -CONFIG_TEST=y -# CONFIG_FEATURE_TEST_64 is not set -CONFIG_TOUCH=y -CONFIG_TR=y -CONFIG_FEATURE_TR_CLASSES=y -CONFIG_FEATURE_TR_EQUIV=y -CONFIG_TRUE=y -# CONFIG_TTY is not set -CONFIG_UNAME=y -CONFIG_UNIQ=y -# CONFIG_USLEEP is not set -# CONFIG_UUDECODE is not set -# CONFIG_UUENCODE is not set -# CONFIG_WATCH is not set -CONFIG_WC=y -# CONFIG_WHO is not set -# CONFIG_WHOAMI is not set -CONFIG_YES=y - -# -# Common options for cp and mv -# -CONFIG_FEATURE_PRESERVE_HARDLINKS=y - -# -# Common options for ls, more and telnet -# -CONFIG_FEATURE_AUTOWIDTH=y - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - -# -# Common options for md5sum, sha1sum -# -# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set - -# -# Console Utilities -# -CONFIG_CHVT=y -CONFIG_CLEAR=y -# CONFIG_DEALLOCVT is not set -# CONFIG_DUMPKMAP is not set -CONFIG_LOADFONT=y -CONFIG_LOADKMAP=y -# CONFIG_OPENVT is not set -# CONFIG_RESET is not set -CONFIG_SETCONSOLE=y -# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set -CONFIG_SETKEYCODES=y -# CONFIG_SETLOGCONS is not set - -# -# Debian Utilities -# -# CONFIG_MKTEMP is not set -# CONFIG_PIPE_PROGRESS is not set -# CONFIG_READLINK is not set -# CONFIG_FEATURE_READLINK_FOLLOW is not set -# CONFIG_RUN_PARTS is not set -# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set -# CONFIG_START_STOP_DAEMON is not set -# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set -# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set -CONFIG_WHICH=y - -# -# Editors -# -CONFIG_AWK=y -# CONFIG_FEATURE_AWK_MATH is not set -# CONFIG_ED is not set -# CONFIG_PATCH is not set -CONFIG_SED=y -CONFIG_VI=y -CONFIG_FEATURE_VI_COLON=y -CONFIG_FEATURE_VI_YANKMARK=y -CONFIG_FEATURE_VI_SEARCH=y -CONFIG_FEATURE_VI_USE_SIGNALS=y -CONFIG_FEATURE_VI_DOT_CMD=y -CONFIG_FEATURE_VI_READONLY=y -CONFIG_FEATURE_VI_SETOPTS=y -CONFIG_FEATURE_VI_SET=y -CONFIG_FEATURE_VI_WIN_RESIZE=y -CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y - -# -# Finding Utilities -# -CONFIG_FIND=y -CONFIG_FEATURE_FIND_PRINT0=y -CONFIG_FEATURE_FIND_MTIME=y -CONFIG_FEATURE_FIND_MMIN=y -CONFIG_FEATURE_FIND_PERM=y -CONFIG_FEATURE_FIND_TYPE=y -CONFIG_FEATURE_FIND_XDEV=y -CONFIG_FEATURE_FIND_NEWER=y -CONFIG_FEATURE_FIND_INUM=y -CONFIG_FEATURE_FIND_EXEC=y -CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y -CONFIG_FEATURE_GREP_CONTEXT=y -CONFIG_XARGS=y -# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set -# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set -# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set -# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set - -# -# Init Utilities -# -CONFIG_INIT=y -# CONFIG_DEBUG_INIT is not set -CONFIG_FEATURE_USE_INITTAB=y -# CONFIG_FEATURE_INIT_SCTTY is not set -CONFIG_FEATURE_EXTRA_QUIET=y -# CONFIG_FEATURE_INIT_COREDUMPS is not set -CONFIG_FEATURE_INITRD=y -CONFIG_HALT=y -# CONFIG_MESG is not set - -# -# Login/Password Management Utilities -# -# CONFIG_FEATURE_SHADOWPASSWDS is not set -# CONFIG_USE_BB_SHADOW is not set -# CONFIG_USE_BB_PWD_GRP is not set -# CONFIG_ADDGROUP is not set -# CONFIG_DELGROUP is not set -# CONFIG_ADDUSER is not set -# CONFIG_DELUSER is not set -CONFIG_GETTY=y -# CONFIG_FEATURE_UTMP is not set -# CONFIG_FEATURE_WTMP is not set -# CONFIG_LOGIN is not set -# CONFIG_FEATURE_SECURETTY is not set -# CONFIG_PASSWD is not set -# CONFIG_SU is not set -# CONFIG_SULOGIN is not set -# CONFIG_VLOCK is not set - -# -# Linux Ext2 FS Progs -# -# CONFIG_CHATTR is not set -CONFIG_E2FSCK=y -CONFIG_FSCK=y -# CONFIG_LSATTR is not set -CONFIG_MKE2FS=y -CONFIG_TUNE2FS=y -CONFIG_E2LABEL=y -# CONFIG_FINDFS is not set - -# -# Linux Module Utilities -# -CONFIG_INSMOD=y -# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set -# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set -# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set -# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set -# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set -CONFIG_RMMOD=y -CONFIG_LSMOD=y -CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y -CONFIG_MODPROBE=y -CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y - -# -# Options common to multiple modutils -# -# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set -# CONFIG_FEATURE_2_4_MODULES is not set -CONFIG_FEATURE_2_6_MODULES=y -# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set - -# -# Linux System Utilities -# -CONFIG_DMESG=y -# CONFIG_FBSET is not set -# CONFIG_FEATURE_FBSET_FANCY is not set -# CONFIG_FEATURE_FBSET_READMODE is not set -# CONFIG_FDFLUSH is not set -# CONFIG_FDFORMAT is not set -CONFIG_FDISK=y -FDISK_SUPPORT_LARGE_DISKS=y -CONFIG_FEATURE_FDISK_WRITABLE=y -# CONFIG_FEATURE_AIX_LABEL is not set -# CONFIG_FEATURE_SGI_LABEL is not set -# CONFIG_FEATURE_SUN_LABEL is not set -# CONFIG_FEATURE_OSF_LABEL is not set -# CONFIG_FEATURE_FDISK_ADVANCED is not set -# CONFIG_FREERAMDISK is not set -# CONFIG_FSCK_MINIX is not set -# CONFIG_MKFS_MINIX is not set -# CONFIG_FEATURE_MINIX2 is not set -# CONFIG_GETOPT is not set -# CONFIG_HEXDUMP is not set -# CONFIG_HWCLOCK is not set -# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set -# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set -# CONFIG_IPCRM is not set -# CONFIG_IPCS is not set -CONFIG_LOSETUP=y -# CONFIG_MDEV is not set -# CONFIG_FEATURE_MDEV_CONF is not set -# CONFIG_FEATURE_MDEV_EXEC is not set -CONFIG_MKSWAP=y -# CONFIG_FEATURE_MKSWAP_V0 is not set -CONFIG_MORE=y -CONFIG_FEATURE_USE_TERMIOS=y -CONFIG_MOUNT=y -# CONFIG_FEATURE_MOUNT_NFS is not set -CONFIG_PIVOT_ROOT=y -# CONFIG_RDATE is not set -# CONFIG_READPROFILE is not set -# CONFIG_SETARCH is not set -CONFIG_SWAPONOFF=y -# CONFIG_SWITCH_ROOT is not set -CONFIG_UMOUNT=y -CONFIG_FEATURE_UMOUNT_ALL=y - -# -# Common options for mount/umount -# -CONFIG_FEATURE_MOUNT_LOOP=y -# CONFIG_FEATURE_MTAB_SUPPORT is not set - -# -# Miscellaneous Utilities -# -# CONFIG_ADJTIMEX is not set -# CONFIG_BBCONFIG is not set -# CONFIG_CROND is not set -# CONFIG_DEBUG_CROND_OPTION is not set -# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set -# CONFIG_CRONTAB is not set -# CONFIG_DC is not set -# CONFIG_DEVFSD is not set -# CONFIG_DEVFSD_MODLOAD is not set -# CONFIG_DEVFSD_FG_NP is not set -# CONFIG_DEVFSD_VERBOSE is not set -# CONFIG_FEATURE_DEVFS is not set -CONFIG_EJECT=y -# CONFIG_LAST is not set -CONFIG_LESS=y -CONFIG_FEATURE_LESS_BRACKETS=y -CONFIG_FEATURE_LESS_FLAGS=y -# CONFIG_FEATURE_LESS_FLAGCS is not set -# CONFIG_FEATURE_LESS_MARKS is not set -# CONFIG_FEATURE_LESS_REGEXP is not set -# CONFIG_HDPARM is not set -# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set -# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set -# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set -# CONFIG_MAKEDEVS is not set -# CONFIG_FEATURE_MAKEDEVS_LEAF is not set -# CONFIG_FEATURE_MAKEDEVS_TABLE is not set -# CONFIG_MOUNTPOINT is not set -# CONFIG_MT is not set -# CONFIG_RUNLEVEL is not set -# CONFIG_RX is not set -# CONFIG_STRINGS is not set -# CONFIG_SETSID is not set -# CONFIG_TASKSET is not set -# CONFIG_TIME is not set -# CONFIG_WATCHDOG is not set - -# -# Networking Utilities -# -# CONFIG_FEATURE_IPV6 is not set -# CONFIG_ARPING is not set -# CONFIG_DNSD is not set -# CONFIG_ETHER_WAKE is not set -# CONFIG_FAKEIDENTD is not set -# CONFIG_FTPGET is not set -# CONFIG_FTPPUT is not set -# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set -CONFIG_HOSTNAME=y -# CONFIG_HTTPD is not set -# CONFIG_FEATURE_HTTPD_WITHOUT_INETD is not set -# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set -# CONFIG_FEATURE_HTTPD_SETUID is not set -# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set -# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set -# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set -# CONFIG_FEATURE_HTTPD_CGI is not set -# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set -# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set -# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set -CONFIG_IFCONFIG=y -CONFIG_FEATURE_IFCONFIG_STATUS=y -# CONFIG_FEATURE_IFCONFIG_SLIP is not set -# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set -# CONFIG_FEATURE_IFCONFIG_HW is not set -CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y -# CONFIG_IFUPDOWN is not set -# CONFIG_FEATURE_IFUPDOWN_IP is not set -# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set -# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set -# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set -# CONFIG_FEATURE_IFUPDOWN_IPX is not set -# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set -# CONFIG_INETD is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set -# CONFIG_FEATURE_INETD_RPC is not set -CONFIG_IP=y -CONFIG_FEATURE_IP_ADDRESS=y -CONFIG_FEATURE_IP_LINK=y -CONFIG_FEATURE_IP_ROUTE=y -# CONFIG_FEATURE_IP_TUNNEL is not set -CONFIG_FEATURE_IP_SHORT_FORMS=y -CONFIG_IPADDR=y -CONFIG_IPLINK=y -CONFIG_IPROUTE=y -# CONFIG_IPTUNNEL is not set -# CONFIG_IPCALC is not set -# CONFIG_FEATURE_IPCALC_FANCY is not set -# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set -# CONFIG_NAMEIF is not set -# CONFIG_NC is not set -# CONFIG_NC_GAPING_SECURITY_HOLE is not set -# CONFIG_NETSTAT is not set -# CONFIG_NSLOOKUP is not set -CONFIG_PING=y -# CONFIG_FEATURE_FANCY_PING is not set -# CONFIG_PING6 is not set -# CONFIG_FEATURE_FANCY_PING6 is not set -CONFIG_ROUTE=y -# CONFIG_TELNET is not set -# CONFIG_FEATURE_TELNET_TTYPE is not set -# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set -# CONFIG_TELNETD is not set -# CONFIG_FEATURE_TELNETD_INETD is not set -# CONFIG_TFTP is not set -# CONFIG_FEATURE_TFTP_GET is not set -# CONFIG_FEATURE_TFTP_PUT is not set -# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set -# CONFIG_DEBUG_TFTP is not set -# CONFIG_TRACEROUTE is not set -# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set -# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set -# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set - -# -# udhcp Server/Client -# -# CONFIG_APP_UDHCPD is not set -CONFIG_APP_UDHCPC=y -# CONFIG_APP_DUMPLEASES is not set -CONFIG_FEATURE_UDHCP_SYSLOG=y -# CONFIG_FEATURE_UDHCP_DEBUG is not set -CONFIG_VCONFIG=y -# CONFIG_WGET is not set -# CONFIG_FEATURE_WGET_STATUSBAR is not set -# CONFIG_FEATURE_WGET_AUTHENTICATION is not set -# CONFIG_FEATURE_WGET_IP6_LITERAL is not set -# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set -# CONFIG_ZCIP is not set - -# -# Process Utilities -# -CONFIG_FREE=y -# CONFIG_FUSER is not set -CONFIG_KILL=y -CONFIG_KILLALL=y -# CONFIG_PIDOF is not set -# CONFIG_FEATURE_PIDOF_SINGLE is not set -# CONFIG_FEATURE_PIDOF_OMIT is not set -CONFIG_PS=y -CONFIG_FEATURE_PS_WIDE=y -CONFIG_RENICE=y -# CONFIG_BB_SYSCTL is not set -CONFIG_TOP=y -CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y -CONFIG_UPTIME=y - -# -# Shells -# -CONFIG_FEATURE_SH_IS_ASH=y -# CONFIG_FEATURE_SH_IS_HUSH is not set -# CONFIG_FEATURE_SH_IS_LASH is not set -# CONFIG_FEATURE_SH_IS_MSH is not set -# CONFIG_FEATURE_SH_IS_NONE is not set -CONFIG_ASH=y - -# -# Ash Shell Options -# -CONFIG_ASH_JOB_CONTROL=y -# CONFIG_ASH_READ_NCHARS is not set -# CONFIG_ASH_READ_TIMEOUT is not set -CONFIG_ASH_ALIAS=y -CONFIG_ASH_MATH_SUPPORT=y -# CONFIG_ASH_MATH_SUPPORT_64 is not set -CONFIG_ASH_GETOPTS=y -CONFIG_ASH_BUILTIN_ECHO=y -CONFIG_ASH_BUILTIN_TEST=y -# CONFIG_ASH_CMDCMD is not set -# CONFIG_ASH_MAIL is not set -CONFIG_ASH_OPTIMIZE_FOR_SIZE=y -# CONFIG_ASH_RANDOM_SUPPORT is not set -CONFIG_ASH_EXPAND_PRMT=y -# CONFIG_HUSH is not set -# CONFIG_LASH is not set -# CONFIG_MSH is not set - -# -# Bourne Shell Options -# -# CONFIG_FEATURE_SH_EXTRA_QUIET is not set -# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set -CONFIG_FEATURE_COMMAND_EDITING=y -# CONFIG_FEATURE_COMMAND_EDITING_VI is not set -CONFIG_FEATURE_COMMAND_HISTORY=15 -CONFIG_FEATURE_COMMAND_SAVEHISTORY=y -CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y -# CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION is not set -CONFIG_FEATURE_SH_FANCY_PROMPT=y - -# -# System Logging Utilities -# -CONFIG_SYSLOGD=y -# CONFIG_FEATURE_ROTATE_LOGFILE is not set -# CONFIG_FEATURE_REMOTE_LOG is not set -# CONFIG_FEATURE_IPC_SYSLOG is not set -CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 -# CONFIG_LOGREAD is not set -# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set -CONFIG_KLOGD=y -CONFIG_LOGGER=y diff --git a/config/uClibc/codesets.txt b/config/uClibc/codesets.txt deleted file mode 100644 index 98530d3..0000000 --- a/config/uClibc/codesets.txt +++ /dev/null @@ -1,2 +0,0 @@ -./charmaps/ASCII.pairs -./charmaps/ISO-8859-1.pairs diff --git a/config/uClibc/locales.txt b/config/uClibc/locales.txt deleted file mode 100644 index a3100ec..0000000 --- a/config/uClibc/locales.txt +++ /dev/null @@ -1,8 +0,0 @@ -@euro e -@cyrillic c -#--------------------------------------------------------------------------- -UTF-8 yes -8-BIT yes -#--------------------------------------------------------------------------- -en_US ISO-8859-1 -en_US.UTF-8 UTF-8 diff --git a/config/uClibc/uClibc.config-i586 b/config/uClibc/uClibc.config-i586 deleted file mode 100644 index f46b1fe..0000000 --- a/config/uClibc/uClibc.config-i586 +++ /dev/null @@ -1,175 +0,0 @@ -# -# Automatically generated make config: don't edit -# -# TARGET_alpha is not set -# TARGET_arm is not set -# TARGET_bfin is not set -# TARGET_cris is not set -# TARGET_e1 is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -TARGET_i386=y -# TARGET_i960 is not set -# TARGET_m68k is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nios is not set -# TARGET_nios2 is not set -# TARGET_powerpc is not set -# TARGET_sh is not set -# TARGET_sh64 is not set -# TARGET_sparc is not set -# TARGET_v850 is not set -# TARGET_x86_64 is not set - -# -# Target Architecture Features and Options -# -HAVE_ELF=y -ARCH_SUPPORTS_LITTLE_ENDIAN=y -TARGET_ARCH="i386" -# CONFIG_GENERIC_386 is not set -# CONFIG_386 is not set -# CONFIG_486 is not set -CONFIG_586=y -# CONFIG_586MMX is not set -# CONFIG_686 is not set -# CONFIG_PENTIUMII is not set -# CONFIG_PENTIUMIII is not set -# CONFIG_PENTIUM4 is not set -# CONFIG_K6 is not set -# CONFIG_K7 is not set -# CONFIG_ELAN is not set -# CONFIG_CRUSOE is not set -# CONFIG_WINCHIPC6 is not set -# CONFIG_WINCHIP2 is not set -# CONFIG_CYRIXIII is not set -# CONFIG_NEHEMIAH is not set -ARCH_LITTLE_ENDIAN=y -# ARCH_BIG_ENDIAN is not set -# ARCH_HAS_NO_MMU is not set -ARCH_HAS_MMU=y -UCLIBC_HAS_FLOATS=y -HAS_FPU=y -DO_C99_MATH=y -KERNEL_SOURCE="/usr" -C_SYMBOL_PREFIX="" -HAVE_DOT_CONFIG=y - -# -# General Library Settings -# -# HAVE_NO_PIC is not set -DOPIC=y -# HAVE_NO_SHARED is not set -HAVE_SHARED=y -# ARCH_HAS_NO_LDSO is not set -BUILD_UCLIBC_LDSO=y -FORCE_SHAREABLE_TEXT_SEGMENTS=y -LDSO_LDD_SUPPORT=y -LDSO_CACHE_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_BASE_FILENAME="ld.so" -LDSO_RUNPATH=y -# DL_FINI_CRT_COMPAT is not set -UCLIBC_CTOR_DTOR=y -# HAS_NO_THREADS is not set -UCLIBC_HAS_THREADS=y -# PTHREADS_DEBUG_SUPPORT is not set -UCLIBC_HAS_LFS=y -# UCLIBC_STATIC_LDCONFIG is not set -# MALLOC is not set -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -MALLOC_GLIBC_COMPAT=y -UCLIBC_DYNAMIC_ATEXIT=y -HAS_SHADOW=y -UNIX98PTY_ONLY=y -ASSUME_DEVPTS=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -UCLIBC_TZ_FILE_PATH="/etc/TZ" - -# -# Networking Support -# -# UCLIBC_HAS_IPV6 is not set -# UCLIBC_HAS_RPC is not set - -# -# String and Stdio Support -# -UCLIBC_HAS_STRING_GENERIC_OPT=y -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_CTYPE_TABLES=y -UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_UNSAFE=y -# UCLIBC_HAS_CTYPE_CHECKED is not set -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_LOCALE=y -UCLIBC_PREGENERATED_LOCALE_DATA=y -# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set -UCLIBC_HAS_XLOCALE=y -# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set -# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set -UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set -# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set -# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -UCLIBC_HAS_STDIO_BUFSIZ_4096=y -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set -# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set -# UCLIBC_HAS_PRINTF_M_SPEC is not set -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_SYS_ERRLIST is not set -UCLIBC_HAS_SIGNUM_MESSAGES=y -UCLIBC_HAS_SYS_SIGLIST=y -UCLIBC_HAS_GNU_GETOPT=y - -# -# Big and Tall -# -UCLIBC_HAS_REGEX=y -# UCLIBC_HAS_WORDEXP is not set -UCLIBC_HAS_FTW=y -UCLIBC_HAS_GLOB=y - -# -# Library Installation Options -# -SHARED_LIB_LOADER_PREFIX="/lib" -RUNTIME_PREFIX="/" -DEVEL_PREFIX="/usr/" - -# -# uClibc security related options -# -# UCLIBC_SECURITY is not set - -# -# uClibc development/debugging options -# -CROSS_COMPILER_PREFIX="" -# DODEBUG is not set -# DODEBUG_PT is not set -# DOASSERTS is not set -# SUPPORT_LD_DEBUG is not set -# SUPPORT_LD_DEBUG_EARLY is not set -WARNINGS="-Wall" -# UCLIBC_MJN3_ONLY is not set diff --git a/config/udev/10-dvb.rules b/config/udev/10-dvb.rules deleted file mode 100644 index 5bcd40e..0000000 --- a/config/udev/10-dvb.rules +++ /dev/null @@ -1,2 +0,0 @@ -# Create DVB Devices -KERNEL=="dvb*", PROGRAM="/etc/udev/dvb.sh %k", NAME="%c" diff --git a/config/udev/25-alsa.rules b/config/udev/25-alsa.rules new file mode 100644 index 0000000..3e930cd --- /dev/null +++ b/config/udev/25-alsa.rules @@ -0,0 +1,8 @@ +# alsa device go in their own subdirectory + +KERNEL=="controlC[0-9]*", NAME="snd/%k", GROUP="audio" +KERNEL=="hw[CD0-9]*", NAME="snd/%k", GROUP="audio" +KERNEL=="pcm[CD0-9cp]*", NAME="snd/%k", GROUP="audio" +KERNEL=="midiC[D0-9]*", NAME="snd/%k", GROUP="audio" +KERNEL=="timer", NAME="snd/%k", GROUP="audio" +KERNEL=="seq", NAME="snd/%k", GROUP="audio" diff --git a/config/udev/55-scsi-cdrom.rules b/config/udev/55-scsi-cdrom.rules deleted file mode 100644 index f7ad37d..0000000 --- a/config/udev/55-scsi-cdrom.rules +++ /dev/null @@ -1,2 +0,0 @@ -# SCSI devices -BUS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n" diff --git a/config/udev/99-codel.rules b/config/udev/99-codel.rules new file mode 100644 index 0000000..d6747ba --- /dev/null +++ b/config/udev/99-codel.rules @@ -0,0 +1,2 @@ +# Call the enable codel script. +SUBSYSTEM=="net", RUN+="/lib/udev/enable_codel" diff --git a/config/udev/dvb.sh b/config/udev/dvb.sh deleted file mode 100755 index 5405ffa..0000000 --- a/config/udev/dvb.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -/bin/echo $1 | /bin/sed -e 's,dvb([0-9]).([^0-9]*)([0-9]),dvb/adapter\1/\2\3,' diff --git a/config/udev/enable_codel b/config/udev/enable_codel new file mode 100644 index 0000000..6cafd9b --- /dev/null +++ b/config/udev/enable_codel @@ -0,0 +1,57 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org. # +# # +############################################################################ + +LOG_FACILITY="codel" + +function log() { + logger -t "${LOG_FACILITY}" $@ +} + +if [ -z "${INTERFACE}" ]; then + echo "INTERFACE variable was not set." >&2 + exit 1 +fi + +# Do nothing for the loopback device. +[ "${INTERFACE}" = "lo" ] && exit 0 + +case "${ACTION}" in + add|register) + # Change root qdisc to use fq_codel. + /sbin/tc qdisc add root dev ${INTERFACE} fq_codel + ret=$? + + if [ ${ret} -eq 0 ]; then + log "Codel AQM has been enabled on '${INTERFACE}'." + else + log "Codel AQM could not be enabled on '${INTERFACE}'. Error code: ${ret}" + exit ${ret} + fi + ;; + + remove|unregister) + # Nothing to do here. + ;; +esac + +exit 0 diff --git a/config/updxlrator/download b/config/updxlrator/download index 6744d9c..1624609 100644 --- a/config/updxlrator/download +++ b/config/updxlrator/download @@ -49,7 +49,7 @@ $vendorid =~ tr/A-Z/a-z/; unless (-d "$repository/download/$vendorid") { system("mkdir -p $repository/download/$vendorid"); - system("chmod 775 $repository/download/$vendorid"); + chmod 0775, "$repository/download/$vendorid"; }
if($restartdl == 0) @@ -159,13 +159,13 @@ if ($_ == 0) unless (-d "$repository/$vendorid") { system("mkdir -p $repository/$vendorid"); - system("chmod 775 $repository/$vendorid"); + chmod 0775, "$repository/$vendorid"; }
unless (-d "$repository/$vendorid/$uuid") { system("mkdir -p $repository/$vendorid/$uuid"); - system("chmod 775 $repository/$vendorid/$uuid"); + chmod 0775, "$repository/$vendorid/$uuid"; }
&writelog("Moving file to the cache directory: $vendorid/$uuid"); @@ -180,8 +180,15 @@ if ($_ == 0) &UPDXLT::setcachestatus("$repository/$vendorid/$uuid/checkup.log",time); &UPDXLT::setcachestatus("$repository/$vendorid/$uuid/access.log",time);
- system("/usr/local/bin/updxsetperms"); - system("chmod 775 $repository/$vendorid/$uuid/*"); + # Update permissions of all files in the download directory. + my @files = ( + "$repository/$vendorid/$uuid/source.url", + "$repository/$vendorid/$uuid/status", + "$repository/$vendorid/$uuid/checkup.log", + "$repository/$vendorid/$uuid/access.log", + "$repository/$vendorid/$uuid/$updatefile" + ); + chmod 0664, @files;
unlink ("$repository/download/$vendorid/$updatefile.info");
diff --git a/config/w_scan/w_scan_start b/config/w_scan/w_scan_start new file mode 100755 index 0000000..0f624ac --- /dev/null +++ b/config/w_scan/w_scan_start @@ -0,0 +1,136 @@ +#!/bin/bash +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### +############################################################################### +# w_scan_start for IPFire v 1.00 - 2012-11-15 Arne Fitzenreiter - inital vers.# +############################################################################### + +err_msg () +{ + whiptail --msgbox "$1" 8 70 --title "Error" + clear + exit 1 +} + +chk_cancel () +{ + if [ ! "${?}" == 0 ];then + clear + echo "Terminated by user!" + exit 0 + fi +} + +yes_no () +{ + whiptail --yesno "$1" 8 70 + chk_cancel +} + +WSCAN=$(which w_scan) + +# Whiptail does not like en_US.UTF-8 +LANG=c + +# Some initial checks... +if [ -z $WSCAN ];then + err_msg "w_scan not found!"; +fi +if [ ! -e /dev/dvb/adapter[0-9]/frontend[0-9] ];then + err_msg "No dvb tuner frontend found!"; +fi + +# Is vdr running? +if [ "$(ps -A | grep " runvdr$")" != "" ] ;then + yes_no "VDR is running. Cannot scan with active VDR. Should I stop it?" + clear + /etc/init.d/vdr stop +fi + +# Select DVB type +whiptail --checklist "\nSelect DVB type" 12 40 3 \ + DVB-T "Terrestrial" yes \ + DVB-C "Cable" no \ + DVB-S "Satellite" no \ + 2>/tmp/w_scan_type +chk_cancel +W_SCAN_TYPE=$(cat /tmp/w_scan_type) +rm /tmp/w_scan_type + +if [[ "$W_SCAN_TYPE" == *DVB-T* ]] || [[ "$W_SCAN_TYPE" == *DVB-C* ]]; then + # Generate and run separate country menubox and default germany + echo '#!/bin/bash' > /tmp/w_scan_countryselect.sh + echo 'whiptail --radiolist "\nSelect country" 19 70 10 ' >> /tmp/w_scan_countryselect.sh + $WSCAN -c? 2>&1 | cut -f2,4 | sed 's|[ ]| "|g' | sed 's|$|" off \|g' | sed 's|"GERMANY" off |"GERMANY" on |g' >> /tmp/w_scan_countryselect.sh + echo ' 2>/tmp/w_scan_country' >> /tmp/w_scan_countryselect.sh + sh /tmp/w_scan_countryselect.sh + chk_cancel + rm /tmp/w_scan_countryselect.sh + W_SCAN_COUNTRY=$(cat /tmp/w_scan_country) + rm /tmp/w_scan_country +fi + +if [[ "$W_SCAN_TYPE" == *DVB-S* ]]; then + # Generate and run separate satelite menubox and default astra + echo '#!/bin/bash' > /tmp/w_scan_satselect.sh + echo 'whiptail --checklist "\nSelect satellites" 19 70 10 ' >> /tmp/w_scan_satselect.sh + $WSCAN -s? 2>&1 | cut -f2,4 | sed 's|[ ]| "|g' | sed 's|$|" off \|g' | sed 's|19.2 east.*|19.2 east Astra 1F/1G/1H/1KR/1L" on \|g' >> /tmp/w_scan_satselect.sh + echo ' 2>/tmp/w_scan_satellite' >> /tmp/w_scan_satselect.sh + sh /tmp/w_scan_satselect.sh + chk_cancel + rm /tmp/w_scan_satselect.sh + W_SCAN_SATELLITE=$(cat /tmp/w_scan_satellite | sed 's|"||g') + rm /tmp/w_scan_satellite +fi + +# Now start the scan ... +clear +rm -rf /tmp/channels.conf +if [[ "$W_SCAN_TYPE" == *DVB-T* ]]; then + echo ":->W-SCAN DVB-T $(date +%Y%m%d%H%M)" >>/tmp/channels.conf + $WSCAN -f t -c $W_SCAN_COUNTRY -C UTF-8 >>/tmp/channels.conf +fi +if [[ "$W_SCAN_TYPE" == *DVB-C* ]]; then + echo ":->W-SCAN DVB-C $(date +%Y%m%d%H%M)" >>/tmp/channels.conf + $WSCAN -f c -c $W_SCAN_COUNTRY -C UTF-8 >>/tmp/channels.conf +fi +if [[ "$W_SCAN_TYPE" == *DVB-S* ]]; then + for SATELLITE in $W_SCAN_SATELLITE; + do + echo ":->W-SCAN DVB-S $SATELLITE $(date +%Y%m%d%H%M)" >>/tmp/channels.conf + $WSCAN -f s -s $SATELLITE -C UTF-8 >>/tmp/channels.conf + done +fi + +# Save result to current dir. +cp /tmp/channels.conf w_scan-$(date +%Y%m%d%H%M).channels.conf +echo Results saved to w_scan-$(date +%Y%m%d%H%M).channels.conf + +# Do this only if vdr is installed ... +if [ -e /opt/pakfire/db/installed/meta-vdr ]; then + yes_no "Install new channels-conf for VDR." + # Backup old channels conf... + cp -f /opt/vdr/etc/channels.conf \ + /opt/vdr/etc/channels.conf.backup$(date +%Y%m%d%H%M) + cp -f /tmp/channels.conf /opt/vdr/etc/ + yes_no "Should i start the VDR?" + clear + /etc/init.d/vdr start +fi diff --git a/config/wpa_supplicant/config b/config/wpa_supplicant/config index 65f8b46..f3e114b 100644 --- a/config/wpa_supplicant/config +++ b/config/wpa_supplicant/config @@ -50,9 +50,9 @@ CONFIG_DRIVER_HOSTAP=y #CFLAGS += -I../../include/wireless
# Driver interface for madwifi driver -CONFIG_DRIVER_MADWIFI=y +#CONFIG_DRIVER_MADWIFI=y # Set include directory to the madwifi source tree -CFLAGS += -I/usr/src/madwifi +#CFLAGS += -I/usr/src/madwifi
# Driver interface for Prism54 driver # (Note: Prism54 is not yet supported, i.e., this will not work as-is and is diff --git a/doc/language_issues.de b/doc/language_issues.de index 137217c..40ad311 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -293,6 +293,7 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -457,9 +458,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph @@ -476,3 +480,4 @@ WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: wlanap country diff --git a/doc/language_issues.en b/doc/language_issues.en index 68fef77..2ad18eb 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -320,6 +320,7 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -489,9 +490,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph diff --git a/doc/language_issues.es b/doc/language_issues.es index eca067d..eb45ffb 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -317,6 +317,7 @@ WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname WARNING: translation string unused: outgoing firewall p2p description +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -486,9 +487,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph @@ -499,6 +503,7 @@ WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Async logging enabled WARNING: untranslated string: Scan for Songs WARNING: untranslated string: Set time on boot +WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: attention WARNING: untranslated string: bytes @@ -608,3 +613,4 @@ WARNING: untranslated string: static routes WARNING: untranslated string: system information WARNING: untranslated string: visit us at WARNING: untranslated string: vpn keyexchange +WARNING: untranslated string: wlanap country diff --git a/doc/language_issues.fr b/doc/language_issues.fr index 91beb6f..f2f3e00 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -316,6 +316,7 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -487,9 +488,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph @@ -498,6 +502,7 @@ WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: attention WARNING: untranslated string: bytes @@ -598,6 +603,7 @@ WARNING: untranslated string: visit us at WARNING: untranslated string: vpn keyexchange WARNING: untranslated string: wlanap access point WARNING: untranslated string: wlanap channel +WARNING: untranslated string: wlanap country WARNING: untranslated string: wlanap debugging WARNING: untranslated string: wlanap del interface WARNING: untranslated string: wlanap encryption diff --git a/doc/language_issues.nl b/doc/language_issues.nl new file mode 100644 index 0000000..f43280a --- /dev/null +++ b/doc/language_issues.nl @@ -0,0 +1,514 @@ +WARNING: translation string unused: Client status and controlc +WARNING: translation string unused: ConnSched scheduler +WARNING: translation string unused: ConnSched select profile +WARNING: translation string unused: HDD temperature +WARNING: translation string unused: Level7 rule +WARNING: translation string unused: Local VPN IP +WARNING: translation string unused: Ping +WARNING: translation string unused: Remote IP +WARNING: translation string unused: Remote VPN IP +WARNING: translation string unused: Resolv +WARNING: translation string unused: TOS Bits +WARNING: translation string unused: Verbose +WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add network +WARNING: translation string unused: add new ovpn +WARNING: translation string unused: add service +WARNING: translation string unused: add-route +WARNING: translation string unused: admin user password has been changed +WARNING: translation string unused: administrator user password +WARNING: translation string unused: advproxy LDAP auth +WARNING: translation string unused: advproxy NTLM auth +WARNING: translation string unused: advproxy advanced proxy +WARNING: translation string unused: advproxy chgwebpwd ERROR +WARNING: translation string unused: advproxy chgwebpwd SUCCESS +WARNING: translation string unused: advproxy chgwebpwd change password +WARNING: translation string unused: advproxy chgwebpwd change web password +WARNING: translation string unused: advproxy chgwebpwd new password +WARNING: translation string unused: advproxy chgwebpwd new password confirm +WARNING: translation string unused: advproxy chgwebpwd old password +WARNING: translation string unused: advproxy chgwebpwd username +WARNING: translation string unused: advproxy cre disabled +WARNING: translation string unused: advproxy errmsg change fail +WARNING: translation string unused: advproxy errmsg change success +WARNING: translation string unused: advproxy errmsg invalid user +WARNING: translation string unused: advproxy errmsg no password +WARNING: translation string unused: advproxy errmsg password incorrect +WARNING: translation string unused: advproxy no cre groups +WARNING: translation string unused: advproxy ssadvanced proxy +WARNING: translation string unused: advproxy update information +WARNING: translation string unused: advproxy update notification +WARNING: translation string unused: alcatelusb help +WARNING: translation string unused: alcatelusb upload +WARNING: translation string unused: all interfaces +WARNING: translation string unused: all updates installed +WARNING: translation string unused: allmsg +WARNING: translation string unused: alt information +WARNING: translation string unused: alt ovpn +WARNING: translation string unused: and +WARNING: translation string unused: ansi t1.483 +WARNING: translation string unused: apply +WARNING: translation string unused: archive not exist +WARNING: translation string unused: available updates +WARNING: translation string unused: backup archive +WARNING: translation string unused: backup clear archive +WARNING: translation string unused: backup config floppy +WARNING: translation string unused: backup configuration +WARNING: translation string unused: backup erase key +WARNING: translation string unused: backup explain key +WARNING: translation string unused: backup explain key li1 +WARNING: translation string unused: backup explain key li2 +WARNING: translation string unused: backup explain key li3 +WARNING: translation string unused: backup explain key no1 +WARNING: translation string unused: backup explain key no2 +WARNING: translation string unused: backup export key +WARNING: translation string unused: backup extract key +WARNING: translation string unused: backup generate key +WARNING: translation string unused: backup import dat file +WARNING: translation string unused: backup import key +WARNING: translation string unused: backup key +WARNING: translation string unused: backup key file +WARNING: translation string unused: backup key info +WARNING: translation string unused: backup media info +WARNING: translation string unused: backup missing key +WARNING: translation string unused: backup password +WARNING: translation string unused: backup protect key password +WARNING: translation string unused: backup sets +WARNING: translation string unused: backup to floppy +WARNING: translation string unused: bad characters in +WARNING: translation string unused: bewan adsl pci st +WARNING: translation string unused: bewan adsl usb +WARNING: translation string unused: bitrate +WARNING: translation string unused: bleeding rules +WARNING: translation string unused: blue access use hint +WARNING: translation string unused: blue interface +WARNING: translation string unused: cache management +WARNING: translation string unused: cache size +WARNING: translation string unused: calamaris report interval (in minutes) +WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: capsinactive +WARNING: translation string unused: ccd err iroute +WARNING: translation string unused: ccd err netadr +WARNING: translation string unused: cfg restart +WARNING: translation string unused: check for net traffic update +WARNING: translation string unused: choose config +WARNING: translation string unused: choose media +WARNING: translation string unused: clear cache +WARNING: translation string unused: compression +WARNING: translation string unused: connect +WARNING: translation string unused: connect the modem +WARNING: translation string unused: core notice 1 +WARNING: translation string unused: core notice 2 +WARNING: translation string unused: core notice 3 +WARNING: translation string unused: could not connect to +WARNING: translation string unused: could not connect to www ipcop org +WARNING: translation string unused: could not connect to www ipfire org +WARNING: translation string unused: could not create directory +WARNING: translation string unused: could not download latest patch list +WARNING: translation string unused: could not download the available updates list +WARNING: translation string unused: could not open available updates file +WARNING: translation string unused: could not open installed updates file +WARNING: translation string unused: could not open update information file +WARNING: translation string unused: create +WARNING: translation string unused: create new backup +WARNING: translation string unused: current dynamic leases +WARNING: translation string unused: current media +WARNING: translation string unused: current ovpn +WARNING: translation string unused: current profile +WARNING: translation string unused: custom networks +WARNING: translation string unused: custom services +WARNING: translation string unused: daily firewallhits +WARNING: translation string unused: dat without key +WARNING: translation string unused: day-graph +WARNING: translation string unused: dbfile +WARNING: translation string unused: ddns help dnsmadeeasy +WARNING: translation string unused: ddns help freedns +WARNING: translation string unused: ddns help plus +WARNING: translation string unused: debugme +WARNING: translation string unused: deep scan directories +WARNING: translation string unused: default networks +WARNING: translation string unused: default services +WARNING: translation string unused: dhcp base ip fixed lease +WARNING: translation string unused: dhcp create fixed leases +WARNING: translation string unused: dhcp fixed lease err1 +WARNING: translation string unused: dhcp fixed lease help1 +WARNING: translation string unused: dhcp mode +WARNING: translation string unused: dhcp server disabled on blue interface +WARNING: translation string unused: dhcp server enabled on blue interface +WARNING: translation string unused: dial user password +WARNING: translation string unused: dial user password has been changed +WARNING: translation string unused: dialup settings +WARNING: translation string unused: disconnect +WARNING: translation string unused: display traffic at home +WARNING: translation string unused: dns server +WARNING: translation string unused: do not log this port list +WARNING: translation string unused: donation-link +WARNING: translation string unused: done +WARNING: translation string unused: driver +WARNING: translation string unused: dynamic dns client +WARNING: translation string unused: eciadsl help +WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit network +WARNING: translation string unused: edit service +WARNING: translation string unused: editor +WARNING: translation string unused: email server can not be empty +WARNING: translation string unused: enable javascript +WARNING: translation string unused: enabled on +WARNING: translation string unused: enabledtitle +WARNING: translation string unused: encrypted +WARNING: translation string unused: err bk 1 +WARNING: translation string unused: err bk 10 password +WARNING: translation string unused: err bk 2 key +WARNING: translation string unused: err bk 3 tar +WARNING: translation string unused: err bk 4 gz +WARNING: translation string unused: err bk 5 encrypt +WARNING: translation string unused: err rs 1 +WARNING: translation string unused: err rs 6 decrypt +WARNING: translation string unused: err rs 7 untartst +WARNING: translation string unused: err rs 8 untar +WARNING: translation string unused: error config +WARNING: translation string unused: error external access +WARNING: translation string unused: expected +WARNING: translation string unused: exportkey +WARNING: translation string unused: external access rule changed +WARNING: translation string unused: extrahd unable to read +WARNING: translation string unused: extrahd unable to write +WARNING: translation string unused: filename +WARNING: translation string unused: firewall graphs +WARNING: translation string unused: firewall log viewer +WARNING: translation string unused: firmware +WARNING: translation string unused: firmware upload +WARNING: translation string unused: force update +WARNING: translation string unused: frequency +WARNING: translation string unused: fritzdsl help +WARNING: translation string unused: fritzdsl upload +WARNING: translation string unused: from email adr +WARNING: translation string unused: from email pw +WARNING: translation string unused: from email server +WARNING: translation string unused: from email user +WARNING: translation string unused: from warn email bad +WARNING: translation string unused: g.dtm +WARNING: translation string unused: g.lite +WARNING: translation string unused: gen static key +WARNING: translation string unused: generate +WARNING: translation string unused: genkey +WARNING: translation string unused: green interface +WARNING: translation string unused: gz with key +WARNING: translation string unused: hint +WARNING: translation string unused: host +WARNING: translation string unused: host configuration +WARNING: translation string unused: hostname and domain already in use +WARNING: translation string unused: hour-graph +WARNING: translation string unused: hours2 +WARNING: translation string unused: ibod for dual isdn only +WARNING: translation string unused: icmp selected but no type +WARNING: translation string unused: icmp type +WARNING: translation string unused: id +WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: import +WARNING: translation string unused: importkey +WARNING: translation string unused: in +WARNING: translation string unused: incorrect password +WARNING: translation string unused: insert floppy +WARNING: translation string unused: insert removable device +WARNING: translation string unused: install new update +WARNING: translation string unused: installed +WARNING: translation string unused: installed updates +WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: invalid cache size +WARNING: translation string unused: invalid date entered +WARNING: translation string unused: invalid downlink speed +WARNING: translation string unused: invalid loaded file +WARNING: translation string unused: invalid md5sum +WARNING: translation string unused: invalid port list +WARNING: translation string unused: invalid time entered +WARNING: translation string unused: invalid uplink speed +WARNING: translation string unused: invalid upstream proxy username or password setting +WARNING: translation string unused: invert +WARNING: translation string unused: ip address in use +WARNING: translation string unused: ipfire side +WARNING: translation string unused: iptable rules +WARNING: translation string unused: isdn +WARNING: translation string unused: isdn settings +WARNING: translation string unused: isdn1 +WARNING: translation string unused: isdn2 +WARNING: translation string unused: javascript menu error1 +WARNING: translation string unused: javascript menu error2 +WARNING: translation string unused: kernel version +WARNING: translation string unused: key stuff +WARNING: translation string unused: lateprompting +WARNING: translation string unused: length +WARNING: translation string unused: line +WARNING: translation string unused: loaded modules +WARNING: translation string unused: local hard disk +WARNING: translation string unused: localkeyfile +WARNING: translation string unused: log enabled +WARNING: translation string unused: log viewer +WARNING: translation string unused: loosedirectorychecking +WARNING: translation string unused: ls_dhcpd +WARNING: translation string unused: ls_disk space +WARNING: translation string unused: ls_free/swan +WARNING: translation string unused: ls_httpd +WARNING: translation string unused: ls_init +WARNING: translation string unused: ls_kernel +WARNING: translation string unused: ls_modprobe +WARNING: translation string unused: ls_pam_unix +WARNING: translation string unused: ls_sshd +WARNING: translation string unused: ls_syslogd +WARNING: translation string unused: mac address error not 00 +WARNING: translation string unused: manage ovpn +WARNING: translation string unused: manual control and status +WARNING: translation string unused: marked +WARNING: translation string unused: max incoming size +WARNING: translation string unused: max outgoing size +WARNING: translation string unused: max size +WARNING: translation string unused: mbmon fan in +WARNING: translation string unused: mbmon graphs +WARNING: translation string unused: mbmon temp in +WARNING: translation string unused: mbmon value +WARNING: translation string unused: min size +WARNING: translation string unused: missing dat +WARNING: translation string unused: missing gz +WARNING: translation string unused: modem on com1 +WARNING: translation string unused: modem on com2 +WARNING: translation string unused: modem on com3 +WARNING: translation string unused: modem on com4 +WARNING: translation string unused: modem on com5 +WARNING: translation string unused: modulation +WARNING: translation string unused: month-graph +WARNING: translation string unused: monthly firewallhits +WARNING: translation string unused: monthly start day bad +WARNING: translation string unused: monthly traffic bad +WARNING: translation string unused: monthly volume +WARNING: translation string unused: monthly volume start day +WARNING: translation string unused: monthly volume start day short +WARNING: translation string unused: mount +WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net address +WARNING: translation string unused: net config type +WARNING: translation string unused: net config type help +WARNING: translation string unused: net-traffic configuration +WARNING: translation string unused: network added +WARNING: translation string unused: network configuration +WARNING: translation string unused: network removed +WARNING: translation string unused: network status information +WARNING: translation string unused: network traffic graphs +WARNING: translation string unused: network updated +WARNING: translation string unused: networks settings +WARNING: translation string unused: new optionsfw must boot +WARNING: translation string unused: no alcatelusb firmware +WARNING: translation string unused: no cfg upload +WARNING: translation string unused: no eciadsl synch.bin file +WARNING: translation string unused: no fritzdsl driver +WARNING: translation string unused: no information available +WARNING: translation string unused: no modem selected +WARNING: translation string unused: no set selected +WARNING: translation string unused: nonetworkname +WARNING: translation string unused: noservicename +WARNING: translation string unused: notes +WARNING: translation string unused: o-no +WARNING: translation string unused: o-yes +WARNING: translation string unused: online help en +WARNING: translation string unused: only red +WARNING: translation string unused: openvpn disabled +WARNING: translation string unused: openvpn enabled +WARNING: translation string unused: optional data +WARNING: translation string unused: optionsfw portlist hint +WARNING: translation string unused: optionsfw warning +WARNING: translation string unused: or +WARNING: translation string unused: original +WARNING: translation string unused: other countries +WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: override mtu +WARNING: translation string unused: ovpn +WARNING: translation string unused: ovpn config +WARNING: translation string unused: ovpn dl +WARNING: translation string unused: ovpn log +WARNING: translation string unused: ovpn_fastio +WARNING: translation string unused: ovpn_fragment +WARNING: translation string unused: ovpn_mssfix +WARNING: translation string unused: ovpn_mtudisc +WARNING: translation string unused: ovpn_processprio +WARNING: translation string unused: ovpn_processprioD +WARNING: translation string unused: ovpn_processprioED +WARNING: translation string unused: ovpn_processprioEH +WARNING: translation string unused: ovpn_processprioEN +WARNING: translation string unused: ovpn_processprioH +WARNING: translation string unused: ovpn_processprioLN +WARNING: translation string unused: ovpn_processprioN +WARNING: translation string unused: ovpn_processprioVD +WARNING: translation string unused: ovpn_processprioVH +WARNING: translation string unused: ovpnstatus log +WARNING: translation string unused: ovpnsys log +WARNING: translation string unused: package failed to install +WARNING: translation string unused: pakfire core update auto +WARNING: translation string unused: pakfire updates +WARNING: translation string unused: password contains illegal characters +WARNING: translation string unused: password crypting key +WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phonebook entry +WARNING: translation string unused: ping disabled +WARNING: translation string unused: polfile +WARNING: translation string unused: ports +WARNING: translation string unused: pots +WARNING: translation string unused: pppoe +WARNING: translation string unused: present +WARNING: translation string unused: profiles +WARNING: translation string unused: proxy access graphs +WARNING: translation string unused: proxy no proxy extend +WARNING: translation string unused: proxy no proxy local +WARNING: translation string unused: proxy port +WARNING: translation string unused: psk +WARNING: translation string unused: quick control +WARNING: translation string unused: reboot schedule +WARNING: translation string unused: rebooting +WARNING: translation string unused: refresh update list +WARNING: translation string unused: released +WARNING: translation string unused: removable device advice +WARNING: translation string unused: reportfile +WARNING: translation string unused: requested data +WARNING: translation string unused: restore hardware settings +WARNING: translation string unused: root +WARNING: translation string unused: root path +WARNING: translation string unused: root user password +WARNING: translation string unused: route subnet is invalid +WARNING: translation string unused: router ip +WARNING: translation string unused: rules already up to date +WARNING: translation string unused: safe removal of umounted device +WARNING: translation string unused: save error +WARNING: translation string unused: select media +WARNING: translation string unused: selecttraffic +WARNING: translation string unused: send email notification +WARNING: translation string unused: send test mail +WARNING: translation string unused: server reserved +WARNING: translation string unused: service added +WARNING: translation string unused: service removed +WARNING: translation string unused: service updated +WARNING: translation string unused: servicename +WARNING: translation string unused: services settings +WARNING: translation string unused: shaping add options +WARNING: translation string unused: shaping list options +WARNING: translation string unused: show areas +WARNING: translation string unused: show lines +WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown2 +WARNING: translation string unused: shutting down +WARNING: translation string unused: sitekeyfile +WARNING: translation string unused: smbreload +WARNING: translation string unused: sort ascending +WARNING: translation string unused: sort descending +WARNING: translation string unused: squid extension methods +WARNING: translation string unused: squid extension methods invalid +WARNING: translation string unused: squid fix cache +WARNING: translation string unused: ssh access tip +WARNING: translation string unused: ssh1 disabled +WARNING: translation string unused: ssh1 enabled +WARNING: translation string unused: ssh1 support +WARNING: translation string unused: ssnetwork status +WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssproxy graphs +WARNING: translation string unused: sssystem status +WARNING: translation string unused: sstraffic graphs +WARNING: translation string unused: subject test +WARNING: translation string unused: subject warn +WARNING: translation string unused: subnet +WARNING: translation string unused: subnet is invalid +WARNING: translation string unused: successfully refreshed updates list +WARNING: translation string unused: system graphs +WARNING: translation string unused: system log viewer +WARNING: translation string unused: system status information +WARNING: translation string unused: test +WARNING: translation string unused: test email could not be sent +WARNING: translation string unused: test email was sent +WARNING: translation string unused: the following update was successfully installed +WARNING: translation string unused: there are updates +WARNING: translation string unused: there are updates available +WARNING: translation string unused: this feature has been sponsored by +WARNING: translation string unused: this is not a valid archive +WARNING: translation string unused: this is not an authorised update +WARNING: translation string unused: this months volume +WARNING: translation string unused: this update is already installed +WARNING: translation string unused: this weeks volume +WARNING: translation string unused: time date manually reset +WARNING: translation string unused: to email adr +WARNING: translation string unused: to install an update +WARNING: translation string unused: to warn email bad +WARNING: translation string unused: too long 80 char max +WARNING: translation string unused: traffic back +WARNING: translation string unused: traffic calc time +WARNING: translation string unused: traffic calc time bad +WARNING: translation string unused: traffic info messages +WARNING: translation string unused: traffic monitor +WARNING: translation string unused: traffic shaping +WARNING: translation string unused: traffic shaping settings +WARNING: translation string unused: traffic warn level bad +WARNING: translation string unused: trafficblue +WARNING: translation string unused: trafficdate +WARNING: translation string unused: trafficfrom +WARNING: translation string unused: trafficgreen +WARNING: translation string unused: trafficin +WARNING: translation string unused: trafficorange +WARNING: translation string unused: trafficout +WARNING: translation string unused: trafficred +WARNING: translation string unused: trafficsum +WARNING: translation string unused: trafficto +WARNING: translation string unused: transfer limits +WARNING: translation string unused: transparent on +WARNING: translation string unused: umount +WARNING: translation string unused: umount removable media before to unplug +WARNING: translation string unused: unencrypted +WARNING: translation string unused: unknown +WARNING: translation string unused: update transcript +WARNING: translation string unused: updates +WARNING: translation string unused: updates is old1 +WARNING: translation string unused: updates is old2 +WARNING: translation string unused: updxlrtr children +WARNING: translation string unused: updxlrtr invalid num of children +WARNING: translation string unused: updxlrtr unknown +WARNING: translation string unused: updxlrtr update information +WARNING: translation string unused: updxlrtr update notification +WARNING: translation string unused: upload fcdsl.o +WARNING: translation string unused: upload file +WARNING: translation string unused: upload static key +WARNING: translation string unused: upload successful +WARNING: translation string unused: upload synch.bin +WARNING: translation string unused: upload update file +WARNING: translation string unused: upstream password +WARNING: translation string unused: upstream proxy host:port +WARNING: translation string unused: upstream username +WARNING: translation string unused: uptime and users +WARNING: translation string unused: urlfilter background image +WARNING: translation string unused: urlfilter background text +WARNING: translation string unused: urlfilter enable jpeg +WARNING: translation string unused: urlfilter update information +WARNING: translation string unused: urlfilter update notification +WARNING: translation string unused: urlfilter update results +WARNING: translation string unused: urlfilter upload background +WARNING: translation string unused: use +WARNING: translation string unused: use dov +WARNING: translation string unused: use ibod +WARNING: translation string unused: view log +WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid +WARNING: translation string unused: vpn on blue +WARNING: translation string unused: vpn on green +WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch +WARNING: translation string unused: warn when traffic reaches +WARNING: translation string unused: web proxy configuration +WARNING: translation string unused: week-graph +WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: xtaccess bad transfert +WARNING: translation string unused: year-graph +WARNING: translation string unused: yearly firewallhits +WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: bytes +WARNING: untranslated string: ccd iroute2 +WARNING: untranslated string: new +WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: route config changed +WARNING: untranslated string: routing config added +WARNING: untranslated string: routing config changed +WARNING: untranslated string: routing table diff --git a/doc/language_issues.pl b/doc/language_issues.pl index eca067d..eb45ffb 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -317,6 +317,7 @@ WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname WARNING: translation string unused: outgoing firewall p2p description +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -486,9 +487,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph @@ -499,6 +503,7 @@ WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Async logging enabled WARNING: untranslated string: Scan for Songs WARNING: untranslated string: Set time on boot +WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: attention WARNING: untranslated string: bytes @@ -608,3 +613,4 @@ WARNING: untranslated string: static routes WARNING: untranslated string: system information WARNING: untranslated string: visit us at WARNING: untranslated string: vpn keyexchange +WARNING: untranslated string: wlanap country diff --git a/doc/language_issues.ru b/doc/language_issues.ru index e36449a..e83f42b 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -310,6 +310,7 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -479,9 +480,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: weekly firewallhits @@ -490,6 +494,7 @@ WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Add a route WARNING: untranslated string: Edit an existing route WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy WARNING: untranslated string: attention WARNING: untranslated string: bytes @@ -572,3 +577,4 @@ WARNING: untranslated string: server restart WARNING: untranslated string: static routes WARNING: untranslated string: visit us at WARNING: untranslated string: vpn keyexchange +WARNING: untranslated string: wlanap country diff --git a/doc/language_missings b/doc/language_missings index 83fbf90..1682950 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -11,6 +11,7 @@ ############################################################################ # Checking cgi-bin translations for language: fr # ############################################################################ +< advproxy errmsg cache < advproxy errmsg invalid upstream proxy < attention < ccd add @@ -132,6 +133,7 @@ ############################################################################ # Checking cgi-bin translations for language: es # ############################################################################ +< advproxy errmsg cache < advproxy errmsg invalid upstream proxy < Async logging enabled < attention @@ -246,6 +248,7 @@ ############################################################################ # Checking cgi-bin translations for language: pl # ############################################################################ +< advproxy errmsg cache < advproxy errmsg invalid upstream proxy < attention < ccd add @@ -336,6 +339,7 @@ # Checking cgi-bin translations for language: ru # ############################################################################ < Add a route +< advproxy errmsg cache < advproxy errmsg invalid upstream proxy < attention < ccd add diff --git a/html/cgi-bin/ids.cgi b/html/cgi-bin/ids.cgi index efbc3de..5c0bcff 100644 --- a/html/cgi-bin/ids.cgi +++ b/html/cgi-bin/ids.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2005-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -263,9 +263,9 @@ if (-e "/etc/snort/snort.conf") { ####################### End added for snort rules control #################################
if ($snortsettings{'RULES'} eq 'subscripted') { - $url=" http://www.snort.org/reg-rules/snortrules-snapshot-2931_s.tar.gz/$snortsetti..."; + $url=" http://www.snort.org/sub-rules/snortrules-snapshot-2940.tar.gz/$snortsetting..."; } elsif ($snortsettings{'RULES'} eq 'registered') { - $url=" http://www.snort.org/reg-rules/snortrules-snapshot-2931.tar.gz/$snortsetting..."; + $url=" http://www.snort.org/reg-rules/snortrules-snapshot-2940.tar.gz/$snortsetting..."; } else { $url="http://rules.emergingthreats.net/open/snort-2.9.0/emerging.rules.tar.gz"; } diff --git a/html/cgi-bin/media.cgi b/html/cgi-bin/media.cgi index f67c178..52d9337 100644 --- a/html/cgi-bin/media.cgi +++ b/html/cgi-bin/media.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -45,9 +45,9 @@ my @querry = split(/?/,$ENV{'QUERY_STRING'}); $querry[0] = '' unless defined $querry[0]; $querry[1] = 'hour' unless defined $querry[1];
-my @devices = `ls -1 /sys/block | grep -E '^sd|^xvd|^vd|^md' | sort | uniq`; +my @devices = `ls -1 /sys/block | grep -E '^sd|^mmcblk|^xvd|^vd|^md' | sort | uniq`;
-if ( $querry[0] =~ "sd?" || $querry[0] =~ "xvd??" || $querry[0] =~ "vd?" || $querry[0] =~ "md*" ){ +if ( $querry[0] =~ "sd?" || $querry[0] =~ "mmcblk?" || $querry[0] =~ "xvd??" || $querry[0] =~ "vd?" || $querry[0] =~ "md*" ){ print "Content-type: image/png\n\n"; binmode(STDOUT); diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi index 6def979..58ebdf2 100755 --- a/html/cgi-bin/ovpnmain.cgi +++ b/html/cgi-bin/ovpnmain.cgi @@ -2436,7 +2436,7 @@ print <<END; <td><input type='text' name='MAX_CLIENTS' value='$cgiparams{'MAX_CLIENTS'}' size='10' /></td> </tr> <tr> - <td class='base'>Keppalive <br /> + <td class='base'>Keepalive <br /> (ping/ping-restart)</td> <td><input type='TEXT' name='KEEPALIVE_1' value='$cgiparams{'KEEPALIVE_1'}' size='10' /></td> <td><input type='TEXT' name='KEEPALIVE_2' value='$cgiparams{'KEEPALIVE_2'}' size='10' /></td> @@ -3980,6 +3980,7 @@ if ($cgiparams{'TYPE'} eq 'net') { if ( -e "${General::swroot}/ovpn/ccd/$confighash{$key}[2]"){ unlink "${General::swroot}/ovpn/ccd/$cgiparams{'CERT_NAME'}"; } + $confighash{$key}[2] =~ s/ /_/gi; open ( CCDRWCONF,'>',"${General::swroot}/ovpn/ccd/$confighash{$key}[2]") or die "Unable to create clientconfigfile $!"; print CCDRWCONF "# OpenVPN clientconfig from ccd extension by Copymaster#\n\n"; if($cgiparams{'CHECK1'} eq 'dynamic'){ diff --git a/html/cgi-bin/proxy.cgi b/html/cgi-bin/proxy.cgi index 015502a..0b28c2a 100644 --- a/html/cgi-bin/proxy.cgi +++ b/html/cgi-bin/proxy.cgi @@ -348,17 +348,27 @@ if (($proxysettings{'ACTION'} eq $Lang::tr{'save'}) || ($proxysettings{'ACTION'} $errormessage = $Lang::tr{'invalid input'}; goto ERROR; } + if($proxysettings{'CACHE_MEM'} > $proxysettings{'CACHE_SIZE'} && $proxysettings{'CACHE_SIZE'} > 0){ + $errormessage = $Lang::tr{'advproxy errmsg cache'}." ".$proxysettings{'CACHE_MEM'}." > ".$proxysettings{'CACHE_SIZE'}; + goto ERROR; + } + if (!(&General::validport($proxysettings{'PROXY_PORT'}))) { $errormessage = $Lang::tr{'advproxy errmsg invalid proxy port'}; goto ERROR; } - if (!($proxysettings{'UPSTREAM_PROXY'} eq '')) { - my @temp = split(/:/,$proxysettings{'UPSTREAM_PROXY'}); - if (!(&General::validip($temp[0]))) { - $errormessage = $Lang::tr{'advproxy errmsg invalid upstream proxy'}; - goto ERROR; - } + if (!($proxysettings{'UPSTREAM_PROXY'} eq '')) + { + my @temp = split(/:/,$proxysettings{'UPSTREAM_PROXY'}); + if (!(&General::validip($temp[0]))) + { + if (!(&General::validdomainname($temp[0]))) + { + $errormessage = $Lang::tr{'advproxy errmsg invalid upstream proxy'}; + goto ERROR; + } + } } if (!($proxysettings{'CACHE_SIZE'} =~ /^\d+/) || ($proxysettings{'CACHE_SIZE'} < 10)) @@ -507,8 +517,11 @@ if (($proxysettings{'ACTION'} eq $Lang::tr{'save'}) || ($proxysettings{'ACTION'} } if (!&General::validip($proxysettings{'LDAP_SERVER'})) { - $errormessage = $Lang::tr{'advproxy errmsg ldap server'}; - goto ERROR; + if (!&General::validdomainname($proxysettings{'LDAP_SERVER'})) + { + $errormessage = $Lang::tr{'advproxy errmsg ldap server'}; + goto ERROR; + } } if (!&General::validport($proxysettings{'LDAP_PORT'})) { @@ -3081,12 +3094,6 @@ pid_filename /var/run/squid.pid cache_mem $proxysettings{'CACHE_MEM'} MB END ; - - if ($proxysettings{'CACHE_SIZE'} ne '0') - { - print FILE "cache_dir aufs /var/log/cache $proxysettings{'CACHE_SIZE'} $proxysettings{'L1_DIRS'} 256\n\n"; - } - print FILE "error_directory $errordir/$proxysettings{'ERR_LANGUAGE'}\n\n";
if ($proxysettings{'OFFLINE_MODE'} eq 'on') { print FILE "offline_mode on\n\n"; } @@ -3104,6 +3111,11 @@ END print FILE "\n"; }
+ if ($proxysettings{'CACHE_SIZE'} ne '0') + { + print FILE "cache_dir aufs /var/log/cache $proxysettings{'CACHE_SIZE'} $proxysettings{'L1_DIRS'} 256\n\n"; + } + if ($proxysettings{'LOGGING'} eq 'on') { print FILE <<END diff --git a/html/cgi-bin/qos.cgi b/html/cgi-bin/qos.cgi index 844058d..300e6ae 100644 --- a/html/cgi-bin/qos.cgi +++ b/html/cgi-bin/qos.cgi @@ -74,8 +74,7 @@ $qossettings{'DEFCLASS_INC'} = ''; $qossettings{'DEFCLASS_OUT'} = ''; $qossettings{'ACK'} = ''; $qossettings{'MTU'} = '1492'; -$qossettings{'SFQ_PERTUB'} = '10'; -$qossettings{'QLENGTH'} = '30'; +$qossettings{'QLENGTH'} = '1000'; $qossettings{'RED_DEV'} = 'ppp0'; $qossettings{'IMQ_DEV'} = 'imq0'; $qossettings{'VALID'} = 'yes'; @@ -1448,9 +1447,6 @@ sub expert <td width='33%' align='center'>$Lang::tr{'mtu QoS'} <tr><td width='33%' align='right'>$Lang::tr{'Queuelenght'}:<td width='33%' align='left'> <input type='text' name='QLENGTH' maxlength='8' required='2' value='$qossettings{'QLENGTH'}' /> - <td width='33%' align='center'> - <tr><td width='33%' align='right'>SFQ Perturb:<td width='33%' align='left'> - <input type='text' name='SFQ_PERTUB' maxlength='8' required='1' value='$qossettings{'SFQ_PERTUB'}' /> <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /> </table> </form> diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi index 123c325..22a9ac7 100644 --- a/html/cgi-bin/services.cgi +++ b/html/cgi-bin/services.cgi @@ -54,7 +54,7 @@ my %servicenames =( $Lang::tr{'kernel logging server'} => 'klogd', $Lang::tr{'ntp server'} => 'ntpd', $Lang::tr{'secure shell server'} => 'sshd', - $Lang::tr{'vpn'} => 'pluto', + $Lang::tr{'vpn'} => 'charon', $Lang::tr{'web proxy'} => 'squid', 'OpenVPN' => 'openvpn' ); diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi old mode 100755 new mode 100644 index 24aeb6d..161df4d --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -73,17 +73,9 @@ $cgiparams{'ENABLED'} = 'off'; $cgiparams{'EDIT_ADVANCED'} = 'off'; $cgiparams{'ACTION'} = ''; $cgiparams{'CA_NAME'} = ''; -$cgiparams{'DBG_CRYPT'} = ''; -$cgiparams{'DBG_PARSING'} = ''; -$cgiparams{'DBG_EMITTING'} = ''; -$cgiparams{'DBG_CONTROL'} = ''; -$cgiparams{'DBG_KLIPS'} = ''; -$cgiparams{'DBG_DNS'} = ''; -$cgiparams{'DBG_NAT_T'} = ''; $cgiparams{'KEY'} = ''; $cgiparams{'TYPE'} = ''; $cgiparams{'ADVANCED'} = ''; -$cgiparams{'INTERFACE'} = ''; $cgiparams{'NAME'} = ''; $cgiparams{'LOCAL_SUBNET'} = ''; $cgiparams{'REMOTE_SUBNET'} = ''; @@ -254,49 +246,10 @@ sub writeipsecfiles { flock SECRETS, 2; print CONF "version 2\n\n"; print CONF "config setup\n"; - #create an ipsec Interface for each 'enabled' ones - #loop trought configuration and add physical interfaces to the list - my $interfaces = "\tinterfaces=""; - foreach my $key (keys %lconfighash) { - next if ($lconfighash{$key}[0] ne 'on'); - $interfaces .= "%defaultroute " if ($interfaces !~ /defaultroute/ && $lconfighash{$key}[26] eq 'RED'); - $interfaces .= "$netsettings{'GREEN_DEV'} " if ($interfaces !~ /ipsec1/ && $lconfighash{$key}[26] eq 'GREEN'); - $interfaces .= "$netsettings{'BLUE_DEV'} " if ($interfaces !~ /ipsec2/ && $lconfighash{$key}[26] eq 'BLUE'); - $interfaces .= "$netsettings{'ORANGE_DEV'} " if ($interfaces !~ /ipsec3/ && $lconfighash{$key}[26] eq 'ORANGE'); - } - print CONF $interfaces . ""\n"; - - my $plutodebug = ''; # build debug list - map ($plutodebug .= $lvpnsettings{$_} eq 'on' ? lc (substr($_,4)).' ' : '', - ('DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL', - 'DBG_DNS')); - $plutodebug = 'none' if $plutodebug eq ''; # if nothing selected, use 'none'. - #print CONF "\tklipsdebug="none"\n"; - print CONF "\tplutodebug="$plutodebug"\n"; - # deprecated in ipsec.conf version 2 - #print CONF "\tplutoload=%search\n"; - #print CONF "\tplutostart=%search\n"; - print CONF "\tuniqueids=yes\n"; - print CONF "\tnat_traversal=yes\n"; - print CONF "\toverridemtu=$lvpnsettings{'VPN_OVERRIDE_MTU'}\n" if ($lvpnsettings{'VPN_OVERRIDE_MTU'} ne ''); - print CONF "\tvirtual_private=%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:192.168.0.0/16"; - print CONF ",%v4:!$green_cidr"; - if (length($netsettings{'ORANGE_DEV'}) > 2) { - print CONF ",%v4:!$orange_cidr"; - } - if (length($netsettings{'BLUE_DEV'}) > 2) { - print CONF ",%v4:!$blue_cidr"; - } - foreach my $key (keys %lconfighash) { - if ($lconfighash{$key}[3] eq 'net') { - print CONF ",%v4:!$lconfighash{$key}[11]"; - } - } - print CONF "\n\n"; + print CONF "\tcharondebug="dmn 0, mgr 0, ike 0, chd 0, job 0, cfg 0, knl 0, net 0, asn 0, enc 0, lib 0, esp 0, tls 0, tnc 0, imc 0, imv 0, pts 0"\n"; + print CONF "\n"; print CONF "conn %default\n"; - print CONF "\tkeyingtries=0\n"; - #strongswan doesn't know this - #print CONF "\tdisablearrivalcheck=no\n"; + print CONF "\tkeyingtries=%forever\n"; print CONF "\n";
# Add user includes to config file @@ -329,7 +282,6 @@ sub writeipsecfiles {
print CONF "conn $lconfighash{$key}[1]\n"; print CONF "\tleft=$localside\n"; - print CONF "\tleftnexthop=%defaultroute\n" if ($lconfighash{$key}[26] eq 'RED' && $lvpnsettings{'VPN_IP'} ne '%defaultroute'); my $cidr_net=&General::ipcidr($lconfighash{$key}[8]); print CONF "\tleftsubnet=$cidr_net\n"; print CONF "\tleftfirewall=yes\n"; @@ -339,7 +291,6 @@ sub writeipsecfiles { if ($lconfighash{$key}[3] eq 'net') { my $cidr_net=&General::ipcidr($lconfighash{$key}[11]); print CONF "\trightsubnet=$cidr_net\n"; - print CONF "\trightnexthop=%defaultroute\n"; } elsif ($lconfighash{$key}[10] eq '%any' && $lconfighash{$key}[14] eq 'on') { #vhost allowed for roadwarriors? print CONF "\trightsubnet=vhost:%no,%priv\n"; } @@ -354,6 +305,9 @@ sub writeipsecfiles { print CONF "\tleftid="$lconfighash{$key}[7]"\n" if ($lconfighash{$key}[7]); print CONF "\trightid="$lconfighash{$key}[9]"\n" if ($lconfighash{$key}[9]);
+ # Is PFS enabled? + my $pfs = $lconfighash{$key}[28] eq 'on' ? 'on' : 'off'; + # Algorithms if ($lconfighash{$key}[18] && $lconfighash{$key}[19] && $lconfighash{$key}[20]) { print CONF "\tike="; @@ -379,11 +333,25 @@ sub writeipsecfiles { print CONF "\tesp="; my @encs = split('|', $lconfighash{$key}[21]); my @ints = split('|', $lconfighash{$key}[22]); + my @groups = split('|', $lconfighash{$key}[20]); my $comma = 0; foreach my $i (@encs) { foreach my $j (@ints) { - if ($comma != 0) { print CONF ","; } else { $comma = 1; } - print CONF "$i-$j"; + my $modp = ""; + if ($pfs eq "on") { + foreach my $k (@groups) { + if ($comma != 0) { print CONF ","; } else { $comma = 1; } + if ($pfs eq "on") { + $modp = "-modp$k"; + } else { + $modp = ""; + } + print CONF "$i-$j$modp"; + } + } else { + if ($comma != 0) { print CONF ","; } else { $comma = 1; } + print CONF "$i-$j"; + } } } if ($lconfighash{$key}[24] eq 'on') { #only proposed algorythms? @@ -392,9 +360,6 @@ sub writeipsecfiles { print CONF "\n"; } } - if ($lconfighash{$key}[23]) { - print CONF "\tpfsgroup=$lconfighash{$key}[23]\n"; - }
# IKE V1 or V2 if (! $lconfighash{$key}[29]) { @@ -414,9 +379,6 @@ sub writeipsecfiles { print CONF "\tdpdtimeout=120\n"; print CONF "\tdpdaction=$lconfighash{$key}[27]\n";
- # Disable pfs ? - print CONF "\tpfs=". ($lconfighash{$key}[28] eq 'on' ? "yes\n" : "no\n"); - # Build Authentication details: LEFTid RIGHTid : PSK psk my $psk_line; if ($lconfighash{$key}[4] eq 'psk') { @@ -450,6 +412,12 @@ sub writeipsecfiles { close(SECRETS); }
+# Hook to regenerate the configuration files. +if ($ENV{"REMOTE_ADDR"} eq "") { + writeipsecfiles; + exit(0); +} + ### ### Save main settings ### @@ -466,29 +434,14 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg goto SAVE_ERROR; }
- unless ($cgiparams{'VPN_OVERRIDE_MTU'} =~ /^(|[0-9]{1,5})$/ ) { #allow 0-99999 - $errormessage = $Lang::tr{'vpn mtu invalid'}; - goto SAVE_ERROR; - } - - unless ($cgiparams{'VPN_WATCH'} =~ /^(|off|on)$/ ) { - $errormessage = $Lang::tr{'invalid input'}; - goto SAVE_ERROR; - } - if ( $cgiparams{'RW_NET'} ne '' and !&General::validipandmask($cgiparams{'RW_NET'}) ) { $errormessage = $Lang::tr{'urlfilter invalid ip or mask error'}; goto SAVE_ERROR; }
- map ($vpnsettings{$_} = $cgiparams{$_}, - ('ENABLED','DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL', - 'DBG_DNS')); - + $vpnsettings{'ENABLED'} = $cgiparams{'ENABLED'}; $vpnsettings{'VPN_IP'} = $cgiparams{'VPN_IP'}; $vpnsettings{'VPN_DELAYED_START'} = $cgiparams{'VPN_DELAYED_START'}; - $vpnsettings{'VPN_OVERRIDE_MTU'} = $cgiparams{'VPN_OVERRIDE_MTU'}; - $vpnsettings{'VPN_WATCH'} = $cgiparams{'VPN_WATCH'}; $vpnsettings{'RW_NET'} = $cgiparams{'RW_NET'}; &General::writehash("${General::swroot}/vpn/settings", %vpnsettings); &writeipsecfiles(); @@ -1298,7 +1251,6 @@ END $cgiparams{'REMOTE'} = $confighash{$cgiparams{'KEY'}}[10]; $cgiparams{'REMOTE_SUBNET'} = $confighash{$cgiparams{'KEY'}}[11]; $cgiparams{'REMARK'} = $confighash{$cgiparams{'KEY'}}[25]; - $cgiparams{'INTERFACE'} = $confighash{$cgiparams{'KEY'}}[26]; $cgiparams{'DPD_ACTION'} = $confighash{$cgiparams{'KEY'}}[27]; $cgiparams{'IKE_VERSION'} = $confighash{$cgiparams{'KEY'}}[29]; $cgiparams{'IKE_ENCRYPTION'} = $confighash{$cgiparams{'KEY'}}[18]; @@ -1415,14 +1367,14 @@ END goto VPNCONF_ERROR; }
- - if ($cgiparams{'TYPE'} eq 'net'){ - $errormessage=&General::checksubnets($cgiparams{'NAME'},$cgiparams{'REMOTE_SUBNET'}); - if ($errormessage ne ''){ - goto VPNCONF_ERROR; - } - - } +#temporary disabled (BUG 10294) +# if ($cgiparams{'TYPE'} eq 'net'){ +# $errormessage=&General::checksubnets($cgiparams{'NAME'},$cgiparams{'REMOTE_SUBNET'}); +# if ($errormessage ne ''){ +# goto VPNCONF_ERROR; +# } +# +# } if ($cgiparams{'AUTH'} eq 'psk') { if (! length($cgiparams{'PSK'}) ) { $errormessage = $Lang::tr{'pre-shared key is too short'}; @@ -1809,7 +1761,7 @@ END $confighash{$key}[9] = $cgiparams{'REMOTE_ID'}; $confighash{$key}[10] = $cgiparams{'REMOTE'}; $confighash{$key}[25] = $cgiparams{'REMARK'}; - $confighash{$key}[26] = $cgiparams{'INTERFACE'}; + $confighash{$key}[26] = ""; # Formerly INTERFACE $confighash{$key}[27] = $cgiparams{'DPD_ACTION'}; $confighash{$key}[29] = $cgiparams{'IKE_VERSION'};
@@ -1867,28 +1819,25 @@ END $cgiparams{'DPD_ACTION'} = 'restart'; }
- # Default IKE Version to V1 - if (! $cgiparams{'IKE_VERSION'}) { - $cgiparams{'IKE_VERSION'} = 'ikev1'; + # Default IKE Version to v2 + if (!$cgiparams{'IKE_VERSION'}) { + $cgiparams{'IKE_VERSION'} = 'ikev2'; }
- # Default is yes for 'pfs' - $cgiparams{'PFS'} = 'on'; - # ID are empty $cgiparams{'LOCAL_ID'} = ''; $cgiparams{'REMOTE_ID'} = '';
#use default advanced value - $cgiparams{'IKE_ENCRYPTION'} = 'aes128|3des'; #[18]; - $cgiparams{'IKE_INTEGRITY'} = 'sha|md5'; #[19]; - $cgiparams{'IKE_GROUPTYPE'} = '1536|1024'; #[20]; + $cgiparams{'IKE_ENCRYPTION'} = 'aes256|aes192|aes128|3des'; #[18]; + $cgiparams{'IKE_INTEGRITY'} = 'sha2_256|sha|md5'; #[19]; + $cgiparams{'IKE_GROUPTYPE'} = '8192|6144|4096|3072|2048|1536|1024'; #[20]; $cgiparams{'IKE_LIFETIME'} = '1'; #[16]; - $cgiparams{'ESP_ENCRYPTION'} = 'aes128|3des'; #[21]; - $cgiparams{'ESP_INTEGRITY'} = 'sha1|md5'; #[22]; + $cgiparams{'ESP_ENCRYPTION'} = 'aes256|aes192|aes128|3des'; #[21]; + $cgiparams{'ESP_INTEGRITY'} = 'sha2_256|sha1|md5'; #[22]; $cgiparams{'ESP_GROUPTYPE'} = ''; #[23]; $cgiparams{'ESP_KEYLIFE'} = '8'; #[17]; - $cgiparams{'COMPRESSION'} = 'off'; #[13]; + $cgiparams{'COMPRESSION'} = 'on'; #[13]; $cgiparams{'ONLY_PROPOSED'} = 'off'; #[24]; $cgiparams{'PFS'} = 'on'; #[28]; $cgiparams{'VHOST'} = 'on'; #[14]; @@ -1911,12 +1860,6 @@ END $checked{'AUTH'}{'auth-dn'} = ''; $checked{'AUTH'}{$cgiparams{'AUTH'}} = "checked='checked'";
- $selected{'INTERFACE'}{'RED'} = ''; - $selected{'INTERFACE'}{'ORANGE'} = ''; - $selected{'INTERFACE'}{'GREEN'} = ''; - $selected{'INTERFACE'}{'BLUE'} = ''; - $selected{'INTERFACE'}{$cgiparams{'INTERFACE'}} = "selected='selected'"; - $selected{'DPD_ACTION'}{'clear'} = ''; $selected{'DPD_ACTION'}{'hold'} = ''; $selected{'DPD_ACTION'}{'restart'} = ''; @@ -1983,22 +1926,24 @@ END $blob = "<img src='/blob.gif' alt='*' />"; };
- print "<tr><td>$Lang::tr{'host ip'}:</td>"; - print "<td><select name='INTERFACE'>"; - print "<option value='RED' $selected{'INTERFACE'}{'RED'}>RED ($vpnsettings{'VPN_IP'})</option>"; - print "<option value='GREEN' $selected{'INTERFACE'}{'GREEN'}>GREEN ($netsettings{'GREEN_ADDRESS'})</option>"; - print "<option value='BLUE' $selected{'INTERFACE'}{'BLUE'}>BLUE ($netsettings{'BLUE_ADDRESS'})</option>" if ($netsettings{'BLUE_DEV'} ne ''); - print "<option value='ORANGE' $selected{'INTERFACE'}{'ORANGE'}>ORANGE ($netsettings{'ORANGE_ADDRESS'})</option>" if ($netsettings{'ORANGE_DEV'} ne ''); - print "</select></td>"; print <<END + <tr> <td class='boldbase'>$Lang::tr{'remote host/ip'}: $blob</td> - <td><input type='text' name='REMOTE' value='$cgiparams{'REMOTE'}' size='30' /></td> - </tr><tr> - <td class='boldbase' nowrap='nowrap'>$Lang::tr{'local subnet'}</td> - <td><input type='text' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size='30' /></td> + <td> + <input type='text' name='REMOTE' value='$cgiparams{'REMOTE'}' size='30' /> + </td> <td class='boldbase' nowrap='nowrap'>$Lang::tr{'remote subnet'}</td> - <td><input $disabled type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size='30' /></td> - </tr><tr> + <td> + <input $disabled type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size='30' /> + </td> + </tr> + <tr> + <td class='boldbase' nowrap='nowrap'>$Lang::tr{'local subnet'}</td> + <td colspan='3'> + <input type='text' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size='30' /> + </td> + </tr> + <tr> <td class='boldbase'>$Lang::tr{'vpn local id'}:<br />($Lang::tr{'eg'} <tt>@xy.example.com</tt>)</td> <td><input type='text' name='LOCAL_ID' value='$cgiparams{'LOCAL_ID'}' /></td> <td class='boldbase'>$Lang::tr{'vpn remote id'}:</td> @@ -2007,22 +1952,18 @@ END </tr><td><br /></td><tr> <td>$Lang::tr{'vpn keyexchange'}:</td> <td><select name='IKE_VERSION'> - <option value='ikev1' $selected{'IKE_VERSION'}{'ikev1'}>IKEv1</option> <option value='ikev2' $selected{'IKE_VERSION'}{'ikev2'}>IKEv2</option> - </select></a> + <option value='ikev1' $selected{'IKE_VERSION'}{'ikev1'}>IKEv1</option> + </select> </td> <td>$Lang::tr{'dpd action'}:</td> <td><select name='DPD_ACTION'> <option value='clear' $selected{'DPD_ACTION'}{'clear'}>clear</option> <option value='hold' $selected{'DPD_ACTION'}{'hold'}>hold</option> <option value='restart' $selected{'DPD_ACTION'}{'restart'}>restart</option> - </select> <a href='http://www.openswan.com/docs/local/README.DPD'>?</a> + </select> </td> </tr><tr> -<!--http://www.openswan.com/docs/local/README.DPD - http://bugs.xelerance.com/view.php?id=156 - restart = clear + reinitiate connection ---> <td class='boldbase'>$Lang::tr{'remark title'} <img src='/blob.gif' alt='*' /></td> <td colspan='3'><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /></td> </tr> @@ -2046,8 +1987,6 @@ END ; &Header::closebox(); } elsif (! $cgiparams{'KEY'}) { - my $pskdisabled = ($vpnsettings{'VPN_IP'} eq '%defaultroute') ? "disabled='disabled'" : '' ; - $cgiparams{'PSK'} = $Lang::tr{'vpn incompatible use of defaultroute'} if ($pskdisabled); my $cakeydisabled = ( ! -f "${General::swroot}/private/cakey.pem" ) ? "disabled='disabled'" : ''; $cgiparams{'CERT_NAME'} = $Lang::tr{'vpn no full pki'} if ($cakeydisabled); my $cacrtdisabled = ( ! -f "${General::swroot}/ca/cacert.pem" ) ? "disabled='disabled'" : ''; @@ -2055,9 +1994,9 @@ END &Header::openbox('100%', 'left', $Lang::tr{'authentication'}); print <<END <table width='100%' cellpadding='0' cellspacing='5' border='0'> - <tr><td width='5%'><input type='radio' name='AUTH' value='psk' $checked{'AUTH'}{'psk'} $pskdisabled/></td> + <tr><td width='5%'><input type='radio' name='AUTH' value='psk' $checked{'AUTH'}{'psk'} /></td> <td class='base' width='55%'>$Lang::tr{'use a pre-shared key'}</td> - <td class='base' width='40%'><input type='password' name='PSK' size='30' value='$cgiparams{'PSK'}' $pskdisabled/></td></tr> + <td class='base' width='40%'><input type='password' name='PSK' size='30' value='$cgiparams{'PSK'}' /></td></tr> <tr><td colspan='3' bgcolor='#000000'></td></tr> <tr><td><input type='radio' name='AUTH' value='certreq' $checked{'AUTH'}{'certreq'} $cakeydisabled /></td> <td class='base'><hr />$Lang::tr{'upload a certificate request'}</td> @@ -2153,7 +2092,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(aes256|aes128|3des)$/) { + if ($val !~ /^(aes256|aes192|aes128|3des)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2164,7 +2103,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(sha2_512|sha2_256|sha|md5)$/) { + if ($val !~ /^(sha2_512|sha2_384|sha2_256|sha|md5|aesxcbc)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2194,7 +2133,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(aes256|aes128|3des)$/) { + if ($val !~ /^(aes256|aes192|aes128|3des)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2205,13 +2144,13 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(sha2_512|sha2_256|sha1|md5)$/) { + if ($val !~ /^(sha2_512|sha2_384|sha2_256|sha1|md5|aesxcbc)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } } if ($cgiparams{'ESP_GROUPTYPE'} ne '' && - $cgiparams{'ESP_GROUPTYPE'} !~ /^modp(1024|1536|2048|3072|4096)$/) { + $cgiparams{'ESP_GROUPTYPE'} !~ /^modp(1024|1536|2048|3072|4096|6144|8192)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2276,14 +2215,17 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
ADVANCED_ERROR: $checked{'IKE_ENCRYPTION'}{'aes256'} = ''; + $checked{'IKE_ENCRYPTION'}{'aes192'} = ''; $checked{'IKE_ENCRYPTION'}{'aes128'} = ''; $checked{'IKE_ENCRYPTION'}{'3des'} = ''; my @temp = split('|', $cgiparams{'IKE_ENCRYPTION'}); foreach my $key (@temp) {$checked{'IKE_ENCRYPTION'}{$key} = "selected='selected'"; } $checked{'IKE_INTEGRITY'}{'sha2_512'} = ''; + $checked{'IKE_INTEGRITY'}{'sha2_384'} = ''; $checked{'IKE_INTEGRITY'}{'sha2_256'} = ''; $checked{'IKE_INTEGRITY'}{'sha'} = ''; $checked{'IKE_INTEGRITY'}{'md5'} = ''; + $checked{'IKE_INTEGRITY'}{'aesxcbc'} = ''; @temp = split('|', $cgiparams{'IKE_INTEGRITY'}); foreach my $key (@temp) {$checked{'IKE_INTEGRITY'}{$key} = "selected='selected'"; } $checked{'IKE_GROUPTYPE'}{'768'} = ''; @@ -2300,16 +2242,18 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || # 768 is not supported by strongswan $checked{'IKE_GROUPTYPE'}{'768'} = '';
- $checked{'ESP_ENCRYPTION'}{'aes256'} = ''; + $checked{'ESP_ENCRYPTION'}{'aes192'} = ''; $checked{'ESP_ENCRYPTION'}{'aes128'} = ''; $checked{'ESP_ENCRYPTION'}{'3des'} = ''; @temp = split('|', $cgiparams{'ESP_ENCRYPTION'}); foreach my $key (@temp) {$checked{'ESP_ENCRYPTION'}{$key} = "selected='selected'"; } $checked{'ESP_INTEGRITY'}{'sha2_512'} = ''; + $checked{'ESP_INTEGRITY'}{'sha2_384'} = ''; $checked{'ESP_INTEGRITY'}{'sha2_256'} = ''; $checked{'ESP_INTEGRITY'}{'sha1'} = ''; $checked{'ESP_INTEGRITY'}{'md5'} = ''; + $checked{'ESP_INTEGRITY'}{'aesxcbc'} = ''; @temp = split('|', $cgiparams{'ESP_INTEGRITY'}); foreach my $key (@temp) {$checked{'ESP_INTEGRITY'}{$key} = "selected='selected'"; } $checked{'ESP_GROUPTYPE'}{$cgiparams{'ESP_GROUPTYPE'}} = "selected='selected'"; @@ -2347,14 +2291,19 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || <tr><td class='boldbase' align='right' valign='top'>$Lang::tr{'ike encryption'}</td><td class='boldbase' valign='top'> <select name='IKE_ENCRYPTION' multiple='multiple' size='4'> <option value='aes256' $checked{'IKE_ENCRYPTION'}{'aes256'}>AES (256 bit)</option> + <option value='aes192' $checked{'IKE_ENCRYPTION'}{'aes192'}>AES (192 bit)</option> <option value='aes128' $checked{'IKE_ENCRYPTION'}{'aes128'}>AES (128 bit)</option> <option value='3des' $checked{'IKE_ENCRYPTION'}{'3des'}>3DES</option> </select></td>
<td class='boldbase' align='right' valign='top'>$Lang::tr{'ike integrity'}</td><td class='boldbase' valign='top'> <select name='IKE_INTEGRITY' multiple='multiple' size='4'> - <option value='sha' $checked{'IKE_INTEGRITY'}{'sha'}>SHA</option> + <option value='sha2_512' $checked{'IKE_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option> + <option value='sha2_384' $checked{'IKE_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option> + <option value='sha2_256' $checked{'IKE_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option> + <option value='sha' $checked{'IKE_INTEGRITY'}{'sha'}>SHA1</option> <option value='md5' $checked{'IKE_INTEGRITY'}{'md5'}>MD5</option> + <option value='aesxcbc' $checked{'IKE_INTEGRITY'}{'aesxcbc'}>AES XCBC</option> </select></td> <td class='boldbase' align='right' valign='top'>$Lang::tr{'ike grouptype'}</td><td class='boldbase' valign='top'> @@ -2377,13 +2326,19 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || <td class='boldbase' align='right' valign='top'>$Lang::tr{'esp encryption'}</td><td class='boldbase' valign='top'> <select name='ESP_ENCRYPTION' multiple='multiple' size='4'> <option value='aes256' $checked{'ESP_ENCRYPTION'}{'aes256'}>AES (256 bit)</option> + <option value='aes192' $checked{'ESP_ENCRYPTION'}{'aes192'}>AES (192 bit)</option> <option value='aes128' $checked{'ESP_ENCRYPTION'}{'aes128'}>AES (128 bit)</option> <option value='3des' $checked{'ESP_ENCRYPTION'}{'3des'}>3DES</option>
<td class='boldbase' align='right' valign='top'>$Lang::tr{'esp integrity'}</td><td class='boldbase' valign='top'> <select name='ESP_INTEGRITY' multiple='multiple' size='4'> + <option value='sha2_512' $checked{'ESP_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option> + <option value='sha2_384' $checked{'ESP_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option> + <option value='sha2_256' $checked{'ESP_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option> <option value='sha1' $checked{'ESP_INTEGRITY'}{'sha1'}>SHA1</option> - <option value='md5' $checked{'ESP_INTEGRITY'}{'md5'}>MD5</option></select></td> + <option value='md5' $checked{'ESP_INTEGRITY'}{'md5'}>MD5</option> + <option value='aesxcbc' $checked{'ESP_INTEGRITY'}{'aesxcbc'}>AES XCBC</option> + </select></td>
<td class='boldbase' align='right' valign='top'>$Lang::tr{'esp grouptype'}</td><td class='boldbase' valign='top'> <select name='ESP_GROUPTYPE'> @@ -2455,11 +2410,7 @@ EOF $cgiparams{'VPN_IP'} ='%defaultroute' if ($cgiparams{'VPN_IP'} eq '');
$cgiparams{'VPN_DELAYED_START'} = 0 if (! defined ($cgiparams{'VPN_DELAYED_START'})); - $checked{'VPN_WATCH'} = $cgiparams{'VPN_WATCH'} eq 'on' ? "checked='checked'" : '' ; - map ($checked{$_} = $cgiparams{$_} eq 'on' ? "checked='checked'" : '', - ('ENABLED','DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL', - 'DBG_DNS')); - + $checked{'ENABLED'} = $cgiparams{'ENABLED'} eq 'on' ? "checked='checked'" : '';
&Header::showhttpheaders(); &Header::openpage($Lang::tr{'vpn configuration main'}, 1, ''); @@ -2483,13 +2434,6 @@ EOF </tr> END ; - print <<END - <tr> - <td class='base' nowrap='nowrap'>$Lang::tr{'override mtu'}: <img src='/blob.gif' alt='*' /></td> - <td ><input type='text' name='VPN_OVERRIDE_MTU' value='$cgiparams{'VPN_OVERRIDE_MTU'}' /></td> - </tr> -END - ; print <<END <tr> <td class='base' nowrap='nowrap'>$Lang::tr{'vpn delayed start'}: <img src='/blob.gif' alt='*' /><img src='/blob.gif' alt='*' /></td> @@ -2500,13 +2444,6 @@ print <<END <td ><input type='text' name='RW_NET' value='$cgiparams{'RW_NET'}' /></td> </tr> </table> -<p>$Lang::tr{'vpn watch'}:<input type='checkbox' name='VPN_WATCH' $checked{'VPN_WATCH'} /></p> -<p>PLUTO DEBUG = -crypt:<input type='checkbox' name='DBG_CRYPT' $checked{'DBG_CRYPT'} />, -parsing:<input type='checkbox' name='DBG_PARSING' $checked{'DBG_PARSING'} />, -emitting:<input type='checkbox' name='DBG_EMITTING' $checked{'DBG_EMITTING'} />, -control:<input type='checkbox' name='DBG_CONTROL' $checked{'DBG_CONTROL'} />, -dns:<input type='checkbox' name='DBG_DNS' $checked{'DBG_DNS'} /> <hr /> <table width='100%'> <tr> diff --git a/html/cgi-bin/wlanap.cgi b/html/cgi-bin/wlanap.cgi index 0bb42ae..83d65db 100644 --- a/html/cgi-bin/wlanap.cgi +++ b/html/cgi-bin/wlanap.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2005-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2005-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -49,6 +49,7 @@ my %mainsettings = (); my %netsettings=(); my %wlanapsettings=(); my $channel = ''; +my $country = ''; my $txpower = '';
&General::readhash("${General::swroot}/main/settings", %mainsettings); @@ -64,6 +65,7 @@ $wlanapsettings{'HIDESSID'} = 'off'; $wlanapsettings{'ENC'} = 'wpa2'; # none / wpa1 /wpa2 $wlanapsettings{'TXPOWER'} = 'auto'; $wlanapsettings{'CHANNEL'} = '05'; +$wlanapsettings{'COUNTRY'} = '00'; $wlanapsettings{'HW_MODE'} = 'g'; $wlanapsettings{'PWD'} = 'IPFire-2.x'; $wlanapsettings{'SYSLOGLEVEL'} = '0'; @@ -123,7 +125,7 @@ if ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'wlanap del interface'}" ){
if ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'save'}" ){ # verify WPA Passphrase, must be 8 .. 63 characters - only wiht enabled enc - if (($wlanapsettings{'ENC'} eq "wpa1") || ($wlanapsettings{'ENC'} eq "wpa2")){ + if (($wlanapsettings{'ENC'} eq "wpa1") || ($wlanapsettings{'ENC'} eq "wpa2") || ($wlanapsettings{'ENC'} eq "wpa1+2")){ if ( (length($wlanapsettings{'PWD'}) < 8) || (length($wlanapsettings{'PWD'}) > 63)){ $errormessage .= "$Lang::tr{'wlanap invalid wpa'}<br />"; } @@ -232,17 +234,28 @@ END } }
+# Change old "n" to "gn" +if ( $wlanapsettings{'HW_MODE'} eq 'n' ) { + $wlanapsettings{'HW_MODE'}='gn'; +} + $checked{'HIDESSID'}{'off'} = ''; $checked{'HIDESSID'}{'on'} = ''; $checked{'HIDESSID'}{$wlanapsettings{'HIDESSID'}} = "checked='checked'";
$selected{'ENC'}{$wlanapsettings{'ENC'}} = "selected='selected'"; $selected{'CHANNEL'}{$wlanapsettings{'CHANNEL'}} = "selected='selected'"; +$selected{'COUNTRY'}{$wlanapsettings{'COUNTRY'}} = "selected='selected'"; $selected{'TXPOWER'}{$wlanapsettings{'TXPOWER'}} = "selected='selected'"; $selected{'HW_MODE'}{$wlanapsettings{'HW_MODE'}} = "selected='selected'"; $selected{'MACMODE'}{$wlanapsettings{'MACMODE'}} = "selected='selected'";
-my @channellist_cmd = `iwlist $wlanapsettings{'INTERFACE'} channel 2>/dev/null`; +my $monwlaninterface = $wlanapsettings{'INTERFACE'}; +if ( $wlanapsettings{'DRIVER'} eq 'NL80211' ){ + $monwlaninterface = 'mon.'.$wlanapsettings{'INTERFACE'}; +} + +my @channellist_cmd = `iwlist $monwlaninterface channel 2>/dev/null`; # get available channels
my @temp; @@ -253,8 +266,23 @@ if ( $channel =~ /\d+/ ){push(@temp,$channel);} } my @channellist = @temp;
-my @txpower_cmd = `iwlist $wlanapsettings{'INTERFACE'} txpower 2>/dev/null`; -# get available channels +my @countrylist_cmd = `regdbdump /usr/lib/crda/regulatory.bin 2>/dev/null`; +# get available country codes + +my @temp; +foreach (@countrylist_cmd){ +$_ =~ /country (.*):/; +$country = $1;chomp $country; +if ( $country =~ /[0,A-Z][0,A-Z]/ ) {push(@temp,$country);} +} +my @countrylist = @temp; + +my @txpower_cmd = `iwlist $monwlaninterface txpower 2>/dev/null`; +if ( $wlanapsettings{'DRIVER'} eq 'NL80211' ){ + # There is a bug with NL80211 only all devices can displayed + @txpower_cmd = `iwlist txpower 2>/dev/null | sed -e "s|unknown transmit-power information.||g"`; +} +# get available power
my @temp; foreach (@txpower_cmd){ @@ -350,7 +378,8 @@ print <<END <option value='a' $selected{'HW_MODE'}{'a'}>802.11a</option> <option value='b' $selected{'HW_MODE'}{'b'}>802.11b</option> <option value='g' $selected{'HW_MODE'}{'g'}>802.11g</option> - <option value='n' $selected{'HW_MODE'}{'n'}>802.11n</option> + <option value='an' $selected{'HW_MODE'}{'an'}>802.11an</option> + <option value='gn' $selected{'HW_MODE'}{'gn'}>802.11gn</option> </select> </td></tr>
@@ -359,6 +388,7 @@ print <<END <option value='none' $selected{'ENC'}{'none'}>$Lang::tr{'wlanap none'}</option> <option value='wpa1' $selected{'ENC'}{'wpa1'}>WPA1</option> <option value='wpa2' $selected{'ENC'}{'wpa2'}>WPA2</option> + <option value='wpa1+2' $selected{'ENC'}{'wpa1+2'}>WPA1+2</option> </select> </td></tr> <tr><td width='25%' class='base'>$Lang::tr{'wlanap channel'}: </td><td class='base' colspan='3'> @@ -371,6 +401,16 @@ foreach $channel (@channellist){
print <<END </select></td></tr> +<tr><td width='25%' class='base'>$Lang::tr{'wlanap country'}: </td><td class='base' colspan='3'> + <select name='COUNTRY'> +END +; +foreach $country (@countrylist){ + print "<option $selected{'COUNTRY'}{$country}>$country</option>"; +} + +print <<END +</select></td></tr> <tr><td width='25%' class='base'>Tx Power: </td><td class='base' colspan='3'> END ; @@ -478,7 +518,16 @@ driver=$wlanapsettings{'DRIVER_HOSTAPD'} channel=$wlanapsettings{'CHANNEL'} END ; - if ( $wlanapsettings{'HW_MODE'} eq 'n' ){ + if ( $wlanapsettings{'HW_MODE'} eq 'an' ){ + print CONFIGFILE <<END +hw_mode=a +ieee80211n=1 +wmm_enabled=1 +ht_capab=$wlanapsettings{'HTCAPS'} +END +; + + }elsif ( $wlanapsettings{'HW_MODE'} eq 'gn' ){ print CONFIGFILE <<END hw_mode=g ieee80211n=1 @@ -529,7 +578,7 @@ END wpa=1 wpa_passphrase=$wlanapsettings{'PWD'} wpa_key_mgmt=WPA-PSK -wpa_pairwise=CCMP TKIP +wpa_pairwise=TKIP END ; }elsif ( $wlanapsettings{'ENC'} eq 'wpa2'){ @@ -539,7 +588,18 @@ END wpa=2 wpa_passphrase=$wlanapsettings{'PWD'} wpa_key_mgmt=WPA-PSK -wpa_pairwise=CCMP TKIP +rsn_pairwise=CCMP +END +; + } elsif ( $wlanapsettings{'ENC'} eq 'wpa1+2'){ + print CONFIGFILE <<END +######################### wpa hostapd configuration ############################ +# +wpa=3 +wpa_passphrase=$wlanapsettings{'PWD'} +wpa_key_mgmt=WPA-PSK +wpa_pairwise=TKIP +rsn_pairwise=CCMP END ; } diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index 05e1d85..93529d8 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -3,14 +3,14 @@
'Act as' => 'Konfiguriert als', 'Add Level7 rule' => 'Level7-Regel hinzufÃŒgen', -'Add Port Rule' => 'Port Regel hinzufÃŒgen', +'Add Port Rule' => 'Port-Regel hinzufÃŒgen', 'Add Rule' => 'Regel hinzufÃŒgen', 'Add a route' => 'Eine Route hinzufÃŒgen', -'Async logging enabled' => 'Aktiviere asynchrones schreiben des Syslogs', -'Choose Rule' => 'WÀhlen sie <u>eine</u> der untenstehenden Regeln aus.', +'Async logging enabled' => 'Aktiviere asynchrones Schreiben des Syslogs', +'Choose Rule' => 'WÀhlen Sie <u>eine</u> der untenstehenden Regeln aus.', 'Class' => 'Klasse', 'Class was deleted' => 'wurde mit eventuell vorhandenen Unterklassen gelöscht', -'Client status and controlc' => 'Client Status und Kontrolle', +'Client status and controlc' => 'Client-Status und -Kontrolle', 'ConnSched action' => 'Aktion:', 'ConnSched add action' => 'Aktion hinzufÃŒgen', 'ConnSched change profile title' => 'Wechsle zu Profil:', @@ -26,7 +26,7 @@ 'ConnSched up' => 'Hoch', 'ConnSched weekdays' => 'Wochentage:', 'Edit an existing route' => 'Eine existierende Route editieren', -'Enter TOS' => 'Aktivieren oder deaktivieren sie die TOS-Bits <br /> und klicken Sie danach auf <i>Speichern</i>.', +'Enter TOS' => 'Aktivieren oder deaktivieren Sie die TOS-Bits <br /> und klicken Sie danach auf <i>Speichern</i>.', 'Existing Files' => 'Dateien in der Datenbank', 'HDD temperature' => 'HDD-Temperatur', 'Level7 Protocol' => 'Level7-Protokoll', @@ -80,7 +80,7 @@ 'add network' => 'Netzwerk hinzufÃŒgen', 'add new alias' => 'Neue Alias-Adresse hinzufÃŒgen:', 'add new lease' => 'Neue Zuordnung definieren', -'add new ovpn' => 'OpenVPN Einstellungen', +'add new ovpn' => 'OpenVPN-Einstellungen', 'add printer' => 'Drucker hinzufÃŒgen', 'add service' => 'Dienst hinzufÃŒgen', 'add share' => 'Freigabe anlegen', @@ -88,13 +88,13 @@ 'add user' => 'Benutzer anlegen', 'add xtaccess' => 'Externen Zugang hinzugefÃŒgt', 'add-route' => 'Additional push route', -'added from dhcp lease list' => 'hinzugefÃŒgt von der DHCP Zuordnungsliste', +'added from dhcp lease list' => 'hinzugefÃŒgt von der DHCP-Zuordnungsliste', 'admin user password has been changed' => 'Passwort fÃŒr Benutzer admin wurde geÀndert.', 'admin users' => 'Liste der Benutzer mit Super User Rechten', 'administrator user password' => 'Passwort fÃŒr Benutzer "admin":', 'adsl settings' => 'ADSL-Einstellungen', 'advanced' => 'Erweitert', -'advanced server' => 'Erweiterte Server Optionen', +'advanced server' => 'Erweiterte Server-Optionen', 'advproxy AUTH always required' => 'Authentifizierung fÃŒr uneingeschrÀnkte Quelladressen erforderlich', 'advproxy AUTH auth cache TTL' => 'Authentifizierungscache TTL (in Minuten)', 'advproxy AUTH global settings' => 'Globale Authentifizierungseinstellungen', @@ -112,7 +112,7 @@ 'advproxy AUTH user IP cache TTL' => 'Benutzer/IP-Cache TTL (in Minuten)', 'advproxy IDENT authorized users' => 'Autorisierte Benutzer (einer pro Zeile)', 'advproxy IDENT aware hosts' => 'Ident-fÀhige Hosts (einer pro Zeile)', -'advproxy IDENT identd settings' => 'Allgemeine identd Einstellungen', +'advproxy IDENT identd settings' => 'Allgemeine identd-Einstellungen', 'advproxy IDENT required' => 'Identd-Authentifizierung erforderlich', 'advproxy IDENT timeout' => 'Timeout fÃŒr ident (in Sekunden)', 'advproxy IDENT unauthorized users' => 'Unautorisierte Benutzer (einer pro Zeile)', @@ -123,7 +123,7 @@ 'advproxy LDAP NDS' => 'Novell eDirectory', 'advproxy LDAP V2' => 'LDAP Version 2', 'advproxy LDAP V3' => 'LDAP Version 3', -'advproxy LDAP auth' => 'LDAP Authentifizierung', +'advproxy LDAP auth' => 'LDAP-Authentifizierung', 'advproxy LDAP basedn' => 'Base DN', 'advproxy LDAP binddn password' => 'Bind DN Passwort', 'advproxy LDAP binddn settings' => 'Bind DN Einstellungen', @@ -176,7 +176,7 @@ 'advproxy RADIUS user based access restrictions' => 'Benutzerbasierte ZugriffsbeschrÀnkungen', 'advproxy UA enable filter' => 'Aktiviere Web-Browser-PrÃŒfung', 'advproxy access' => 'Zugriff', -'advproxy admin mail' => 'Cache Administrator E-Mail', +'advproxy admin mail' => 'Cache-Administrator E-Mail', 'advproxy advanced proxy' => 'Advanced Proxy', 'advproxy advanced web proxy' => 'Advanced Web Proxy', 'advproxy advanced web proxy configuration' => 'Proxy-Konfiguration', @@ -212,30 +212,31 @@ 'advproxy errmsg auth children' => 'UngÃŒltige Anzahl Authentifizierungsprozesse', 'advproxy errmsg auth ipcache may not be null' => 'Authentifizierungscache TTL darf nicht 0 sein wenn IP-AdressbeschrÀnkungen verwendet werden', 'advproxy errmsg auth ipcache ttl' => 'UngÃŒltiger Wert fÃŒr Benutzer/IP-Cache TTL', +'advproxy errmsg cache' => 'Der RAM-Cache-GröÃe ist gröÃer als die Festplatten-Cache-GröÃe:', 'advproxy errmsg change fail' => 'Passwort konnte nicht geÀndert werden', 'advproxy errmsg change success' => 'Passwort fÃŒr Webzugriff erfolgreich geÀndert', 'advproxy errmsg hdd cache size' => 'UngÃŒltiger Wert fÃŒr die GröÃe des Festplatten-Cachespeichers (min. 10 MB erforderlich)', -'advproxy errmsg ident timeout' => 'UngÃŒltiger ident Timeout', +'advproxy errmsg ident timeout' => 'UngÃŒltiger ident-Timeout', 'advproxy errmsg invalid bdc' => 'UngÃŒltiger Hostname fÃŒr den Backup Domain Controller', 'advproxy errmsg invalid destination port' => 'UngÃŒltiger Ziel-Port', 'advproxy errmsg invalid ip or mask' => 'UngÃŒltige IP-Adresse oder Subnetzmaske', 'advproxy errmsg invalid mac' => 'UngÃŒltige MAC-Adresse', 'advproxy errmsg invalid pdc' => 'UngÃŒltiger Hostname fÃŒr den Primary Domain Controller', 'advproxy errmsg invalid proxy port' => 'UngÃŒltiger Proxy-Port', -'advproxy errmsg invalid upstream proxy' => 'UngÃŒltige IP fÃŒr Upstream-Proxy', +'advproxy errmsg invalid upstream proxy' => 'UngÃŒltige IP/Hostname fÃŒr Upstream-Proxy', 'advproxy errmsg invalid upstream proxy username or password setting' => 'UngÃŒltiger Benutzername oder ungÃŒltiges Kennwort fÃŒr Upstream Proxy', 'advproxy errmsg invalid user' => 'Benutzername existiert nicht', 'advproxy errmsg ldap base dn' => 'LDAP base DN erforderlich', 'advproxy errmsg ldap bind dn' => 'LDAP bind DN Benutzername und Passwort erforderlich', -'advproxy errmsg ldap port' => 'UngÃŒltige LDAP Portnummer', -'advproxy errmsg ldap server' => 'UngÃŒltige IP-Adresse fÃŒr den LDAP-Server', +'advproxy errmsg ldap port' => 'UngÃŒltige LDAP-Portnummer', +'advproxy errmsg ldap server' => 'UngÃŒltige IP-Adresse/Hostname fÃŒr den LDAP-Server', 'advproxy errmsg max userip' => 'UngÃŒltige Anzahl von IP-Adressen pro Benutzer', 'advproxy errmsg mem cache size' => 'UngÃŒltiger Wert fÃŒr die GröÃe des RAM-Cachespeichers', 'advproxy errmsg no browser' => 'Mindestens ein Browser oder Client muss fÃŒr den Web-Zugriff zugelassen sein', 'advproxy errmsg no password' => 'Passwort kann nicht leer sein', 'advproxy errmsg no username' => 'Benutzername darf nicht leer sein', 'advproxy errmsg non-transparent proxy required' => 'Web Proxy muss fÃŒr die Authentifizierung im Nicht-transparenten Modus laufen', -'advproxy errmsg ntlm domain' => 'Windows DomÀnenname erforderlich', +'advproxy errmsg ntlm domain' => 'Windows-DomÀnenname erforderlich', 'advproxy errmsg ntlm pdc' => 'Hostname der Primary Domain Controllers erforderlich', 'advproxy errmsg password incorrect' => 'Falsches Passwort', 'advproxy errmsg password length' => 'UngÃŒltiger Wert fÃŒr PasswortlÀnge', @@ -278,7 +279,7 @@ 'advproxy offline mode' => 'Aktiviere Offline-Modus', 'advproxy on' => 'Proxy an', 'advproxy privacy' => 'Datenschutz', -'advproxy proxy port' => 'Proxy Port', +'advproxy proxy port' => 'Proxy-Port', 'advproxy ram cache size' => 'CachegröÃe im Arbeitsspeicher (MB)', 'advproxy redirector children' => 'Anzahl der Filterprozesse', 'advproxy reset' => 'ZurÃŒcksetzen', @@ -323,8 +324,8 @@ 'again' => 'Wiederholung:', 'aktiv' => 'aktiv', 'album' => 'Album', -'alcatelusb help' => 'Um das Speedtouch USB Modem zu verwenden, mÃŒssen Sie die Firmware in Ihre IPFire Box hochladen. Bitte laden sie das <b>Embedded Firmware</b> Paket von speedtouch.com herunter, entpacken es und laden dann die passende Datei fÃŒr Ihr Modem hoch: KQD6_3.xxx fÃŒr Revisionsnummern <4 oder ZZZL_3.xxx fÃŒr Rev.=4 mittels des unten angegebenen Formulars.', -'alcatelusb upload' => 'Speedtouch USB Firmware hochladen', +'alcatelusb help' => 'Um das Speedtouch-USB-Modem zu verwenden, mÃŒssen Sie die Firmware in Ihre IPFire Box hochladen. Bitte laden Sie das <b>Embedded Firmware</b> Paket von speedtouch.com herunter, entpacken es und laden dann die passende Datei fÃŒr Ihr Modem hoch: KQD6_3.xxx fÃŒr Revisionsnummern <4 oder ZZZL_3.xxx fÃŒr Rev.=4 mittels des unten angegebenen Formulars.', +'alcatelusb upload' => 'Speedtouch-USB-Firmware hochladen', 'alias ip' => 'Alias-IP-Adresse', 'aliases' => 'Aliase', 'aliases not active' => 'Aliase-Adresse wird erst aktiviert, wenn Ihr ROTES Interface STATISCH ist', @@ -357,7 +358,7 @@ 'automatic' => 'Automatisch', 'available updates' => 'VerfÃŒgbare Updates:', 'average' => 'Durchschnitt', -'avoid dod' => 'Benutzen Sie diese Option nicht mit Dial on Demand! Wird hautpsÀchlich verwendet, wenn ihr IPFire sich hinter einem Router befindet. Ihre ROTE IP muà sich innerhalb eines der drei reservierten Netzwerkbereiche befinden z.B. 10/8, 172.16/12, 192.168/16.', +'avoid dod' => 'Benutzen Sie diese Option nicht mit Dial on Demand! Wird hauptsÀchlich verwendet, wenn Ihr IPFire sich hinter einem Router befindet. Ihre ROTE IP muà sich innerhalb eines der drei reservierten Netzwerkbereiche befinden z.B. 10/8, 172.16/12, 192.168/16.', 'back' => 'ZURÃCK', 'backup' => 'Datensicherung', 'backup config floppy' => 'Backup-Konfiguration - Diskette', @@ -367,14 +368,14 @@ 'backup generate key' => 'Erzeuge SchlÃŒssel', 'backup import dat file' => 'Importiere eine Backup- (.dat) Datei', 'backup key' => 'Chriffrierungs-SchlÃŒssel sichern', -'backup missing key' => 'Benötige den Backup-SchlÃŒssel um einen Sicherungssatz wiederherzustellen', +'backup missing key' => 'Benötige den Backup-SchlÃŒssel, um einen Sicherungssatz wiederherzustellen', 'backup password' => 'Datensicherungs-Passwort', 'backup sets' => 'DatensicherungssÀtze', 'backup to floppy' => 'Datensicherung auf Diskette', 'backupaddon' => 'Addonsicherung', 'backupprofile' => 'Falls die Wiederverbindung scheitert, auf Profil umschalten', 'backups' => 'Sicherungen', -'backupwarning' => 'Bitte stellen Sie zuerst Ihre Hauptsicherung wieder her und anschlieÃend die Addons. Achten Sie darauf, dass die Sicherungen ihre orginal Dateinamen behalten.', +'backupwarning' => 'Bitte stellen Sie zuerst Ihre Hauptsicherung wieder her und anschlieÃend die Addons. Achten Sie darauf, dass die Sicherungen ihre originalen Dateinamen behalten.', 'bad characters in' => 'UngÃŒltige Zeichen in ', 'bad characters in script field' => 'Nicht erlaubte Zeichen im Skriptnamen', 'bad characters in the telephone number field' => 'Nicht erlaubte(s) Zeichen im Feld Telefonnummer.', @@ -383,7 +384,7 @@ 'bad return code' => 'Das Hilfsprogramm hat einen Fehlercode gemeldet', 'bad source range' => 'Der erste Wert des Quellportbereich ist gröÃer oder gleich dem zweiten Wert.', 'bandwidth usage' => 'Bandbreitenauslastung (extern)', -'bandwitherror' => 'Sie können die Bandbreiteneinstellungen nicht bearbeiten, wenn QoS eingeschaltet ist. Schalten sie es zuerst dazu aus.<p>', +'bandwitherror' => 'Sie können die Bandbreiteneinstellungen nicht bearbeiten, wenn QoS eingeschaltet ist. Schalten Sie es erst aus.<p>', 'bandwithsettings' => 'Bandbreiteneinstellungen', 'basic options' => 'Basisoptionen', 'beep when ppp connects or disconnects' => 'Piepen, wenn IPFire verbindet oder trennt', @@ -392,24 +393,24 @@ 'bleeding rules' => 'Bleeding Edge Snort Rules', 'blue' => 'BLAU', 'blue access' => 'Zugriff auf Blau', -'blue access use hint' => 'Sie mÃŒssen mindestens die MAC oder die IP Adresse fÃŒr ein GerÀt angeben. Optional können sie sowohl MAC als auch IP Adresse angeben.', +'blue access use hint' => 'Sie mÃŒssen mindestens die MAC- oder die IP-Adresse fÃŒr ein GerÀt angeben. Optional können Sie sowohl MAC- als auch IP-Adresse angeben.', 'blue interface' => 'Blaues Interface', 'broadcast' => 'Broadcast', 'broken pipe' => 'Zerbrochene Pipe', 'buffered memory' => 'Gepuff. Speicher ', 'buffers' => 'Puffer', 'bytes per second' => 'Bytes pro Sekunde', -'bytes received' => 'Bytes Empfangen', -'bytes sent' => 'Bytes Gesendet', -'ca certificate' => 'CA Zertifikat', -'ca name' => 'CA Name', -'cache management' => 'Cache Verwaltung', +'bytes received' => 'Bytes empfangen', +'bytes sent' => 'Bytes gesendet', +'ca certificate' => 'CA-Zertifikat', +'ca name' => 'CA-Name', +'cache management' => 'Cache-Verwaltung', 'cache size' => 'Cache-GröÃe (MB):', 'cached' => 'zwischengespeichert', -'cached memory' => 'Cache Speicher ', +'cached memory' => 'Cache-Speicher ', 'cached swap' => 'Gecachter Swap', 'calamaris available reports' => 'VerfÃŒgbare Berichte', -'calamaris byte unit' => 'Byte Einheit', +'calamaris byte unit' => 'Byte-Einheit', 'calamaris create report' => 'Bericht erstellen', 'calamaris enable content report' => 'Aktiviere Inhaltsbericht', 'calamaris enable distribution histogram' => 'Aktiviere Verteilungshistogramm', @@ -418,7 +419,7 @@ 'calamaris enable requester report' => 'Aktiviere Abfragebericht', 'calamaris enable verbose reporting' => 'Aktiviere ausfÃŒhrlichen Bericht', 'calamaris high' => 'hoch', -'calamaris histogram resolution' => 'Histogramm Auflösung', +'calamaris histogram resolution' => 'Histogramm-Auflösung', 'calamaris low' => 'gering', 'calamaris medium' => 'mittel', 'calamaris no reports available' => 'Keine Berichte verfÃŒgbar', @@ -445,7 +446,7 @@ 'cannot enable both nat traversal and compression' => 'NAT Traversal und Kompression können nicht gleichzeitig aktiviert sein.', 'cannot enable ntp without specifying primary' => 'NTP kann nicht aktiviert werden, ohne vorherige Eingabe in 'primÀr'.', 'cannot specify secondary dns without specifying primary' => 'SekundÀrer DNS kann nicht ohne primÀren angegeben werden.', -'cannot specify secondary ntp without specifying primary' => 'Kann ohne ersten NTP Server keinen zweiten spezifizieren', +'cannot specify secondary ntp without specifying primary' => 'Kann ohne ersten NTP-Server keinen zweiten spezifizieren', 'cannot specify secondary wins without specifying primary' => 'SekundÀrer WINS kann ohne einen primÀren nicht angegeben werden.', 'cant change certificates' => 'Kann Zertifikate nicht Àndern.', 'cant enable xtaccess' => 'Die zugehörige Port-Weiterleitungsregel ist deaktiviert, daher können Sie den externen Zugang fÃŒr diese Regel nicht aktivieren.', @@ -460,7 +461,7 @@ 'ccd choose net' => 'Netzwerk auswÀhlen', 'ccd client options' => 'Erweiterte Client-Optionen', 'ccd clientip' => 'Hostadresse', -'ccd dynrange' => 'Dynamischer OpenVPN IP-Addressen-Pool', +'ccd dynrange' => 'Dynamischer OpenVPN-IP-Addressen-Pool', 'ccd err blue' => 'Das ist das BLAUE Subnetz.', 'ccd err green' => 'Das ist das GRÃNE Subnetz.', 'ccd err hostinnet' => 'Das Netzwerk kann nicht gelöscht werden, da sich in ihm noch Clients befinden.', @@ -484,12 +485,12 @@ 'ccd invalid' => 'ist ungÃŒltig.', 'ccd iroute' => 'IPFire hat Zugriff auf diese Netzwerke auf Clientseite: ', 'ccd iroute2' => 'Client hat Zugriff auf diese Netzwerke auf IPFire-Seite: ', -'ccd iroutehint' => 'Achtung! Wenn Sie diese Einstellungen Àndern, muss der OpenVPN Server neu gestartet werden!', +'ccd iroutehint' => 'Achtung! Wenn Sie diese Einstellungen Àndern, muss der OpenVPN-Server neu gestartet werden!', 'ccd maxclients' => 'Mögliche Adressen', 'ccd modify' => 'Netzwerk Àndern', 'ccd name' => 'Name', 'ccd net' => 'Statische IP-Adressen-Pools', -'ccd noaddnet' => 'Neue statische Netze können erst erstellt werden, wenn der openVPN Server gestoppt wurde.', +'ccd noaddnet' => 'Neue statische Netze können erst erstellt werden, wenn der OpenVPN-Server gestoppt wurde.', 'ccd none' => 'Keine', 'ccd routes' => 'Routen:', 'ccd subnet' => 'Subnetz', @@ -503,7 +504,7 @@ 'chain' => 'VerknÃŒpfung', 'change passwords' => 'Passwörter Àndern', 'change share' => 'Freigabeeinstellungen Àndern', -'check for net traffic update' => 'PrÃŒfe auf Net-Traffic Updates', +'check for net traffic update' => 'PrÃŒfe auf Net-Traffic-Updates', 'check vpn lr' => 'ÃberprÃŒfen', 'choose config' => 'Konfiguration auswÀhlen', 'cipher' => 'VerschlÃŒsselung', @@ -514,7 +515,7 @@ 'clenabled' => 'Uhrzeit dem lokalen Netzwerk zur VerfÃŒgung stellen', 'click to disable' => 'Aktiviert (klicken, um zu deaktivieren)', 'click to enable' => 'Deaktiviert (klicken, um zu aktivieren)', -'client' => 'PC Name', +'client' => 'PC-Name', 'clock has not been synchronized' => 'Die Uhr wurde nicht synchronisiert', 'clock last synchronized at' => 'Die Uhr wurde zuletzt synchronisiert um', 'comment' => 'Kommentar', @@ -548,23 +549,23 @@ 'could not connect to www ipcop org' => 'Keine Verbindung zu www.ipcop.org möglich', 'could not create directory' => 'Verzeichnis konnte nicht erzeugt werden.', 'could not download latest patch list' => 'Die neueste Update-Liste konnte nicht heruntergeladen werden (keine Verbindung).', -'could not download latest updates' => 'Konnte die neuesten Updates nicht downloaden.', +'could not download latest updates' => 'Konnte die neuesten Updates nicht herunterladen.', 'could not download the available updates list' => 'Die Update-Liste konnte nicht heruntergeladen werden.', 'could not open available updates file' => 'Die vorhandene Update-Datei konnte nicht geöffnet werden.', 'could not open installed updates file' => 'Datei mit Update-Liste konnte nicht geöffnet werden', 'could not open update information file' => 'Datei mit den Update-Information konnte nicht geöffnet werden. Die Update-Datei ist beschÀdigt.', 'could not retrieve common name from certificate' => 'Der Gemeinsame Name (CN) konnte nicht aus dem Zertifikat gelesen werden.', 'country' => 'Land', -'cpu frequency per' => 'CPU Frequenz pro', -'cpu idle usage' => 'Leerlauf CPU Nutzung', -'cpu interrupt usage' => 'Interrupt CPU Nutzung', +'cpu frequency per' => 'CPU-Frequenz pro', +'cpu idle usage' => 'Leerlauf CPU-Nutzung', +'cpu interrupt usage' => 'Interrupt CPU-Nutzung', 'cpu iowait usage' => 'CPU wartet auf IO', -'cpu irq usage' => 'IRQ CPU Nutzung', -'cpu nice usage' => 'Nice CPU Nutzung', -'cpu steal usage' => 'Steal CPU Nutzung', -'cpu system usage' => 'System CPU Nutzung', +'cpu irq usage' => 'IRQ CPU-Nutzung', +'cpu nice usage' => 'Nice CPU-Nutzung', +'cpu steal usage' => 'Steal CPU-Nutzung', +'cpu system usage' => 'System CPU-Nutzung', 'cpu usage per' => 'CPU-Nutzung pro', -'cpu user usage' => 'Benutzer CPU Nutzung', +'cpu user usage' => 'Benutzer CPU-Nutzung', 'create' => 'Erzeuge', 'create mask' => 'UNIX Rechte fÃŒr neue Dateien', 'create new backup' => 'Einen neuen Sicherungssatz anlegen', @@ -575,7 +576,7 @@ 'current aliases' => 'Aktuelle Alias-Adresse:', 'current class' => 'Aktuelle Klasse', 'current devices' => 'Schnittstellen', -'current dhcp leases on blue' => 'Aktuelle DHCP Zuordnungen auf Blau', +'current dhcp leases on blue' => 'Aktuelle DHCP-Zuordnungen auf Blau', 'current dynamic leases' => 'Aktuelle dynamische Zuordnungen', 'current fixed leases' => 'Aktuelle feste Zuordnungen', 'current hosts' => 'Aktuelle Hosts:', @@ -694,9 +695,9 @@ 'dns address done' => 'Die DNS-Server Adressen Einstellungen werden ÃŒbernommen.', 'dns address recon' => 'Es wird neu Verbunden!', 'dns check failed' => 'Fehler bei DNS-ÃberprÃŒfung', -'dns desc' => 'Wenn auf Schnittstelle red0 die IP-Adressinformationen ÃŒber DHCP vom Provider kommen, werden automatisch die DNS Server Adressen des Providers gesetzt. Hier können Sie nun diese mit den eigenen DNS Server IP Adressen ÃŒberschrieben.', +'dns desc' => 'Wenn auf Schnittstelle red0 die IP-Adressinformationen ÃŒber DHCP vom Provider kommen, werden automatisch die DNS-Server-Adressen des Providers gesetzt. Hier können Sie nun diese mit den eigenen DNS-Server-IP-Adressen ÃŒberschreiben.', 'dns error 0' => 'Die IP Adresse vom <strong>primÀren</strong> DNS Server ist nicht gÃŒltig, bitte ÃŒberprÃŒfen Sie Ihre Eingabe!<br />Die eingegebene <strong>sekundÀren</strong> DNS Server Adresse ist jedoch gÃŒltig.<br />', -'dns error 01' => 'Die eingegebene IP Adresse des <strong>primÀren</strong> wie auch des <strong>sekundÀren</strong> DNS Servers sind nicht gÃŒltig, bitte ÃŒberprÃŒfen Sie Ihre Eingaben!', +'dns error 01' => 'Die eingegebene IP Adresse des <strong>primÀren</strong> wie auch des <strong>sekundÀren</strong> DNS-Servers sind nicht gÃŒltig, bitte ÃŒberprÃŒfen Sie Ihre Eingaben!', 'dns error 1' => 'Die IP Adresse vom <strong>sekundÀren</strong> DNS Server ist nicht gÃŒltig, bitte ÃŒberprÃŒfen Sie Ihre Eingabe!<br />Die eingegebene <strong>primÀre</strong> DNS Server Adresse ist jedoch gÃŒltig.', 'dns header' => 'DNS Server Adressen zuweisen nur mit DHCP an red0', 'dns list' => 'Liste von freien öffentlichen DNS Servern', @@ -705,14 +706,14 @@ 'dns new 1' => 'Neue <strong>sekundÀre</strong> DNS Server IP:', 'dns proxy server' => 'DNS-Proxyserver', 'dns saved' => 'Erfolgreich gespeichert!', -'dns saved txt' => 'Die beiden eingegebenen DNS Server Adressen wurde erfolgreich gespeichert.<br />Um die Ãnderung wirksarm zu machen mÃŒssen Sie neustarten oder wiederverbinden!', +'dns saved txt' => 'Die beiden eingegebenen DNS-Server-Adressen wurde erfolgreich gespeichert.<br/>Um die Ãnderung wirksam zu machen, mÃŒssen Sie neustarten oder wiederverbinden!', 'dns server' => 'DNS Server', 'dns title' => 'Domain Name System', 'do not log this port list' => 'Verwerfe diese Port-Liste kurz bevor sie protokolliert werden (reduziert ProtokollgröÃe)', 'dod' => 'Dial-on-Demand-Modus', 'dod for dns' => 'Dial-on-Demand fÃŒr DNS:', -'dod not compatible with ddns' => 'Dial on Demand ist nicht kompatibel mit dynamischen DNS Diensten', -'dod waiting' => 'Dial On Demand wartet', +'dod not compatible with ddns' => 'Dial-on-Demand ist nicht kompatibel mit dynamischen DNS-Diensten', +'dod waiting' => 'Dial-On-Demand wartet', 'domain' => 'Domain', 'domain master' => 'Domain Master', 'domain name' => 'Domainname', @@ -720,26 +721,26 @@ 'domain not set' => 'Domain nicht eingegeben.', 'donation' => 'Spenden', 'donation-link' => 'https://www.paypal.com/de_DE/DE/i/btn/btn_donateCC_LG.gif', -'donation-text' => '<strong>IPFire</strong> wird von Freiwilligen in ihrer Freizeit betrieben und auch betreut. Um dieses Projekt am laufen zu halten entstehen uns natÃŒrlich auch Kosten, wenn sie uns unterstÃŒtzen wollen wÃŒrden wir uns ÃŒber eine kleine Spende sehr freuen.', +'donation-text' => '<strong>IPFire</strong> wird von Freiwilligen in ihrer Freizeit betrieben und auch betreut. Um dieses Projekt am Laufen zu halten, entstehen uns natÃŒrlich auch Kosten. Wenn Sie uns unterstÃŒtzen wollen, wÃŒrden wir uns ÃŒber eine kleine Spende sehr freuen.', 'dos charset' => 'DOS Charset', 'down and up speed' => 'Geben Sie bitte hier ihre Download- bzw. Upload-Geschwindigkeit ein <br /> und klicken Sie danach auf <i>Speichern</i>.', 'downlink speed' => 'Downlink-Geschwindigkeit (kBit/sek)', 'downlink std class' => 'Downloadstandardklasse', 'download' => 'herunterladen', -'download ca certificate' => 'CA Zertifikat herunterladen', +'download ca certificate' => 'CA-Zertifikat herunterladen', 'download certificate' => 'Zertifikate herunterladen', -'download host certificate' => 'Host Zertifikat herunterladen', +'download host certificate' => 'Host-Zertifikat herunterladen', 'download new ruleset' => 'Neuen Regelsatz herunterladen', -'download pkcs12 file' => 'PKCS12 Datei herunterladen', -'download root certificate' => 'Root Zertifikat herunterladen', +'download pkcs12 file' => 'PKCS12-Datei herunterladen', +'download root certificate' => 'Root-Zertifikat herunterladen', 'dpd action' => 'Aktion fÃŒr Dead Peer Detection', 'driver' => 'Treiber', -'drop input' => 'Verworfene Input Pakete loggen', +'drop input' => 'Verworfene Input-Pakete loggen', 'drop newnotsyn' => 'Verworfene New Not Syn Pakete loggen', -'drop output' => 'Verworfene Output Pakete loggen', -'drop portscan' => 'Verworfene Portscan Pakete loggen', -'drop proxy' => 'Alle Pakete verwerfen die nicht direkt an den Proxy gerichtet sind', -'drop samba' => 'Alle Microsoft Pakete verwerfen, Ports 135,137,138,139,445,1025', +'drop output' => 'Verworfene Output-Pakete loggen', +'drop portscan' => 'Verworfene Portscan-Pakete loggen', +'drop proxy' => 'Alle Pakete verwerfen, die nicht direkt an den Proxy gerichtet sind', +'drop samba' => 'Alle Microsoft-Pakete verwerfen, Ports 135,137,138,139,445,1025', 'drop wirelessforward' => 'Verworfene Wireless Forward Pakete loggen', 'drop wirelessinput' => 'Verworfene Wireless Input Pakete loggen', 'dst port' => 'Ziel-Port', @@ -752,7 +753,7 @@ 'dyn dns source choice' => 'Dynamic DNS Anbieter werden eine IP-Adresse fÃŒr diesen IPFire erhalten von:', 'dynamic dns' => 'Dynamischer DNS', 'dynamic dns client' => 'Dynamischer DNS-Client', -'e-mail address too long' => 'E-mail Adresse ist zu lang; sie sollte nicht lÀnger als 40 Zeichen sein.', +'e-mail address too long' => 'E-mail-Adresse ist zu lang; sie sollte nicht lÀnger als 40 Zeichen sein.', 'eciadsl help' => 'Um ein ECI PCI-Modem nutzen zu können, mÃŒssen Sie zuerst die Treiber-Software zur IPFire-Box hochladen. Laden Sie zuerst den Tarball von ECIADSL herunter und laden Sie dann die Datei <B>synch.bin</B> ÃŒber das untenstehende Formblatt zu IPFire hoch.', 'eciadsl upload' => 'Hochladen der ECI ADSL Datei synch.bin', 'edit' => 'Bearbeiten', @@ -769,8 +770,8 @@ 'edit share' => 'Freigabe bearbeiten', 'editor' => 'Editor', 'eg' => 'z.B.:', -'email server can not be empty' => 'Email Server darf nicht leer sein', -'emailreportlevel' => 'Email Reportlevel', +'email server can not be empty' => 'Email-Server darf nicht leer sein', +'emailreportlevel' => 'Email-Reportlevel', 'empty' => 'Dieses Feld kann leer bleiben', 'empty profile' => 'Unbenannt', 'enable ignore filter' => '"Ignorieren"-Filter ein', @@ -782,8 +783,8 @@ 'encapsulation' => 'Encapsulation', 'encrypted' => 'VerschlÃŒsselt', 'end address' => 'Endadresse:', -'enter ack class' => 'Legen sie hier die ACK-Klasse fest <br /> und klicken Sie danach auf <i>Speichern</i>.', -'enter data' => 'Geben sie die Daten ein <br /> und klicken Sie danach auf <i>Speichern</i>.', +'enter ack class' => 'Legen Sie hier die ACK-Klasse fest <br /> und klicken Sie danach auf <i>Speichern</i>.', +'enter data' => 'Geben Sie die Daten ein <br /> und klicken Sie danach auf <i>Speichern</i>.', 'err bk 1' => 'Fehler beim Erzeugen des Archivs', 'err bk 10 password' => 'Fehler beim Datensicherungs-Passwort', 'err bk 2 key' => 'Fehler beim Erzeugen der SchlÃŒsseldatei', @@ -818,10 +819,10 @@ 'external access rule removed' => ' Regel fÃŒr externen Zugang entfernt; Starte Zugangskontroller neu', 'external aliases configuration' => 'Externe Alias-Konfiguration', 'extrahd' => 'ExtraHD', -'extrahd because there is already a device mounted' => ' mounten, weil bereits ein GerÀte gemountet ist', +'extrahd because there is already a device mounted' => ' mounten, weil bereits ein GerÀt gemountet ist', 'extrahd cant umount' => 'Konnte', 'extrahd detected drives' => 'gefundene Laufwerke', -'extrahd install or load driver' => 'Wenn Ihre Festplatte nicht angezeigt wird, mÃŒssen Sie zuerst den Treiber laden oder ggf. auch nach installieren. Wenn diese jedoch angezeigt wird, aber keine Partitionen zu sehen sind, mÃŒssen diese erst angelegt werden.', +'extrahd install or load driver' => 'Wenn Ihre Festplatte nicht angezeigt wird, mÃŒssen Sie zuerst den Treiber laden oder ggf. auch nachinstallieren. Wenn diese jedoch angezeigt wird, aber keine Partitionen zu sehen sind, mÃŒssen diese erst angelegt werden.', 'extrahd maybe the device is in use' => 'nicht mounten. Vielleicht wird das GerÀt bereits verwendet', 'extrahd to' => 'nicht nach', 'extrahd to root' => 'nicht nach root mounten', @@ -847,13 +848,13 @@ 'fireinfo please enable' => 'Bitte schalten Sie den Fireinfo-Dienst ein.', 'fireinfo settings' => 'Fireinfo-Einstellungen', 'fireinfo system version' => 'Systemversionen', -'fireinfo why descr1' => 'Es ist sehr wichtig fÃŒr die Entwicklung von IPFire, das dieser Dienst', +'fireinfo why descr1' => 'Es ist sehr wichtig fÃŒr die Entwicklung von IPFire, dass dieser Dienst', 'fireinfo why descr2' => 'eingeschaltet ist. ', 'fireinfo why enable' => 'Warum sollte man Fireinfo einschalten?', 'fireinfo why read more' => 'Mehr ÃŒber die GrÃŒnde.', 'fireinfo your profile id' => 'Profil-ID', 'firewall' => 'Firewall', -'firewall graphs' => 'Firewall Diagramme', +'firewall graphs' => 'Firewall-Diagramme', 'firewall hits' => 'Gesamtanzahl der Firewall-Treffer fÃŒr', 'firewall hits per' => 'Firewalltreffer pro', 'firewall log' => 'Firewall-Protokoll', @@ -868,7 +869,7 @@ 'fixed ip lease modified' => 'Feste IP-Zuordnung geÀndert', 'fixed ip lease removed' => 'Feste IP-Zuordnung gelöscht', 'force update' => 'Aktualisierung erzwingen', -'force user' => 'Standartbenutzer fÃŒr das UNIX Dateisystem', +'force user' => 'Standardbenutzer fÃŒr das UNIX Dateisystem', 'forwarding rule added' => 'Weiterleitungsregel hinzugefÃŒgt. Starte Weiterleitung neu', 'forwarding rule removed' => 'Weiterleitungsregel entfernt. Starte Weiterleitung neu', 'forwarding rule updated' => 'Weiterleitungsregel aktualisiert; starte Weiterleitung neu', @@ -885,25 +886,25 @@ 'from email server' => 'Von Email Server', 'from email user' => 'Von Email Benutzer', 'from warn email bad' => 'Von Email Adresse ist nicht gÃŒltig', -'fw blue' => 'Firewall Optionen fÃŒr das Blaue Interface', -'fw logging' => 'Firewall Logging', +'fw blue' => 'Firewall-Optionen fÃŒr das Blaue Interface', +'fw logging' => 'Firewall-Logging', 'gateway' => 'Gateway', 'gateway ip' => 'Gateway-IP', 'gen static key' => 'Statischen SchlÃŒssel erzeugen', -'generate' => 'Root/Host Zertifikate generieren', +'generate' => 'Root/Host-Zertifikate generieren', 'generate a certificate' => 'Erzeuge ein Zertifikat:', 'generate iso' => 'ISO erstellen', -'generate root/host certificates' => 'Erzeuge Root/Host Zertifikate', +'generate root/host certificates' => 'Erzeuge Root/Host-Zertifikate', 'generate tripwire keys and init' => 'Tripwire Initalisierung', 'generatekeys' => 'Neue SchlÃŒssel erzeugen', 'generatepolicy' => 'Neue Policy erstellen', 'generatereport' => 'Neuen Report erstellen', -'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Die Erzeugung der Root und Host Zertifikate kann lange Zeit dauern. Auf Àlterer Hardware kann es mehrere Minuten lang dauern. Bitte haben Sie etwas Geduld.', +'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Die Erzeugung der Root- und Host-Zertifikate kann lange Zeit dauern. Auf Àlterer Hardware kann es mehrere Minuten lang dauern. Bitte haben Sie etwas Geduld.', 'genkey' => 'PSK erzeugen', 'genre' => 'Genre', 'global settings' => 'Globale Einstellungen', 'gpl i accept these terms and conditions' => 'Ich akzeptiere diese Bedingungen und Konditionen', -'gpl license agreement' => 'Lizenz Vereinbarung', +'gpl license agreement' => 'Lizenz-Vereinbarung', 'gpl please read carefully the general public license and accept it below' => 'Bitte die General Public License genau lesen und diese unten akzeptieren.', 'gpl unofficial translation of the general public license v3' => 'Inoffizielle Ãbersetzung der General Public License v3', 'graph' => 'Diagramm', @@ -933,13 +934,13 @@ 'holdoff' => 'Holdoff-Zeit in (Sekunden)', 'host' => 'Host', 'host allow' => 'Liste der Zugriffsberechtigten', -'host certificate' => 'Host Zertifikat', +'host certificate' => 'Host-Zertifikat', 'host configuration' => 'Host-Konfiguration', 'host deny' => 'Liste der nicht Zugriffsberechtigten', 'host ip' => 'Host IP-Adresse', 'host to net vpn' => 'Host-zu-Netz Virtual Private Network (RoadWarrior)', 'hostname' => 'Hostname', -'hostname and domain already in use' => 'Hostname und Domain sind werden bereits benutzt.', +'hostname and domain already in use' => 'Hostname und Domain werden bereits benutzt.', 'hostname cant be empty' => 'Hostname darf nicht leer bleiben.', 'hostname not set' => 'Hostname nicht eingegeben.', 'hosts config added' => 'Hosts-Konfiguration hinzugefÃŒgt', @@ -957,10 +958,10 @@ 'idle timeout not set' => 'Leerlauf-Wartezeit nicht angegeben.', 'ids log viewer' => 'Ansicht IDS-Log', 'ids logs' => 'IDS-Logdateien', -'ids preprocessor' => 'IDS PrÀprozessor', +'ids preprocessor' => 'IDS-PrÀprozessor', 'ids rules license' => 'Um Sourcefire VRT Zertifizierte Regeln zu nutzen, mÃŒssen Sie sich unter', 'ids rules license1' => ' registrieren.', -'ids rules license2' => 'BestÀtigen Sie die Lizenz, aktivieren Sie Ihren Account in dem Sie auf den Link, den Sie per Mail erhalten haben klicken. Gehen Sie dann zu', +'ids rules license2' => 'BestÀtigen Sie die Lizenz; aktivieren Sie Ihren Account, indem Sie auf den Link, den Sie per Mail erhalten haben, klicken. Gehen Sie dann zu', 'ids rules license3' => 'klicken Sie den "Generate code"-Knopf und kopieren Sie den 40-Zeichen Oinkcode in das untere Feld.', 'ids rules update' => 'Snort Regeln Update', 'iface' => 'Iface', @@ -1285,7 +1286,7 @@ 'no cfg upload' => 'Keine Daten wurden hochgeladen', 'no dhcp lease' => 'Eine DHCP-Zuordnung konnte nicht empfangen werden', 'no eciadsl synch.bin file' => 'Keine ECI ADSL Datei synch.bin vorhanden. Bitte hochladen.', -'no filter pass' => 'Legen sie hier die Standardklassen fest durch die nicht-gefilterte Pakete gehen.', +'no filter pass' => 'Legen Sie hier die Standardklassen fest durch die nicht-gefilterte Pakete gehen.', 'no fritzdsl driver' => 'Kein Fritz!DSL-Treiber vorhanden. Bitte hochladen.', 'no information available' => 'Keine Informationen verfÃŒgbar.', 'no log selected' => 'kein Log ausgewÀhlt', @@ -1384,7 +1385,7 @@ 'ovpn' => 'OpenVPN', 'ovpn con stat' => 'OpenVPN Verbindungs-Statistik', 'ovpn config' => 'OVPN-Konfiguration', -'ovpn device' => 'OpenVPN GerÀt', +'ovpn device' => 'OpenVPN-GerÀt', 'ovpn dl' => 'OVPN-Konfiguration downloaden', 'ovpn errmsg green already pushed' => 'Route fÃŒr grÃŒnes Netzwerk wird immer gesetzt', 'ovpn errmsg invalid ip or mask' => 'UngÃŒltige Netzwerk-Adresse oder Subnetzmaske', @@ -1399,15 +1400,15 @@ 'ovpn on blue' => 'OpenVPN auf BLAU', 'ovpn on orange' => 'OpenVPN auf ORANGE', 'ovpn on red' => 'OpenVPN auf ROT', -'ovpn routes push' => 'Routen (eine pro Zeile)', +'ovpn routes push' => 'Routen (eine pro Zeile) z.b. 192.168.10.0/255.255.255.0 192.168.20.0/24', 'ovpn routes push options' => 'Route push Optionen', -'ovpn server status' => 'OpenVPN Server Status', -'ovpn subnet' => 'OpenVPN Subnetz (z.B. 10.0.10.0/255.255.255.0)', -'ovpn subnet is invalid' => 'Das OpenVPN Subnetz ist ungÃŒltig.', -'ovpn subnet overlap' => 'OpenVPN Subnetz ÃŒberschneidet sich mit ', +'ovpn server status' => 'OpenVPN-Server-Status', +'ovpn subnet' => 'OpenVPN-Subnetz (z.B. 10.0.10.0/255.255.255.0)', +'ovpn subnet is invalid' => 'Das OpenVPN-Subnetz ist ungÃŒltig.', +'ovpn subnet overlap' => 'OpenVPNSubnetz ÃŒberschneidet sich mit ', 'ovpn_fastio' => 'Fast-IO', 'ovpn_fragment' => 'Fragmentgrösse', -'ovpn_mssfix' => 'MSSFIX Grösse', +'ovpn_mssfix' => 'MSSFIX-Grösse', 'ovpn_mtudisc' => 'MTU-Discovery', 'ovpn_processprio' => 'ProzessprioritÀt', 'ovpn_processprioD' => 'Tief', @@ -1437,14 +1438,14 @@ 'pakfire last package update' => 'Letztes Paketlisten Update ist', 'pakfire last serverlist update' => 'Letztes Serverlisten Update ist', 'pakfire last update' => 'Letzes Update ist', -'pakfire possible dependency' => ' Möglicherweise haben diese Pakete AbhÀngigkeiten, d.h. andere Pakete mÃŒssen zusÀtzlich installiert werden. Dazu sehen sie unten eine Liste.', +'pakfire possible dependency' => ' Möglicherweise haben diese Pakete AbhÀngigkeiten, d.h. andere Pakete mÃŒssen zusÀtzlich installiert werden. Dazu sehen Sie unten eine Liste.', 'pakfire register' => 'Registrierung am Pakfire-Server:', 'pakfire system state' => 'System Status', 'pakfire uninstall description' => 'WÀhlen Sie ein oder mehrere Pakete zur Deinstallation aus und drÃŒcken Sie auf das minus Symbol.', 'pakfire uninstall package' => 'Sie möchten folgende Pakete deinstallieren: ', 'pakfire update daily' => 'TÀglich nach Updates suchen:', 'pakfire updates' => 'Zur VerfÃŒgung stehende Updates:', -'pakfire working' => 'Pakfire fÃŒhrt gerade eine Aufgabe aus... Bitte warten sie, bis diese erfolgreich beendet wurde.', +'pakfire working' => 'Pakfire fÃŒhrt gerade eine Aufgabe aus... Bitte warten Sie, bis diese erfolgreich beendet wurde.', 'pap or chap' => 'PAP oder CHAP', 'parentclass' => 'Parentklasse', 'parentclass add' => 'Parentklasse hinzufÃŒgen', @@ -1555,7 +1556,7 @@ 'remote logging' => 'Remote logging', 'remote subnet' => 'Remote Subnetz:', 'remote subnet is invalid' => 'Remote Subnetz ist ungÃŒltig.', -'removable device advice' => 'Stecken Sie ein GerÀt an, aktualisieren Sie und binden Sie es vor der Benutzung ein. Melden Sie das GerÀt vorm Entfernen ab.', +'removable device advice' => 'Stecken Sie ein GerÀt an, aktualisieren Sie und binden Sie es vor der Benutzung ein. Melden Sie das GerÀt vorm Entfernen ab.', 'remove' => 'Löschen', 'remove ca certificate' => 'CA-Zertifikat entfernen', 'remove x509' => 'Lösche x509', @@ -1563,17 +1564,17 @@ 'reportfile' => 'Reportfile', 'reportlevel' => 'Report Level', 'request' => 'Abfrage', -'requested data' => '1. Verbindungs Einstellungen', +'requested data' => '1. Verbindungs-Einstellungen', 'reserved dst port' => 'Dieser Zielport ist fÃŒr die ausschlieÃliche Benutzung durch IPFire reserviert:', 'reserved src port' => 'Dieser Quellport ist fÃŒr die ausschlieÃliche Benutzung durch IPFire reserviert:', -'reset' => 'ZurÃŒck setzen', +'reset' => 'ZurÃŒcksetzen', 'reset shares' => 'Freigaben zurÃŒcksetzen', 'resetglobals' => 'Globale Einstellungen zurÃŒcksetzen', -'resetpolicy' => 'Policy zurÃŒck setzen', +'resetpolicy' => 'Policy zurÃŒcksetzen', 'resetshares' => 'Shares zurÃŒcksetzen?', 'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Das ZurÃŒcksetzen der VPN-Konfiguration wird die Root-CA, die Host-Zertifikate und alle weiteren Zertifikate und alle zertifikatsbasierten Verbindungen entfernen', 'restart' => 'Neustart', -'restart ovpn server' => 'OpenVPN Server neu starten', +'restart ovpn server' => 'OpenVPN-Server neu starten', 'restore' => 'Wiederherstellen', 'restore defaults' => 'Voreinstellungen wiederherstellen', 'restore hardware settings' => 'Hardware-Einstellungen wiederherstellen', @@ -1631,7 +1632,7 @@ 'services settings' => 'Firewall - Diensteeinstellungen', 'set' => 'gesetzt', 'set time now' => 'Stelle jetzt die Uhrzeit ein', -'set time now help' => 'Um ein Synchronisationsereignis zu jeder Zeit in die Warteschlange zu stellen, drÃŒcken Sie die <i>Stelle jetzt die Uhrzeit ein</i> SchaltflÀche. Bitte beachten Sie, daà Sie 5 Minuten, oder lÀnger, warten mÃŒssen, bevor ein Sync-Ereignis eintritt.', +'set time now help' => 'Um ein Synchronisationsereignis zu jeder Zeit in die Warteschlange zu stellen, drÃŒcken Sie die <i>Stelle jetzt die Uhrzeit ein</i> SchaltflÀche. Bitte beachten Sie, daà Sie 5 Minuten oder lÀnger warten mÃŒssen, bevor ein Sync-Ereignis eintritt.', 'settings' => 'Konfiguration', 'shaping list options' => 'DatenfluÃkontrolldienste', 'shared' => 'shared', @@ -1667,7 +1668,7 @@ 'smtphost' => 'Smtp Host', 'smtpport' => 'Smtp Port', 'snort hits' => 'Gesamtanzahl der aktivierten Intrusion-Regeln fÃŒr', -'snort working' => 'Snort fÃŒhrt gerade eine Aufgabe aus... Bitte warten sie, bis diese erfolgreich beendet wurde.', +'snort working' => 'Snort fÃŒhrt gerade eine Aufgabe aus... Bitte warten Sie, bis diese erfolgreich beendet wurde.', 'socket options' => 'Socket Options', 'sort ascending' => 'Sortiere aufsteigend', 'sort descending' => 'Sortiere absteigend', @@ -1721,7 +1722,7 @@ 'standard login script' => 'Standard-Anmeldeskript', 'start' => 'Starten', 'start address' => 'Anfangsadresse:', -'start ovpn server' => 'Starte OpenVPN Server', +'start ovpn server' => 'Starte OpenVPN-Server', 'state or province' => 'Bundesstat oder Provinz', 'static ip' => 'Statisch IP', 'static routes' => 'Statische Routen', @@ -1730,7 +1731,7 @@ 'status ovpn' => 'OpenVPN', 'std classes' => 'Standardklassen', 'stop' => 'Stop', -'stop ovpn server' => 'Stoppe OpenVPN Server', +'stop ovpn server' => 'Stoppe OpenVPN-Server', 'stopped' => 'ANGEHALTEN', 'subject' => 'Betreff', 'subject test' => 'Testemail', @@ -1751,7 +1752,7 @@ 'system status information' => 'System-Statusinformationen', 'telephone not set' => 'Telefonnummer nicht angegeben.', 'template' => 'Vorlage', -'template warning' => 'Zur Einrichtung von QoS stehen Ihnen 2 Möglichkeiten zur Auswahl. Erstens Sie wÀhlen speichern und erstellen Klassen und Regeln nach Ihren WÃŒnschen, oder Sie wÀhlen Vorlage, dann werden die Klassen und Regeln durch ein Template generiert.', +'template warning' => 'Zur Einrichtung von QoS stehen Ihnen 2 Möglichkeiten zur Auswahl. Entweder Sie wÀhlen speichern und erstellen Klassen und Regeln nach Ihren WÃŒnschen, oder Sie wÀhlen Vorlage, dann werden die Klassen und Regeln durch ein Template generiert.', 'test' => 'test', 'test email could not be sent' => 'Könnte Testemail nicht senden', 'test email was sent' => 'Testemail wurde erfolgreich versand', @@ -1811,9 +1812,9 @@ 'tripwire cronjob' => 'Tripwire Cronjob', 'tripwire functions' => 'Tripwire Funktionen', 'tripwire reports' => 'Tripwire Reports', -'tripwireoperating' => 'Der Prozess wurde gestartet. Dies kann einige Minuten in Anspruch nehmen, bitte haben Sie Geduld, das Fenster wird sich automatisch aktualisieren sobald der Vorgang beendet ist.', -'tripwirewarningdatabase' => 'ACHTUNG - Ihre Datenbank wird auf den Stand des letzten Reports gesetzt, bitte versichern sie sich, dass keine unautorisiertend Ãnderungen vorgenommen wurden. HierfÃŒr wird der Local-Key benötigt.', -'tripwirewarningkeys' => 'ACHTUNG - Sie löschen hiermit ihre bestehenden SchlÃŒssel, ihre Konfiguration und Datenbank und legen Alles neu an.', +'tripwireoperating' => 'Der Prozess wurde gestartet. Dies kann einige Minuten in Anspruch nehmen, bitte haben Sie Geduld. Das Fenster wird sich automatisch aktualisieren, sobald der Vorgang beendet ist.', +'tripwirewarningdatabase' => 'ACHTUNG - Ihre Datenbank wird auf den Stand des letzten Reports gesetzt, bitte versichern Sie sich, dass keine unautorisierten Ãnderungen vorgenommen wurden. HierfÃŒr wird der Local-Key benötigt.', +'tripwirewarningkeys' => 'ACHTUNG - Sie löschen hiermit ihre bestehenden SchlÃŒssel, ihre Konfiguration und Datenbank und legen alles neu an.', 'tripwirewarningpolicy' => 'ACHTUNG - Ihr Policy wird neu erzeugt, anschlieÃen wird die Datenbank neu initialisiert. HierfÃŒr wird der Site-Key und Local-Key benötigt.', 'tuesday' => 'Dienstag', 'type' => 'Typ', @@ -1821,12 +1822,12 @@ 'umount removable media before to unplug' => 'Wechselmedien vor dem Entfernen unbedingt abmelden', 'unable to alter profiles while red is active' => 'Profile können nicht geÀndert werden, solange ROT aktiv ist.', 'unable to contact' => 'Kann nicht erreicht werden', -'unencrypted' => 'NichtverschlÃŒsselt', +'unencrypted' => 'Nicht verschlÃŒsselt', 'uninstall' => 'Deinstallieren', -'unix charset' => 'UNIX Charset', -'unix group' => ' UNIX Benutzergruppe', +'unix charset' => 'UNIX-Charset', +'unix group' => ' UNIX-Benutzergruppe', 'unix password sync' => 'Unix Password Sync', -'unix shell' => 'UNIX Shell', +'unix shell' => 'UNIX-Shell', 'unknown' => 'Unbekannt', 'unnamed' => 'Unbenannt', 'update' => 'Aktualisieren', @@ -1854,7 +1855,7 @@ 'updxlrtr condition outdated' => 'Veraltet', 'updxlrtr condition suspended' => 'Ausgesetzt', 'updxlrtr condition unknown' => 'Unbekannt', -'updxlrtr configuration' => 'Update-Accelerator Konfiguration', +'updxlrtr configuration' => 'Update-Accelerator-Konfiguration', 'updxlrtr current downloads' => 'Dateien beim Download in den lokalen Cache', 'updxlrtr current files' => 'Aktuelle Dateien im lokalen Cache', 'updxlrtr daily' => 'tÀglich', @@ -1903,7 +1904,7 @@ 'updxlrtr update accelerator' => 'Update-Accelerator', 'updxlrtr update information' => 'Eine aktualisierte Version steht zum Download bereit. Besuchen Sie <a href="http://update-accelerator.advproxy.net" target="_blank">http://update-accelerator.advproxy.net</a> fÃŒr weitere Informationen.', 'updxlrtr update notification' => 'Update-Benachrichtigung!', -'updxlrtr web proxy service required' => 'Der Web-Proxy muss aktiviert sein um den Update-Accelerator zu verwenden', +'updxlrtr web proxy service required' => 'Der Web-Proxy muss aktiviert sein, um den Update-Accelerator zu verwenden', 'updxlrtr week' => 'einer Woche', 'updxlrtr weekly' => 'wöchentlich', 'updxlrtr year' => 'einem Jahr', @@ -1913,10 +1914,10 @@ 'upload' => 'Hochladen', 'upload a certificate' => 'Ein Zertifikat hochladen:', 'upload a certificate request' => 'Eine Zertifikatsanfrage hochladen:', -'upload ca certificate' => 'CA Zertifikat hochladen', +'upload ca certificate' => 'CA-Zertifikat hochladen', 'upload file' => 'Datei zum hochladen', 'upload new ruleset' => 'Neuen Regelsatz hochladen', -'upload p12 file' => 'PKCS12 Datei hochladen', +'upload p12 file' => 'PKCS12-Datei hochladen', 'upload static key' => 'Statischen SchlÃŒssel hochladen', 'upload successful' => 'Erfolgreich hochgeladen.', 'upload synch.bin' => 'Synch.bin hochladen', @@ -1941,17 +1942,17 @@ 'urlfilter automatic blacklist update' => 'Automatisches Blacklist-Update', 'urlfilter automatic update schedule' => 'Zeitplan fÃŒr Automatische Updates', 'urlfilter back to main page' => 'ZurÃŒck zur Hauptseite', -'urlfilter background image' => 'Urlfilter Hintergrundbild', -'urlfilter background text' => 'Um ein angepasstes Hintergrundbild fÃŒr die Sperrseite zu verwenden kann hier eine .jpg-Datei hochgeladen werden', +'urlfilter background image' => 'Urlfilter-Hintergrundbild', +'urlfilter background text' => 'Um ein angepasstes Hintergrundbild fÃŒr die Sperrseite zu verwenden, kann hier eine .jpg-Datei hochgeladen werden', 'urlfilter backup' => 'Sicherungsdatei erstellen', 'urlfilter backup error' => 'Sicherungsdatei kann nicht erstellt werden', -'urlfilter backup settings' => 'Sicherung der URL-Filter Einstellungen', +'urlfilter backup settings' => 'Sicherung der URL-Filter-Einstellungen', 'urlfilter banned clients' => 'Gesperrte IP-Adressen', 'urlfilter blacklist age 1' => 'Letztes erfolgreiches Blacklist-Update war vor', 'urlfilter blacklist age 2' => 'Tagen', -'urlfilter blacklist category name' => 'Blacklist Kategoriename', +'urlfilter blacklist category name' => 'Blacklist-Kategoriename', 'urlfilter blacklist editor' => 'Blacklist-Editor', -'urlfilter blacklist editor info' => 'Erstellen und editieren von eigenen Blacklistdateien', +'urlfilter blacklist editor info' => 'Erstellen und Editieren von eigenen Blacklistdateien', 'urlfilter blacklist name' => 'Name der Blacklist', 'urlfilter blacklist update' => 'Aktualisierung der Blacklist', 'urlfilter block' => 'Sperren', @@ -1970,7 +1971,7 @@ 'urlfilter category all' => 'alle', 'urlfilter category data error' => 'Blacklist ist leer', 'urlfilter category log' => 'Protokoll in Kategorien aufteilen', -'urlfilter category name error' => 'Blacklist Kategoriename erforderlich', +'urlfilter category name error' => 'Blacklist-Kategoriename erforderlich', 'urlfilter client' => 'Client', 'urlfilter configuration' => 'URL-Filter Konfiguration', 'urlfilter constraint definition' => 'Definition', @@ -2018,13 +2019,13 @@ 'urlfilter from' => 'Von', 'urlfilter hourly' => 'stÃŒndlich', 'urlfilter import blacklist' => 'Blacklist importieren', -'urlfilter import text' => 'Um eine vorher gespeicherte Blacklist-Editor Datei zu installieren kann hier die .tar.gz-Datei hochgeladen werden', +'urlfilter import text' => 'Um eine vorher gespeicherte Blacklist-Editor Datei zu installieren, kann hier die .tar.gz-Datei hochgeladen werden', 'urlfilter install blacklist' => 'Blacklist installieren', 'urlfilter install information' => 'Die neue Blacklist wird automatisch in vorgefertigte Datenbanken ÃŒbersetzt. AbhÀngig von der GröÃe der Blacklist kann dies einige Minuten dauern.', 'urlfilter invalid content' => 'Datei ist keine squidGuard-kompatible Blacklist', -'urlfilter invalid import file' => 'Datei ist keine gÃŒltige URL-Filter Blacklist-Editor Datei', +'urlfilter invalid import file' => 'Datei ist keine gÃŒltige URL-Filter-Blacklist-Editor-Datei', 'urlfilter invalid ip or mask error' => 'UngÃŒltige IP-Adresse oder Subnetzmaske', -'urlfilter invalid restore file' => 'Datei ist keine gÃŒltige URL-Filter Sicherungsdatei', +'urlfilter invalid restore file' => 'Datei ist keine gÃŒltige URL-Filter-Sicherungsdatei', 'urlfilter invalid user error' => 'UngÃŒltiger Benutzername', 'urlfilter load blacklist' => 'Blacklist laden', 'urlfilter local file redirection' => 'Lokale Dateiumleitung', @@ -2032,7 +2033,7 @@ 'urlfilter log summary' => 'Gesamtanzahl der URL-Filter-Treffer fÃŒr', 'urlfilter log viewer' => 'Ansicht URL-Filter-Log', 'urlfilter logs' => 'URL-Filter-Logdateien', -'urlfilter maintenance' => 'URL-Filter Wartung', +'urlfilter maintenance' => 'URL-Filter-Wartung', 'urlfilter manage local file repository' => 'Lokale Dateiablage verwalten', 'urlfilter manage repository' => 'Ablage verwalten', 'urlfilter minutes' => 'Minuten', @@ -2057,13 +2058,13 @@ 'urlfilter repository information' => 'Downloadanforderungen fÃŒr diese Dateien werden von der ursprÃŒnglichen Quelle auf die lokale Dateiablage umgeleitet.', 'urlfilter reset' => 'ZurÃŒcksetzen', 'urlfilter restart' => 'URL-Filter neu starten', -'urlfilter restart message' => 'Um die geÀnderten Regeln zu aktivieren muss der URL-Filter neu gestartet werden', +'urlfilter restart message' => 'Um die geÀnderten Regeln zu aktivieren, muss der URL-Filter neu gestartet werden', 'urlfilter restart notification' => 'GeÀnderte Regeln aktivieren', 'urlfilter restore' => 'Sicherungsdatei importieren', 'urlfilter restore results' => 'Ergebnisse der Wiederherstellung', -'urlfilter restore settings' => 'Wiederherstellung der URL-Filter Einstellungen', -'urlfilter restore success' => 'Die URL-Filter Konfiguration wurde wieder hergestellt. Um die neuen Einstellungen zu aktivieren muss der URL-Filter neu gestartet werden.', -'urlfilter restore text' => 'Um eine vorher gesicherte Konfiguration wieder herzustellen kann hier eine .tar.gz-Sicherungsdatei hochgeladen werden', +'urlfilter restore settings' => 'Wiederherstellung der URL-Filter-Einstellungen', +'urlfilter restore success' => 'Die URL-Filter-Konfiguration wurde wiederhergestellt. Um die neuen Einstellungen zu aktivieren, muss der URL-Filter neu gestartet werden.', +'urlfilter restore text' => 'Um eine vorher gesicherte Konfiguration wieder herzustellen, kann hier eine .tar.gz-Sicherungsdatei hochgeladen werden', 'urlfilter safesearch' => 'Aktiviere SafeSearch', 'urlfilter sat' => 'S', 'urlfilter saturday' => 'Sam', @@ -2098,24 +2099,24 @@ 'urlfilter update information' => 'Eine aktualisierte Version steht zum Download bereit. Besuchen Sie <a href="http://www.urlfilter.net" target="_blank">http://www.urlfilter.net</a> fÃŒr weitere Informationen.', 'urlfilter update notification' => 'Update-Benachrichtigung!', 'urlfilter update now' => 'Jetzt updaten', -'urlfilter update results' => 'Blacklist Aktualisierungsergebnisse', +'urlfilter update results' => 'Blacklist-Aktualisierungsergebnisse', 'urlfilter update rule' => 'Aktualisieren', 'urlfilter upload background' => 'Bild hochladen', 'urlfilter upload blacklist' => 'Blacklist hochladen', 'urlfilter upload file' => 'Datei hochladen', 'urlfilter upload file information 1' => 'Hinweis', 'urlfilter upload file information 2' => 'Der URL-Filter muss neu gestartet werden, damit die geÀnderte Dateiablage wirksam wird.', -'urlfilter upload file text' => 'Um eine Datei der lokalen Dateiablage hinzuzufÃŒgen kann die Datei hier hochgeladen werden', +'urlfilter upload file text' => 'Um eine Datei der lokalen Dateiablage hinzuzufÃŒgen, kann die Datei hier hochgeladen werden', 'urlfilter upload information' => 'Die neue Blacklist wird automatisch in vorgefertigte Datenbanken ÃŒbersetzt. AbhÀngig von der GröÃe der Blacklist kann dies einige Minuten dauern. Der URL-Filter sollte erst nach Abschluss der Konvertierung neu gestartet werden.', 'urlfilter upload success' => 'Blacklist erfolgreich hochgeladen.', -'urlfilter upload text' => 'Um eine aktualisierte Blacklist zu installieren kann hier die .tar.gz-Datei hochgeladen werden', +'urlfilter upload text' => 'Um eine aktualisierte Blacklist zu installieren, kann hier die .tar.gz-Datei hochgeladen werden', 'urlfilter url filter' => 'URL-Filter', 'urlfilter urlfilter blacklist editor' => 'URL-Filter Blacklist-Editor', 'urlfilter urls' => 'URLs (eine pro Zeile)', 'urlfilter user time quota' => 'Zeitkontingent (in Minuten)', 'urlfilter username' => 'Benutzername', 'urlfilter username log' => 'Protokolliere Benutzername', -'urlfilter web proxy service required' => 'Um der URL-Filter zu verwenden muss der Web-Proxy-Dienst aktiviert sein', +'urlfilter web proxy service required' => 'Um den URL-Filter zu verwenden, muss der Web-Proxy-Dienst aktiviert sein', 'urlfilter wed' => 'M', 'urlfilter wednesday' => 'Mit', 'urlfilter weekday error' => 'Es muss mindestens ein Tag ausgewÀhlt werden', @@ -2141,8 +2142,8 @@ 'username' => 'Benutzername:', 'username not set' => 'Benutzername nicht angegeben.', 'users department' => 'Abteilung des Benutzers', -'users email' => 'E-mail Adresse des Benutzers', -'users fullname or system hostname' => 'Voller Name oder System Hostname des Benutzers', +'users email' => 'E-mail-Adresse des Benutzers', +'users fullname or system hostname' => 'Voller Name oder System-Hostname des Benutzers', 'valid root certificate already exists' => 'Ein gÃŒltiges Root-Zertifikat existiert bereits.', 'valid till' => 'GÃŒltig bis', 'vci number' => 'VCI-Nummer:', @@ -2162,7 +2163,7 @@ 'vpn auth-dn' => 'Peer wird identifiziert durch entweder ein IPV4_ADDR, FQDN, USER_FQDN oder DER_ASN1_DN string in Remote ID Feld', 'vpn configuration main' => 'VPN-Konfiguration - Ãbersicht', 'vpn delayed start' => 'Verzögerung bevor VPN gestartet wird (Sekunden)', -'vpn delayed start help' => 'Falls notwendig, kann diese Verzögerung dazu verwendet werden, um Dynamic DNS Updates ordnungsgemÀà anzuwenden. 60 ist ein gÀngiger Wert, wenn ROT (RED) eine dynamische IP Adresse ist.', +'vpn delayed start help' => 'Falls notwendig, kann diese Verzögerung dazu verwendet werden, um Dynamic-DNS-Updates ordnungsgemÀà anzuwenden. 60 ist ein gÀngiger Wert, wenn ROT (RED) eine dynamische IP Adresse ist.', 'vpn incompatible use of defaultroute' => 'Hostname=%defaultroute nicht zulÀssig', 'vpn keyexchange' => 'SchlÃŒsseltausch', 'vpn local id' => 'Lokale ID', @@ -2172,7 +2173,7 @@ 'vpn on blue' => 'VPN auf BLAU', 'vpn on green' => 'VPN auf GRÃN', 'vpn on orange' => 'VPN auf ORANGE', -'vpn payload compression' => 'Datennutzlast Kompression aushandeln', +'vpn payload compression' => 'Datennutzlast-Kompression aushandeln', 'vpn red name' => 'Ãffentliche IP oder FQDN fÃŒr das rote Interface oder <%defaultroute>', 'vpn remote id' => 'Remote ID', 'vpn subjectaltname' => 'Subjekt Alternativer Name', @@ -2186,7 +2187,7 @@ 'web proxy' => 'Web-Proxy', 'web proxy configuration' => 'Web-Proxy-Konfiguration', 'web server' => 'Web-Server', -'webradio playlist' => 'Webradio Playlist', +'webradio playlist' => 'Webradio-Playlist', 'website' => 'Website', 'wednesday' => 'Mittwoch', 'week' => 'Woche', @@ -2194,11 +2195,11 @@ 'weekly firewallhits' => 'wöchentliche Firewalltreffer', 'weeks' => 'Wochen', 'wildcards' => 'Wildcards', -'wins server' => 'Wins Server', -'wins support' => 'Wins Support', +'wins server' => 'Wins-Server', +'wins support' => 'Wins-Support', 'wireless' => 'Wireless', -'wireless config added' => 'Wireless Konfiguration hinzugefÃŒgt', -'wireless config changed' => 'Wireless Konfiguration geÀndert', +'wireless config added' => 'Wireless-Konfiguration hinzugefÃŒgt', +'wireless config changed' => 'Wireless-Konfiguration geÀndert', 'wireless configuration' => 'Wireless-Konfiguration', 'wlanap access point' => 'Access Point', 'wlanap channel' => 'Kanal', @@ -2208,28 +2209,28 @@ 'wlanap informations' => 'Informationen', 'wlanap interface' => 'Interface ÃŒbernehmen', 'wlanap invalid wpa' => 'UngÃŒltige LÀnge in WPA-Passphrase. Muss zwischen 8 und 63 Zeichen lang sein.', -'wlanap link dhcp' => 'Wireless Lan DHCP Einstellungen', +'wlanap link dhcp' => 'Wireless Lan DHCP-Einstellungen', 'wlanap link wireless' => 'Wireless Lan Clients freischalten', -'wlanap no interface' => 'AusgewÀhlte Interface ist keine WLan Karte!', +'wlanap no interface' => 'AusgewÀhltes Interface ist keine WLAN-Karte!', 'wlanap none' => 'keine', 'wlanap notifications' => 'Hinweise', -'wlanap select interface' => 'Bitte das WLan Interface auswÀhlen.', +'wlanap select interface' => 'Bitte das WLAN-Interface auswÀhlen.', 'wlanap verbose' => 'Alle Informationen', 'wlanap warnings' => 'Warnungen', -'wlanap wlan card' => 'WLan Karte', -'wlanap wlan services' => 'WLan Dienste', -'wlanap wlan settings' => 'WLan Einstellungen', -'wlanap wlan status' => 'WLan Status', +'wlanap wlan card' => 'WLAN-Karte', +'wlanap wlan services' => 'WLAN-Dienste', +'wlanap wlan settings' => 'WLAN-Einstellungen', +'wlanap wlan status' => 'WLAN-Status', 'wol wakeup' => 'WakeUp', 'workgroup' => 'Arbeitsgruppe', 'written bytes' => 'Geschriebene Bytes', 'xtaccess all error' => 'Sie können einen externen Zugang nicht auf 'ALL' setzen - dies erfolgt in den Port-Weiterleitungsregeln.', -'xtaccess bad transfert' => 'Wenn Sie einen Port Zielbereich angeben, muss der Quellbereich identisch sein!', +'xtaccess bad transfert' => 'Wenn Sie einen Port-Zielbereich angeben, muss der Quellbereich identisch sein!', 'year' => 'Jahr', 'year-graph' => 'Jahr', 'yearly firewallhits' => 'jÀhrliche Firewalltreffer', 'yes' => 'Ja', -'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Sie können nur eine Roadwarrior Verbindung definieren, wenn die Pre-shared SchlÃŒsselauthentifizierung verwendet wird.<br/>Entweder haben Sie bereits eine Roadwarrior Verbindung mit Pre-shared SchlÃŒsselauthentifizierung, oder Sie versuchen gerade eine hinzuzufÃŒgen.', +'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Sie können nur eine Roadwarrior-Verbindung definieren, wenn die Pre-shared-SchlÃŒsselauthentifizierung verwendet wird.<br/>Entweder haben Sie bereits eine Roadwarrior-Verbindung mit Pre-shared-SchlÃŒsselauthentifizierung, oder Sie versuchen gerade, eine hinzuzufÃŒgen.', 'your department' => 'Ihre Abteilung', 'your e-mail' => 'Ihre E-mail Adresse', ); diff --git a/langs/de/install/lang_de.c b/langs/de/install/lang_de.c index 6c8c7e5..85db867 100644 --- a/langs/de/install/lang_de.c +++ b/langs/de/install/lang_de.c @@ -358,7 +358,7 @@ char *de_tr[] = { /* TR_PHONENUMBER_CANNOT_BE_EMPTY */ "Die Telefonnummer darf nicht leer sein.", /* TR_PREPARE_HARDDISK */ -"Das Installationsprogramm wird jetzt die Festplatte %s vorbereiten. ZunÀchst wird die Festplatte partitioniert. Danach wird auf den Partitionen ein Dateisystem erstellt.", +"Das Installationsprogramm wird jetzt die Festplatte %s vorbereiten. ZunÀchst wird die Festplatte partitioniert. Danach wird auf den Partitionen ein Dateisystem erstellt.\n\nALLE DATEN AUF DEM LAUFWERK WERDEN GELÃSCHT. Einverstanden?", /* TR_PRESS_OK_TO_REBOOT */ "DrÃŒcken Sie Ok, um neu zu starten.", /* TR_PRIMARY_DNS */ diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index f0fa2c2..c4629a5 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -212,6 +212,7 @@ 'advproxy errmsg auth children' => 'Invalid number of authentication processes', 'advproxy errmsg auth ipcache may not be null' => 'Authentication cache TTL may not be 0 when using IP address limits', 'advproxy errmsg auth ipcache ttl' => 'Invalid value for user/IP cache TTL', +'advproxy errmsg cache' => 'The RAM cache size is greater than the harddisk cache size:', 'advproxy errmsg change fail' => 'Password could not be changed', 'advproxy errmsg change success' => 'Password for web access sucessfully changed', 'advproxy errmsg hdd cache size' => 'Invalid value for harddisk cache size (min 10 MB required)', @@ -222,13 +223,13 @@ 'advproxy errmsg invalid mac' => 'Invalid MAC address', 'advproxy errmsg invalid pdc' => 'Invalid hostname for primary domain controller', 'advproxy errmsg invalid proxy port' => 'Invalid proxy port', -'advproxy errmsg invalid upstream proxy' => 'Invalid upstream proxy IP', +'advproxy errmsg invalid upstream proxy' => 'Invalid upstream proxy IP/hostname', 'advproxy errmsg invalid upstream proxy username or password setting' => 'Invalid upstream proxy username or password setting', 'advproxy errmsg invalid user' => 'Username does not exist', 'advproxy errmsg ldap base dn' => 'LDAP base DN required', 'advproxy errmsg ldap bind dn' => 'LDAP bind DN username and password required', 'advproxy errmsg ldap port' => 'Invalid LDAP port number', -'advproxy errmsg ldap server' => 'Invalid IP address for LDAP Server', +'advproxy errmsg ldap server' => 'Invalid IP address/hostname for LDAP Server', 'advproxy errmsg max userip' => 'Invalid number of IP addresses per user', 'advproxy errmsg mem cache size' => 'Invalid value for memory cache size', 'advproxy errmsg no browser' => 'At least one browser or client must be selected for web access', @@ -757,14 +758,14 @@ 'download root certificate' => 'Download root certificate', 'dpd action' => 'Dead Peer Detection action', 'driver' => 'Driver', -'drop input' => 'Log dropped input pakets', -'drop newnotsyn' => 'Log dropped new not syn pakets', -'drop output' => 'Log dropped output pakets', -'drop portscan' => 'Log dropped portscan pakets', +'drop input' => 'Log dropped input packets', +'drop newnotsyn' => 'Log dropped new not syn packets', +'drop output' => 'Log dropped output packets', +'drop portscan' => 'Log dropped portscan packets', 'drop proxy' => 'Drop all packets not addressed to proxy', 'drop samba' => 'Drop all Microsoft ports 135,137,138,139,445,1025', -'drop wirelessforward' => 'Log dropped wireless forward pakets', -'drop wirelessinput' => 'Log dropped wireless input pakets', +'drop wirelessforward' => 'Log dropped wireless forward packets', +'drop wirelessinput' => 'Log dropped wireless input packets', 'dst port' => 'Dst Port', 'dstprt range overlaps' => 'Destination port range overlaps an already defined port.', 'dstprt within existing' => 'Destination port is within an already defined port range.', @@ -1426,7 +1427,7 @@ 'ovpn on blue' => 'OpenVPN on BLUE', 'ovpn on orange' => 'OpenVPN on ORANGE', 'ovpn on red' => 'OpenVPN on RED', -'ovpn routes push' => 'Routes (one per line):', +'ovpn routes push' => 'Routes (one per line) e.g. 192.168.10.0/255.255.255.0 192.168.20.0/24', 'ovpn routes push options' => 'Route push options', 'ovpn server status' => 'Current OpenVPN server status:', 'ovpn subnet' => 'OpenVPN subnet (e.g. 10.0.10.0/255.255.255.0)', @@ -2235,6 +2236,7 @@ 'wireless configuration' => 'Wireless Configuration', 'wlanap access point' => 'Access Point', 'wlanap channel' => 'Channel', +'wlanap country' => 'Country Code', 'wlanap debugging' => 'Debugging', 'wlanap del interface' => 'Remove selected interface?', 'wlanap encryption' => 'Encryption', diff --git a/langs/en/install/lang_en.c b/langs/en/install/lang_en.c index 4415205..87f8d2f 100644 --- a/langs/en/install/lang_en.c +++ b/langs/en/install/lang_en.c @@ -354,7 +354,7 @@ char *en_tr[] = { /* TR_PHONENUMBER_CANNOT_BE_EMPTY */ "Phone number cannot be empty.", /* TR_PREPARE_HARDDISK */ -"The installation program will now prepare the harddisk on %s. First the disk will be partitioned, and then the partitions will have a filesystem put on them.", +"The installation program will now prepare the harddisk on %s. First the disk will be partitioned, and then the partitions will have a filesystem put on them.\n\nALL DATA ON THE DISK WILL BE DESTROYED. Do you agree to continue?", /* TR_PRESS_OK_TO_REBOOT */ "Press Ok to reboot.", /* TR_PRIMARY_DNS */ diff --git a/langs/list b/langs/list index 94828cd..d7ea4e8 100644 --- a/langs/list +++ b/langs/list @@ -4,3 +4,4 @@ fr:Français:French es:Español:Spanish pl:Polski:Polish ru:Ð ÑÑÑкОй:Russian +nl:Nederlands:Dutch diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl new file mode 100644 index 0000000..d8f9eee --- /dev/null +++ b/langs/nl/cgi-bin/nl.pl @@ -0,0 +1,2271 @@ +%tr = ( +%tr, + +'Act as' => 'Fungeren als:', +'Add Level7 rule' => 'Voeg Level7 regel toe', +'Add Port Rule' => 'Voeg poortregel toe', +'Add Rule' => 'Voeg regel toe', +'Add a route' => 'Voeg een route toe', +'Async logging enabled' => 'Inschakelen a-synchroon schrijven van het syslogbestand', +'Choose Rule' => 'Kies <u>een</u> van de volgende regels.', +'Class' => 'Klasse', +'Class was deleted' => 'met mogelijke sub-klasse is verwijderd', +'Client status and controlc' => 'Client status en controle:', +'ConnSched action' => 'Actie:', +'ConnSched add action' => 'Voeg actie toe', +'ConnSched change profile title' => 'Gebruik profiel:', +'ConnSched days' => 'Dagen:', +'ConnSched down' => 'Omlaag', +'ConnSched ipsecstart' => 'IPSec (her)starten', +'ConnSched ipsecstop' => 'IPSec stoppen', +'ConnSched reconnect' => 'Opnieuw verbinden', +'ConnSched scheduled actions' => 'Ingeplande acties', +'ConnSched scheduler' => 'Scheduler', +'ConnSched select profile' => 'Selecteer profiel', +'ConnSched time' => 'Tijd:', +'ConnSched up' => 'Omhoog', +'ConnSched weekdays' => 'Dagen van de week:', +'Edit an existing route' => 'Wijzig een bestaande route', +'Enter TOS' => 'Activeer of deactiveer TOS-bits <br /> en klik dan op <i>Save</i>.', +'Existing Files' => 'Bestanden in database', +'HDD temperature' => 'HDD temperatuur', +'Level7 Protocol' => 'Level7-Protocol', +'Level7 Rule' => 'Level7-Regel', +'Level7 rule' => 'Level7 regel', +'Local VPN IP' => 'Intern Netwerk (GROEN):', +'MTU' => 'MTU grootte:', +'Number of IPs for the pie chart' => 'Aantal IPs voor de taartdiagram', +'Number of Ports for the pie chart' => 'Aantal poorten voor de taartdiagram', +'OVPN' => 'OpenVPN', +'OpenVPN' => 'OpenVPN', +'Pages' => 'Pagina's', +'Ping' => 'Ping:', +'Port Rule' => 'Poort-Regel', +'QoS not enabled' => 'QoS is niet ingeschakeld!', +'Queuelenght' => 'Wachtrijlengte', +'Remote IP' => 'Remote IP / Hostnaam (DynDNS):', +'Remote VPN IP' => 'VPN Subnet (bijv. 10.0.10.0/255.255.255.0):', +'Resolv' => 'Resolv-Retry:', +'Scan for Files' => 'Scan voor bestanden', +'Scan from Directory' => 'Scan vanuit directory', +'Set time on boot' => 'Stel de tijd van de systeemklok in tijdens opstarten', +'Subclass' => 'Sub-klasse', +'TOS Bits' => 'TOS-Bits', +'TOS Rule' => 'TOS-Regel', +'TOS rule' => 'TOS-regel', +'The class number does not match the specified interface.' => 'Het klasse-nummer komt niet overeen met de gespecificeerde interface.', +'The destination IP address is invalid.' => 'Het doel IP-adres is ongeldig.', +'The source IP address is invalid.' => 'Het bron IP-adres is ongeldig.', +'Utilization on' => 'Verbruik op', +'Verbose' => 'Uitgebreid:', +'WakeOnLan' => 'Wake On Lan', +'a ca certificate with this name already exists' => 'Een CA-certificaat met deze naam bestaat al.', +'a connection with this common name already exists' => 'Een verbinding met deze algemene naam bestaat al.', +'a connection with this name already exists' => 'Een verbinding met deze naam bestaat al.', +'abort' => 'afbreken', +'access allowed' => 'Toegang toegestaan van:', +'access refused with this oinkcode' => 'Toegang geweigerd met deze Oink code.', +'accounting' => 'Boekhouding', +'accounting user nonpdc' => 'Boekhouding - niet-PDC Modus', +'accounting user pdc' => 'Boekhouding - PDC-Modus', +'action' => 'Actie', +'activate' => 'Activeren', +'activate user' => 'Activeer gebruiker', +'active' => 'Actief', +'add' => 'Toevoegen', +'add a host' => 'Voeg een host toe:', +'add a new rule' => 'Voeg een nieuwe regel toe:', +'add cron' => 'Voeg een cronjob toe', +'add device' => 'Voeg een apparaat toe', +'add network' => 'Voeg een netwerk toe', +'add new alias' => 'Voeg een nieuwe alias toe:', +'add new lease' => 'Voeg een nieuwe vaste-lease toe', +'add new ovpn' => 'OpenVPN Instellingen:', +'add printer' => 'Voeg een printer toe', +'add service' => 'Voeg een dienst toe', +'add share' => 'Voeg een gedeelde schijf toe', +'add subclass' => 'Voeg een sub-klasse toe', +'add user' => 'Voeg gebruiker toe', +'add xtaccess' => 'Voeg een externe toegang toe', +'add-route' => 'Extra push route', +'added from dhcp lease list' => 'Toegevoegd van DHCP lease-lijst.', +'admin user password has been changed' => 'Beheerderswachtwoord is gewijzigd.', +'admin users' => 'Gebruiker met beheerdersrechten.', +'administrator user password' => 'Beheerderswachtwoord:', +'adsl settings' => 'ADSL instellingen', +'advanced' => 'Geavanceerd', +'advanced server' => 'Geavanceerde server opties', +'advproxy AUTH always required' => 'Authenticatie vereist voor ongelimiteerde bronadressen.', +'advproxy AUTH auth cache TTL' => 'Authenticatie cache TTL (in minuten)', +'advproxy AUTH global settings' => 'Globale authenticatie instellingen', +'advproxy AUTH limit of IP addresses' => 'Limiet van aantal IP-adressen per gebruiker', +'advproxy AUTH method' => 'Authenticatiemethode', +'advproxy AUTH method ident' => 'identd', +'advproxy AUTH method ldap' => 'LDAP', +'advproxy AUTH method ncsa' => 'Lokaal', +'advproxy AUTH method none' => 'Geen', +'advproxy AUTH method ntlm' => 'Windows', +'advproxy AUTH method radius' => 'RADIUS', +'advproxy AUTH no auth' => 'Domeinen zonder authenticatie (een per regel)', +'advproxy AUTH number of auth processes' => 'Aantal authenticatieprocessen', +'advproxy AUTH realm' => 'Authenticatie domeinmelding', +'advproxy AUTH user IP cache TTL' => 'Gebruiker/IP cache TTL (in minuten)', +'advproxy IDENT authorized users' => 'Geautoriseerde gebruikers (een per regel)', +'advproxy IDENT aware hosts' => 'Hosts die Ident ondersteunen (een per regel)', +'advproxy IDENT identd settings' => 'Algemene identd instellingen', +'advproxy IDENT required' => 'Vereist identd authenticatie', +'advproxy IDENT timeout' => 'Ident time-out (in seconden)', +'advproxy IDENT unauthorized users' => 'Ongeautoriseerde gebruikers (een per regel)', +'advproxy IDENT use negative access list' => 'Gebruik negatieve toegangscontrole', +'advproxy IDENT use positive access list' => 'Gebruik positieve toegangscontrole', +'advproxy IDENT user based access restrictions' => 'Gebruikersgebaseerde toegangsrestricties', +'advproxy LDAP ADS' => 'Active Directory', +'advproxy LDAP NDS' => 'Novell eDirectory', +'advproxy LDAP V2' => 'LDAP versie 2', +'advproxy LDAP V3' => 'LDAP versie 3', +'advproxy LDAP auth' => 'LDAP authenticatie', +'advproxy LDAP basedn' => 'Base DN', +'advproxy LDAP binddn password' => 'Bind DN wachtwoord', +'advproxy LDAP binddn settings' => 'Bind DN instellingen', +'advproxy LDAP binddn username' => 'Bind DN gebruikersnaam', +'advproxy LDAP common settings' => 'Algemene LDAP instellingen', +'advproxy LDAP group access control' => 'Groepsgebaseerde toegangscontrole', +'advproxy LDAP group required' => 'Vereiste groep', +'advproxy LDAP port' => 'Poort', +'advproxy LDAP server' => 'LDAP Server', +'advproxy LDAP type' => 'LDAP type', +'advproxy MIME block types' => ' Blokkeer deze MIME types (een per regel)', +'advproxy MIME filter' => 'MIME type filter', +'advproxy NCSA auth' => 'Lokale gebruiker authenticatie', +'advproxy NCSA create user' => 'Aanmaken gebruiker', +'advproxy NCSA group' => 'Groep', +'advproxy NCSA group membership' => 'Groepslidmaatschap', +'advproxy NCSA grp disabled' => 'Uitgeschakeld', +'advproxy NCSA grp extended' => 'Uitgebreid', +'advproxy NCSA grp standard' => 'Standaard', +'advproxy NCSA min password length' => 'Minimale wachtwoordlengte', +'advproxy NCSA no accounts' => 'Geen gebruikersaccounts beschikbaar', +'advproxy NCSA password' => 'Wachtwoord', +'advproxy NCSA password confirm' => 'Wachtwoord (bevestig)', +'advproxy NCSA redirector bypass' => 'Omzeil omleidingen voor leden van de groep', +'advproxy NCSA update user' => 'Bijwerken gebruiker', +'advproxy NCSA user accounts' => 'Gebruikersaccounts', +'advproxy NCSA user management' => 'Gebruikersbeheer', +'advproxy NCSA username' => 'Gebruikersnaam', +'advproxy NTLM BDC hostname' => 'BDC hostnaam', +'advproxy NTLM PDC hostname' => 'PDC hostnaam', +'advproxy NTLM auth' => 'Windows NT/2003 authenticatie', +'advproxy NTLM auth mode' => 'Authenticatie modus', +'advproxy NTLM authorized users' => 'Geautoriseerde domeingebruikers (een per regel)', +'advproxy NTLM domain' => 'Domein', +'advproxy NTLM domain settings' => 'Algemene domeininstellingen', +'advproxy NTLM unauthorized users' => 'Ongeautoriseerde domeingebruikers (een per regel)', +'advproxy NTLM use integrated auth' => 'Gebruik Windows geïntegreerde authenticatie', +'advproxy NTLM use negative access list' => 'Gebruik negatieve toegangscontrole', +'advproxy NTLM use positive access list' => 'Gebruik positieve toegangscontrole', +'advproxy NTLM user based access restrictions' => 'Gebruikersgebaseerde toegangsrestrictie', +'advproxy RADIUS authorized users' => 'Geautoriseerde gebruikers (een per regel)', +'advproxy RADIUS identifier' => 'Identificatie', +'advproxy RADIUS port' => 'Poort', +'advproxy RADIUS radius settings' => 'Algemene RADIUS instellingen', +'advproxy RADIUS secret' => 'Gedeeld geheim', +'advproxy RADIUS server' => 'RADIUS Server', +'advproxy RADIUS unauthorized users' => 'Ongeautoriseerde gebruikers (een per regel)', +'advproxy RADIUS use negative access list' => 'Gebruik negatieve toegangscontrole', +'advproxy RADIUS use positive access list' => 'Gebruik positieve toegangscontrole', +'advproxy RADIUS user based access restrictions' => 'Gebruikersgebaseerde toegangsrestrictie', +'advproxy UA enable filter' => 'Gebruik browsercontrole', +'advproxy access' => 'Toegang', +'advproxy admin mail' => 'Cache beheerder e-mail', +'advproxy advanced proxy' => 'Geavanceerde Proxy', +'advproxy advanced web proxy' => 'Geavanceerde Web Proxy', +'advproxy advanced web proxy configuration' => 'Geavanceerde web proxy configuratie', +'advproxy allowed subnets' => 'Toegestane subnets (een per regel)', +'advproxy allowed web browsers' => 'Toegestane clients voor web toegang', +'advproxy back to main page' => 'Terug naar hoofdpagina', +'advproxy banned ip clients' => 'Verboden IP-adressen (een per regel)', +'advproxy banned mac clients' => 'Verboden MAC-adressen (een per regel)', +'advproxy cache management' => 'Cache beheer', +'advproxy cache replacement policy' => 'Cache vervangingsbeleid', +'advproxy chgwebpwd ERROR' => 'F O U T :', +'advproxy chgwebpwd SUCCESS' => 'S U C C E S V O L :', +'advproxy chgwebpwd change password' => 'Wijzig wachtwoord', +'advproxy chgwebpwd change web password' => 'W i j z i g w e b t o e g a n g w a c h t w o o r d', +'advproxy chgwebpwd new password' => 'Nieuw wachtwoord', +'advproxy chgwebpwd new password confirm' => 'Nieuw wachtwoord (bevestig)', +'advproxy chgwebpwd old password' => 'Huidig wachtwoord', +'advproxy chgwebpwd username' => 'Gebruikersnaam', +'advproxy classroom extensions' => 'Klaslokaal uitbreidingen', +'advproxy clear cache' => 'Cache opschonen', +'advproxy client IP forwarding' => 'Client IP-adres doorsturen', +'advproxy common settings' => 'Algemene instellingen', +'advproxy content based throttling' => 'Gebruik bandbreedtebeperking op basis van inhoud', +'advproxy cre disabled' => 'De beheerinterface is uitgeschakeld door de beheerder', +'advproxy cre group definitions' => 'Klaslokaal groepsdefinities', +'advproxy cre supervisors' => 'Supervisor IP-adressen (een per regel)', +'advproxy destination ports' => 'Bestemmingspoorten', +'advproxy download throttling' => 'Downloadbeperkingen', +'advproxy enabled' => 'Ingeschakeld', +'advproxy enabled on' => 'Ingeschakeld op', +'advproxy errmsg acl cannot be empty' => 'De toegangscontrolelijst kan niet leeg zijn', +'advproxy errmsg auth cache ttl' => 'Ongeldige waarde voor authenticatie cache TTL', +'advproxy errmsg auth children' => 'Ongeldig aantal authenticatieprocessen', +'advproxy errmsg auth ipcache may not be null' => 'Authenticatie cache mag niet 0 zijn als IP-adres beperkingen gebruikt worden', +'advproxy errmsg auth ipcache ttl' => 'Ongeldige waarde voor gebruiker/IP cache TTL', +'advproxy errmsg cache' => 'De RAM cache-grootte is groter dan de harddisk cache-grootte:', +'advproxy errmsg change fail' => 'Wachtwoord kon niet worden gewijzigd', +'advproxy errmsg change success' => 'Wachtwoord voor webtoegang succesvol gewijzigd', +'advproxy errmsg hdd cache size' => 'Ongeldige waarde voor harddisk cache-grootte (min 10 MB vereist)', +'advproxy errmsg ident timeout' => 'Ongeldige ident time-out', +'advproxy errmsg invalid bdc' => 'Ongeldige hostnaam voor back-up domeincontroller', +'advproxy errmsg invalid destination port' => 'Ongeldige bestemmingspoort', +'advproxy errmsg invalid ip or mask' => 'Ongeldig IP-adres of netwerkmasker', +'advproxy errmsg invalid mac' => 'Ongeldig MAC-adres', +'advproxy errmsg invalid pdc' => 'Ongeldige hostnaam voor primaire domeincontroller', +'advproxy errmsg invalid proxy port' => 'Ongeldige proxy poort', +'advproxy errmsg invalid upstream proxy' => 'Ongeldig upstream proxy IP-adres', +'advproxy errmsg invalid upstream proxy username or password setting' => 'Ongeldige upstream proxy gebruikersnaam of wachtwoord instelling', +'advproxy errmsg invalid user' => 'Gebruikersnaam bestaat niet', +'advproxy errmsg ldap base dn' => 'LDAP base DN vereist', +'advproxy errmsg ldap bind dn' => 'LDAP bind DN gebruikersnaam en wachtwoord zijn vereist', +'advproxy errmsg ldap port' => 'Ongeldig LDAP poortnummer', +'advproxy errmsg ldap server' => 'Ongeldig IP-adres voor LDAP Server', +'advproxy errmsg max userip' => 'Ongeldig aantal IP-adressen per gebruiker', +'advproxy errmsg mem cache size' => 'Ongeldige waarde voor de geheugen cache-grootte', +'advproxy errmsg no browser' => 'Tenminste één browser of client moet geselecteerd worden voor webtoegang', +'advproxy errmsg no password' => 'Wachtwoord mag niet leeg zijn', +'advproxy errmsg no username' => 'Gebruikersnaam mag niet leeg zijn', +'advproxy errmsg non-transparent proxy required' => 'Web proxy moet in niet-transparante modus draaien voor authenticatie', +'advproxy errmsg ntlm domain' => 'Windows domeinnaam vereist', +'advproxy errmsg ntlm pdc' => 'Hostnaam voor primaire domeincontroller vereist', +'advproxy errmsg password incorrect' => 'Wachtwoord onjuist', +'advproxy errmsg password length' => 'Ongeldige waarde voor wachtwoordlengte', +'advproxy errmsg password length 1' => 'Wachtwoord moet tenminste ', +'advproxy errmsg password length 2' => ' tekens bevatten', +'advproxy errmsg passwords different' => 'Wachtwoorden zijn niet gelijk', +'advproxy errmsg radius port' => 'Ongeldig RADIUS poortnummer', +'advproxy errmsg radius secret' => 'RADIUS gedeeld geheim vereist', +'advproxy errmsg radius server' => 'Ongeldig IP-adres voor RADIUS server', +'advproxy errmsg time restriction' => 'Ongeldige tijdsbeperking', +'advproxy error design' => 'Opmaak foutmeldingen', +'advproxy error language' => 'Taal foutmeldingen', +'advproxy fake referer' => 'Nepverwijzing die wordt gestuurd naar externe sites', +'advproxy fake useragent' => 'Nep useragent die wordt gestuurd naar externe sites', +'advproxy friday' => 'Vri', +'advproxy from' => 'Van', +'advproxy hdd cache size' => 'Harddisk cache-grootte (MB)', +'advproxy invalid num of children' => 'Ongeldig aantal filterprocessen', +'advproxy log enabled' => 'Log ingeschakeld', +'advproxy log query' => 'Log zoektermen', +'advproxy log settings' => 'Log instellingen', +'advproxy log useragent' => 'Log useragents', +'advproxy max download size' => 'Max. downloadgrootte (KB)', +'advproxy max size' => 'Max. objectgrootte (KB)', +'advproxy max upload size' => 'Max. uploadgrootte (KB)', +'advproxy memory replacement policy' => 'Geheugen vervangingsbeleid', +'advproxy min size' => 'Min. objectgrootte (KB)', +'advproxy mode allow' => 'sta toe', +'advproxy mode deny' => 'sta niet toe', +'advproxy monday' => 'Maa', +'advproxy network based access' => 'Netwerkgebaseerde toegangscontrole', +'advproxy no cache sites' => 'Cache deze domeinen niet (een per regel)', +'advproxy no clients defined' => 'Geen clients gedefinieerd', +'advproxy no connection auth' => 'Geen verbindingsgerichte authenticatie doorsturen', +'advproxy no cre groups' => 'Er zijn geen toegangsgroepen beschikbaar', +'advproxy no internal proxy on blue' => 'Schakel interne proxytoegang uit van BLAUW naar andere subnetten', +'advproxy no internal proxy on green' => 'Schakel interne proxytoegang uit naar GROEN vanaf andere subnetten', +'advproxy number of L1 dirs' => 'Aantal nivo-1 subdirectory's', +'advproxy off' => 'Proxy uit', +'advproxy offline mode' => 'Schakel offline modus in', +'advproxy on' => 'Proxy aan', +'advproxy privacy' => 'Privacy', +'advproxy proxy port' => 'Proxy poort', +'advproxy ram cache size' => 'Geheugen cache-grootte (MB)', +'advproxy redirector children' => 'Aantal filterprocessen', +'advproxy reset' => 'Reset', +'advproxy saturday' => 'Zat', +'advproxy save and restart' => 'Opslaan en herstarten', +'advproxy squid version' => 'Squid cache versie', +'advproxy squidclamav' => 'SquidClamav', +'advproxy ssadvanced proxy' => 'geavanceerde proxy', +'advproxy ssl ports' => 'Toegestane SSL poorten (een per regel)', +'advproxy standard' => 'Standaard', +'advproxy standard ports' => 'Toegestane standaard poorten (een per regel)', +'advproxy sunday' => 'Zon', +'advproxy supervisor password' => 'Beheerderswachtwoord', +'advproxy suppress version' => 'Onderdruk versie-informatie', +'advproxy throttle binary' => 'Binaire bestanden', +'advproxy throttle dskimg' => 'CD images', +'advproxy throttle mmedia' => 'Multimedia', +'advproxy throttling per host on' => 'Limiet per host op', +'advproxy throttling total on' => 'Overall limiet op', +'advproxy throttling unlimited' => 'ongelimiteerd', +'advproxy thursday' => 'Don', +'advproxy time restrictions' => 'Tijdrestricties', +'advproxy to' => 'Tot', +'advproxy transfer limits' => 'Transfer limieten', +'advproxy transparent on' => 'Transparant op', +'advproxy tuesday' => 'Din', +'advproxy unknown' => 'Onbekend', +'advproxy unrestricted ip clients' => 'Onbeperkte IP-adressen (een per regel)', +'advproxy unrestricted mac clients' => 'Onbeperkte MAC-adressen (een per regel)', +'advproxy update accelerator' => 'Update versneller', +'advproxy update information' => 'Er is een geÃŒpdatete versie beschikbaar. Bezoek <a href="http://www.advproxy.net" target="_blank">http://www.advproxy.net</a> voor meer informatie.', +'advproxy update notification' => 'Update notificatie!', +'advproxy upstream password' => 'Upstream wachtwoord', +'advproxy upstream proxy' => 'Upstream proxy', +'advproxy upstream proxy host:port' => 'Upstream proxy (host:poort)', +'advproxy upstream username' => 'Upstream gebruikersnaam', +'advproxy url filter' => 'URL filter', +'advproxy username forwarding' => 'Gebruikersnaam doorsturen', +'advproxy via forwarding' => 'Proxy-adres doorsturen', +'advproxy visible hostname' => 'Zichtbare hostnaam', +'advproxy web browser' => 'Webbrowser', +'advproxy wednesday' => 'Woe', +'again' => 'Nogmaals:', +'aktiv' => 'Actief', +'album' => 'Album', +'alcatelusb help' => 'Om gebruik te kunnen maken van de SpeedTouch 330 of SpeedTouch USB modem moet u eerst de firmware naar uw IPFire machine uploaden. U kunt de <b>Embedded Firmware</b> voor de SpeedTouch 330 downloaden van speedtouch.com. Pak het uit en upload het juiste bestand naar uw modem: KQD6_3.xxx als Rev<4 of ZZZL_3.xxx, voor Rev=4 gebruik het formulier hieronder.', +'alcatelusb upload' => 'Upload Speedtouch USB firmware', +'alias ip' => 'Alias IP', +'aliases' => 'Aliassen', +'aliases not active' => 'Aliassen zullen niet worden geactiveerd tenzij uw RODE interface STATISCH is.', +'all' => 'Alle', +'all interfaces' => 'Alle Interfaces', +'all services' => 'Alle Diensten', +'all updates installed' => 'Alle updates zijn geinstalleerd', +'allmsg' => 'toon alles', +'alt dialup' => 'Inbellen', +'alt home' => 'Home', +'alt information' => 'Informatie', +'alt logs' => 'Logs', +'alt ovpn' => 'OpenVPN', +'alt proxy' => 'Proxy', +'alt services' => 'Diensten', +'alt system' => 'Systeem', +'alt vpn' => 'VPN's', +'and' => 'En', +'ansi t1.483' => 'WORDT VERWIJDERD', +'apcupsd' => 'APC-UPS status', +'apply' => 'Nu toepassen', +'april' => 'April', +'archive not exist' => 'Configuratie archief bestaat niet', +'are you sure' => 'Weet u het zeker?', +'arp table entries' => 'ARP Tabelingangen:', +'artist' => 'Artiest', +'attemps' => 'Pogingen', +'attention' => 'LET OP', +'august' => 'Augustus', +'authentication' => 'Authenticatie:', +'automatic' => 'Automatisch', +'available updates' => 'Beschikbare updates:', +'average' => 'Gemiddeld', +'avoid dod' => 'Gebruik deze optie niet met inbellen op afroep! Wordt voornamelijk gebruikt als IPFire achter een router staat. Uw RODE IP moet dan binnen het bereik vallen van een van de drie gereserveerde netwerken, bijv. 10/8, 172.16/12, 192.168/16', +'back' => 'TERUG', +'backup' => 'Back-up', +'backup archive' => 'Back-up bestand (.dat)', +'backup clear archive' => 'Opschonen Back-up bestand (.gz)', +'backup config floppy' => 'Back-up configuratie - Floppy Disk', +'backup configuration' => 'Back-up configuratie:', +'backup erase key' => 'Wis sleutel', +'backup explain key' => 'Back-ups zijn gecodeerd m.b.v. een sleutel. Om illegale manipulatie te voorkomen, zal IPFire alleen back-ups terugzetten die zijn gecodeerd met de sleutel die u hier opgeeft. Er zijn drie opties beschikbaar', +'backup explain key li1' => 'Laat IPFire een sleutel voor u aanmaken.', +'backup explain key li2' => 'Importeer een opgeslagen sleutel (mogelijk beveiligd met wachtwoord).', +'backup explain key li3' => 'Extraheer een sleutel uit een niet-gecodeerde 1.4.10 back-up.', +'backup explain key no1' => 'U moet deze sleutel bewaren als u van plan bent om nieuwe machines terug te zetten, IPFire accepteert slechts eenmaal het aanmaken/importeren van een sleutel', +'backup explain key no2' => 'oude floppy back-ups zijn niet te gebruiken met deze sleutel.', +'backup export key' => 'Exporteer sleutel', +'backup extract key' => 'Extraheer sleutel', +'backup from' => 'Back-up van', +'backup generate key' => 'Genereer sleutel', +'backup import dat file' => 'Importeer een back-up (.dat) bestand', +'backup import key' => 'Importeer sleutel', +'backup key' => 'Back-up encryptiesleutel', +'backup key file' => 'Back-up sleutelbestand', +'backup key info' => 'IPFire beperkt de toegang tot de back-upsleutel, dus u moet het root wachtwoord kennen. U heeft de mogelijkheid om deze sleutel buiten IPFire te beveiligen met een wachtwoord.', +'backup media info' => 'Floppy's en/of ongeformateerde media kunnen vreemde partitie-groottes weergeven. In dit geval selecteert u het gehele apparaat. Vergeet niet de harddisk te ontkoppelen alvorens het apparaat te verwijderen. Let op: floppy's die hier worden aangemaakt kunnen niet worden gebruikt met het IPFire installatieprogramma!', +'backup missing key' => 'De back-up sleutel is nodig om een set te herstellen', +'backup password' => 'Back-up wachtwoord', +'backup protect key password' => 'Back-up sleutelwachtwoord', +'backup sets' => 'Back-up sets', +'backup to floppy' => 'Back-up naar floppy', +'backupaddon' => 'Back-up toevoeging', +'backupprofile' => 'In geval het opnieuw verbinden mislukt, schakel dan over naar profiel', +'backups' => 'back-ups', +'backupwarning' => 'Zet a.u.b. eerst uw hoofdback-ups terug en daarna de toevoegde back-ups. Gebruik de originele bestandsnaam die u gebruikt heeft voor de download.', +'bad characters in' => 'Ongeldige tekens in ', +'bad characters in script field' => 'Ongeldige tekens in scriptveld', +'bad characters in the telephone number field' => 'Ongeldige tekens in telefoonnummerveld', +'bad destination range' => 'De bestemmingspoort heeft een eerste waarde die groter dan of gelijk is aan de tweede waarde.', +'bad ignore filter' => 'Ongeldig negeer-filter:', +'bad return code' => 'Helper-programma gaf een foutcode terug', +'bad source range' => 'De bronpoort heeft een eerste waarde die groter dan of gelijk is aan de tweede waarde', +'bandwidth usage' => 'bandbreedtegebruik (extern)', +'bandwitherror' => 'U kunt de bandbreedte-instellingen niet wijzigen als QoS aanstaat. Zet QoS eerst uit.<p>', +'bandwithsettings' => 'Bandbreedte-instellingen', +'basic options' => 'Basis opties', +'beep when ppp connects or disconnects' => 'Geef pieptoon als IPFire verbinding maakt of verbreekt.', +'behind a proxy' => 'Achter een proxy:', +'bewan adsl pci st' => 'WORDT VERWIJDERD', +'bewan adsl usb' => 'WORDT VERWIJDERD', +'bitrate' => 'Bitsnelheid', +'bleeding rules' => 'Nieuwste Snort regels', +'blue' => 'BLAUW', +'blue access' => 'Blauwe toegang', +'blue access use hint' => 'U moet een MAC-adres of een IP-adres invoeren voor een apparaat. U kunt ook beide invoeren.', +'blue interface' => 'Blauwe Interface', +'broadcast' => 'Broadcast', +'broken pipe' => 'Broken pipe', +'buffered memory' => 'Gebufferd geheugen', +'buffers' => 'buffers', +'bytes per second' => 'Bytes per seconde', +'bytes received' => 'Bytes ontvangen', +'bytes sent' => 'Bytes verzonden', +'ca certificate' => 'CA Certificaat', +'ca name' => 'CA naam', +'cache management' => 'Cache beheer', +'cache size' => 'Cache-grootte (MB):', +'cached' => 'gecached', +'cached memory' => 'Gecached geheugen ', +'cached swap' => 'Gecached Swap', +'calamaris available reports' => 'Beschikbare rapporten', +'calamaris byte unit' => 'Byte unit', +'calamaris create report' => 'Aanmaken rapport', +'calamaris enable content report' => 'Gebruik content rapport', +'calamaris enable distribution histogram' => 'Gebruik distributie histogram', +'calamaris enable domain report' => 'Gebruik domein rapport', +'calamaris enable performance report' => 'Gebruik performance rapport', +'calamaris enable requester report' => 'Gebruik aanvrager rapport', +'calamaris enable verbose reporting' => 'Gebruik uitgebreide rapportage', +'calamaris high' => 'hoog', +'calamaris histogram resolution' => 'Histogram resolutie', +'calamaris low' => 'laag', +'calamaris medium' => 'gemiddeld', +'calamaris no reports available' => 'Geen rapporten beschikbaar', +'calamaris none' => 'geen', +'calamaris number of content types' => 'Aantal content types', +'calamaris number of domains' => 'Aantal domeinen', +'calamaris number of requested urls' => 'Aantal gevraagde URL's', +'calamaris number of requesting hosts' => 'Aantal aanvragen hosts', +'calamaris performance options' => 'Performance opties', +'calamaris proxy reports' => 'Proxy Rapporten', +'calamaris refresh list' => 'Ververs lijst', +'calamaris report interval (in minutes)' => 'Rapportinterval (in minuten)', +'calamaris report options' => 'Rapportopties', +'calamaris report period' => 'Rapportage periode', +'calamaris run as background task' => 'Draai als achtergrond taak', +'calamaris show usernames' => 'Toon gebruikersnamen', +'calamaris skip archived logfiles' => 'Gearchiveerde logbestanden overslaan', +'calamaris unlimited' => 'ongelimiteerd', +'calamaris view' => 'Bekijk', +'calamaris view report' => 'Bekijk rapport', +'calc traffic all x minutes' => 'Bereken verkeer van alle x minuten', +'cancel' => 'Annuleren', +'cancel-adv-options' => 'Annuleren', +'cannot enable both nat traversal and compression' => 'Kan niet zowel NAT traversal als compressie inschakelen.', +'cannot enable ntp without specifying primary' => 'Kan NTP niet gebruiken zonder primaire server.', +'cannot specify secondary dns without specifying primary' => 'Kan geen tweede DNS server specificeren zonder primaire server.', +'cannot specify secondary ntp without specifying primary' => 'Kan geen tweede NTP server specificeren zonder primaire server.', +'cannot specify secondary wins without specifying primary' => 'Kan geen tweede WINS server specificeren zonder primaire server', +'cant change certificates' => 'Kan certificaten niet veranderen.', +'cant enable xtaccess' => 'De bijbehorende port-doorstuur regel is uitgeschakeld, daarom kunt u de externe toegang voor deze regel niet inschakelen.', +'cant start openssl' => 'Kan OpenSSL niet starten', +'caps all' => 'ALLE', +'capsclosed' => 'VERBROKEN', +'capsinactive' => 'INACTIEF', +'capsopen' => 'VERBONDEN', +'capswarning' => 'WAARSCHUWING', +'caption' => 'Onderschrift', +'ccd add' => 'Voeg netwerk toe', +'ccd choose net' => 'Kies netwerk', +'ccd client options' => 'Geavanceerde client opties', +'ccd clientip' => 'Hostadres', +'ccd dynrange' => 'Dynamische OpenVPN IP-adrespool', +'ccd err blue' => 'Dit is het BLAUWE subnet.', +'ccd err green' => 'Dit is het GROENE subnet.', +'ccd err hostinnet' => 'U kunt dit netwerk niet verwijderen zolang het nog clients bevat.', +'ccd err inuse' => 'Al in gebruik door een andere client.', +'ccd err invalidname' => 'Ongeldige naam. Toegestane tekens zijn A-Z, a-z, koppelteken en spatie.', +'ccd err invalidnet' => 'Ongeldig IP-adres. Formaat: 192.168.0.0/24 of 192.168.0.0/255.255.255.0.', +'ccd err iroute' => 'Netwerkadres voor route is ongeldig.', +'ccd err irouteexist' => 'Deze route is al in gebruik.', +'ccd err isipsecnet' => 'Het gegeven subnet-adres is al in gebruik door een IPsec netwerk.', +'ccd err isovpnnet' => 'Subnet-adres is al in gebruik voor OpenVPN Server.', +'ccd err issubnet' => 'Subnet-adres is al in gebruik.', +'ccd err name' => 'Kies een naam.', +'ccd err nameexist' => 'Naam bestaat al.', +'ccd err netadr' => 'Subnet-adres is ongeldig of bereik is te groot.', +'ccd err netadrexist' => 'Netwerk bestaat al.', +'ccd err orange' => 'Dit is het ORANJE subnet.', +'ccd err red' => 'Dit is het RODE subnet.', +'ccd err routeovpn' => 'Al in gebruik door OpenVPN server.', +'ccd err routeovpn2' => 'Al verstuurd van OpenVPN server.', +'ccd hint' => 'Op deze pagina kunt u statische netwerken definiëren vanwaar de roadwarrior clients vaste IP-adressen toegewezen kunnen krijgen.', +'ccd invalid' => 'Ongeldig.', +'ccd iroute' => 'IPFire heeft toegang tot deze netwerken aan de klant-site.', +'ccd iroutehint' => 'Attentie! Als u deze instellingen wijzigt, moet u de OpenVPN server herstarten om deze instellingen actief te laten worden!', +'ccd modify' => 'Wijzig netwerk', +'ccd name' => 'Naam', +'ccd net' => 'Statische IP-adrespools', +'ccd noaddnet' => 'U kunt alleen nieuwe statische netwerken toevoegen als de OpenVPN server is gestopt.', +'ccd none' => 'Geen', +'ccd routes' => 'Routering:', +'ccd subnet' => 'Subnet', +'ccd used' => 'Gebruikte adressen', +'cert' => 'Certificaat', +'certificate' => 'Certificaat', +'certificate authorities' => 'Certificaatinstanties', +'certificate does not have a valid ca associated with it' => 'Certificaat heeft geen geldig CA hiermee verbonden.', +'certificate file move failed' => 'Verplaatsen van certificaat bestand is mislukt', +'cfg restart' => 'Een herstart wordt voorgesteld nadat de configuratie-archieven zijn teruggeplaatst.', +'chain' => 'Keten', +'change passwords' => 'Wijzig wachtwoorden', +'change share' => 'Wijzig share-opties', +'check for net traffic update' => 'Controleer op Net-Traffic updates', +'check vpn lr' => 'Controle', +'choose config' => 'Kies configuratie', +'choose media' => 'Kies media', +'cipher' => 'Encryptie:', +'city' => 'Stad', +'class in use' => 'Deze klasse is al in gebruik.', +'clear cache' => 'Opschonen Cache', +'clear playlist' => 'Lege speellijst', +'clenabled' => 'Lever tijd aan het lokale netwerk', +'click to disable' => 'Ingeschakeld (klik om uit te schakelen)', +'click to enable' => 'Uitgeschakeld (klik om in te schakelen)', +'client' => 'Naam werkstation', +'clock has not been synchronized' => 'Klok is nog niet gesynchroniseerd.', +'clock last synchronized at' => 'Klok was voor het laatst gesynchroniseerd om', +'comment' => 'Omschrijving:', +'common name' => 'Algemene naam', +'community rules' => 'Emergingthreats.net community regels', +'comp-lzo' => 'LZO-Compressie:', +'compression' => 'Compressie:', +'computer to modem rate' => 'Computer naar modem rato:', +'concentrator name' => 'Concentrator naam:', +'confirmation' => 'bevestiging', +'connect' => 'OVPN Start / Verbind', +'connect the modem' => 'Verbind de modem', +'connect timeout' => 'Verbinding time-out:', +'connected' => 'Verbonden', +'connecting' => 'Verbinden...', +'connection' => 'Connectie', +'connection closed' => 'Niet verbonden...', +'connection debugging' => 'Connectie debugging', +'connection status and controlc' => 'Verbindingsstatus en controle:', +'connection tracking' => 'IPTables verbindingen volgen', +'connection type' => 'Verbindingstype', +'connection type is invalid' => 'Verbindingstype is ongeldig.', +'connections' => 'Verbindingen', +'connections are associated with this ca. deleting the ca will delete these connections as well.' => 'verbindingen zijn geassocieerd met deze CA. Als deze CA wordt verwijderd worden de verbindingen ook verwijderd.', +'connscheduler' => 'Verbinding taakplanner', +'core notice 1' => '<strong>Let op:</strong> Er is een core-update van', +'core notice 2' => 'naar', +'core notice 3' => 'beschikbaar.', +'could not be opened' => 'kan niet worden geopend.', +'could not connect to' => 'Kan niet verbinden', +'could not connect to www ipcop org' => 'Kan niet verbinden met www.ipfire.org', +'could not connect to www ipfire org' => 'Kan niet verbinden met www.ipfire.org', +'could not create directory' => 'kan directory niet aanmaken.', +'could not download latest patch list' => 'Kan laatste patchlijst niet downloaden (niet verbonden).', +'could not download latest updates' => 'Kan laatste updates niet downloaden.', +'could not download the available updates list' => 'Kan de update-lijst niet downloaden.', +'could not open available updates file' => 'Kan de update-lijst niet openen.', +'could not open installed updates file' => 'Kan het geïnstalleerde update-bestand niet openen.', +'could not open update information file' => 'Kan het update informatiebestand niet openen. Het update-bestand is beschadigd.', +'could not retrieve common name from certificate' => 'Kan de gemeenschappelijke naam van het certificaat niet bepalen.', +'country' => 'Land', +'cpu frequency per' => 'CPU frequentie per', +'cpu idle usage' => 'Idle CPU gebruik', +'cpu interrupt usage' => 'Interrupt CPU gebruik', +'cpu iowait usage' => 'CPU wacht op IO', +'cpu irq usage' => 'IRQ CPU gebruik', +'cpu nice usage' => 'Nice CPU gebruik', +'cpu steal usage' => 'Steal CPU gebruik', +'cpu system usage' => 'Systeem CPU gebruik', +'cpu usage per' => 'CPU gebruik per', +'cpu user usage' => 'Gebruikers CPU gebruik', +'create' => 'Aanmaken', +'create mask' => 'UNIX rechten voor nieuw aangemaakte bestanden', +'create new backup' => 'Maak een nieuwe back-up set aan', +'credits' => 'Credits', +'crl' => 'Certificaatintrekkingslijst', +'cron server' => 'CRON Server', +'current' => 'Huidig', +'current aliases' => 'Huidige aliassen:', +'current class' => 'Huidige klasse', +'current devices' => 'Huidige apparaten', +'current dhcp leases on blue' => 'Huidige DHCP leases op BLAUW', +'current dynamic leases' => 'Huidige dynamische leases', +'current fixed leases' => 'Huidige vaste leases', +'current hosts' => 'Huidige hosts:', +'current media' => 'Huidige media', +'current ovpn' => 'Actieve OVPN-Connectie:', +'current playlist' => 'Huidige speellijst', +'current profile' => 'Huidig profiel:', +'current rules' => 'Huidige regels:', +'custom networks' => 'Aangepaste netwerken', +'custom services' => 'Aangepaste Diensten', +'daily firewallhits' => 'dagelijkse firewalltreffers', +'dat without key' => 'Een gecodeerd archief kan niet worden teruggezet zonder sleutel.', +'date' => 'Datum', +'date not in logs' => 'Geen (of gedeeltelijke) log bestaat voor de gevraagde dag', +'day' => 'Dag', +'day after' => 'Volgende dag', +'day before' => 'Vorige dag', +'day-graph' => 'Dag', +'days' => 'dagen', +'dbfile' => 'Db bestand', +'ddns help dnsmadeeasy' => 'Voer uw ID in in het veld hostnaamveld (of een lijst met ID's gescheiden met een ;)', +'ddns help freedns' => 'In the fied username enter your connect string', +'ddns help plus' => '<b>+</b> marks a mandatory field', +'ddns hostname added' => 'Dynamische DNS hostnaam toegevoegd', +'ddns hostname modified' => 'Dynamische DNS hostnaam gewijzigd', +'ddns hostname removed' => 'Dynamische DNS hostnaam verwijderd', +'ddns minimize updates' => 'Minimaliseer updates: vóór de update, vergelijk het DNS IP-adres voor hostnaam "[host.]domein" met ROOD IP-adres.', +'ddns noip prefix' => 'Om no-ip in groepsmodus te gebruiken, zet <b>%</b> voor de hostnaam', +'deactivate' => 'deactiveer', +'deactivate user' => 'deactiveer gebruiker', +'debugme' => 'Nog niet geïmplementeerd', +'december' => 'December', +'deep scan directories' => 'Scan recursief', +'def lease time' => 'Standaard leasetijd', +'default lease time' => 'Standaard leasetijd (min.):', +'default networks' => 'Standaard netwerken', +'default renewal time' => 'Standaard vernieuwtijd', +'default services' => 'Standaard Diensten', +'defaultwarning' => 'WAARSCHUWING â Uw instellingen gaan verloren en worden vervangen door de standaard waarden.', +'delete' => 'Verwijderen', +'delete cron' => 'Verwijder cron-taak', +'delete pc' => 'Verwijder werkstation', +'delete share' => 'Verwijder share', +'delete user' => 'Verwijder gebruiker', +'demon login script' => 'Daemon inlogscript', +'deprecated fs warn' => 'Verouderd bestandssysteem! Nieuwere kernels ondersteunen dit niet meer. Back-up en formateer opnieuw!', +'description' => 'Omschrijving', +'dest ip and port' => 'Best. IP: Poort', +'destination' => 'Bestemming', +'destination ip' => 'Bestemming IP', +'destination ip bad' => 'Ongeldig bestemming-IP', +'destination ip or net' => 'Bestemming IP of -net', +'destination net' => 'Bestemmingsnet', +'destination port' => 'Bestemmingspoort', +'destination port numbers' => 'Bestemmingspoort moet een geldig poortnummer of poortreeks zijn.', +'destination port overlaps' => 'Bestemming-poortreeks overlapt een bestaande poortreeks.', +'detail level' => 'Detailniveau', +'device' => 'Apparaat', +'devices on blue' => 'Apparaten op BLAUW', +'dhcp advopt add' => 'Voeg een DHCP optie toe', +'dhcp advopt added' => 'DHCP optie toegevoegd', +'dhcp advopt blank value' => 'DHCP optiewaarde kan niet leeg zijn.', +'dhcp advopt custom definition' => 'Uw eigen optie definitie', +'dhcp advopt definition' => 'Definitie', +'dhcp advopt definition exists' => 'Deze definitie-optie bestaat al. U kunt het alleen wijzigen of verwijderen.', +'dhcp advopt edit' => 'Wijzig een DHCP optie', +'dhcp advopt help' => 'Toon optielijst', +'dhcp advopt list' => 'Extra DHCP opties', +'dhcp advopt modified' => 'DHCP optie aangepast', +'dhcp advopt name' => 'Optienaam', +'dhcp advopt removed' => 'DHCP optie verwijderd', +'dhcp advopt scope' => 'Optiescope', +'dhcp advopt scope global' => 'Globaal', +'dhcp advopt scope help' => 'Globale scope of beperkte scope voor geselecteerde interfaces.', +'dhcp advopt unknown' => 'DHCP optienaam niet herkend', +'dhcp advopt value' => 'Optiewaarde', +'dhcp allow bootp' => 'bootp clients toegestaan', +'dhcp base ip fixed lease' => 'Basis IP voor aanmaken van vaste leases', +'dhcp bootp pxe data' => 'Voer optionele bootp pxe data in voor deze vaste lease', +'dhcp configuration' => 'DHCP configuratie', +'dhcp create fixed leases' => 'Aanmaken vaste leases', +'dhcp fixed lease err1' => 'Voor een vaste lease moet u het MAC-adres of de hostnaam invoeren, of beide.', +'dhcp fixed lease help1' => 'IP-adressen mogen ook als FQDN worden ingevoerd', +'dhcp mode' => 'DHCP', +'dhcp server' => 'DHCP Server', +'dhcp server disabled' => 'DHCP server uitgeschakeld. Gestopt.', +'dhcp server disabled on blue interface' => 'DHCP server uitgeschakeld op de BLAUWE interface', +'dhcp server enabled' => 'DHCP server ingeschakeld. Herstarten.', +'dhcp server enabled on blue interface' => 'DHCP server ingeschakeld op de BLAUWE interface', +'dhcp-options' => 'DHCP push opties', +'dial' => 'Verbind', +'dial profile' => 'Verbind met profile', +'dial user password' => 'Inbel gebruikerswachtwoord:', +'dial user password has been changed' => 'Inbel gebruikerswachtwoord is gewijzigd.', +'dialing mode' => 'Inbelmodus:', +'dialup red not ppp' => 'Inbelprofielen kunnen alleen gebruikt worden als <b>ROOD</b> op <b>PPP Inbellen</b> staat.<BR>Controleer de netwerkinstellingen.', +'dialup settings' => 'Inbelinstellingen', +'directory mask' => 'UNIX directory rechten', +'directory writeable' => 'directory schrijfbaar', +'disabled' => 'uitgeschakeld', +'disconnect' => 'OVPN Stop / Verbreek', +'disconnects' => 'Verbreekt', +'disk access per' => 'Schijftoegang per', +'disk usage' => 'Schijfgebruik', +'display' => 'Scherm', +'display charset' => 'Scherm tekenset', +'display hostname in window title' => 'Toon hostnaam in venstertitel', +'display traffic at home' => 'Toon netwerkverkeer op startpagina', +'display webinterface effects' => 'Activeer effecten', +'dl client arch' => 'Download clientpakket (zip)', +'dmz' => 'DMZ', +'dmz pinhole configuration' => 'DMZ pinhole configuratie', +'dmz pinhole rule added' => 'DMZ pinhole regel toegevoegd; DMZ regel wordt herstart.', +'dmz pinhole rule removed' => 'DMZ pinhole regel verwijderd; DMZ wordt herstart', +'dmzpinholes for same net not necessary' => 'DMZ Pinholes zijn niet per se nodig voor hetzelfde net. Selecteer verschillende bron- of bestemmings-net.', +'dns address deleted' => 'Succesvol verwijderd!', +'dns address deleted txt' => 'De DNS-Server adressen zijn succesvol verwijderd.<br />U moet herstarten of opnieuw verbinden om de wijzigingen actief te laten worden!', +'dns address done' => 'De DNS-server adresinstellingen zullen worden opgeslagen.', +'dns address recon' => 'Probeert opnieuw te verbinden!', +'dns check failed' => 'DNS check mislukt', +'dns desc' => 'Als de rode interface de IP-adres informatie via DHCP ontvangt, zal de DNS server automatisch ingesteld worden. Hier kunt u de DNS instellingen wijzigen met uw eigen gegevens.', +'dns error 0' => 'De IP-adressen van de <strong>primaire</strong> DNS server is niet geldig, controleer uw invoer!<br />Het opgegeven <strong>secondaire</strong> DNS server adres is geldig.', +'dns error 01' => 'Het ingevoerde IP-adres van de <strong>primaire</strong> en <strong>secondaire</strong> DNS server zijn niet geldig, controleer uw invoer!', +'dns error 1' => 'Het IP-adres van de <strong>secondaire</strong> DNS server is niet geldig, controleer uw invoer!<br />Het ingevoerde <strong>primaire</strong> DNS server adres is geldig.', +'dns header' => 'Toekennen DNS server adressen alleen voor DHCP op rood', +'dns list' => 'Lijst van publieke DNS servers', +'dns menu' => 'Toekennen DNS server', +'dns new 0' => 'Nieuw <strong>primair</strong> DNS server IP:', +'dns new 1' => 'Nieuw <strong>secondair</strong> DNS server IP:', +'dns proxy server' => 'DNS Proxy Server', +'dns saved' => 'Succesvol opgeslagen!', +'dns saved txt' => 'De twee ingevoerde DNS serveradressen zijn succesvol opgeslagen.<br />U moet herstarten of opnieuw verbinden om de wijzigingen actief te laten worden!', +'dns server' => 'DNS Server', +'dns title' => 'Domein Naam Systeem', +'do not log this port list' => 'Negeer deze poorten voordat ze worden gelogd (vermindert loggrootte)', +'dod' => 'Inbellen op afroep', +'dod for dns' => 'Inbellen op afroep voor DNS:', +'dod not compatible with ddns' => 'Inkiezen op afroep compatibel met de dynamische DNS Diesten', +'dod waiting' => 'Inkiezen op afroep is wachtende', +'domain' => 'Domein', +'domain master' => 'Domein Master', +'domain name' => 'Domeinnaam', +'domain name suffix' => 'Domeinnaam toevoeging:', +'domain not set' => 'Domein niet ingesteld.', +'donation' => 'Donatie', +'donation-link' => 'https://www.paypal.com/en_US/GB/i/btn/btn_donateCC_LG.gif', +'donation-text' => '<strong>IPFire</strong> wordt ontwikkeld en onderhouden door vrijwilligers in hun vrije tijd. Om dit project draaiend te houden, zouden we het erg op prijs stellen als u een kleine donatie maakt.', +'done' => 'Doe het', +'dos charset' => 'DOS tekenset', +'down and up speed' => 'Voer uw down- en uploadsnelheid in<br /> en klik dan op <i>Opslaan</i>.', +'downlink speed' => 'Downlink snelheid (kbit/sec)', +'downlink std class' => 'downlink standaard klasse', +'download' => 'download', +'download ca certificate' => 'Download CA certificaat', +'download certificate' => 'Download certificaat', +'download host certificate' => 'Download host certificaat', +'download new ruleset' => 'Download nieuwe regelset', +'download pkcs12 file' => 'Download PKCS12 bestand', +'download root certificate' => 'Download root certificaat', +'dpd action' => 'Dead peer-detectie actie', +'driver' => 'Driver', +'drop input' => 'Log geblokkeerde input pakketten', +'drop newnotsyn' => 'Log geblokkeerde new-not-syn pakketten', +'drop output' => 'Log geblokkeerde output pakketten', +'drop portscan' => 'Log geblokkeerde poort-scan pakketten', +'drop proxy' => 'Blokkeer alle pakketten die niet zijn geadresseerd aan de proxy', +'drop samba' => 'Blokkeer alle Microsoft poorten 135,137,138,139,445,1025', +'drop wirelessforward' => 'Log geblokkeerde draadloze forward-pakketten', +'drop wirelessinput' => 'Log geblokkeerde draadloze input-pakketten', +'dst port' => 'Best. poort', +'dstprt range overlaps' => 'Bestemmingspoortreeks overlapt een al bestaande poort.', +'dstprt within existing' => 'Bestemmingspoort ligt binnen een al bestaande reeks.', +'duplicate ip' => 'Bestaand IP-adres ingevoerd', +'duplicate ip bold' => 'Bestaande adressen zijn in <b>vet</b>', +'duplicate mac' => 'Bestaand MAC-adres ingevoerd', +'duplicate name' => 'Deze naam wordt al gebruikt, kies a.u.b. een andere naam.', +'dyn dns source choice' => 'Dynamische DNS leverancier(s) zullen een IP-adres ontvangen voor deze IPFire van:', +'dynamic dns' => 'Dynamische DNS', +'dynamic dns client' => 'Dynamische DNS Client', +'e-mail address too long' => 'E-mailadres is te lang; het mag niet langer zijn dan 40 tekens.', +'eciadsl help' => 'Om het ECI ADSL modem te kunnen gebruiken moet u eerst het synch.bin bestand naar uw IPFire machine uploaden. Download het bestand van de ECIADSL website en upload dan het bestand <b>synch.bin</b> m.b.v. het formulier hieronder.', +'eciadsl upload' => 'Uploadt ECI ADSL synch.bin bestand', +'edit' => 'Wijzigen', +'edit a rule' => 'Wijzig een bestaande regel:', +'edit advanced settings when done' => 'Wijzig geavanceerde instellingen als u klaar bent.', +'edit an existing alias' => 'Wijzig een bestaande alias', +'edit an existing host' => 'Wijzig een bestaande host', +'edit an existing lease' => 'Wijzig een bestaande lease', +'edit device' => 'Wijzig apparaat', +'edit hosts' => 'Wijzig hosts', +'edit network' => 'Wijzig netwerk', +'edit printer' => 'Wijzig printer', +'edit service' => 'Wijzig service', +'edit share' => 'Wijzig share', +'editor' => 'Wijziger', +'eg' => 'bijv.:', +'email server can not be empty' => 'E-mailserver mag niet leeg zijn', +'emailreportlevel' => 'E-mailrapport detailniveau', +'empty' => 'Dit veld mag niet leeg worden gelaten', +'empty profile' => 'leeg', +'enable ignore filter' => 'Inschakelen negeer-filter', +'enable javascript' => 'Inschakelen javascript', +'enable wildcards' => 'Inschakelen wildcards:', +'enabled' => 'Ingeschakeld:', +'enabled on' => 'Ingeschakeld op', +'enabledtitle' => 'Ingeschakeld', +'encapsulation' => 'Inkapseling', +'encrypted' => 'Gecodeerd', +'end address' => 'Eindadres:', +'enter ack class' => 'Voer de ACK-klasse in <br /> en klik dan op <i>Opslaan</i>.', +'enter data' => 'Maak uw instellingen <br /> en klik dan op <i>Opslaan</i>.', +'err bk 1' => 'Fout bij aanmaken van archief', +'err bk 10 password' => 'Fout met het back-up wachtwoord', +'err bk 2 key' => 'Fout bij het aanmaken van een sleutelbestand', +'err bk 3 tar' => 'Fout bij het toevoegen van bestanden aan een archief', +'err bk 4 gz' => 'Fout bij het comprimeren van archief', +'err bk 5 encrypt' => 'Fout bij het coderen van archief', +'err rs 1' => 'Fout bij het terugzetten van archief', +'err rs 6 decrypt' => 'Fout bij het decoderen van archief', +'err rs 7 untartst' => 'Ongeldig gedecodeerd archief', +'err rs 8 untar' => 'Fout bij het uitpakken van archief', +'error config' => 'Kan /var/ipfire/ovpn/config/ZERINA.ovpn niet openen', +'error external access' => 'Kan /var/ipfire/xtaccess/config niet openen (externe toegang kon niet worden toegekend)', +'error messages' => 'Foutmeldingen:', +'esp encryption' => 'ESP Encryptie:', +'esp grouptype' => 'ESP Groeptype:', +'esp integrity' => 'ESP Integriteit:', +'esp keylife' => 'ESP Sleutel levensduur:', +'esp keylife should be between 1 and 24 hours' => 'ESP Sleutel levensduur moet tussen 1 en 24 uur liggen.', +'every' => 'Iedere', +'exampel' => 'voorbeeld', +'exclude logfiles' => 'Exclusief logbestanden', +'excluding buffers and cache' => '-/+ buffers/cache', +'expected' => 'Verwacht', +'expertoptions' => 'Expertopties', +'expires' => 'Verloopt', +'export' => 'Exporteren', +'exportkey' => 'Exporteer PSK', +'external access' => 'Externe toegang', +'external access configuration' => 'Externe toegangsconfiguratie', +'external access rule added' => 'Externe toegangsregel toegevoegd; herstarten van toegangscontroller', +'external access rule changed' => 'Externe toegangsregel gewijzigd; herstarten van toegangscontroller', +'external access rule removed' => ' Externe toegangsregel verwijderd; herstarten van toegangscontroller ', +'external aliases configuration' => 'Externe aliassenconfiguratie', +'extrahd' => 'Extra HD', +'extrahd because there is already a device mounted' => ', omdat er al een apparaat gekoppeld is', +'extrahd cant umount' => 'Kan niet ontkoppelen', +'extrahd detected drives' => 'gedetecteerde schijfstations', +'extrahd install or load driver' => 'Als uw apparaat hier niet tussen staat, dan moet u de driver installeren of laden.<br />Als u het apparaat kan zien maar geen partities, dan moet u er eerst een aanmaken.', +'extrahd maybe the device is in use' => '. Misschien is het apparaat in gebruik', +'extrahd to' => 'naar', +'extrahd to root' => 'naar root', +'extrahd unable to read' => 'Kan niet lezen', +'extrahd unable to write' => 'Kan niet schrijven', +'extrahd you cant mount' => 'U kan het niet aankoppelen', +'false classnumber' => 'Het klasse-nummer komt niet overeen met de interface.', +'false max bandwith' => 'Maximum bandbreedte is ongeldig.', +'false min bandwith' => 'Minimum bandbreedte is ongeldig.', +'february' => 'Februari', +'fetch ip from' => 'Bepaal het echte publieke IP-adres met behulp van een externe server', +'filename' => 'Bestandsnaam', +'filesystem full' => 'Bestandssysteem is vol', +'fireinfo ipfire version' => 'IPFire versie', +'fireinfo is disabled' => 'Fireinfo is uitgeschakeld', +'fireinfo is enabled' => 'Fireinfo is ingeschakeld', +'fireinfo is submitted' => 'Uw profiel is verzonden naar de fireinfo service.', +'fireinfo is submitted button' => 'Nee, ik wil mijn profiel niet langer meer verzenden', +'fireinfo kernel version' => 'Kernelversie', +'fireinfo not submitted' => 'Uw profiel is niet naar de pakfire service verzonden.', +'fireinfo not submitted button' => 'Ja, ik wil mijn profiel verzenden', +'fireinfo pakfire version' => 'Pakfire versie', +'fireinfo please enable' => 'Schakel a.u.b. de fireinfo service in.', +'fireinfo settings' => 'Fireinfo instellingen', +'fireinfo system version' => 'Systeemversies', +'fireinfo why descr1' => 'Het is zeer belangrijk voor ontwikkelaars van IPFire dat u dit inschakelt', +'fireinfo why descr2' => 'service. ', +'fireinfo why enable' => 'Waarom moet ik fireinfo inschakelen?', +'fireinfo why read more' => 'Lees meer over de redenen.', +'fireinfo your profile id' => 'Uw profiel ID', +'firewall' => 'Firewall', +'firewall graphs' => 'Firewallgrafieken', +'firewall hits' => 'Totaal aantal firewalltreffers voor', +'firewall hits per' => 'firewalltreffers per', +'firewall log' => 'Firewall log', +'firewall log viewer' => 'Firewall Log Viewer', +'firewall logs' => 'Firewall Logs', +'firewall logs ip' => 'Fw-Logdgrafieken (IP)', +'firewall logs port' => 'Fw-Loggrafieken (Poort)', +'firewallhits' => 'firewalltreffers', +'firmware' => 'Firmware', +'firmware upload' => 'Upload Firmware/Drivers', +'fixed ip lease added' => 'Vast IP-lease toegevoegd', +'fixed ip lease modified' => 'Vast IP-lease gewijzigd', +'fixed ip lease removed' => 'Vast IP-lease verwijderd', +'force update' => 'Forceer update', +'force user' => 'forceer alle nieuwe bestanden naar de gebruiker', +'forwarding rule added' => 'Forwarding regel toegevoegd; herstarten van forwarder', +'forwarding rule removed' => 'Forwarding regel verwijderd; herstarten van forwarder', +'forwarding rule updated' => 'Forwarding regel bijgewerkt; herstarten van forwarder', +'free' => 'Beschikbaar', +'free memory' => 'Beschikbaar geheugen ', +'free swap' => 'Beschikbare Swap', +'frequency' => 'Frequentie', +'friday' => 'Vrijdag', +'fritzdsl help' => 'Om een Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modem te kunnen gebruiken, moet u eerst een pakket naar uw IPFire machine sturen. Download de tarball die correspondeert met uw versie van de IPFire website en upload dan de gehele <b>fcdsl-(uw_versien).tgz</b> m.b.v. het formulier hieronder.', +'fritzdsl upload' => 'Upload Fritz!DSL driver', +'from' => 'Van', +'from email adr' => 'Van e-mailadres', +'from email pw' => 'Van e-mailwachtwoord', +'from email server' => 'Van e-mail server', +'from email user' => 'Van e-mail gebruiker', +'from warn email bad' => 'Het van e-mailadres is niet geldig', +'fw blue' => 'Firewallopties voor de BLAUWE interface', +'fw logging' => 'Firewall logging', +'g.dtm' => 'WORDT VERWIJDERD', +'g.lite' => 'WORDT VERWIJDERD', +'gateway' => 'Gateway', +'gateway ip' => 'Gateway IP', +'gen static key' => 'Genereer een statische sleutel', +'generate' => 'Genereer root/host certificaat', +'generate a certificate' => 'Genereer een certificaat:', +'generate iso' => 'Genereer ISO', +'generate root/host certificates' => 'Genereer root/host certificaten', +'generate tripwire keys and init' => 'genereer tripwire-sleutels en init', +'generatekeys' => 'Genereer sleutels', +'generatepolicy' => 'Genereer nieuw beleid', +'generatereport' => 'Genereer nieuw rapport', +'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Het genereren van de root- en hostcertificaten kan enige tijd duren. Een moment geduld alstublieft.', +'genkey' => 'Genereer PSK', +'genre' => 'Genre', +'global settings' => 'Globale instellingen', +'gpl i accept these terms and conditions' => 'Ik accepteer deze voorwaarden en condities.', +'gpl license agreement' => 'Licentieovereenkomst', +'gpl please read carefully the general public license and accept it below' => 'Lees alstublieft de General Public License aandachtig door en accepteer het hieronder', +'gpl unofficial translation of the general public license v3' => 'Onofficiële vertaling van de General Public License v3', +'graph' => 'Grafiek', +'graph per' => 'per', +'green' => 'GROEN', +'green interface' => 'Groene Interface', +'guaranteed bandwith' => 'Gegarandeerde bandbreedte', +'guardian alertfile' => 'Meldingenbestand', +'guardian configuration' => 'Guardian configuratie', +'guardian ignorefile' => 'Negeerbestand', +'guardian interface' => 'Interface', +'guardian logfile' => 'Logbestand', +'guardian timelimit' => 'Tijdlimiet', +'guest ok' => 'verleen gasten toegang', +'gui settings' => 'Gebruikersinterface', +'gz with key' => 'Alleen gecodeerde archieven kunnen worden teruggezet op deze machine.', +'hangup' => 'Verbreek', +'hangup string' => 'Ophangen:', +'harddisk temperature' => 'Harddisk temperatuur', +'harddisk temperature graphs' => 'hdd temperatuurgrafieken', +'hardware graphs' => 'Hardware grafieken', +'hdd temperature in' => 'Harddisk temperatuur in', +'help' => 'Help', +'high' => 'Hoog', +'high memory usage' => 'Verhoogd geheugengebruik', +'hint' => 'Hint:', +'holdoff' => 'Uitsteltijd (in seconden)', +'host' => 'Host', +'host allow' => 'lijst met toegestane hosts', +'host certificate' => 'Hostcertificaat', +'host configuration' => 'Hostconfiguratie', +'host deny' => 'lijst met geweigerde hosts', +'host ip' => 'Host IP-adres', +'host to net vpn' => 'Host-naar-Net Virtual Private Network (RoadWarrior)', +'hostname' => 'Hostnaam', +'hostname and domain already in use' => 'Hostnaam en domein zijn al in gebruik.', +'hostname cant be empty' => 'Hostnaam mag niet leeg zijn.', +'hostname not set' => 'Hostnaam niet opgegeven.', +'hosts config added' => 'Hosts configuratie toegevoegd', +'hosts config changed' => 'Hosts configuratie gewijzigd', +'hour' => 'Uur', +'hour-graph' => 'Uur', +'hours' => 'uren', +'hours2' => 'Uren', +'ibod for dual isdn only' => 'iBOD kan alleen gebruikt worden met Dual ISDN.', +'icmp selected but no type' => 'ICMP als protocol geselecteerd, maar er is geen ICMP type gespecificeerd.', +'icmp type' => 'ICMP Type', +'id' => 'ID', +'idle' => 'Idle', +'idle timeout' => 'Idle time-out (min; 0 om uit te schakelen):', +'idle timeout not set' => 'Idle time-out niet ingesteld.', +'ids log viewer' => 'IDS log viewer', +'ids logs' => 'IDS Logs', +'ids preprocessor' => 'IDS pre-processor', +'ids rules license' => 'Om de Sourcefire VRT Certified Rules te kunnen gebruiken, moet u zich registreren op', +'ids rules license1' => '.', +'ids rules license2' => 'Accepteer de licentie, activeer uw account door op link te klikken die naar u is gemaild. Ga dan naar', +'ids rules license3' => 'klik op de "Genereer code"-knop en kopieer de 40 tekens lange Oinkcode naar het veld hieronder.', +'ids rules update' => 'Snort regels bijwerken', +'iface' => 'Iface', +'ignore filter' => 'Negeerfilter', +'ike encryption' => 'IKE Encryptie:', +'ike grouptype' => 'IKE Groepstype:', +'ike integrity' => 'IKE Integriteit:', +'ike lifetime' => 'IKE Levensduur:', +'ike lifetime should be between 1 and 8 hours' => 'IKE levensduur moet tussen 1 en 8 uur liggen.', +'import' => 'Importeer', +'importkey' => 'Importeer PSK', +'in' => 'In', +'inactive' => 'inactief', +'include logfiles' => 'Inclusief logbestanden', +'incoming' => 'inkomend', +'incoming traffic in bytes per second' => 'Inkomend verkeer', +'incorrect password' => 'Onjuist wachtwoord', +'info' => 'Info', +'init string' => 'Initieer:', +'insert floppy' => 'Om een back-up naar floppy te maken, plaatst u een geformatteerde floppy in de drive en klik <i>back-up naar floppy</i> om de systeemconfiguratie op te slaan. Bekijk de resultaten om er zeker van te zijn dat de back-up succesvol is verlopen. Het kan even duren voordat deze opdracht is voltooid, dus even geduld a.u.b.<p>', +'insert removable device' => 'Plaats een verwisselbaar apparaat', +'install' => 'Installeren', +'install new update' => 'Installeer nieuwe update:', +'installed' => 'Geïnstalleerd', +'installed updates' => 'Geïnstalleerde updates:', +'instant update' => 'Directe update', +'interface' => 'Interface', +'interfaces' => 'Interfaces', +'internet' => 'INTERNET', +'intrusion detection' => 'Inbraakdetectie', +'intrusion detection system' => 'Inbraakdetectie systeem', +'intrusion detection system log viewer' => 'Inbraakdetectie systeem Log Viewer', +'intrusion detection system rules' => 'inbraakdetectie systeem regels', +'intrusion detection system2' => 'Inbraakdetectiesysteem:', +'invalid broadcast ip' => 'Ongeldig broadcast IP', +'invalid cache size' => 'Ongeldige cache grootte.', +'invalid characters found in pre-shared key' => 'Ongeldige tekens gevonden in de pre-shared sleutel.', +'invalid date entered' => 'Ongeldige datum ingevoerd.', +'invalid default lease time' => 'Ongeldige standaard leasetijd.', +'invalid domain name' => 'Ongeldige domeinnaam.', +'invalid downlink speed' => 'Ongeldige downlink snelheid.', +'invalid end address' => 'Ongeldig eind-adres.', +'invalid fixed ip address' => 'Ongeldig vast IP-adres', +'invalid fixed mac address' => 'Ongeldig vast MAC-adres', +'invalid hostname' => 'Ongeldige hostnaam.', +'invalid input' => 'Ongeldige invoer', +'invalid input for authentication method' => 'Ongeldige invoer voor authenticatiemethode.', +'invalid input for city' => 'Ongeldige invoer voor stad.', +'invalid input for country' => ' Ongeldige invoer voor land.', +'invalid input for department' => ' Ongeldige invoer voor afdeling.', +'invalid input for dhcp dns' => ' Ongeldige invoer voor DHCP DNS', +'invalid input for dhcp domain' => ' Ongeldige invoer voor DHCP domein', +'invalid input for dhcp wins' => ' Ongeldige invoer voor DHCP WINS', +'invalid input for e-mail address' => ' Ongeldige invoer voor e-mailadres.', +'invalid input for esp keylife' => ' Ongeldige invoer voor ESP sleutel levensduur', +'invalid input for hostname' => ' Ongeldige invoer voor hostnaam.', +'invalid input for ike lifetime' => ' Ongeldige invoer voor IKE levensduur', +'invalid input for keepalive 1' => ' Ongeldige invoer voor keepalive ping', +'invalid input for keepalive 1:2' => ' Ongeldige invoer voor keepalive gebruik tenminste een ratio van 1:2', +'invalid input for keepalive 2' => ' Ongeldige invoer voor keepalive ping-herstart', +'invalid input for max clients' => ' Ongeldige invoer voor max. clients', +'invalid input for name' => ' Ongeldige invoer voor gebruikersnaam of systeemhostnaam', +'invalid input for oink code' => ' Ongeldige invoer voor Oink code', +'invalid input for organization' => ' Ongeldige invoer voor organisatie', +'invalid input for remote host/ip' => ' Ongeldige invoer voor remote host/ip.', +'invalid input for state or province' => ' Ongeldige invoer voor provincie.', +'invalid ip' => 'Ongeldig IP-adres', +'invalid keep time' => 'Keep-tijd moet een geldig getal zijn', +'invalid key' => 'Ongeldige sleutel.', +'invalid loaded file' => 'Ongeldig bestand geladen', +'invalid local-remote id' => 'lokaal & remote ID mogen niet gelijk zijn en beginnen met een "@" teken. Dit zijn de leftid en rightid in strongswan terminologie.', +'invalid logserver address' => 'Ongeldig syslogd serveradres', +'invalid mac address' => 'Ongeldig MAC-adres', +'invalid max lease time' => 'Ongeldige max. leasetijd.', +'invalid maximum incoming size' => 'Ongeldige maximum inkomende grootte.', +'invalid maximum object size' => 'Ongeldige maximum objectgrootte.', +'invalid maximum outgoing size' => 'Ongeldige maximum uitgaande grootte.', +'invalid md5sum' => 'Ongeldige MD5Sum.', +'invalid minimum object size' => 'Ongeldige minimum objectgrootte.', +'invalid mtu input' => 'Ongeldige MTU', +'invalid netmask' => 'Ongeldig netmasker', +'invalid port' => 'Ongeldige poort. Moet een geldig poortnummer zijn.', +'invalid port list' => 'Poortlijst syntax is: poort[,poort]... waarbij poort is in /etc/services of getal', +'invalid primary dns' => 'Ongeldige primaire DNS.', +'invalid primary ntp' => 'Ongeldig primaire NTP serveradres', +'invalid secondary dns' => ' Ongeldige secundaire DNS.', +'invalid secondary ntp' => ' Ongeldig secundaire NTP serveradres', +'invalid start address' => ' Ongeldig beginadres.', +'invalid time entered' => ' Ongeldige tijd ingevoerd.', +'invalid time period' => ' Ongeldige tijdsperiode', +'invalid uplink speed' => ' Ongeldige uplink-snelheid.', +'invalid upstream proxy username or password setting' => ' Ongeldige upstream proxy gebruikersnaam of wachtwoord.', +'invalid users' => 'lijst met gebruikers die toegang is geweigerd', +'invalid vpi vpci' => 'Ongeldige VPI/VPCI instellingen', +'invalid wins address' => ' Ongeldig WINS serveradres.', +'invert' => 'Inverteer', +'ip address' => 'IP-adres', +'ip address in use' => 'IP-adres is al in gebruik', +'ip address outside subnets' => 'IP-adres ligt buiten subnets', +'ip alias added' => 'Extern IP-alias toegevoegd', +'ip alias changed' => 'Extern IP-alias gewijzigd', +'ip alias removed' => 'Extern IP-alias verwijderd', +'ip info' => 'IP Informatie', +'ipfire has now rebooted' => 'IPFire is nu aan het herstarten.', +'ipfire has now shutdown' => 'IPFire is nu aan het afsluiten.', +'ipfire side' => 'IPFire-zijde:', +'ipfire side is invalid' => 'IPFire-zijde is ongeldig.', +'ipfires hostname' => 'IPFire's Hostnaam', +'ipinfo' => 'IP info', +'iptable rules' => 'IPTable regels', +'iptmangles' => 'IPTable Mangles', +'iptnats' => 'IPTable Network Adrestranslatie', +'ipts' => 'IPTables', +'isdn' => 'ISDN', +'isdn settings' => 'Extra ISDN instellingen:', +'isdn1' => 'Single ISDN', +'isdn2' => 'Dual ISDN', +'january' => 'Januari', +'javascript menu error1' => 'Als de menu's niet werken, schakel dan javascript uit op de', +'javascript menu error2' => 'pagina.', +'july' => 'Juli', +'june' => 'Juni', +'kernel' => 'Kernel', +'kernel logging server' => 'Kernel Logging Server', +'kernel version' => 'Kernelversie:', +'key stuff' => '2. Sleutels en certificaten', +'keyreset' => 'Reset sleutels', +'keys' => 'sleutels', +'lan' => 'LAN', +'lang' => 'nl', +'languagepurpose' => 'Selecteer de taal die u wilt gebruiken voor IPFire:', +'last activity' => 'Laatste activiteit', +'lateprompting' => 'Laat-prompting', +'lease expires' => 'Lease verloopt', +'legend' => 'Legenda', +'length' => 'Lengte', +'line' => 'Lijn', +'linkq' => 'Lijnkwaliteit', +'load printer' => 'Laad printer', +'loaded modules' => 'Geladen modules:', +'local hard disk' => 'Harddisk', +'local master' => 'Lokale Master', +'local ntp server specified but not enabled' => 'Lokale NTP server is gespecificeerd, maar niet ingeschakeld', +'local subnet' => 'Lokaal subnet:', +'local subnet is invalid' => 'Lokaal subnet is ongeldig.', +'local vpn hostname/ip' => 'Lokale VPN-hostnaam/IP', +'localkey' => 'Lokale sleutel', +'localkeyfile' => 'Lokaal sleutelbestand', +'log' => 'Log:', +'log enabled' => 'Log ingeschakeld', +'log level' => 'Log-niveau', +'log lines per page' => 'Regels per pagina', +'log server address' => 'Syslogserver:', +'log settings' => 'Log-instellingen', +'log summaries' => 'Log-samenvattingen', +'log summary' => 'Log-samenvatting', +'log var messages' => 'Instellingen voor /var/log/messages:', +'log view' => 'Log-view', +'log viewer' => 'Log-viewer', +'log viewing options' => 'Log viewing opties', +'log-options' => 'Logbestand opties', +'loged in at' => 'Ingelogd om', +'logging' => 'Logging', +'logging server' => 'Loggingserver', +'loginlogout' => 'Login/Logout', +'logs' => 'logs', +'lookup failed' => 'Reverse lookup mislukt', +'loosedirectorychecking' => 'Loosedirectorychecking', +'low' => 'Laag', +'ls_dhcpd' => 'DHCP Server:', +'ls_disk space' => 'Schijfruimte:', +'ls_free/swan' => 'VPN:', +'ls_httpd' => 'HTTP Server:', +'ls_init' => 'Init:', +'ls_kernel' => 'Kernel en Firewall:', +'ls_modprobe' => 'Module loader:', +'ls_pam_unix' => 'Lokale gebruikers logins:', +'ls_sshd' => 'Remote gebruikers logins:', +'ls_syslogd' => 'Syslogd:', +'mac address' => 'MAC-adres', +'mac address deleted' => 'Succesvol verwijderd!', +'mac address deleted txt' => 'Het MAC-adres is succesvol verwijderd, maar de wijzigingen worden pas actief na <strong>herstart</strong>.', +'mac address done' => 'De MAC-adres instellingen worden opgeslagen.', +'mac address error not 00' => 'MAC-adres moet beginnen met 00!', +'mac address error not valid' => 'MAC-adres is ongeldig!', +'mac address header' => 'MAC-adres op red0', +'mac address in use' => 'MAC-adres is al in gebruik', +'mac address menu' => 'Toekennen MAC-adres', +'mac address recon' => 'Probeert opnieuw te verbinden!', +'mac address saved' => 'Succesvol opgeslagen!', +'mac address saved txt' => 'Het MAC-adres is succesvol opgeslagen, maar de wijzigingen worden pas actief na een herstart of opnieuw verbinden.', +'mac address title' => 'Medium Access Control Adres', +'mac desc' => 'Hier kunt u het MAC-adres van red0 wijzigen. Het adres moet in hexadecimale waarden (0-9,a-f) ingevoerd worden, <br />bijv. 00-01-02-0e-b8-d6 of 00:01:02:0e:b8:d6.', +'mac new' => 'nieuw MAC-adres:', +'mac1 new' => 'nieuw MAC-adres 1 (vdsl-inet):', +'mac2 new' => 'nieuw MAC-adres 2 (vdsl-iptv):', +'magic packet send to:' => 'Magic-pakket verstuurd naar:', +'mailmethod' => 'Mailmethode', +'mailprogramm' => 'Mailprogramma', +'main page' => 'Hoofdpagina', +'manage ovpn' => '5. Tunnelbeheer:', +'manage printers' => 'beheer printers', +'manage shares' => 'beheer shares', +'manual' => 'Handmatig', +'manual control and status' => 'Handmatige controle en status:', +'manually' => 'Handmatig', +'map to guest' => 'Toewijzen aan gast', +'march' => 'Maart', +'marked' => 'Gemarkeerd', +'max bandwith' => 'Maximum bandbreedte', +'max incoming size' => 'Max. inkomende grootte (KB):', +'max lease time' => 'Max. leasetijd (min.):', +'max outgoing size' => 'Max. uitgaande grootte (KB):', +'max reliability' => 'Maximum betrouwbaarheid', +'max renewal time' => 'Maximum vernieuwingstijd', +'max retries not set' => 'Max. aantal pogingen niet ingesteld.', +'max size' => 'Max. objectgrootte (KB):', +'max throughput' => 'Maximum doorvoersnelheid', +'maximal' => 'Maximaal', +'maximum retries' => 'Maximum aantal pogingen:', +'may' => 'Mei', +'mbmon display' => 'Display', +'mbmon fan' => 'Fan-snelheid', +'mbmon fan in' => 'Fan-snelheid in', +'mbmon graphs' => 'mbmon grafieken', +'mbmon label' => 'Label', +'mbmon settings' => 'mbmon grafiekinstellingen', +'mbmon temp' => 'Temperatuur', +'mbmon temp in' => 'Temperatuur in', +'mbmon value' => 'Waarde', +'mbmon volt' => 'Voltage', +'meaning' => 'betekenis', +'media' => 'Media', +'media information' => 'media-informatie', +'medium' => 'Gemiddeld', +'memory' => 'Geheugen', +'memory information' => 'geheugen informatie', +'memory usage per' => 'Geheugengebruik per', +'messages logging' => 'Log-instellingen voor /var/log/messages', +'method' => 'Methode:', +'min costs' => 'Minimum kosten', +'min delay' => 'Minimum vertraging', +'min size' => 'Min. objectgrootte (KB):', +'minimal' => 'Minimaal', +'minute' => 'Minuut', +'minutes' => 'Minuten', +'misc-options' => 'Overige opties', +'missing dat' => 'Gecodeerd archief niet gevonden', +'missing gz' => 'Ongecodeerd archief niet gevonden', +'mode' => 'Modus', +'modem' => 'Modem', +'modem configuration' => 'Modemconfiguratie', +'modem on com1' => 'Modem op COM1', +'modem on com2' => 'Modem op COM2', +'modem on com3' => 'Modem op COM3', +'modem on com4' => 'Modem op COM4', +'modem on com5' => 'Modem op COM5', +'modem settings have errors' => 'Modeminstellingen bevatten fouten', +'modem speaker on' => 'Modemspeaker aan:', +'modify' => 'Wijzig', +'modulation' => 'Modulatie', +'monday' => 'Maandag', +'month' => 'Maand', +'month-graph' => 'Maand', +'monthly firewallhits' => 'maandelijkse firewalltreffers', +'monthly start day bad' => 'Maandelijkse startdag is niet correct', +'monthly traffic bad' => 'Maandelijks volume is niet correct', +'monthly volume' => 'Maandelijks volume', +'monthly volume start day' => 'Eerste dag van de maandelijkse periode', +'monthly volume start day short' => 'Eerste dag', +'months' => 'maanden', +'more' => 'meer', +'mount' => 'Koppelen', +'mounted on' => 'Gekoppeld op', +'mpfire' => 'Mediaspeler voor IPFire', +'mpfire controls' => 'MPFire Controle', +'mpfire playlist' => 'MPFire afspeellijst', +'mpfire scanning' => 'Zoeken naar nieuwe bestanden', +'mpfire search' => 'MPFire Zoeken', +'mpfire songs' => 'MPFire lijst met nummers', +'mpfire webradio' => 'MPFire Webradio', +'mtu QoS' => 'Dit verandert niet de globale MTU, het zet alleen de MTU voor QoS.', +'my new share' => 'Mijn nieuwe share', +'name' => 'Naam', +'name is invalid' => 'Naam is ongeldig', +'name must only contain characters' => 'Naam mag alleen letters bevatten.', +'name too long' => 'Gebruikersnaam of systeemhostnaam is te lang', +'nat-traversal' => 'Nat Traversal:', +'needreboot' => 'Een update vereist een herstart', +'net' => 'Net', +'net address' => 'net-adres', +'net config' => 'Netwerkconfiguratie', +'net config type' => 'type netwerkconfiguratie', +'net config type help' => 'GROEN is het lokale netwerk, ROOD is het internet, BLAUW is WLAN, ORANJE is de DMZ.', +'net to net vpn' => 'Net-to-Net Virtual Private Network', +'net traffic newversion' => 'Nieuwe Net-Traffic versie is beschikbaar:', +'net-traffic configuration' => 'Net-Traffic configuratie', +'netbios name' => 'Netbios-naam', +'netmask' => 'Netmasker', +'network' => 'Netwerk', +'network added' => 'Aangepast netwerk toegevoegd', +'network configuration' => 'Netwerkconfiguratie', +'network internal' => 'Netwerk (intern)', +'network options' => 'Netwerkopties', +'network other' => 'Netwerk (overig)', +'network red' => 'Netwerk (extern)', +'network removed' => 'Aangepast netwerk verwijderd', +'network status information' => 'Netwerk statusinformatie', +'network time' => 'Gebruik een netwerktijdsserver:', +'network time from' => 'Ontvang de tijd van een netwerktijdsserver', +'network traffic graphs' => 'Netwerkverkeer grafieken', +'network traffic graphs external' => 'Netwerkgebruik grafieken (extern)', +'network traffic graphs internal' => 'Netwerkgebruik grafieken (intern)', +'network traffic graphs others' => 'Netwerk (overig)', +'network updated' => 'Aangepast netwerk bijgewerkt', +'networks settings' => 'Firewall - Netwerkinstellingen', +'new optionsfw later' => 'Uw wijziging(en) worden actief na de volgende herstart', +'new optionsfw must boot' => 'U moet IPFire herstarten', +'newer' => 'Nieuwer', +'next' => 'volgende', +'no' => 'Nee', +'no alcatelusb firmware' => 'Geen Alcatel USB firmware. Bestand uploaden a.u.b.', +'no cfg upload' => 'Er was geen data geÃŒpload', +'no dhcp lease' => 'Er kon geen DHCP lease worden verkregen', +'no eciadsl synch.bin file' => 'Geen ECI ADSL synch.bin bestand. Bestand uploaden a.u.b.', +'no filter pass' => 'Geef de standaard-klasse voor niet-gefilterde pakketten.', +'no fritzdsl driver' => 'Geen Fritz!DSL driver. Bestand uploaden a.u.b.', +'no information available' => 'Geen informatie beschikbaar.', +'no log selected' => 'Geen log geselecteerd', +'no modem selected' => 'Geen modem geselecteerd', +'no set selected' => 'Geen set geselecteerd', +'no time limit' => 'onbeperkte tijd', +'none found' => 'niets gevonden', +'nonetworkname' => 'Geen netwerknaam ingevoerd', +'noservicename' => 'Geen servicenaam ingevoerd', +'not a valid ca certificate' => 'Geen geldig CA certificaat.', +'not enough disk space' => 'Onvoldoende schijfruimte', +'not present' => '<b>Niet</b> aanwezig', +'not running' => 'loopt niet', +'not set' => 'niet gezet', +'notes' => 'Notities', +'november' => 'November', +'ntp common settings' => 'Algemene instellingen', +'ntp configuration' => 'NTP configuratie', +'ntp must be enabled to have clients' => 'NTP moet ingeschakeld zijn om klanten te bedienen.', +'ntp server' => 'NTP Server', +'ntp sync' => 'Synchronisatie', +'ntp syncro disabled' => 'NTP synchronisatie uitgeschakeld', +'ntp syncro enabled' => 'NTP synchronisatie ingeschakeld', +'ntpd restarted' => 'ntpd herstart', +'number' => 'Nummer:', +'o-no' => 'Inactief', +'o-yes' => 'Actief', +'october' => 'Oktober', +'off' => 'uit', +'ok' => 'OK', +'older' => 'Ouder', +'on' => 'aan', +'online help en' => 'Online help (in Engels)', +'only digits allowed in holdoff field' => 'Alleen cijfers toegestaan in holdoff veld', +'only digits allowed in max retries field' => 'Alleen cijfers toegestaan in max.pogingen veld.', +'only digits allowed in the idle timeout' => ' Alleen cijfers toegestaan in het idle time-out veld.', +'only red' => 'Alleen ROOD', +'open to all' => 'Geef externe toegang voor ALLEN', +'openssl produced an error' => 'OpenSSL gaf een fout', +'openvpn client' => 'OpenVPN client', +'openvpn default' => 'Standaard', +'openvpn destination port used' => 'De bestemmingspoort is al in gebruik door een andere OpenVPN server.', +'openvpn disabled' => 'UITGESCHAKELD', +'openvpn enabled' => 'INGESCHAKELD', +'openvpn fragment allowed with udp' => 'Het gebruik van fragment is alleen toegestaan met het UDP protocol.', +'openvpn log' => 'OpenVPN Log', +'openvpn mssfix allowed with udp' => 'Het gebruik van "mssfix" is alleen toegestaan met het UDP protocol.', +'openvpn prefix local subnet' => 'Het gebruik van de prefix notatie wordt niet ondersteunt op het lokale subnet. Geef a.u.b. een ander subnetmasker zoals 255.255.255.0.', +'openvpn prefix openvpn subnet' => 'Het gebruik van de prefix notatie wordt niet ondersteund voor het OpenVPN subnet. Geef a.u.b. een ander subnetmasker zoals 255.255.255.0.', +'openvpn prefix remote subnet' => 'Het gebruik van de prefix notatie wordt niet ondersteund voor het remote subnet. Geef a.u.b. een ander subnetmasker zoals 255.255.255.0.', +'openvpn server' => 'OpenVPN server', +'openvpn subnet is used' => 'Het gegeven subnet is in gebruik door een andere OpenVPN server.', +'optional at cmd' => 'optioneel AT commando', +'optional data' => '3. Optionele instellingen:', +'options' => 'Opties', +'options fw' => 'Firewall Opties', +'optionsfw portlist hint' => 'De lijst met poorten moet gescheiden zijn met komma's (bijv. 137,138). U kunt tot maximaal 15 poorten per protocol opgeven.', +'optionsfw warning' => 'Het wijzigen van deze opties betekent het herstarten van de firewall', +'or' => 'of', +'orange' => 'ORANJE', +'organization cant be empty' => 'Organisatie mag niet leeg zijn.', +'organization name' => 'Organisatienaam', +'organization too long' => 'Organisatie is te lang; mag niet langer zijn dan 60 tekens.', +'original' => 'Origineel', +'os level' => 'OS niveau', +'other' => 'Andere', +'other countries' => 'Andere landen', +'other login script' => 'Ander inlog script', +'otherip' => 'ander IP', +'otherport' => 'andere poort', +'our donors' => 'Onze donateurs', +'out' => 'Uit', +'outgoing' => 'uitgaand', +'outgoing firewall' => 'Uitgaande Firewall', +'outgoing firewall add ip group' => 'Toevoegen IP-adresgroep', +'outgoing firewall add mac group' => 'Toevoegen MAC-adresgroep', +'outgoing firewall edit ip group' => 'Wijzig IP-adresgroep', +'outgoing firewall edit mac group' => 'Wijzig MAC-adresgroep', +'outgoing firewall group error' => 'Een groep met dezelfde naam bestaat al.', +'outgoing firewall groups' => 'Firewallgroepen', +'outgoing firewall ip groups' => 'Uitgaande Firewall IP-adresgroepen', +'outgoing firewall mac groups' => 'Uitgaande Firewall MAC-adresgroepen', +'outgoing firewall mode0' => 'Als u deze modus gebruikt kunnen alle clients zonder enige restrictie het internet benaderen.', +'outgoing firewall mode1' => 'Als u deze modus gebruikt kunnen alleen verbindingen worden opgezet die door de gedefinieerde regels toegestaan zijn.', +'outgoing firewall mode2' => 'Als u deze modus gebruikt worden alle verbindingen toegestaan, behalve de gedefinieerde blokkeringsregels.', +'outgoing firewall outgoing firewall reserved groupname' => 'Gebruik een andere groepsnaam a.u.b., deze naam is gereserveerd.', +'outgoing firewall p2p allow' => 'p2p protocol is toegestaan', +'outgoing firewall p2p deny' => 'p2p protocol is niet toegestaan', +'outgoing firewall p2p description 1' => 'De knop', +'outgoing firewall p2p description 2' => 'betekent dat het p2p protocol is toegestaan of', +'outgoing firewall p2p description 3' => 'dat het p2p protocol niet is toegestaan.', +'outgoing firewall reset' => 'Reset alles', +'outgoing firewall view group' => 'Bekijk groep', +'outgoing firewall warning' => 'Het niet selecteren van bron IP of MAC negeert ze', +'outgoing traffic in bytes per second' => 'Uitgaand verkeer', +'override mtu' => 'Overschrijf standaard MTU', +'ovpn' => 'OpenVPN', +'ovpn con stat' => 'OpenVPN connectiestatistieken', +'ovpn config' => 'OVPN-Configuratie', +'ovpn device' => 'OpenVPN apparaat:', +'ovpn dl' => 'OVPN-Configuratie download', +'ovpn errmsg green already pushed' => 'Route voor het groene netwerk is altijd aangezet', +'ovpn errmsg invalid ip or mask' => 'Ongeldig netwerkadres of subnetmasker', +'ovpn log' => 'OVPN-Log', +'ovpn mtu-disc' => 'Pad MTU Discovery', +'ovpn mtu-disc and mtu not 1500' => 'Pad MTU Discovery vereist een MTU van 1500.', +'ovpn mtu-disc maybe' => 'Optioneel', +'ovpn mtu-disc no' => 'Nooit', +'ovpn mtu-disc off' => 'Uitgeschakeld', +'ovpn mtu-disc with mssfix or fragment' => 'Pad MTU Discovery kan niet worden gebruikt met mssfix of fragment.', +'ovpn mtu-disc yes' => 'Geforceerd', +'ovpn on blue' => 'OpenVPN op BLAUW', +'ovpn on orange' => 'OpenVPN op ORANJE', +'ovpn on red' => 'OpenVPN op ROOD', +'ovpn routes push' => 'Routes (een per regel):', +'ovpn routes push options' => 'Route push opties', +'ovpn server status' => 'Huidige OpenVPN server status:', +'ovpn subnet' => 'OpenVPN subnet (bijv. 10.0.10.0/255.255.255.0)', +'ovpn subnet is invalid' => 'OpenVPN subnet is ongeldig.', +'ovpn subnet overlap' => 'OpenVPN subnet overlapt met : ', +'ovpn_fastio' => 'Fast-IO', +'ovpn_fragment' => 'Fragmentgrootte', +'ovpn_mssfix' => 'MSSFIX-grootte', +'ovpn_mtudisc' => 'MTU-Discovery', +'ovpn_processprio' => 'Procesprioriteit', +'ovpn_processprioD' => 'Laag', +'ovpn_processprioED' => 'Extreem laag', +'ovpn_processprioEH' => 'Extreem hoog', +'ovpn_processprioEN' => 'Hoger dan normaal', +'ovpn_processprioH' => 'Hoog', +'ovpn_processprioLN' => 'Lager dan normaal', +'ovpn_processprioN' => 'Normaal', +'ovpn_processprioVD' => 'Zeer laag', +'ovpn_processprioVH' => 'Zeer hoog', +'ovpnstatus log' => 'OVPN-Status-Log', +'ovpnsys log' => 'OVPN-Systeem-Log', +'package failed to install' => 'Pakket kon niet worden geïnstalleerd.', +'pagerefresh' => 'Pagina wordt ververst, wacht even a.u.b.', +'pakfire accept all' => 'Wilt u alle pakketten installeren?', +'pakfire ago' => 'geleden.', +'pakfire available addons' => 'Beschikbare extensies:', +'pakfire configuration' => 'Pakfire configuratie', +'pakfire core update auto' => 'Installeer core- en extensie-updates automatisch:', +'pakfire core update level' => 'Core-updateniveau', +'pakfire health check' => 'Controleer of de mirror bereikbaar is (ping):', +'pakfire install description' => 'Kies een of meer items uit de lijst hieronder en <br /> klik op de plus om te installeren.', +'pakfire install package' => 'U wilt de volgende pakketten installeren: ', +'pakfire installed addons' => 'Geïnstalleerde extensies:', +'pakfire last core list update' => 'Laatste core-lijst update gemaakt', +'pakfire last package update' => 'Laatste pakketlijst update gemaakt', +'pakfire last serverlist update' => 'Laatste serverlijst update gemaakt', +'pakfire last update' => 'Laatste update gemaakt', +'pakfire possible dependency' => ' Er kunnen pakketafhankelijkheden zijn, hier is een lijst met pakketten die moeten worden geïnstalleerd.', +'pakfire register' => 'Registreer bij de pakfire-server:', +'pakfire system state' => 'Systeemstatus', +'pakfire uninstall description' => 'Kies een of meer items uit de lijst hieronder en <br /> klik op de min om te deinstalleren.', +'pakfire uninstall package' => 'U wilt de volgende pakketten deinstalleren: ', +'pakfire update daily' => 'Zoek dagelijks naar updates:', +'pakfire updates' => 'Beschikbare update:', +'pakfire working' => 'Pakfire is bezig ... Wacht a.u.b. totdat alle handelingen succesvol zijn afgerond.', +'pap or chap' => 'PAP of CHAP', +'parentclass' => 'Parent-klasse', +'parentclass add' => 'Voeg parent-klasse toe', +'password' => 'Wachtwoord:', +'password contains illegal characters' => 'Wachtwoord bevat ongeldige tekens.', +'password crypting key' => 'Wachtwoord codeert de sleutel', +'password not set' => 'Wachtwoord niet ingesteld.', +'password too short' => 'Wachtwoord is te kort.', +'passwords do not match' => 'Wachtwoorden komen niet overeen.', +'passwords must be at least 6 characters in length' => 'Wachtwoorden moeten tenminste 6 tekens lang zijn', +'path to directory' => 'pad naar de share', +'pc' => 'Werkstation', +'pc add' => 'Workstation toevoegen', +'pdc options' => 'PDC opties', +'percentage' => 'Percentage', +'persistent' => 'Persistent', +'pfs yes no' => 'Perfect Forward Secrecy (PFS)', +'phase1 group' => 'Fase1 groep', +'phonebook entry' => 'Telefoonboek entry:', +'ping disabled' => 'Uitschakelen ping response', +'pkcs12 file password' => 'PKCS12 bestandswachtwoord', +'play' => 'Afspelen', +'polfile' => 'Pol-bestand', +'policy' => 'Beleid', +'port' => 'Poort', +'port forwarding configuration' => 'Poort-doorsturen configuratie', +'ports' => 'Poorten', +'portscans' => 'poortscans', +'pots' => 'Klassieke analoge lijn', +'ppp setup' => 'PPP setup', +'pppoe' => 'PPPoE', +'pppoe settings' => 'Extra PPPoE instellingen:', +'pptp settings' => 'Extra PPTP instellingen:', +'pre-shared key is too short' => 'Pre-shared sleutel is te kort.', +'prefered master' => 'Voorkeur master', +'present' => 'Aanwezig', +'prev' => 'vorige', +'primary dns' => 'Primaire DNS:', +'primary ntp server' => 'Primaire NTP server', +'primary wins server address' => 'Primaire WINS serveradres', +'printcap name' => 'Printercap naam', +'printer' => 'Printer', +'printername' => 'Printernaam', +'printing' => 'Printen', +'printing options' => 'printopties', +'priority' => 'Prioriteit', +'processes' => 'Processen', +'profile' => 'Profiel', +'profile deleted' => 'Profiel verwijderd: ', +'profile has errors' => 'Profiel bevat fouten', +'profile made current' => 'Huidig profiel: ', +'profile name' => 'Profielnaam:', +'profile name not given' => 'Profielnaam niet opgegeven.', +'profile saved' => 'Profiel opgeslagen: ', +'profiles' => 'Profielen:', +'proto' => 'Proto', +'protocol' => 'Protocol:', +'proxy' => 'Proxy', +'proxy access graphs' => 'Proxy toegangsgrafieken', +'proxy admin password' => 'Cache beheerder wachtwoord', +'proxy cachemgr' => 'Activeer cachebeheer', +'proxy errmsg filedescriptors' => 'Verkeerd aantal bestandsindicators', +'proxy filedescriptors' => 'Aantal bestandsindicators', +'proxy log viewer' => 'Proxy logviewer', +'proxy logs' => 'Proxy Logs', +'proxy no proxy extend' => 'of specificeer een lijst met niet-geproxyde bestemmingen', +'proxy no proxy local' => 'Verbied lokale proxying op BLAUW/GROEN netwerken', +'proxy port' => 'Proxypoort', +'proxy reconfigure' => 'Opslaan en herstarten', +'proxy reports' => 'Proxy Rapporten', +'proxy reports daily' => 'Dagelijkse rapporten', +'proxy reports monthly' => 'Maandelijkse rapporten', +'proxy reports today' => 'Vandaag', +'proxy reports weekly' => 'Wekelijkse rapporten', +'psk' => 'PSK', +'pulse' => 'Puls', +'pulse dial' => 'Pulskiezen:', +'qos add subclass' => 'Voeg sub-klasse toe', +'qos graphs' => 'QoS grafieken', +'qos warning' => 'De regel <strong>moet</strong> worden opgeslagen, anders zal het worden genegeerd!', +'quick control' => 'Quick controle', +'quick playlist' => 'Quick afspeellijst', +'ram' => 'RAM', +'read bytes' => 'Lees Bytes', +'read list' => 'lijst met readonly hosts', +'real address' => 'Echte adressen', +'reboot' => 'Herstarten', +'reboot ask' => 'Herstarten?', +'reboot question' => 'Extra vraag voor herstart en afsluiten', +'reboot schedule' => 'Inplannen IPFire herstarts', +'reboot sure' => 'Weet u zeker dat u wilt herstarten?', +'rebooting' => 'Herstarten', +'rebooting ipfire' => 'IPFire aan het herstarten', +'reconnect' => 'Opnieuw verbinden', +'reconnection' => 'Opnieuw verbinding', +'red' => 'Internet', +'references' => 'Referenties', +'refresh' => 'Ververs', +'refresh index page while connected' => 'Ververs de index.cgi pagina terwijl verbonden', +'refresh update list' => 'Ververs update-lijst', +'registered user rules' => 'Sourcefire VRT regels voor geregistreerde gebruikers', +'released' => 'Released', +'reload' => 'herlaad', +'remark' => 'Opmerking', +'remark title' => 'Opmerking:', +'remote access' => 'Remote toegang', +'remote announce' => 'Remote aankondiging', +'remote browse sync' => 'Remote Browse Sync', +'remote host/ip' => 'Remote host/IP', +'remote logging' => 'Remote logging', +'remote subnet' => 'Remote subnet:', +'remote subnet is invalid' => 'Remote subnet is ongeldig.', +'removable device advice' => 'Plug een apparaat in, ververs, selecteer en koppel voor gebruik. Ontkoppel voor verwijderen van apparaat.', +'remove' => 'Verwijderen', +'remove ca certificate' => 'Verwijder CA certificaten', +'remove x509' => 'Verwijder x509', +'repeat' => 'Herhaal', +'reportfile' => 'Rapportbestand', +'reportlevel' => 'Rapportniveau', +'request' => 'Verzoek', +'requested data' => '1. Connectie-instellingen:', +'reserved dst port' => 'Bestemmingspoort is gereserveerd voor IPFire:', +'reserved src port' => 'Bronpoort is gereserveerd voor IPFire:', +'reset' => 'Reset', +'reset shares' => 'Reset share', +'resetglobals' => 'Reset globale instellingen', +'resetpolicy' => 'Reset beleid naar standaard', +'resetshares' => 'Reset shares?', +'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'door resetten van de vpn configuratie zullen de root CA, het hostcertificaat en alle certificaatgebaseerde verbindingen worden verwijderd', +'restart' => 'Herstart', +'restart ovpn server' => 'Herstart OpenVPN server', +'restore' => 'Herstellen', +'restore defaults' => 'Herstel standaard', +'restore hardware settings' => 'Herstel hardware-instellingen', +'restore settings' => 'Reset instellingen', +'reverse sort' => 'Sorteer in omgekeerde chronologische volgorde', +'root' => 'Root', +'root certificate' => 'Rootcertificaat', +'root path' => 'Root pad', +'root user password' => 'Root wachtwoord', +'route subnet is invalid' => 'Additionele push route subnet is ongeldig', +'router ip' => 'Router IP-adres:', +'routing table entries' => 'Routeringstabel entries:', +'rsvd dst port overlap' => 'Bestemmingspoortreeks overlapt een poort die gereserveerd is voor IPFire:', +'rsvd src port overlap' => 'Bronpoortreeks overlapt een poort die gereserveerd is voor IPFire:', +'rules already up to date' => 'Regels zijn al bijgewerkt', +'running' => 'LOOPT', +'safe removal of umounted device' => 'U kunt het ontkoppelde apparaat veilig verwijderen', +'samba' => 'Samba', +'samba status' => 'Samba Status', +'saturday' => 'Zaterdag', +'save' => 'Opslaan', +'save config' => 'opslaan instellingen', +'save error' => 'Kan configuratie-archief niet opslaan', +'save settings' => 'Opslaan instellingen', +'save-adv-options' => 'Opslaan geavanceerde opties', +'script name' => 'Scriptnaam:', +'secondary dns' => 'Secondaire DNS:', +'secondary ntp server' => 'Secondaire NTP server', +'secondary wins server address' => 'Secondaire WINS serveradres', +'seconds' => 'Sec.', +'section' => 'Sectie', +'secure shell server' => 'Secure Shell Server', +'security' => 'Beveiliging', +'security options' => 'Beveiligingsopties', +'select' => 'Selecteer', +'select dest net' => 'Selecteer een bestemmingsnet.', +'select media' => 'Selecteer media <br />(alleen FAT wordt ondersteund voor verwijderbare media)', +'select source net' => 'Selecteer een bron net. Als u geen ORANJE of BLAUW netwerk heeft geconfigureerd, dan heeft u geen DMZ pinholes nodig.', +'selecttraffic' => 'Selecteer verbruiksoverzicht:', +'send cr' => 'ISP vereist Carriage Return:', +'send email notification' => 'Ingeschakeld, stuur e-mail notificatie', +'send test mail' => 'Verstuur test e-mail', +'september' => 'September', +'serial' => 'Serieel', +'server reserved' => 'De verbindingsnaam is gereserveerd en niet toegestaan', +'server restart' => 'U kunt geen wijzigingen opslaan als de OpenVPN server actief is.', +'server string' => 'Server String', +'service' => 'Dienst', +'service added' => 'Aangepaste netwerkdienst toegevoegd', +'service name' => 'Dienstennaam:', +'service removed' => 'Aangepaste netwerkdienst verwijderd', +'service updated' => 'Aangepaste netwerkdienst bijgewerkt', +'servicename' => 'Dienstennaam', +'services' => 'Diensten', +'services settings' => 'Firewall - Diensteninstellingen', +'set' => 'zet', +'set time now' => 'Tijd nu gelijk zetten', +'set time now help' => 'Om een synchronisatiegebeurtenis aan de wachtrij toe te voegen (zelfs als er een herhaalschema wordt gebruikt), klik op de <i>Tijd nu gelijk zetten</i>-knop. Mogelijk moet u 5 minuten of langer wachten voordat de synchronisatie plaatsvindt.', +'settings' => 'Instellingen', +'shaping add options' => 'Service toevoegen', +'shaping list options' => 'Verkeersregeling diensten', +'shared' => 'gedeeld', +'sharename' => 'Sharenaam', +'shares' => 'Shares', +'show ajax speedmeter in footer' => 'Toon Ajax snelheidsmeter', +'show areas' => 'toon gebieden', +'show ca certificate' => 'Toon CA certificaten', +'show certificate' => 'Toon certificaat', +'show crl' => 'Toon lijst met ingetrokken certificaten', +'show host certificate' => 'Toon host certificaat', +'show last x lines' => 'Toon laatste x regels', +'show lines' => 'Toon regels', +'show root certificate' => 'Toon root certificaat', +'show share options' => 'Toon shares opties', +'shuffle' => 'Willekeurige volgorde', +'shutdown' => 'Afsluiten', +'shutdown ask' => 'Afsluiten?', +'shutdown control' => 'Afsluit controle', +'shutdown sure' => 'Weet u zeker dat u wilt afsluiten?', +'shutdown2' => 'Afsluiten:', +'shutting down' => 'Nu aan het afsluiten', +'shutting down ipfire' => 'IPFire aan het afsluiten', +'since' => 'sinds', +'sitekey' => 'Sitesleutel', +'sitekeyfile' => 'Site sleutelbestand', +'size' => 'Grootte', +'smart information' => 'S.M.A.R.T. informatie', +'smartwarn1' => 'Apparaat:', +'smartwarn2' => 'rapporteert S.M.A.R.T. fout', +'smbreload' => 'Samba opnieuw laden', +'smbrestart' => 'Samba herstarten', +'smbstart' => 'Start samba', +'smbstop' => 'Stop samba', +'smtphost' => 'SMTP host', +'smtpport' => 'SMTP poort', +'snort hits' => 'Totaal aantal inbraakregels geactiveerd voor', +'snort working' => 'Snort is bezig ... Wacht a.u.b. totdat alle handelingen succesvol zijn afgerond.', +'socket options' => 'Socket opties', +'sort ascending' => 'Sorteer oplopend', +'sort descending' => 'Sorteer aflopend', +'sound' => 'Geluid', +'source' => 'Bron', +'source ip' => 'Bron IP', +'source ip and port' => 'Bron IP: Poort', +'source ip bad' => 'Geen geldig IP-adres of netwerkadres.', +'source ip in use' => 'Bron IP in gebruik:', +'source ip or net' => 'Bron IP of Net', +'source net' => 'Bron Net', +'source network' => 'Bron IP, of netwerk (leeg voor "ALLE"):', +'source port' => 'Bronpoort', +'source port in use' => 'Bronpoort in gebruik:', +'source port numbers' => 'Bronpoort moet een geldig poortnummer of poortreeks zijn.', +'source port overlaps' => 'Bronpoortreeks overlapt een bestaande poortreeks.', +'speaker off' => 'Speaker uit:', +'speaker on' => 'Speaker aan:', +'squid extension methods' => 'Uw <tt>extensie_methoden</tt> lijst', +'squid extension methods invalid' => 'Uw 'extensie_methoden' lijst mag alleen hoofdletters en cijfers bevatten, gescheiden door een spatie. ', +'squid fix cache' => 'Repareer cache', +'src port' => 'Bronpoort', +'srcprt range overlaps' => 'Bronpoortreeks overlapt met een al gedefinieerde poort.', +'srcprt within existing' => 'Bronpoort ligt binnen een al gedefinieerde poortreeks.', +'ssdmz pinholes' => 'DMZ Pinholes', +'ssh access' => 'SSH toegang', +'ssh access tip' => 'IPFire SSH gebruikt niet de standaard poort 222!', +'ssh fingerprint' => 'Vingerafdruk', +'ssh host keys' => 'SSH Hostsleutels', +'ssh is disabled' => 'SSH is uitgeschakeld. Stoppen.', +'ssh is enabled' => 'SSH is ingeschakeld. Herstarten.', +'ssh key' => 'Sleutel', +'ssh key size' => 'Grootte (bits)', +'ssh keys' => 'Toestaan van authenticatie m.b.v. publieke sleutel', +'ssh no auth' => 'U heeft geen authenticatiemethoden toegestaan; u kunt dan niet inloggen', +'ssh passwords' => 'Toestaan van authenticatie m.b.v. een wachtwoord', +'ssh port' => 'SSH poort gezet op 22 (standaard is 222)', +'ssh portfw' => 'Toestaan van TCP forwarding', +'ssh tempstart15' => 'Stop SSH daemon over 15 minuten', +'ssh tempstart30' => 'Stop SSH daemon over 30 minuten', +'ssh1 disabled' => 'SSHv1 is uitgeschakeld, een versie 2 client is vereist', +'ssh1 enabled' => 'SSHv1 is ingeschakeld, oudere clients zullen ondersteund worden.', +'ssh1 support' => 'Ondersteun SSH protocol versie 1 (alleen noodzakelijk voor oudere clients)', +'ssnetwork status' => 'Netwerkstatus', +'sspasswords' => 'Wachtwoorden', +'ssport forwarding' => 'Poort doorsturen', +'ssproxy graphs' => 'Proxy grafieken', +'sssystem status' => 'Systeemstatus', +'sstraffic' => 'Netwerkgebruik', +'sstraffic graphs' => 'Verkeersgrafieken', +'standard login script' => 'Standaard inlogscript', +'start' => 'Start', +'start address' => 'Beginadres:', +'start ovpn server' => 'Start OpenVPN Server', +'state or province' => 'Provincie', +'static ip' => 'Statisch IP', +'static routes' => 'Statische routes', +'status' => 'Status', +'status information' => 'Statusinformatie', +'status ovpn' => '4. OpenVPN Status / Configuratie:', +'std classes' => 'Standaardklassen', +'stop' => 'Stop', +'stop ovpn server' => 'Stop OpenVPN Server', +'stopped' => 'GESTOPT', +'subject' => 'Onderwerp', +'subject test' => 'Test e-mail', +'subject warn' => 'Waarschuwing â waarschuwingsniveau bereikt', +'subnet' => 'Subnet', +'subnet is invalid' => 'Netmasker is ongeldig', +'subscripted user rules' => 'Sourcefire VRT regels met abonnement', +'successfully refreshed updates list' => 'Lijst succesvol bijgewerkt.', +'summaries kept' => 'Bewaar samenvattingen voor', +'sunday' => 'Zondag', +'swap' => 'Swap', +'swap usage per' => 'Swap gebruik per', +'system' => 'Systeem', +'system graphs' => 'Systeemgrafieken', +'system information' => 'Systeeminformatie', +'system log viewer' => 'Systeem Log Viewer', +'system logs' => 'Systeem logs', +'system status information' => 'Systeem Status Informatie', +'telephone not set' => 'Telefoon niet ingesteld.', +'template' => 'Vooringesteld', +'template warning' => 'U heeft twee opties voor QoS. Bij de eerste klikt u op de knop opslaan en genereert u zelf de klassen en regels. Voor de tweede klikt u op de "vooringesteld" knop en worden de regels middels een sjabloon voor u ingesteld.', +'test' => 'test', +'test email could not be sent' => 'Kon de test e-mail niet verzenden', +'test email was sent' => 'Test e-mail is succesvol verzonden', +'the following update was successfully installed' => 'De volgende update was succesvol geïnstalleerd', +'the statistics were last updated at' => 'De statistieken zijn voor het laatst bijgewerkt op', +'theme' => 'Thema', +'there are updates' => 'Er zijn updates beschikbaar voor uw systeem. Ga naar de "updates" sectie voor meer informatie.', +'there are updates available' => 'Er zijn updates beschikbaar voor uw systeem. Het wordt aangeraden om deze zo snel mogelijk te installeren.', +'there was no file upload' => 'Er is geen bestand geÃŒpload.', +'this feature has been sponsored by' => 'Deze feature wordt gesponsord door', +'this field may be blank' => 'Dit veld mag leeg blijven.', +'this is not a valid archive' => 'Dit is geen geldig archief.', +'this is not an authorised update' => 'Dit is geen geautoriseerde update.', +'this months volume' => 'Volume van deze maand', +'this update is already installed' => 'Deze update is al geïnstalleerd.', +'this weeks volume' => 'Volume van deze week', +'thursday' => 'Donderdag', +'time' => 'Tijd', +'time date manually reset' => 'Handmatige datum/tijd reset.', +'time server' => 'Tijdserver', +'timeout must be a number' => 'Time-out moet een getal zijn.', +'title' => 'Titel', +'to' => 'Naar', +'to email adr' => 'Naar e-mailadres', +'to install an update' => 'Om te installeren uploadt u het .tgz.gpg bestand hieronder:', +'to warn email bad' => 'Naar e-mailadres is ongeldig', +'toggle' => 'pauze/vervolg', +'toggle enable disable' => 'Inschakelen of uitschakelen', +'tone' => 'Toon', +'tone dial' => 'Toonkiezen:', +'too long 80 char max' => ' is te lang, maximaal 80 tekens toegestaan', +'total connection time' => 'Totale verbindingstijd', +'total hits for log section' => 'Totaal aantal treffers voor logsectie', +'traffic back' => 'Terug', +'traffic calc time' => 'Berekeningstijd', +'traffic calc time bad' => 'Berekeningstijd is niet juist', +'traffic info messages' => 'Info berichten', +'traffic monitor' => 'Verkeersmonitor', +'traffic on' => 'Verkeer op', +'traffic shaping' => 'Verkeersregeling', +'traffic shaping settings' => 'Verkeersregeling instellingen', +'traffic warn level bad' => 'Waarschuwingsniveau is onjuist', +'trafficblue' => 'WLAN', +'trafficdate' => 'Datum', +'trafficfrom' => 'Van', +'trafficgreen' => 'Intern net', +'trafficin' => 'Input', +'trafficorange' => 'DMZ', +'trafficout' => 'Output', +'trafficred' => 'Internet', +'traffics' => 'Verbruiksoverzicht:', +'trafficsum' => 'Totalen', +'trafficto' => 'Naar', +'transfer limits' => 'Transferlimieten', +'transparent on' => 'Transparant op', +'tripwire' => 'Tripwire', +'tripwire cronjob' => 'tripwire cronjob', +'tripwire functions' => 'tripwire functies', +'tripwire reports' => 'tripwire rapporten', +'tripwireoperating' => 'Het proces is gestart. Dit kan enige minuten duren, het scherm wordt automatisch ververst nadat het proces is beëindigd.', +'tripwirewarningdatabase' => 'WAARSCHUWING â Uw database wordt bijgewerkt met de data van het laatste rapport. Om ongeautoriseerde wijzigingen te voorkomen wordt de lokale sleutel gebruikt.', +'tripwirewarningkeys' => 'WAARSCHUWING â Dit zal uw huidige sleutels, configuratie en database wissen en opnieuw aanmaken.', +'tripwirewarningpolicy' => 'WAARSCHUWING â Uw tripwire-beleid zal opnieuw worden opgebouwd, hierna wordt uw database opnieuw geïnitialiseerd. Daarvoor zijn de site-sleutel en de lokale sleutel noodzakelijk.', +'tuesday' => 'Dinsdag', +'type' => 'Type', +'umount' => 'Ontkoppelen', +'umount removable media before to unplug' => 'Ontkoppel verwijderbare media voordat u het apparaat verwijdert', +'unable to alter profiles while red is active' => 'Kan profielen niet wijzigen zolang ROOD actief is.', +'unable to contact' => 'Kan geen contact maken', +'unencrypted' => 'Ongecodeerd', +'uninstall' => 'Deinstalleer', +'unix charset' => 'UNIX karakterset', +'unix group' => ' UNIX gebruikersgroep', +'unix password sync' => 'Unix wachtwoordsynchronisatie', +'unix shell' => 'UNIX Shell', +'unknown' => 'ONBEKEND', +'unnamed' => 'Onbenoemd', +'update' => 'Vernieuwen', +'update accelerator' => 'Updateversneller', +'update time' => 'Bijwerken van de tijd:', +'update transcript' => 'Update transcript', +'updatedatabase' => 'Update database met het laatste rapport', +'updates' => 'Updates', +'updates installed' => 'Regelset bijgwerkt op', +'updates is old1' => 'Uw updatebestand is ', +'updates is old2' => 'dagen oud. We raden u aan om te updaten op de <b>Systeem > Updates</b> pagina.', +'updxlrtr 3 months' => 'drie maanden', +'updxlrtr 6 months' => 'zes maanden', +'updxlrtr all files' => 'alle bestanden ...', +'updxlrtr cache dir' => 'Cache directory', +'updxlrtr cache maintenance' => 'Cache onderhoud', +'updxlrtr cache size' => 'Cache grootte (bytes)', +'updxlrtr cache statistics' => 'Cache statistieken', +'updxlrtr cancel download' => 'Annuleer download', +'updxlrtr children' => 'Aantal versnellerprocessen', +'updxlrtr common settings' => 'Algemene instellingen', +'updxlrtr condition download' => 'Download', +'updxlrtr condition nosource' => 'Geen bron', +'updxlrtr condition ok' => 'Actueel', +'updxlrtr condition outdated' => 'Verouderd', +'updxlrtr condition suspended' => 'Uitgesteld', +'updxlrtr condition unknown' => 'Onbekend', +'updxlrtr configuration' => 'Updateversneller configuratie', +'updxlrtr current downloads' => 'Bestanden worden opgeslagen in de lokale cache', +'updxlrtr current files' => 'Huidige bestanden in de lokale cache', +'updxlrtr daily' => 'dagelijks', +'updxlrtr data from cache' => 'Data van cache (bytes)', +'updxlrtr disk usage' => 'Schijfgebruik', +'updxlrtr efficiency index' => 'Cache efficiency index', +'updxlrtr empty repository' => 'Lokale cache is leeg', +'updxlrtr enable autocheck' => 'Inschakelen automatische broncontrole', +'updxlrtr enable log' => 'Inschakelen log', +'updxlrtr filename' => 'Naam', +'updxlrtr files' => 'Bestanden', +'updxlrtr filesize' => 'Grootte', +'updxlrtr full autosync' => 'Vervang verouderde bestanden gedurende controle', +'updxlrtr invalid disk usage' => 'Ongeldige waarde voor max. schijfgebruik', +'updxlrtr invalid download rate' => 'Ongeldige waarde voor max. downloadsnelheid', +'updxlrtr invalid num of children' => 'Ongeldig aantal versnellerprocessen', +'updxlrtr last access' => 'Laatste cache-opvraag', +'updxlrtr last checkup' => 'Laatste broncontrole', +'updxlrtr low download priority' => 'Lagere CPU prioriteit voor downloads', +'updxlrtr maintenance' => 'Onderhoud', +'updxlrtr marked as' => 'gemarkeerd als', +'updxlrtr max disk usage' => 'Max. schijfgebruik', +'updxlrtr max download rate' => 'Max. externe downloadsnelheid (kBit/s)', +'updxlrtr month' => 'een maand', +'updxlrtr monthly' => 'maandelijks', +'updxlrtr not accessed' => 'niet benaderd sinds', +'updxlrtr not enabled' => 'Updateversneller is niet ingeschakeld op de webproxy pagina', +'updxlrtr other' => 'Overig', +'updxlrtr passive mode' => 'Inschakelen passieve modus', +'updxlrtr pending downloads' => 'Wachtrij downloads', +'updxlrtr performance options' => 'Performance opties', +'updxlrtr progress' => 'Voortgang', +'updxlrtr purge' => 'Opschonen', +'updxlrtr remove file' => 'Verwijder uit cache', +'updxlrtr save and restart' => 'Opslaan en herstarten', +'updxlrtr source' => 'Bron', +'updxlrtr source checkup' => 'Broncontrole', +'updxlrtr source checkup schedule' => 'Broncontrole planning', +'updxlrtr statistics' => 'Statistieken', +'updxlrtr statistics by source' => 'Statistieken per bron', +'updxlrtr summary' => 'Samenvatting', +'updxlrtr total cache size' => 'Totale cachegrootte (bytes)', +'updxlrtr total data from cache' => 'Totale hoeveelheid data geleverd uit cache (bytes)', +'updxlrtr total files' => 'Totaal aantal bestanden in cache', +'updxlrtr unknown' => 'Onbekend', +'updxlrtr update accelerator' => 'Updateversneller', +'updxlrtr update information' => 'Er is een nieuwere versie beschikbaar voor download. Bezoek <a href="http://update-accelerator.advproxy.net" target="_blank">http://update-accelerator.advproxy.net</a> voor meer informatie.', +'updxlrtr update notification' => 'Update notificatie!', +'updxlrtr web proxy service required' => 'Web proxy service moet ingeschakeld zijn om de updateversneller te kunnen gebruiken.', +'updxlrtr week' => 'een week', +'updxlrtr weekly' => 'wekelijks', +'updxlrtr year' => 'een jaar', +'upgrade' => 'upgrade', +'uplink speed' => 'Uplink snelheid (kbit/sec)', +'uplink std class' => 'uplink standaardklasse', +'upload' => 'Upload', +'upload a certificate' => 'Upload een certificaat:', +'upload a certificate request' => 'Upload een certificaatverzoek:', +'upload ca certificate' => 'Upload CA certificaat', +'upload fcdsl.o' => 'WORDT VERWIJDERD', +'upload file' => 'Upload bestand', +'upload new ruleset' => 'Upload nieuwe regelset', +'upload p12 file' => 'Upload PKCS12 bestand', +'upload static key' => 'Upload een statische sleutel', +'upload successful' => 'Upload succesvol.', +'upload synch.bin' => 'Upload synch.bin', +'upload update file' => 'Upload updatebestand:', +'upstream password' => 'Upstream wachtwoord:', +'upstream proxy host:port' => 'Upstream proxy (host:poort)', +'upstream username' => 'Upstream gebruikersnaam:', +'uptime and users' => 'Bedrijfstijd en gebruikers:', +'url filter' => 'Inhoudsfilter', +'urlfilter access' => 'Toegang', +'urlfilter activity detection' => 'Activiteitsdetectie', +'urlfilter add new time constraint rule' => 'Voeg nieuwe tijdslimietregel toe', +'urlfilter add new user quota rule' => 'Voeg nieuwe gebruikersquotum regel toe', +'urlfilter add rule' => 'Toevoegen', +'urlfilter advanced settings' => 'Geavanceerde instellingen', +'urlfilter allow' => 'Toestaan', +'urlfilter allow access' => 'Toegang toestaan', +'urlfilter allowed domains' => 'Toegestane domeinen (een per regel)', +'urlfilter allowed urls' => 'Toegestane URL's (een per regel)', +'urlfilter assigned quota users' => 'Toegekende gebruikers (een per regel)', +'urlfilter assigned users' => 'Toegekende gebruikers', +'urlfilter automatic blacklist update' => 'Automatische zwarte lijst update', +'urlfilter automatic update schedule' => 'Automatisch updaterooster', +'urlfilter back to main page' => 'Terug naar hoofdpagina', +'urlfilter background image' => 'urlfilter achtergrondafbeelding', +'urlfilter background text' => 'Om een eigen achtergrondafbeelding te gebruiken voor de blokkeringspagina, upload het .jpg bestand hieronder', +'urlfilter backup' => 'Aanmaken back-up bestand', +'urlfilter backup error' => 'Kan back-up bestand niet aanmaken', +'urlfilter backup settings' => 'Back-up URL filterinstellingen', +'urlfilter banned clients' => 'Verboden IP-adressen', +'urlfilter blacklist age 1' => 'Laatste succesvolle zwarte lijst update was', +'urlfilter blacklist age 2' => 'dagen geleden', +'urlfilter blacklist category name' => 'Zwarte lijst categorienaam', +'urlfilter blacklist editor' => 'Zwarte lijstbewerker', +'urlfilter blacklist editor info' => 'Aanmaken en wijzigen van uw eigen zwartelijst', +'urlfilter blacklist name' => 'Naam zwarte lijst', +'urlfilter blacklist update' => 'Zwarte lijst update', +'urlfilter block' => 'Blokkeer', +'urlfilter block access' => 'Blokkeer toegang', +'urlfilter block all' => 'Blokkeer alle URL's die niet expliciet zijn toegestaan', +'urlfilter block archives' => 'Blokkeer ingepakte archiefbestanden', +'urlfilter block audio-video' => 'Blokkeer audio/video bestanden', +'urlfilter block categories' => 'Blokkeer categorieën', +'urlfilter block executables' => 'Blokkeer uitvoerbare bestanden', +'urlfilter block ip' => 'Blokkeer sitetoegang middels het IP-adres', +'urlfilter block settings' => 'Blokkeerpagina instellingen', +'urlfilter blocked domains' => 'Geblokkeerde domeinen (een per regel)', +'urlfilter blocked expressions' => 'Geblokkeerde expressies (als reguliere expressies)', +'urlfilter blocked urls' => 'Geblokkeerde URL's (een per regel)', +'urlfilter category' => 'Categorie', +'urlfilter category all' => 'iedere', +'urlfilter category data error' => 'Zwarte lijst is leeg', +'urlfilter category log' => 'Splits log in categorieën', +'urlfilter category name error' => 'Zwarte lijst categorienaam is vereist', +'urlfilter client' => 'Client', +'urlfilter configuration' => 'URL filterconfiguratie', +'urlfilter constraint definition' => 'Definitie', +'urlfilter constraint outside' => 'buiten', +'urlfilter constraint within' => 'binnen', +'urlfilter copy rule' => 'Kopieer', +'urlfilter current files' => 'Huidige bestanden in lokale repository', +'urlfilter custom blacklist' => 'Eigen zwarte lijst', +'urlfilter custom expression list' => 'Eigen expressielijst', +'urlfilter custom url' => 'Eigen bron-URL', +'urlfilter custom url required' => 'Eigen bron-URL vereist', +'urlfilter custom whitelist' => 'Eigen witte lijst', +'urlfilter daily' => 'dagelijks', +'urlfilter disabled' => 'uitgeschakeld', +'urlfilter domains' => 'Domeinen (een per regel)', +'urlfilter dont restart urlfilter' => 'Herstart URL filter niet', +'urlfilter dst' => 'Bestemming', +'urlfilter dst error' => 'Er moet tenminste een categorie zijn geselecteerd', +'urlfilter edit domains urls expressions' => 'Wijzig domeinen, URL's en expressies', +'urlfilter edit time constraint rule' => 'Wijzig een bestaande tijdregel', +'urlfilter edit user quota rule' => 'Wijzig een bestaande gebruikersquotum regel', +'urlfilter empty ads' => 'Blokkeer "ads" met leeg tijdvenster', +'urlfilter empty repository' => 'Lokale repository is leeg', +'urlfilter enable automatic blacklist update' => 'Inschakelen automatische update', +'urlfilter enable custom blacklist' => 'Inschakelen eigen zwarte lijst', +'urlfilter enable custom expression list' => 'Inschakelen eigen expressielijst', +'urlfilter enable custom whitelist' => 'Inschakelen eigen witte lijst', +'urlfilter enable expression lists' => 'Inschakelen eigen expressielijst', +'urlfilter enable full backup' => 'Inclusief complete zwarte lijst', +'urlfilter enable jpeg' => 'Inschakelen achtergrondafbeelding', +'urlfilter enable log' => 'Inschakelen log', +'urlfilter enable rewrite rules' => 'Inschakelen lokaal bestand omleiden', +'urlfilter enabled' => 'Ingeschakeld:', +'urlfilter example' => 'Voorbeeld: www.domein.com', +'urlfilter example ads' => 'Voorbeeld: www.domein.com/ads/', +'urlfilter export blacklist' => 'Exporteer zwarte lijst', +'urlfilter export error' => 'Kan exportbestand niet aanmaken', +'urlfilter expressions' => 'Expressies (een per regel)', +'urlfilter file ext block' => 'Bestandsextensie blokkering', +'urlfilter filename' => 'Naam', +'urlfilter filesize' => 'Grootte', +'urlfilter filter settings' => 'URL-filter instellingen', +'urlfilter fri' => 'V', +'urlfilter friday' => 'Vrij', +'urlfilter from' => 'Van', +'urlfilter hourly' => 'per uur', +'urlfilter import blacklist' => 'Importeer zwarte lijst', +'urlfilter import text' => 'Om een eerder opgeslagen zwarte lijst te importeren, upload het .tar.gz bestand hieronder', +'urlfilter install blacklist' => 'Installeer zwarte lijst', +'urlfilter install information' => 'De nieuwe zwarte lijst zal automatisch worden samengesteld voor uw ingebouwde databases. Afhankelijk van de grootte van de zwarte lijst kan dit tot enige minuten duren.', +'urlfilter invalid content' => 'Bestand is geen squidGuard compatibele zwarte lijst', +'urlfilter invalid import file' => 'Bestand is geen geldige URL-filter zwarte lijst', +'urlfilter invalid ip or mask error' => 'Ongeldig IP-adres of netwerkmasker', +'urlfilter invalid restore file' => 'Bestand is geen geldig URL-filter back-up bestand', +'urlfilter invalid user error' => 'Ongeldige gebruikersnaam', +'urlfilter load blacklist' => 'Laad zwarte lijst', +'urlfilter local file redirection' => 'Lokale bestandsomleiding', +'urlfilter log' => 'urlfilter log', +'urlfilter log summary' => 'Totaal aantal URL-filter treffers voor', +'urlfilter log viewer' => 'URL-filter logviewer', +'urlfilter logs' => 'URL-Filterlogs', +'urlfilter maintenance' => 'URL-filter onderhoud', +'urlfilter manage local file repository' => 'Beheer lokale bestandsrepository', +'urlfilter manage repository' => 'Beheer repository', +'urlfilter minutes' => 'minuten', +'urlfilter mode allow' => 'toestaan', +'urlfilter mode block' => 'blokkeer', +'urlfilter mon' => 'M', +'urlfilter monday' => 'Maa', +'urlfilter monthly' => 'maandelijks', +'urlfilter msg text 1' => 'Berichtregel 1', +'urlfilter msg text 2' => 'Berichtregel 2', +'urlfilter msg text 3' => 'Berichtregel 3', +'urlfilter network access control' => 'Netwerkgebaseerde toegangscontrole', +'urlfilter no categories' => 'Geen categorieën beschikbaar', +'urlfilter not enabled' => 'URL-filter is niet ingeschakeld op de Web proxy pagina', +'urlfilter quota restart message' => 'Noot: de tellers worden gereset voor alle gebruikers als het URL-filter wordt herstart', +'urlfilter quota time error' => 'Ongeldige waarde voor tijdsquotum', +'urlfilter quota user error' => 'Tenminste een gebruikersnaam is vereist', +'urlfilter redirectpage' => 'Omleiden naar deze URL', +'urlfilter remove file' => 'Verwijder bestand uit repository', +'urlfilter renewal' => 'Vernieuwing', +'urlfilter renewal period' => 'Vernieuwingsperiode', +'urlfilter repository information' => 'Downloadverzoeken voor deze bestanden zullen worden omgeleid van de originele bron naar de lokale repository.', +'urlfilter reset' => 'Reset', +'urlfilter restart' => 'Herstart URL-filter', +'urlfilter restart message' => 'Het URL-filter moet herstart worden om de wijzigingen te activeren', +'urlfilter restart notification' => 'Activeer gewijzigde regels', +'urlfilter restore' => 'Importeer back-upbestand', +'urlfilter restore results' => 'Herstelresultaten', +'urlfilter restore settings' => 'Herstel URL-filter instellingen', +'urlfilter restore success' => 'URL-filter configuratie is hersteld. Het URL-filter moet worden herstart om de de nieuwe instellingen te activeren.', +'urlfilter restore text' => 'Om een eerder opgeslagen configuratie te gebruiken uploadt u het .tar.gz back-upbestand hieronder', +'urlfilter safesearch' => 'Inschakelen SafeSearch', +'urlfilter sat' => 'Z', +'urlfilter saturday' => 'Zat', +'urlfilter save and restart' => 'Opslaan en herstarten', +'urlfilter save schedule' => 'Opslaan update-instellingen', +'urlfilter select blacklist' => 'Selecteer bestaande zwarte lijst', +'urlfilter select multi' => 'Gebruik de ctrl-toets om meerdere categorieën te selecteren', +'urlfilter select source' => 'Selecteer downloadbron', +'urlfilter set time constraints' => 'Instellen tijdsbeperkingen', +'urlfilter set user quota' => 'Instellen gebruikersquotum', +'urlfilter show category' => 'Toon categorie op blokkeerpagina', +'urlfilter show dnserror' => 'Gebruik "DNS fout" om URL's te blokkeren', +'urlfilter show ip' => 'Toon IP op blokkeerpagina', +'urlfilter show url' => 'Toon URL op blokkeerpagina', +'urlfilter source' => 'Bronhost(s) of netwerk(en)', +'urlfilter src' => 'Bron', +'urlfilter src error' => 'Bron mag niet leeg zijn', +'urlfilter sun' => 'Z', +'urlfilter sunday' => 'Zon', +'urlfilter tar error' => 'Kan archief niet uitpakken', +'urlfilter thu' => 'D', +'urlfilter thursday' => 'Don', +'urlfilter time' => 'Tijd', +'urlfilter time quota' => 'Tijdquotum', +'urlfilter time space' => 'Tijdvenster', +'urlfilter timebased access control' => 'Tijdgebaseerde toegangscontrole', +'urlfilter timespace error' => 'Fout in tijdsvenster declaratie', +'urlfilter to' => 'Tot', +'urlfilter tue' => 'D', +'urlfilter tuesday' => 'Din', +'urlfilter unfiltered clients' => 'Ongefilterde IP-adressen', +'urlfilter update information' => 'Er is een nieuwere versie beschikbaar om te downloaden. Bezoek <a href="http://www.urlfilter.net" target="_blank">http://www.urlfilter.net</a> voor meer informatie.', +'urlfilter update notification' => 'Update notificatie!', +'urlfilter update now' => 'Update nu', +'urlfilter update results' => 'Zware lijst update-resultaten', +'urlfilter update rule' => 'Update', +'urlfilter upload background' => 'Upload afbeelding', +'urlfilter upload blacklist' => 'Upload zwarte lijst', +'urlfilter upload file' => 'Upload bestand', +'urlfilter upload file information 1' => 'Noot', +'urlfilter upload file information 2' => 'Het URL-filter moet herstart worden om de wijzigingen in de repository te activeren.', +'urlfilter upload file text' => 'Upload het bestand hieronder om het aan de lokale repository toe te voegen', +'urlfilter upload information' => 'De nieuwe zwarte lijst zal automatisch worden samengesteld voor uw databases. Afhankelijk van de grootte van de zwarte lijst kan dit tot enige minuten duren. Wacht a.u.b. totdat dit proces is beëindigd alvorens het URL-filter te herstarten.', +'urlfilter upload success' => 'Zwarte lijst upload succesvol afgerond.', +'urlfilter upload text' => 'Upload het .tar.gz bestand hieronder om een bijgewerkte zwarte lijst te installeren', +'urlfilter url filter' => 'URL-filter', +'urlfilter urlfilter blacklist editor' => 'URL-filter zwarte lijstbewerker', +'urlfilter urls' => 'URL's (een per regel)', +'urlfilter user time quota' => 'Tijdquotum (in minuten)', +'urlfilter username' => 'Gebruikersnaam', +'urlfilter username log' => 'Log gebruikersnaam', +'urlfilter web proxy service required' => 'Webproxy service moet ingeschakeld zijn om het URL-filter te gebruiken', +'urlfilter wed' => 'W', +'urlfilter wednesday' => 'Woe', +'urlfilter weekday error' => 'Er moet tenminste een dag geselecteerd zijn', +'urlfilter weekly' => 'wekelijks', +'urlfilter whitelist always allowed' => 'Toestaan gebruik van eigen witte lijst voor verboden clients', +'urlfilter wrong filetype' => 'Bestand heeft niet de extensie .tar.gz', +'usb modem on acm0' => 'USB Modem op ACM0', +'usb modem on acm1' => 'USB Modem op ACM1', +'usb modem on acm2' => 'USB Modem op ACM2', +'usb modem on acm3' => 'USB Modem op ACM3', +'use' => 'Gebruik', +'use a pre-shared key' => 'Gebruik een pre-shared sleutel:', +'use dov' => 'Gebruik data over voice (DOV):', +'use ibod' => 'Gebruik bandbreedte op verzoek (iBOD):', +'use ipfire red ip' => 'Het klassieke RODE IP gebruikt door IPFire gedurende de verbinding', +'use only proposed settings' => 'Gebruik alleen voorgestelde instellingen.', +'used' => 'Gebruikt', +'used memory' => 'Gebruikt geheugen ', +'used swap' => 'Gebruikt swap', +'user' => 'Gebruiker', +'user log' => 'Gebruiker log', +'user proxy logs' => 'gebruiker proxy log', +'username' => 'Gebruikersnaam:', +'username not set' => 'Gebruikersnaam niet ingesteld.', +'users department' => 'Gebruikersafdeling', +'users email' => 'E-mailadres gebruiker', +'users fullname or system hostname' => 'Volledige naam gebruiker of systeemnaam', +'valid root certificate already exists' => 'Een geldig root certificaat bestaat al.', +'valid till' => 'Geldig tot', +'vci number' => 'VCI nummer:', +'view log' => 'bekijk log', +'virtual address' => 'Virtueel adres', +'virtual private networking' => 'Virtual Private Networking', +'visible in browselist' => 'zichtbaar in bladerlijst', +'visit us at' => 'Bezoek ons op', +'voldown10' => 'Verlaag volume met 10', +'voldown5' => 'Verlaag volume met 5', +'volup10' => 'Verhoog volume met 10', +'volup5' => 'Verhoog volume met 5', +'vpi number' => 'VPI nummer:', +'vpn' => 'VPN', +'vpn aggrmode' => 'IKE agressieve modus toegestaan. Vermijd als mogelijk (preshared sleutel wordt verstuurd als zichtbare tekst)!', +'vpn altname syntax' => 'SubjectAltName is een komma-gescheiden lijst van e-mail, dns, uri, rid and ip objecten.<br />email:een e-mailadres. Syntax e-mail:copy neemt het e-mailveld van het certificaat dat wordt gebruikt.<br />DNS:een geldige domeinnaam.<br />URI:iedere geldige URI.<br />RID:geregistreerde object identifier.<br />IP:een IP-adres.<br />Noot:tekenset is beperkt en hoofdletter gevoelig.<br />Voorbeeld:<br /><b>e-mail:</b>ipfire@foo.org<b>,email:</b>copy<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/naar/iets', +'vpn auth-dn' => 'Peer is geïdentificeerd door IPV4_ADDR, FQDN, USER_FQDN of DER_ASN1_DN tekenreeks in âremote IDâ veld', +'vpn configuration main' => 'VPN configuratie - Hoofdpagina', +'vpn delayed start' => 'Vertraging voor starten VPN (seconden)', +'vpn delayed start help' => 'Als dit noodzakelijk is, dan kan deze vertraging gebruikt worden om dynamische DNS updates op de juiste wijze te propageren. 60 seconden is a gebruikelijke waarde als ROOD een dynamisch IP-adres heeft.', +'vpn incompatible use of defaultroute' => 'hostnaam=%defaultroute niet toegestaan', +'vpn keyexchange' => 'Sleuteluitwisseling', +'vpn local id' => 'Lokale ID', +'vpn missing remote id' => 'U moet de juiste unieke naam/Distinguished Name (DN) opgeven voor deze authenticatie.', +'vpn mtu invalid' => 'MTU moet een numerieke waarde zijn!', +'vpn no full pki' => 'mist private sleutel om het certificaat te genereren', +'vpn on blue' => 'VPN op BLAUW', +'vpn on green' => 'VPN op GROEN', +'vpn on orange' => 'VPN op ORANJE', +'vpn payload compression' => 'Onderhandelen payload compressie', +'vpn red name' => 'Publiek IP of FQDN voor RODE interface of <%defaultroute>', +'vpn remote id' => 'Remote ID', +'vpn subjectaltname' => 'Onderwerp Alt Naam', +'vpn vhost' => 'Roadwarrior virtual IP (Ook wel Inner-IP genoemd)', +'vpn watch' => 'Herstart net-to-net vpn wanneer remote peer IP verandert (dyndns).', +'waiting to synchronize clock' => 'Wachten op synchronisatie van klok', +'warn when traffic reaches' => 'Waarschuw wanneer verkeer x % bereikt', +'warning messages' => 'Waarschuwingsmeldingen', +'was deleted' => 'was verwijderd', +'web hits' => 'Totaal aantal websites die overeenkomen met de geselecteerde criteria', +'web proxy' => 'Web Proxy', +'web proxy configuration' => 'Web proxy configuratie', +'web server' => 'Web Server', +'webradio playlist' => 'Webradio Afspeellijst', +'website' => 'Website', +'wednesday' => 'Woensdag', +'week' => 'Week', +'week-graph' => 'Week', +'weekly firewallhits' => 'wekelijkse firewalltreffers', +'weeks' => 'weken', +'wildcards' => 'Wildcards', +'wins server' => 'Wins Server', +'wins support' => 'Wins Support', +'wireless' => 'Draadloos', +'wireless config added' => 'Draadloze configuratie toegevoegd', +'wireless config changed' => ' Draadloze configuratie gewijzigd', +'wireless configuration' => 'Draadloze configuratie', +'wlanap access point' => 'Access Point', +'wlanap channel' => 'Kanaal', +'wlanap country' => 'Landcode', +'wlanap debugging' => 'Debugging', +'wlanap del interface' => 'Verwijder geselecteerde interface?', +'wlanap encryption' => 'Encryptie', +'wlanap informations' => 'Informatie', +'wlanap interface' => 'Selecteer interface', +'wlanap invalid wpa' => 'Ongeldige lengte voor WPA wachtwoord. Moet tussen de 8 en 63 tekens zijn.', +'wlanap link dhcp' => 'Draadloze LAN DHCP configuratie', +'wlanap link wireless' => 'Activeer draadloze LAN clients', +'wlanap no interface' => 'Geselecteerde interface is geen draadloze LAN kaart!', +'wlanap none' => 'geen', +'wlanap notifications' => 'Notificaties', +'wlanap select interface' => 'Selecteer de draadloze LAN interface.', +'wlanap verbose' => 'Uitgebreid', +'wlanap warnings' => 'Waarschuwingen', +'wlanap wlan card' => 'WLan kaart', +'wlanap wlan services' => 'WLan Diensten', +'wlanap wlan settings' => 'WLan Instellingen', +'wlanap wlan status' => 'WLan Status', +'wol wakeup' => 'Ontwaken', +'workgroup' => 'Werkgroep', +'written bytes' => 'Geschreven bytes', +'xtaccess all error' => 'U kunt een externe toegang niet op ALLEN zetten, dat wordt gedaan in het poort forwarding deel.', +'xtaccess bad transfert' => 'Als u een bestemmingspoort reeks opgeeft, dan moet de bronreeks identiek zijn!', +'year' => 'Jaar', +'year-graph' => 'Jaar', +'yearly firewallhits' => 'jaarlijkse firewalltreffers', +'yes' => 'Ja', +'you can only define one roadwarrior connection when using pre-shared key authentication' => 'U kunt slechts een Roadwarrior verbinding definiëren als u pre-shared sleutelauthenticatie gebruikt.<br />Ofwel u heeft al een Roadwarrior verbinding met pre-shared sleutelauthenticatie, of u probeert er nu een toe te voegen.', +'your department' => 'Uw afdeling', +'your e-mail' => 'Uw e-mailadres', +); + +#EOF diff --git a/langs/nl/install/lang_nl.c b/langs/nl/install/lang_nl.c new file mode 100644 index 0000000..40b64d2 --- /dev/null +++ b/langs/nl/install/lang_nl.c @@ -0,0 +1,590 @@ +/* + * Dutch (nl) Data File + * + * This file is part of the IPFire. + * + * IPCop is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * IPCop is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with IPCop; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * (c) IPFire Team info@ipfire.org + * + * based on work of SmoothWall and IPCop + * + * (c) The SmoothWall Team + * + */ + +#include "libsmooth.h" + +char *nl_tr[] = { + +/* TR_ISDN */ +"ISDN", +/* TR_ERROR_PROBING_ISDN */ +"Niet in staat om te scannen op ISDN-apparaten.", +/* TR_PROBING_ISDN */ +"Scannen en configureren van ISDN-apparaten.", +/* TR_MISSING_GREEN_IP */ +"Groen IP-adres ontbreekt!", +/* TR_CHOOSE_FILESYSTEM */ +"Kies uw bestandssysteem:", +/* TR_NOT_ENOUGH_INTERFACES */ +"Onvoldoende netwerkkaarten voor uw keuze.\n\nNodig: %d - Beschikbaar: %d\n", +/* TR_INTERFACE_CHANGE */ +"Kies de interface die u wilt wijzigen.\n\n", +/* TR_NETCARD_COLOR */ +"Toegewezen kaarten", +/* TR_REMOVE */ +"Verwijder", +/* TR_MISSING_DNS */ +"DNS ontbreekt.\n", +/* TR_MISSING_DEFAULT */ +"Standaard gateway ontbreekt.\n", +/* TR_JOURNAL_EXT3 */ +"Aanmaken journal voor Ext3...", +/* TR_CHOOSE_NETCARD */ +"Kies een netwerkkaart voor de volgende interface - %s.", +/* TR_NETCARDMENU2 */ +"Uitgebreide Netwerkmenu", +/* TR_ERROR_INTERFACES */ +"Er zijn geen vrije interfaces op uw systeem.", +/* TR_REMOVE_CARD */ +"Moet de toewijzing voor de netwerkkaart worden verwijderd? - %s", +/* TR_JOURNAL_ERROR */ +"Kon het journaalboek niet aanmaken, valt terug op gebruik van ext2.", +/* TR_FILESYSTEM */ +"Kies uw bestandssysteem", +/* TR_ADDRESS_SETTINGS */ +"Adresinstellingen", +/* TR_ADMIN_PASSWORD */ +"'admin' wachtwoord", +/* TR_AGAIN_PROMPT */ +"Nogmaals:", +/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */ +"Alle kaarten zijn succesvol toegewezen.", +/* TR_AUTODETECT */ +"* AUTODETECT *", +/* TR_BUILDING_INITRD */ +"Aanmaken ramdisk...", +/* TR_CANCEL */ +"Annuleren", +/* TR_CARD_ASSIGNMENT */ +"Kaart toewijzing", +/* TR_CHECKING */ +"Controleert URL...", +/* TR_CHECKING_FOR */ +"Controleert voor: %s", +/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */ +"Kies de ISDN-kaart die geïnstalleerd is op deze computer.", +/* TR_CHOOSE_THE_ISDN_PROTOCOL */ +"Kies het ISDN-protocol dat u nodig heeft.", +/* TR_CONFIGURE_DHCP */ +"Configureer de DHCP server door de instellingen in te voeren.", +/* TR_CONFIGURE_NETWORKING */ +"Configureer het netwerk", +/* TR_CONFIGURE_NETWORKING_LONG */ +"U moet nu het netwerk configureren door eerst de juiste driver te laden voor de GROENE interface. U kunt dit doen door ofwel automatisch te zoeken naar een netwerkkaart, of door de juiste driver te kiezen uit een lijst. Als u meer dan een kaart in uw machine heeft, dan kunt u die later in het installatieproces configureren. Mocht u meer dan een kaart van hetzelfde type als GROEN gebruiken en iedere kaart vereist speciale moduleparameters, dan moet u de parameters voor alle kaarten van dit type invoeren zodat alle kaarten actief kunnen worden waneer u de GROENE interface configureert.", +/* TR_CONFIGURE_NETWORK_DRIVERS */ +"Configureer netwerkdrivers, en bepaal welke interface iedere kaart krijgt toegewezen. De huidige configuratie is als volgt:\n\n", +/* TR_CONFIGURE_THE_CDROM */ +"Configureer de CDROM door het juiste IO-adres en/of IRQ te kiezen.", +/* TR_CONGRATULATIONS */ +"Gefeliciteerd!", +/* TR_CONGRATULATIONS_LONG */ +"%s is succesvol geïnstalleerd. Verwijder a.u.b. de CDROM's in uw computer. U kunt nu de netwerkkaarten en ISDN configureren en de systeemwachtwoorden instellen. Nadat de setup is afgerond, kunt u met de webbrowser naar https://%s:444 (of hoe u %s ook genoemd heeft) en het inbelnetwerk configureren (als nodig) en de remote toegang.", +/* TR_CONTINUE_NO_SWAP */ +"Uw vaste schijf is erg klein, maar u kunt verder gaan met een zeer kleine swap. (Wees hier voorzichtig mee).", +/* TR_CURRENT_CONFIG */ +"Huidige configuratie: %s%s", +/* TR_DEFAULT_GATEWAY */ +"Standaard Gateway:", +/* TR_DEFAULT_GATEWAY_CR */ +"Standaard Gateway\n", +/* TR_DEFAULT_LEASE */ +"Standaard lease (min.):", +/* TR_DEFAULT_LEASE_CR */ +"Standaard leasetijd\n", +/* TR_DETECTED */ +"Gedetecteerd: %s", +/* TR_DHCP_HOSTNAME */ +"DHCP Hostnaam:", +/* TR_DHCP_HOSTNAME_CR */ +"DHCP Hostnaam\n", +/* TR_DHCP_SERVER_CONFIGURATION */ +"DHCP serverconfiguratie", +/* TR_DISABLED */ +"Uitgeschakeld", +/* TR_DISABLE_ISDN */ +"ISDN uitschakelen", +/* TR_DISK_TOO_SMALL */ +"Uw vaste schijf is te klein.", +/* TR_DNS_AND_GATEWAY_SETTINGS */ +"DNS en Gateway instellingen", +/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */ +"Voer de DNS en gateway informatie in. Deze instellingen worden alleen gebruikt met statische IP-adressen (en DHCP als DNS is ingesteld) op de RODE interface.", +/* TR_DNS_GATEWAY_WITH_GREEN */ +"Uw configuratie gebruikt geen ethernetadapter voor z'n RODE interface. DNS en gateway voor inbelgebruikers worden automatisch geconfigureerd tijdens inbellen.", +/* TR_DOMAINNAME */ +"Domeinnaam", +/* TR_DOMAINNAME_CANNOT_BE_EMPTY */ +"Domeinnaam mag niet leeg zijn.", +/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */ +"Domeinnaam mag geen spaties bevatten.", +/* TR_DOMAINNAME_NOT_VALID_CHARS */ +"Domeinnaam mag alleen letters, getallen, koppeltekens en punten bevatten.", +/* TR_DOMAIN_NAME_SUFFIX */ +"Domeinnaam toevoeging:", +/* TR_DOMAIN_NAME_SUFFIX_CR */ +"Domeinnaam toevoeging\n", +/* TR_DONE */ +"Klaar", +/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */ +"\nWilt u deze instellingen wijzigen?", +/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */ +"Drivers en kaarttoewijzingen", +/* TR_ENABLED */ +"Ingeschakeld", +/* TR_ENABLE_ISDN */ +"Inschakelen ISDN", +/* TR_END_ADDRESS */ +"Eindadres:", +/* TR_END_ADDRESS_CR */ +"Eindadres\n", +/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */ +"Bepaalde ISDN-kaarten (met name de ISA-kaarten) kunnen extra moduleparameters vereisen voor het instellen van IRQ- en IO-adressen. Als u zo'n ISDN-kaart heeft, voer deze parameters dan hier in. Bijvoorbeeld: "io=0x280 irq=9". Deze gegevens worden gebruikt tijdens de kaartdetectie.", +/* TR_ENTER_ADMIN_PASSWORD */ +"Voer het %s 'admin' wachtwoord in. Dit is de gebruikersnaam die gebruikt wordt om in te loggen op de %s webbeheerpagina's.", +/* TR_ENTER_DOMAINNAME */ +"Invoeren domeinnaam", +/* TR_ENTER_HOSTNAME */ +"Invoeren machinehostnaam.", +/* TR_ENTER_IP_ADDRESS_INFO */ +"Invoeren IP-adres informatie", +/* TR_ENTER_NETWORK_DRIVER */ +"Automatisch detecteren van netwerkkaart is mislukt. Voer de drivernaam en optionele parameters in voor de netwerkkaart.", +/* TR_ENTER_ROOT_PASSWORD */ +"Invoeren van het 'root' wachtwoord. Log in als deze gebruiker voor commandoregel toegang.", +/* TR_ENTER_SETUP_PASSWORD */ +"WORDT VERWIJDERD", +/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */ +"Invoeren van IP-adres informatie voor de %s interface.", +/* TR_ENTER_THE_LOCAL_MSN */ +"Invoeren van lokaal telefoonnummer (MSN/EAZ).", +/* TR_ENTER_URL */ +"Invoeren van URL-pad naar de ipcop-<versie>.tgz en images/scsidrv-<versie>.img bestanden. WAARSCHUWING: DNS is niet beschikbaar! Dit zou http://X.X.X.X/<directory> moeten zijn", +/* TR_ERROR */ +"Fout", +/* TR_ERROR_PROBING_CDROM */ +"Geen CDROM-speler gevonden.", +/* TR_ERROR_WRITING_CONFIG */ +"Fout bij wegschrijven van configuratie informatie.", +/* TR_EURO_EDSS1 */ +"Euro (EDSS1)", +/* TR_EXTRACTING_MODULES */ +"Uitpakken modules...", +/* TR_FAILED_TO_FIND */ +"URL-bestand niet gevonden.", +/* TR_FOUND_NIC */ +"%s heeft de volgende NIC in uw machine gedetecteerd: %s", +/* TR_GERMAN_1TR6 */ +"German 1TR6", +/* TR_HELPLINE */ +" <Tab>/<Alt-Tab> schakelen tussen elementen | <Spatie> selecteert", +/* TR_HOSTNAME */ +"Hostnaam", +/* TR_HOSTNAME_CANNOT_BE_EMPTY */ +"Hostnaam mag niet leeg zijn.", +/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */ +"Hostnaam mag geen spaties bevatten.", +/* TR_HOSTNAME_NOT_VALID_CHARS */ +"Hostnaam mag alleen letters, getallen en koppeltekens bevatten.", +/* TR_INITIALISING_ISDN */ +"Initialiseert ISDN...", +/* TR_INSERT_CDROM */ +"Plaats de %s CD in the CDROM-speler a.u.b.", +/* TR_INSERT_FLOPPY */ +"Plaats de %s driver-diskette in het station a.u.b.", +/* TR_INSTALLATION_CANCELED */ +"Installatie afgebroken.", +/* TR_INSTALLING_FILES */ +"Installeert bestanden...", +/* TR_INSTALLING_GRUB */ +"Installeert GRUB...", +/* TR_INSTALLING_LANG_CACHE */ +"Installeert taalbestanden...", +/* TR_INTERFACE */ +"Interface - %s", +/* TR_INTERFACE_FAILED_TO_COME_UP */ +"Interface kwam niet op.", +/* TR_INVALID_FIELDS */ +"De volgende velden zijn ongeldig:\n\n", +/* TR_INVALID_IO */ +"De ingevoerde IO-poortgegevens zijn ongeldig. ", +/* TR_INVALID_IRQ */ +"De ingevoerde IRQ gegevens zijn ongeldig.", +/* TR_IP_ADDRESS_CR */ +"IP-adres\n", +/* TR_IP_ADDRESS_PROMPT */ +"IP-adres:", +/* TR_ISDN_CARD */ +"ISDN-kaart", +/* TR_ISDN_CARD_NOT_DETECTED */ +"ISDN-kaart niet gedetecteerd. Mogelijk dient u extra moduleparameters op te geven als het een ISA type betreft of heeft het speciale eisen.", +/* TR_ISDN_CARD_SELECTION */ +"ISDN kaartselectie", +/* TR_ISDN_CONFIGURATION */ +"ISDN configuratie", +/* TR_ISDN_CONFIGURATION_MENU */ +"ISDN configuratiemenu", +/* TR_ISDN_NOT_SETUP */ +"ISDN niet ingesteld. Sommige items zijn niet geselecteerd.", +/* TR_ISDN_NOT_YET_CONFIGURED */ +"ISDN is nog niet geconfigureerd. Selecteer het item dat u wilt configureren.", +/* TR_ISDN_PROTOCOL_SELECTION */ +"ISDN protocolselectie", +/* TR_ISDN_STATUS */ +"ISDN is momenteel %s.\n\n Protocol: %s\n Kaart: %s\n Lokaal telefoonnummer: %s\n\nSelecteer het item dat u wilt herconfigureren, of kies voor de huidige instellingen.", +/* TR_KEYBOARD_MAPPING */ +"Toetsenbordindeling", +/* TR_KEYBOARD_MAPPING_LONG */ +"Kies het type toetsenbord dat u gebruikt uit de lijst hieronder.", +/* TR_LEASED_LINE */ +"Vaste verbinding", +/* TR_LOADING_MODULE */ +"Laadt module...", +/* TR_LOADING_PCMCIA */ +"Laadt PCMCIA modules...", +/* TR_LOOKING_FOR_NIC */ +"Zoekt naar: %s", +/* TR_MAKING_BOOT_FILESYSTEM */ +"Aanmaken boot bestandssysteem...", +/* TR_MAKING_LOG_FILESYSTEM */ +"Aanmaken log bestandssysteem...", +/* TR_MAKING_ROOT_FILESYSTEM */ +"Aanmaken root bestandssysteem...", +/* TR_MAKING_SWAPSPACE */ +"Aanmaken swap...", +/* TR_MANUAL */ +"* HANDMATIG *", +/* TR_MAX_LEASE */ +"Max. lease (min.):", +/* TR_MAX_LEASE_CR */ +"Max. leasetijd\n", +/* TR_MISSING_BLUE_IP */ +"Ontbrekende IP-informatie op de BLAUWE interface.", +/* TR_MISSING_ORANGE_IP */ +"Ontbrekende IP-informatie op de ORANJE interface.", +/* TR_MISSING_RED_IP */ +"Ontbrekende IP-informatie op de RODE interface.", +/* TR_MODULE_NAME_CANNOT_BE_BLANK */ +"Modulenaam mag niet leeg zijn.", +/* TR_MODULE_PARAMETERS */ +"Invoeren van de modulenaam en parameters voor de driver die u nodig hebt.", +/* TR_MOUNTING_BOOT_FILESYSTEM */ +"Koppelen van het boot bestandssysteem...", +/* TR_MOUNTING_LOG_FILESYSTEM */ +"Koppelen van het log bestandssysteem...", +/* TR_MOUNTING_ROOT_FILESYSTEM */ +"Koppelen van het root bestandssysteem...", +/* TR_MOUNTING_SWAP_PARTITION */ +"Koppelen van de swap partitie...", +/* TR_MSN_CONFIGURATION */ +"Lokaal telefoonnummer (MSN/EAZ)", +/* TR_NETMASK_PROMPT */ +"Netwerkmasker:", +/* TR_NETWORKING */ +"Netwerk", +/* TR_NETWORK_ADDRESS_CR */ +"Netwerkadres\n", +/* TR_NETWORK_ADDRESS_PROMPT */ +"Netwerkadres:", +/* TR_NETWORK_CONFIGURATION_MENU */ +"Netwerk configuratiemenu", +/* TR_NETWORK_CONFIGURATION_TYPE */ +"Netwerk configuratietype", +/* TR_NETWORK_CONFIGURATION_TYPE_LONG */ +"Selecteer de netwerkconfiguratie voor %s. De volgende configuratiesoorten vermelden welke interfaces op ethernet aangesloten zijn. Als u deze instellingen wijzigt, dan is een netwerk herstart nodig en u moet de netwerkdriver toewijzingen opnieuw maken.", +/* TR_NETWORK_MASK_CR */ +"Netwerkmasker\n", +/* TR_NETWORK_SETUP_FAILED */ +"Netwerkinstelling mislukt.", +/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */ +"Er zijn onvoldoende kaarten toegewezen.", +/* TR_NO_BLUE_INTERFACE */ +"Er is geen BLAUWE interface toegewezen.", +/* TR_NO_CDROM */ +"Geen CD-ROM gevonden.", +/* TR_NO_GREEN_INTERFACE */ +"Er is geen GROENE interface toegewezen.", +/* TR_NO_HARDDISK */ +"Geen vaste schijf gevonden.", +/* TR_NO_IPCOP_TARBALL_FOUND */ +"Er is geen ipcop tarball gevonden op de webserver.", +/* TR_NO_ORANGE_INTERFACE */ +"Er is geen ORANJE interface toegewezen.", +/* TR_NO_RED_INTERFACE */ +"Er is geen RODE interface toegewezen.", +/* TR_NO_SCSI_IMAGE_FOUND */ +"Er is geen SCSI image gevonden op de webserver.", +/* TR_NO_UNALLOCATED_CARDS */ +"Er zijn geen vrije kaarten over, er zijn er meer vereist. U kunt automatisch detecteren proberen en op zoek gaan naar meer kaarten, of u kiest een driver uit de lijst.", +/* TR_OK */ +"Ok", +/* TR_PARTITIONING_DISK */ +"Partitioneert schijf...", +/* TR_PASSWORDS_DO_NOT_MATCH */ +"Wachtwoorden komen niet overeen.", +/* TR_PASSWORD_CANNOT_BE_BLANK */ +"Wachtwoord mag niet leeg zijn.", +/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */ +"Wachtwoord mag geen spaties bevatten.", +/* TR_PASSWORD_PROMPT */ +"Wachtwoord:", +/* TR_PHONENUMBER_CANNOT_BE_EMPTY */ +"Telefoonnummer mag niet leeg zijn.", +/* TR_PREPARE_HARDDISK */ +"Het installatieprogramma zal nu de vaste schijf voorbereiden op %s. Eerst wordt de schijf gepartitioneerd, daarna zullen de bestandssystemen erop worden gezet.", +/* TR_PRESS_OK_TO_REBOOT */ +"Klik Ok om te herstarten.", +/* TR_PRIMARY_DNS */ +"Primaire DNS:", +/* TR_PRIMARY_DNS_CR */ +"Primaire DNS\n", +/* TR_PROBE */ +"Opsporen", +/* TR_PROBE_FAILED */ +"Automatisch detecteren mislukt.", +/* TR_PROBING_HARDWARE */ +"Opsporen van hardware...", +/* TR_PROBING_FOR_NICS */ +"Zoeken naar NIC's...", +/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */ +"Er is een probleem met het instellen van %s 'admin' gebruikerswachtwoord.", +/* TR_PROBLEM_SETTING_ROOT_PASSWORD */ +"Er is een probleem met het instellen van %s 'root' gebruikerswachtwoord.", +/* TR_PROBLEM_SETTING_SETUP_PASSWORD */ +"WORDT VERWIJDERD", +/* TR_PROTOCOL_COUNTRY */ +"Protocol/Land", +/* TR_PULLING_NETWORK_UP */ +"Netwerk opbrengen...", +/* TR_PUSHING_NETWORK_DOWN */ +"Netwerk stoppen...", +/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */ +"Niet-lokaal netwerk stoppen...", +/* TR_QUIT */ +"Stoppen", +/* TR_RED_IN_USE */ +"ISDN (of een andere externe verbinding) is momenteel in gebruik. U kunt ISDN niet configureren zolang de RODE interface actief is.", +/* TR_RESTART_REQUIRED */ +"\n\nAls de configuratie gereed is moet het netwerk herstart worden.", +/* TR_RESTORE */ +"Terugzetten", +/* TR_RESTORE_CONFIGURATION */ +"Als u een diskette heeft met een %s systeemconfiguratie daarop, plaats dan de diskette in het station en klik op de terugzetten-knop.", +/* TR_ROOT_PASSWORD */ +"'root' wachtwoord", +/* TR_SECONDARY_DNS */ +"Secundaire DNS:", +/* TR_SECONDARY_DNS_CR */ +"Secundaire DNS\n", +/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */ +"Secundaire DNS opgegeven zonder een primaire DNS", +/* TR_SECTION_MENU */ +"Sectiemenu", +/* TR_SELECT */ +"Selecteer", +/* TR_SELECT_CDROM_TYPE */ +"Selecteer CDROM type", +/* TR_SELECT_CDROM_TYPE_LONG */ +"Er is geen CD-ROM gedetecteerd in deze machine. Maak een keuze uit de volgende drivers waarmee %s de CD-ROM kan benaderen.", +/* TR_SELECT_INSTALLATION_MEDIA */ +"Selecteer installatiemedium", +/* TR_SELECT_INSTALLATION_MEDIA_LONG */ +"%s kan worden geïnstalleerd vanuit verschillende bronnen. De eenvoudigste manier is om de CDROM-speler van de machine te gebruiken. Als de computer geen CDROM-speler heeft, dan kunt vanaf een andere machine installeren die de installatiebestanden beschikbaar kan maken over het netwerk via HTTP of FTP.", +/* TR_SELECT_NETWORK_DRIVER */ +"Selecteer netwerkdriver", +/* TR_SELECT_NETWORK_DRIVER_LONG */ +"Selecteer de netwerkdriver voor de aanwezige kaart in deze machine. Als u HANDMATIG selecteert, krijgt u de mogelijkheid om de driver modulenaam en parameters op te geven voor drivers met speciale eisen, zoals voor ISA-kaarten.", +/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */ +"Selecteer de interface die u wilt herconfigureren.", +/* TR_SELECT_THE_ITEM */ +"Selecteer het item dat u wilt configureren.", +/* TR_SETTING_ADMIN_PASSWORD */ +"Instellen van %s 'admin' gebruikerswachtwoord...", +/* TR_SETTING_ROOT_PASSWORD */ +"Instellen van 'root' wachtwoord....", +/* TR_SETTING_SETUP_PASSWORD */ +"WORDT VERWIJDERD", +/* TR_SETUP_FINISHED */ +"Setup is afgerond. Klik Ok.", +/* TR_SETUP_NOT_COMPLETE */ +"Initiële setup was niet volledig afgerond. Verzeker u ervan dat de setup goed is afgerond door het setup programma nogmaals vanaf de commandoregel te draaien.", +/* TR_SETUP_PASSWORD */ +"WORDT VERWIJDERD", +/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */ +"Instellen additionele moduleparameters", +/* TR_SINGLE_GREEN */ +"Uw configuratie is ingesteld voor een enkele GROENE interface.", +/* TR_SKIP */ +"Overslaan", +/* TR_START_ADDRESS */ +"Beginadres:", +/* TR_START_ADDRESS_CR */ +"Beginadres\n", +/* TR_STATIC */ +"Statisch", +/* TR_SUGGEST_IO */ +"(voorstel %x)", +/* TR_SUGGEST_IRQ */ +"(voorstel %d)", +/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */ +"Deze drivermodule is al geladen.", +/* TR_TIMEZONE */ +"Tijdzone", +/* TR_TIMEZONE_LONG */ +"Kies de tijdzone waar u zich bevindt uit de lijst hieronder.", +/* TR_UNABLE_TO_EJECT_CDROM */ +"Kan de CDROM niet uitwerpen.", +/* TR_UNABLE_TO_EXTRACT_MODULES */ +"Kan de modules niet uitpakken.", +/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */ +"Kan geen additionele drivers vinden.", +/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */ +"Kan geen ISDN-kaart vinden in deze computer. U kunt extra module parameters opgeven als het een ISA-kaart betreft of als het speciale eisen heeft.", +/* TR_UNABLE_TO_INITIALISE_ISDN */ +"Kan de ISDN-kaart niet initialiseren.", +/* TR_UNABLE_TO_INSTALL_FILES */ +"Kan de bestanden niet installeren.", +/* TR_UNABLE_TO_INSTALL_LANG_CACHE */ +"Kan de taalbestanden niet installeren.", +/* TR_UNABLE_TO_INSTALL_GRUB */ +"Kan GRUB niet installeren.", +/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */ +"Kan de drivermodule niet laden.", +/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */ +"Kan het boot bestandssysteem niet aanmaken.", +/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */ +"Kan het log bestandssysteem niet aanmaken.", +/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */ +"Kan het root bestandssysteem niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SWAPSPACE */ +"Kan het swap bestandssysteem niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */ +"Kan de symlink /dev/harddisk niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */ +"Kan de symlink /dev/harddisk1 niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */ +"Kan de symlink /dev/harddisk2 niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */ +"Kan de symlink /dev/harddisk3 niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */ +"Kan de symlink /dev/harddisk4 niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */ +"Kan de symlink /dev/root niet aanmaken.", +/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */ +"Kan het boot bestandssysteem niet koppelen.", +/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */ +"Kan het log bestandssysteem niet koppelen.", +/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */ +"Kan het proc bestandssysteem niet koppelen.", +/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */ +"Kan het root bestandssysteem niet koppelen.", +/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */ +"Kan de swap partitie niet koppelen.", +/* TR_UNABLE_TO_OPEN_HOSTS_FILE */ +"Kan het hosts-bestand niet openen.", +/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */ +"Kan het instellingenbestand niet openen", +/* TR_UNABLE_TO_PARTITION */ +"Kan de schijf niet partitioneren.", +/* TR_UNABLE_TO_REMOVE_TEMP_FILES */ +"Kan de tijdelijke gedownloade bestanden niet verwijderen.", +/* TR_UNABLE_TO_SET_HOSTNAME */ +"Kan de hostnaam niet instellen.", +/* TR_UNABLE_TO_UNMOUNT_CDROM */ +"Kan het CDROM-/diskettestation niet ontkoppelen.", +/* TR_UNABLE_TO_UNMOUNT_HARDDISK */ +"Kan de vaste schijf niet ontkoppelen.", +/* TR_UNABLE_TO_WRITE_ETC_FSTAB */ +"Kan /etc/fstab niet wegschrijven", +/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */ +"Kan /etc/hostname niet wegschrijven", +/* TR_UNABLE_TO_WRITE_ETC_HOSTS */ +"Kan /etc/hosts niet wegschrijven.", +/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */ +"Kan /etc/hosts.allow niet wegschrijven.", +/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */ +"Kan /etc/hosts.deny niet wegschrijven.", +/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */ +"Kan %s/ethernet/settings niet wegschrijven.", +/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */ +"Kan %s/main/hostname.conf niet wegschrijven.", +/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */ +"Kan %s/main/settings niet wegschrijven.", +/* TR_UNCLAIMED_DRIVER */ +"Er is een ongebruikte ethernetkaart van het type:\n%s\n\nU kunt deze toewijzen aan:", +/* TR_UNKNOWN */ +"ONBEKEND", +/* TR_UNSET */ +"NIET INGESTELD", +/* TR_USB_KEY_VFAT_ERR */ +"Deze USB-sleutel is ongeldig (geen vfat partitie gevonden).", +/* TR_US_NI1 */ +"US NI1", +/* TR_WARNING */ +"WAARSCHUWING", +/* TR_WARNING_LONG */ +"Als u dit IP-adres wijzigt, en u bent op afstand ingelogd, dan zal de verbinding naar de %s machine worden verbroken en u zult opnieuw moeten verbinden naar het nieuwe IP-adres. Dit is een riskante handeling en moet alleen geprobeerd worden als u fysieke toegang tot de machine hebt, in het geval er iets fout gaat.", +/* TR_WELCOME */ +"Welkom bij het %s installatieprogramma. Als u 'annuleren' op een van de volgende schermen selecteert zal de computer herstarten.", +/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */ +"Uw configuratie is ingesteld voor een enkele GROENE interface, welke al een driver toegewezen heeft.", +/* TR_YES */ +"Ja", +/* TR_NO */ +"Nee", +/* TR_AS */ +"als", +/* TR_IGNORE */ +"Negeer", +/* TR_PPP_DIALUP */ +"PPP DIALUP (PPPoE, modem, ATM ...)", +/* TR_DHCP */ +"DHCP", +/* TR_DHCP_STARTSERVER */ +"Start DHCP-server ...", +/* TR_DHCP_STOPSERVER */ +"Stopt DHCP-server ...", +/* TR_LICENSE_ACCEPT */ +"Ik accepteer deze licentie.", +/* TR_LICENSE_NOT_ACCEPTED */ +"Licentie niet geaccepteerd. Stopt!", +/* TR_EXT2FS_DESCR */ +"Ext2 - Bestandssysteem zonder journal (geschikt voor flashdrives)", +/* TR_EXT3FS_DESCR */ +"Ext3 - Bestandssysteem met journal", +/* TR_EXT4FS_DESCR */ +"Ext4 - Bestandssysteem met journal", +/* TR_REISERFS_DESCR */ +"ReiserFS - Bestandssysteem met journal", +/* TR_NO_LOCAL_SOURCE */ +"Geen lokale bronmedia gevonden. Start download.", +/* TR_DOWNLOADING_ISO */ +"Downloaden van installatie-image ...", +/* TR_DOWNLOAD_ERROR */ +"Fout tijdens downloaden!", +/* TR_DHCP_FORCE_MTU */ +"Forceer DHCP mtu:", +}; diff --git a/lfs/Config b/lfs/Config index 2bc0754..b9c0fb6 100644 --- a/lfs/Config +++ b/lfs/Config @@ -96,6 +96,8 @@ endif # ifeq "$(ROOT)" "" define POSTBUILD + @echo "Updating linker cache..." + @type -p ldconfig >/dev/null && ldconfig || : @echo "Install done; saving file list to $(TARGET) ..." @$(FIND_FILES) > $(DIR_SRC)/lsalrnew @diff $(DIR_SRC)/lsalr $(DIR_SRC)/lsalrnew | grep '^> ' | sed 's/^> //' > $(TARGET)_diff @@ -189,7 +191,7 @@ define PAK tar xf /install/packages/package/files.tmp -C /install/packages/package/tmp/ \ -p --numeric-owner rm -f /install/packages/package/files.tmp - cd /install/packages/package/tmp/ && tar -c -p --numeric-owner -f /install/packages/package/files * + cd /install/packages/package/tmp/ && tar -c -p --numeric-owner -J -f /install/packages/package/files.tar.xz * rm -r /install/packages/package/tmp -cat /install/packages/package/ROOTFILES | grep -v "#" > /install/packages/package/ROOTFILES.tmp mv /install/packages/package/ROOTFILES.tmp /install/packages/package/ROOTFILES diff --git a/lfs/acpid b/lfs/acpid new file mode 100644 index 0000000..ff85e1c --- /dev/null +++ b/lfs/acpid @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.0.16 + +THISAPP = acpid-$(VER) +DL_FILE = $(THISAPP).tar.xz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +SUP_ARCH = i586 + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = d59fc02c9c34f0d5c137495302e2c074 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) OPT="$(CFLAGS)" + cd $(DIR_APP) && make install + + # Install configuration. + mkdir -pv /etc/acpi/{actions,events} + cp -vf $(DIR_SRC)/config/acpid/power /etc/acpi/events/ + cp -vf $(DIR_SRC)/config/acpid/power.sh /etc/acpi/actions/ + chmod 755 /etc/acpi/actions/power.sh + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/alsa b/lfs/alsa index dadaa14..9189655 100644 --- a/lfs/alsa +++ b/lfs/alsa @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,10 +25,9 @@ include Config
-VER = 1.0.24.1 -UVER = 1.0.24.2 -FVER = 1.0.24.1 -DVER = 1.0.24 +VER = 1.0.26 +UVER = 1.0.26 +FVER = 1.0.25
VERSUFIX = ipfire$(KCFG)
@@ -37,32 +36,25 @@ DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) PROG = alsa -PAK_VER = 9 +PAK_VER = 11
DEPS = ""
-ifeq "$(KMOD)" "1" - TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules ###############################################################################
-objects = $(DL_FILE) alsa-utils-$(UVER).tar.bz2 alsa-firmware-$(FVER).tar.bz2 \ - alsa-driver-$(DVER).tar.bz2 +objects = $(DL_FILE) alsa-utils-$(UVER).tar.bz2 alsa-firmware-$(FVER).tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) alsa-utils-$(UVER).tar.bz2 = $(DL_FROM)/alsa-utils-$(UVER).tar.bz2 alsa-firmware-$(FVER).tar.bz2 = $(DL_FROM)/alsa-firmware-$(FVER).tar.bz2 -alsa-driver-$(DVER).tar.bz2 = $(DL_FROM)/alsa-driver-$(DVER).tar.bz2
-$(DL_FILE)_MD5 = 7cc05f25e1d5b65da8fb3fdcd540f226 -alsa-utils-$(UVER).tar.bz2_MD5 = 8238cd57cb301d1c36bcf0ecb59ce6b2 -alsa-firmware-$(FVER).tar.bz2_MD5 = d37434dfcfececd8581d2f0bbe2fcf1b -alsa-driver-$(DVER).tar.bz2_MD5 = a4ffd80745ce5098dfd48d83c2769e0e +$(DL_FILE)_MD5 = 2dfa35d28471d721e592b616beedf965 +alsa-utils-$(UVER).tar.bz2_MD5 = 4dcf1017fafc91603af96705c073eca9 +alsa-firmware-$(FVER).tar.bz2_MD5 = f1939da45b162c83a726c54a470ef139
install : $(TARGET)
@@ -95,16 +87,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_SRC)/alsa* -ifeq "$(KMOD)" "1" - cd $(DIR_SRC) && tar xfj $(DIR_DL)/alsa-driver-$(DVER).tar.bz2 - cd $(DIR_SRC)/alsa-driver-$(DVER) && sed -i -e "s| soc/ | |g" Makefile - cd $(DIR_SRC)/alsa-driver-$(DVER) && sed -i -e "s| soc||g" Makefile - cd $(DIR_SRC)/alsa-driver-$(DVER) && ./configure --with-kernel=/usr/src/linux - cd $(DIR_SRC)/alsa-driver-$(DVER) && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_SRC)/alsa-driver-$(DVER) && make install -else cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --enable-static + cd $(DIR_APP) && ./configure cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install cd $(DIR_SRC) && tar xfj $(DIR_DL)/alsa-utils-$(UVER).tar.bz2 @@ -115,6 +99,5 @@ else cd $(DIR_SRC)/alsa-firmware-$(FVER) && ./configure cd $(DIR_SRC)/alsa-firmware-$(FVER) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_SRC)/alsa-firmware-$(FVER) && make install -endif @rm -rf $(DIR_SRC)/alsa* @$(POSTBUILD) diff --git a/lfs/apcupsd b/lfs/apcupsd index db14e14..4e9137b 100644 --- a/lfs/apcupsd +++ b/lfs/apcupsd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # diff --git a/lfs/applejuice b/lfs/applejuice deleted file mode 100644 index 12e58a6..0000000 --- a/lfs/applejuice +++ /dev/null @@ -1,90 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0.31 - -THISAPP = applejuice-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = applejuice -PAK_VER = 2 - -DEPS = "java" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = dc4ac444ff9ec9e1e841e856564d0234 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && mkdir -p /opt/applejuice && mv -fv ajcore.jar /opt/applejuice - cd $(DIR_APP) && mv -fv libajnetmask.so /opt/applejuice - ln -svf ../../opt/applejuice/libajnetmask.so /usr/lib - cd $(DIR_APP) && cp -afv phpaj /srv/web - chown nobody.nobody /srv/web/phpaj -Rv - -mkdir /var/ipfire/applejuice - echo "RAMSIZE=64M" > /var/ipfire/applejuice/settings - chown nobody.nobody /var/ipfire/applejuice -Rv - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/asterisk b/lfs/asterisk index afc95f5..d2b1976 100644 --- a/lfs/asterisk +++ b/lfs/asterisk @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.8.13.0 +VER = 1.8.19.0
THISAPP = asterisk-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = asterisk -PAK_VER = 7 +PAK_VER = 8
CHAN_CAPI = chan_capi-20120614
@@ -44,20 +44,17 @@ DEPS = "libpri libtiff libvorbis libogg spandsp netsnmpd"
objects = $(DL_FILE) \ asterisk-1.4-de-prompts.tar.gz \ - asterisk-core-sounds-en-gsm-1.4.22.tar.gz \ asterisk-extra-sounds-en-gsm-1.4.11.tar.gz \ asterisk-moh-opsound-gsm-2.03.tar.gz \ $(CHAN_CAPI).tgz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -asterisk-core-sounds-en-gsm-1.4.22.tar.gz = $(URL_IPFIRE)/asterisk-core-sounds-en-gsm-1.4.22.tar.gz asterisk-extra-sounds-en-gsm-1.4.11.tar.gz = $(URL_IPFIRE)/asterisk-extra-sounds-en-gsm-1.4.11.tar.gz asterisk-moh-opsound-gsm-2.03.tar.gz = $(URL_IPFIRE)/asterisk-moh-opsound-gsm-2.03.tar.gz asterisk-1.4-de-prompts.tar.gz = $(URL_IPFIRE)/asterisk-1.4-de-prompts.tar.gz $(CHAN_CAPI).tgz = $(URL_IPFIRE)/$(CHAN_CAPI).tgz
-$(DL_FILE)_MD5 = e7f2cb19068c1211c907062f9e96c47a -asterisk-core-sounds-en-gsm-1.4.22.tar.gz_MD5 = 2a99a45c0675135255bc65796b12f7c6 +$(DL_FILE)_MD5 = dc98436846cc2de57100d78747b1bdd1 asterisk-extra-sounds-en-gsm-1.4.11.tar.gz_MD5 = 5479cb4cb81d678304d96f35e4933a11 asterisk-moh-opsound-gsm-2.03.tar.gz_MD5 = 09066f55f1358f298bc1a6e4678a3ddf asterisk-1.4-de-prompts.tar.gz_MD5 = 626a2b95071a5505851e43874dfbfd5c @@ -104,7 +101,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && cp -fv $(DIR_SRC)/config/asterisk/asterisk.makeopts menuselect.makeopts
# add additional sounds - cd $(DIR_APP) && cp -fv $(DIR_DL)/asterisk-core-sounds-en-gsm-1.4.22.tar.gz $(DIR_APP)/sounds/ cd $(DIR_APP) && cp -fv $(DIR_DL)/asterisk-extra-sounds-en-gsm-1.4.11.tar.gz $(DIR_APP)/sounds/ cd $(DIR_APP) && cp -fv $(DIR_DL)/asterisk-moh-opsound-gsm-2.03.tar.gz $(DIR_APP)/sounds/
diff --git a/lfs/autoconf b/lfs/autoconf index 0ee15c1..9c58e20 100644 --- a/lfs/autoconf +++ b/lfs/autoconf @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 Michael Tremer & Christian Schmidt # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 2.59 +VER = 2.69
THISAPP = autoconf-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -39,7 +39,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 1ee40f7a676b3cfdc0e3f7cd81551b5f +$(DL_FILE)_MD5 = 50f97f4159805e374639a73e2636f22e
install : $(TARGET)
@@ -68,7 +68,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/automake b/lfs/automake index 699d96f..9b19a1b 100644 --- a/lfs/automake +++ b/lfs/automake @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 1.9.6 +VER = 1.12.4
THISAPP = automake-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c11b8100bb311492d8220378fd8bf9e0 +$(DL_FILE)_MD5 = 7395a0420ecb5c9bc43e5fcf4824df36
install : $(TARGET)
@@ -69,7 +69,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/bash b/lfs/bash index afdb511..c89ff54 100644 --- a/lfs/bash +++ b/lfs/bash @@ -24,7 +24,7 @@
include Config
-VER = 3.1 +VER = 3.2
THISAPP = bash-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -48,7 +48,7 @@ else EXTRA_INSTALL = endif
-EXTRA_CONFIG += --build=$(BUILDTARGET) +EXTRA_CONFIG += ac_cv_func_working_mktime=yes
############################################################################### # Top-level Rules @@ -58,7 +58,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ef5304c4b22aaa5088972c792ed45d72 +$(DL_FILE)_MD5 = 00bfa16d58e034e3c2aa27f390390d30
install : $(TARGET)
@@ -88,8 +88,14 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-fixes-8.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-login.patch + + for i in $$(seq 1 51); do \ + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash32-$$(printf "%03d" "$${i}") || exit 1; \ + done + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-4.0-paths-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-4.0-profile-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-3.2-ssh_source_bash.patch cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install diff --git a/lfs/binutils b/lfs/binutils index 2ff8474..791483f 100644 --- a/lfs/binutils +++ b/lfs/binutils @@ -24,39 +24,52 @@
include Config
-VER = 2.18 +VER = 2.22
THISAPP = binutils-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP)
-# XXX maybe we can remove that ugly MACHINE= by this -#unexport MACHINE - # Normal build or /tools build. # ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) - EXTRA_CONFIG = --prefix=/usr --enable-shared --disable-nls + EXTRA_CONFIG = \ + --prefix=/usr \ + --enable-shared \ + --disable-nls EXTRA_MAKE = tooldir=/usr EXTRA_INSTALL = tooldir=/usr else ifeq "$(PASS)" "1" + CFLAGS := $(patsubst -march=%,,$(CFLAGS)) + CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS)) TARGET = $(DIR_INFO)/$(THISAPP)-tools1 - EXTRA_CONFIG = --prefix=/tools --disable-nls --disable-werror --disable-gprof - #EXTRA_MAKE = LDFLAGS="-all-static" + EXTRA_CONFIG = \ + --target=$(CROSSTARGET) \ + --prefix=/tools \ + --disable-nls \ + --disable-werror + EXTRA_MAKE = EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools2 - EXTRA_CONFIG = --prefix=/tools --with-lib-path=/tools/lib --disable-nls + EXTRA_ENV = \ + CC="$(CROSSTARGET)-gcc -B/tools/lib/" \ + AR="$(CROSSTARGET)-ar" \ + RANLIB="$(CROSSTARGET)-ranlib" + EXTRA_CONFIG = \ + --host=$(BUILDTARGET) \ + --build=$(BUILDTARGET) \ + --prefix=/tools \ + --with-lib-path=/tools/lib \ + --disable-nls EXTRA_MAKE = EXTRA_INSTALL = endif endif
-EXTRA_CONFIG += --build=$(BUILDTARGET) - ifeq "$(MACHINE_TYPE)" "arm" EXTRA_CONFIG += \ --with-abi=aapcs-linux \ @@ -71,7 +84,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 9d22ee4dafa3a194457caf4706f9cf01 +$(DL_FILE)_MD5 = ee0f10756c84979622b992a4a61ea3f5
install : $(TARGET)
@@ -102,21 +115,17 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) @mkdir $(DIR_SRC)/binutils-build - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-configure-1.patch - cd $(DIR_SRC)/binutils-build && MACHINE= $(DIR_APP)/configure $(EXTRA_CONFIG) -ifeq "$(PASS)" "1" - cd $(DIR_SRC)/binutils-build && make configure-host MAKEINFO=makeinfo MACHINE= -endif - cd $(DIR_SRC)/binutils-build && make $(EXTRA_MAKE) $(MAKETUNING) MAKEINFO=makeinfo MACHINE= - cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install MAKEINFO=makeinfo MACHINE= + + # Prevent installing libiberty to lib64. + cd $(DIR_APP) && sed -i 's%(^MULTIOSDIR = ).*%\1 ../lib%' libiberty/Makefile.in + + cd $(DIR_SRC)/binutils-build && $(EXTRA_ENV) MACHINE= $(DIR_APP)/configure $(EXTRA_CONFIG) + cd $(DIR_SRC)/binutils-build && make $(EXTRA_MAKE) $(MAKETUNING) MACHINE= + cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install MACHINE= ifeq "$(ROOT)" "" cp -v $(DIR_APP)/include/libiberty.h /usr/include else -ifeq "$(PASS)" "1" - cd $(DIR_SRC)/binutils-build && make -C ld clean MACHINE= - cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/tools/lib MACHINE= - cd $(DIR_SRC)/binutils-build && cp -v ld/ld-new /tools/bin -else +ifeq "$(PASS)" "2" cd $(DIR_SRC)/binutils-build && make -C ld clean MACHINE= cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/usr/lib:/lib MACHINE= cd $(DIR_SRC)/binutils-build && cp -v ld/ld-new /tools/bin diff --git a/lfs/bluetooth b/lfs/bluetooth index 961b1e6..33e126c 100644 --- a/lfs/bluetooth +++ b/lfs/bluetooth @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = bluetooth PAK_VER = 1
-DEPS = "dbus glib" +DEPS = "dbus"
############################################################################### # Top-level Rules @@ -108,7 +108,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) --sysconfdir=/etc --localstatedir=/var --libexecdir=/lib cd $(DIR_SRC)/bluez-hcidump-1.42 && make $(MAKETUNING) cd $(DIR_SRC)/bluez-hcidump-1.42 && make install - mv -f /etc/udev/bluetooth.rules /etc/udev/rules.d/24-bluetooth.rules + mv -f /etc/udev/bluetooth.rules /lib/udev/rules.d/24-bluetooth.rules # Change bluetooth peername to Hostname-devicenumber sed -i -e 's|name "BlueZ (%d)";|name "%h-%d";|g' /etc/bluetooth/hcid.conf # Create empty config files diff --git a/lfs/bridge-utils b/lfs/bridge-utils index a72a6a9..7ada05d 100644 --- a/lfs/bridge-utils +++ b/lfs/bridge-utils @@ -24,7 +24,7 @@
include Config
-VER = 1.1 +VER = 1.5
THISAPP = bridge-utils-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 43bbd2a67b59cac3e15d545f8b51df68 +$(DL_FILE)_MD5 = ec7b381160b340648dede58c31bb2238
install : $(TARGET)
@@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && autoreconf -vfi cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/cairo b/lfs/cairo new file mode 100644 index 0000000..591549a --- /dev/null +++ b/lfs/cairo @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.10.2 + +THISAPP = cairo-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = f101a9e88b783337b20b2e26dfd26d5f + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr --disable-win32 --disable-os2 --disable-beos + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/capi4k-utils b/lfs/capi4k-utils index 9546c43..b82c156 100644 --- a/lfs/capi4k-utils +++ b/lfs/capi4k-utils @@ -76,6 +76,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP)/capiinit && make install cd $(DIR_APP)/capi20 && sed -i -e 's/include <linux/capi.h>/include <linux/types.h>\n#include <linux/capi.h>/' capidyn.c cd $(DIR_APP)/capi20 && sed -i -e 's/include <linux/capi.h>/include <linux/types.h>\n#include <linux/capi.h>/' capi20.c + cd $(DIR_APP)/capi20 && sed -i "/include/a #include <stddef.h>" capi20.h cd $(DIR_APP)/capi20 && sed -i -e 's/-O2/$(CFLAGS)/' configure cd $(DIR_APP)/capi20 && SED=sed ./configure cd $(DIR_APP)/capi20 && SED=sed make $(MAKETUNING) diff --git a/lfs/ccache b/lfs/ccache index b7cad86..44010f9 100644 --- a/lfs/ccache +++ b/lfs/ccache @@ -24,7 +24,7 @@
include Config
-VER = 3.1.6 +VER = 3.1.8
THISAPP = ccache-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -32,6 +32,14 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)-pass$(PASS)
+ifeq "$(PASS)" "1" + CFLAGS := $(patsubst -march=%,,$(CFLAGS)) + CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS)) +endif + +# Set max cache size to 5GB +CFLAGS += -DDEFAULT_MAXSIZE=5242880 + ############################################################################### # Top-level Rules ############################################################################### @@ -40,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 343dc9b642e1d2af1e6bd8e474dde92e +$(DL_FILE)_MD5 = 0e0f25fb342dcb1196d9c2986a7323cf
install : $(TARGET)
@@ -70,16 +78,28 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -p1 < $(DIR_SRC)/src/patches/$(THISAPP)-no_compiler_mtime.patch - cd $(DIR_APP) && CFLAGS="-O2 -static -DDEFAULT_MAXSIZE=2097152" ./configure --prefix=$(ROOT)/usr/local + cd $(DIR_APP) && ./configure --prefix=/tools cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install - ln -sf ccache $(ROOT)/usr/local/bin/gcc - ln -sf ccache $(ROOT)/usr/local/bin/g++ - ln -sf ccache $(ROOT)/usr/local/bin/cc - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-gcc - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-g++ - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-cc - $(ROOT)/usr/local/bin/ccache -z + +ifeq "$(PASS)" "1" + mkdir -pv /tools/ccache/bin + ln -svf ../../bin/ccache /tools/ccache/bin/gcc + ln -svf ../../bin/ccache /tools/ccache/bin/g++ + ln -svf ../../bin/ccache /tools/ccache/bin/cc + ln -svf ../../bin/ccache /tools/ccache/bin/c++ + ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-gcc + ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-g++ + ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-cc + ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-c++ +endif + +ifeq "$(PASS)" "2" + ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-gcc + ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-g++ + ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-cc + ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-c++ +endif + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/centerim b/lfs/centerim deleted file mode 100644 index 8e874a7..0000000 --- a/lfs/centerim +++ /dev/null @@ -1,84 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 4.22.1 - -THISAPP = centerim-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = centerim -PAK_VER = 1 - -DEPS = "" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = d128b54e3cc04a6ee651c51682a497a9 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - $(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/cifs-utils b/lfs/cifs-utils new file mode 100644 index 0000000..f3b75f5 --- /dev/null +++ b/lfs/cifs-utils @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 5.9 + +THISAPP = cifs-utils-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = cifs-utils +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 7164ad6f7963a31fcbffbe4f14a7cfc6 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/cleanup-toolchain b/lfs/cleanup-toolchain index 306b781..0b3252f 100644 --- a/lfs/cleanup-toolchain +++ b/lfs/cleanup-toolchain @@ -52,30 +52,39 @@ md5 : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) ifeq "$(PASS)" "1" - mv -v /tools/bin/{ld,ld-old} - mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old} - cp -v /tools/bin/{ld-new,ld} - ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld - gcc -dumpspecs > /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs - sed 's@/lib/ld-linux.so@/tools&@g' /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs > tempspecfile - mv -vf tempspecfile /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs - find /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/* -maxdepth 0 -xtype d -exec rm -rvf '{}' ; - rm -vf `grep -l "DO NOT EDIT THIS FILE" /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/*` + SPECS=$$(dirname $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name))/specs; \ + /tools/bin/$(CROSSTARGET)-gcc -dumpspecs | sed \ + -e 's@/lib(64)?/ld@/tools&@g' \ + -e "/^*cpp:$$/{n;s,$$, -isystem /tools/include,}" > $$SPECS endif + ifeq "$(PASS)" "2" - -strip --strip-debug /tools/lib/* - -strip --strip-unneeded /tools/{,s}bin/* - rm -rfv /tools/{info,man} /usr/local/man - chown -R root:root /tools + # Remove the first cross compiler which is not needed anymore. + find /tools/ -name "$(CROSSTARGET)*" | xargs rm -rfv + + # Remove man and info pages. + rm -rfv /tools/{,share}/{info,man} + + # Strip all binaries. + STRIP="/usr/bin/strip" $(DIR_SRC)/src/stripper /tools/ + + # Fix ownership of the toolchain. + chown -R root:root /tools/ + + # Update/create linker cache. + /tools/sbin/ldconfig endif + ifeq "$(PASS)" "3" mv -v /tools/bin/{ld,ld-old} mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old} mv -v /tools/bin/{ld-new,ld} ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld - gcc -dumpspecs | \ - perl -p -e 's@/tools/lib/ld-linux.so@/lib/ld-linux.so@g;' \ - -e 's@*startfile_prefix_spec:\n@$$_/usr/lib/ @g;' > \ - /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs + + gcc -dumpspecs | sed \ + -e 's@/tools@@g' \ + -e '/*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \ + -e '/*cpp:/{n;s@$$@ -isystem /usr/include@}' > \ + $$(dirname $$(gcc -print-libgcc-file-name))/specs endif @$(POSTBUILD) diff --git a/lfs/cmake b/lfs/cmake index 6b7aff6..5873965 100644 --- a/lfs/cmake +++ b/lfs/cmake @@ -70,7 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./bootstrap + cd $(DIR_APP) && ./bootstrap --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/collectd b/lfs/collectd index f17879c..3d28841 100644 --- a/lfs/collectd +++ b/lfs/collectd @@ -25,7 +25,7 @@ include Config
PKG_NAME = collectd -VER = 4.10.3 +VER = 4.10.7
THISAPP = collectd-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 5f17bfd7342af4f97f78c608f1d1eb1d +$(DL_FILE)_MD5 = f4193fdb5002ddac8159c88032a726bc
install : $(TARGET)
@@ -77,8 +77,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - #cd $(DIR_APP) && sed -i 's|with_libiptc="no (Linux iptables header.*|with_libiptc="yes"|g' \ - # ./configure cd $(DIR_APP) && ./configure --prefix=/usr --localstatedir=/var \ --disable-{apple_sensors,csv,ipvs,mbmon,memcached,mysql} \ --disable-{netlink,nginx,nut,perl,serial,snmp,tape,vserver,xmms} \ diff --git a/lfs/compat-wireless b/lfs/compat-wireless index a8902f1..9ce6f07 100644 --- a/lfs/compat-wireless +++ b/lfs/compat-wireless @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -26,7 +26,11 @@ include Config
VERSUFIX=ipfire$(KCFG)
-VER = 3.0-2 +VER = 3.6.8-1-snp + +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 +endif
THISAPP = compat-wireless-$(VER) DL_FILE = compat-wireless-$(VER).tar.bz2 @@ -38,13 +42,13 @@ TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) # Top-level Rules ###############################################################################
-objects = $(DL_FILE) asix-3.5.0a.tar.bz2 +objects = $(DL_FILE) asix-4.4.0.tar.xz
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -asix-3.5.0a.tar.bz2 = $(DL_FROM)/asix-3.5.0a.tar.bz2 +asix-4.4.0.tar.xz = $(DL_FROM)/asix-4.4.0.tar.xz
-$(DL_FILE)_MD5 = 7f2d0de30bf9c3e9a941d9e67971e9b3 -asix-3.5.0a.tar.bz2_MD5=cc57513505d3ad1a43b58add91d2bba7 +$(DL_FILE)_MD5 = 4120bc9841d6a1b5b92af34103f16a06 +asix-4.4.0.tar.xz_MD5=633609e889de41554826e0e2cd7bffde
install : $(TARGET)
@@ -78,6 +82,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # kfifo has no license info and taints kernel cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-2.6.39_kfifo_module_info.patch
+ # Codel patches + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch + + # compat-3.1 include a bogus cpufreq_backort + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.6.8-remove_3.1_cpufreq_backport.patch + + # Build ath5k only if target has pci + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch + # Copy USB-Net drivers from Kernel... mkdir $(DIR_APP)/drivers/net/usb/new cp $(DIR_APP)/drivers/net/usb/*.c $(DIR_APP)/drivers/net/usb/new @@ -87,22 +100,26 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-2.6.34-usbnet_compile.patch
# Build Updated asix usb-lan driver - cd $(DIR_APP)/drivers/net/usb && tar xvf $(DIR_DL)/asix-3.5.0a.tar.bz2 + cd $(DIR_APP)/drivers/net/usb && tar xvJf $(DIR_DL)/asix-4.4.0.tar.xz
-ifeq "$(MACHINE_TYPE)" "arm" - # B43+B44 driver doesn't build on arm -# cd $(DIR_APP) && sed -i -e "s|CONFIG_B43=m||g" config.mk -# cd $(DIR_APP) && sed -i -e "s|CONFIG_B44=m||g" config.mk # Add libartas uAP driver - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.0-libertas_uap.patch - cd $(DIR_APP)&& echo CONFIG_LIBERTAS_UAP=m >> config.mk + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.5-libertas_uap.patch + + # uAP will not build with xen-kernel (2.6) +ifneq "$(KCFG)" "-xen" + cd $(DIR_APP) && echo export CONFIG_LIBERTAS_UAP=m >> config.mk endif
+ # Erase some modules that are obsolete or moved to other path + rm -rf /lib/modules/$(KVER)-$(VERSUFIX)/kernel/net/bluetooth + rm -rf /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/wireless/wl12* + cd $(DIR_APP) && make KLIB=/lib/modules/$(KVER)-$(VERSUFIX) \ + KLIB_BUILD=/lib/modules/$(KVER)-$(VERSUFIX)/build \ KMODPATH_ARG='INSTALL_MOD_PATH=' KMODDIR=kernel install-modules
# Install firmware udev files... - cd $(DIR_APP)/udev && install -m 644 50-compat_firmware.rules /etc/udev/rules.d/ + cd $(DIR_APP)/udev && install -m 644 50-compat_firmware.rules /lib/udev/rules.d/ cd $(DIR_APP)/udev && install -m 755 compat_firmware.sh /lib/udev/
-rm -rf $(DIR_APP) diff --git a/lfs/conntrack-tools b/lfs/conntrack-tools new file mode 100644 index 0000000..f5ea315 --- /dev/null +++ b/lfs/conntrack-tools @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.2.2 + +THISAPP = conntrack-tools-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = a8afc813e16265655f83991fc0df35b6 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/core-updates b/lfs/core-updates index c4cedcd..b40de13 100644 --- a/lfs/core-updates +++ b/lfs/core-updates @@ -77,7 +77,7 @@ core/%: mv -f /tmp/ROOTFILES /install/packages/package/ROOTFILES tar -p --numeric-owner -x -C /tmp -f /$(SNAME).tar rm -f /$(SNAME).tar - cd /tmp && tar cf /install/packages/package/files * && rm -rf * + cd /tmp && tar cJf /install/packages/package/files.tar.xz * && rm -rf * cat /install/packages/package/ROOTFILES | grep -v "#" > /install/packages/package/ROOTFILES.tmp rm /install/packages/package/ROOTFILES mv /install/packages/package/ROOTFILES.tmp /install/packages/package/ROOTFILES @@ -89,7 +89,7 @@ core/%: sed -e "s/xxxKVERxxx/$(KVER)/g" -i /install/packages/package/update.sh
cd /install/packages/package && tar cf ../core-upgrade-$(VERSION)-$$(basename $@).ipfire \ - update.sh files ROOTFILES + update.sh files.tar.xz ROOTFILES rm -rf /install/packages/package sed -e "s/NAME/core-upgrade/g" \ -e "s/VER/$(VERSION)/g" \ diff --git a/lfs/coreutils b/lfs/coreutils index 7bdc0ec..d0f35c2 100644 --- a/lfs/coreutils +++ b/lfs/coreutils @@ -45,7 +45,7 @@ else EXTRA_INSTALL = endif
-EXTRA_CONFIG += --build=$(BUILDTARGET) +EXTRA_CONFIG += ac_cv_func_working_mktime=yes
############################################################################### # Top-level Rules @@ -86,6 +86,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-5.96-rename-tee.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-5.96-futimes.patch ifeq "$(ROOT)" "" ifeq "$(MACHINE)" "i586" cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-uname-1.patch @@ -108,7 +109,7 @@ ifeq "$(ROOT)" "" mv -v /usr/bin/{head,sleep,nice} /bin ln -sf test /bin/[ #ln -sf ../../bin/install /usr/bin - dircolors -p > /etc/dircolors + dircolors -p > /etc/DIR_COLORS else rm /tools/bin/hostname endif diff --git a/lfs/cpufrequtils b/lfs/cpufrequtils index e93a65d..6e38b0a 100644 --- a/lfs/cpufrequtils +++ b/lfs/cpufrequtils @@ -33,7 +33,7 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) SUP_ARCH = i586 PROG = cpufrequtils -PAK_VER = 5 +PAK_VER = 6
DEPS = ""
diff --git a/lfs/cryptodev b/lfs/cryptodev index 0c2f486..eb0e2f6 100644 --- a/lfs/cryptodev +++ b/lfs/cryptodev @@ -24,6 +24,10 @@
include Config
+ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 +endif + VERSUFIX=ipfire$(KCFG)
VER = 1.4 @@ -81,6 +85,5 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) -mkdir -pv /usr/include/crypto cd $(DIR_APP) && make install \ KERNEL_DIR=/lib/modules/$(KVER)-$(VERSUFIX)/build -# ln -svf ../crypto/cryptodev.h /usr/include/linux/cryptodev.h @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/curl b/lfs/curl index 2c54c67..5b6e3b8 100644 --- a/lfs/curl +++ b/lfs/curl @@ -24,10 +24,10 @@
include Config
-VER = 7.19.5 +VER = 7.24.0
THISAPP = curl-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 426d161661dce70c8ea9ad8f553363a3 +$(DL_FILE)_MD5 = b93420f80a2baaa61a0f45214eddc2ba
install : $(TARGET)
@@ -69,7 +69,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xvf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/cyrus-imapd b/lfs/cyrus-imapd index 0a4fe2c..8f74c5a 100644 --- a/lfs/cyrus-imapd +++ b/lfs/cyrus-imapd @@ -79,7 +79,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cyrus-imapd-2.2.12-autocreate-0.9.4.diff cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/cyrus-imapd-2.2.12-gcc4.patch - cp -f /usr/include/et/com_err.h /usr/include/com_err.h +# cp -f /usr/include/et/com_err.h /usr/include/com_err.h cd $(DIR_APP) && ./configure --prefix=/usr --with-service-path=/usr/lib/cyrus \ --with-cyrus-prefix=/usr/lib/cyrus --sysconfdir=/var/ipfire/cyrusimap \ --with-auth=unix --with-perl --with-sasl --with-idle=idled \ diff --git a/lfs/cyrus-sasl b/lfs/cyrus-sasl index 1f8282e..749011f 100644 --- a/lfs/cyrus-sasl +++ b/lfs/cyrus-sasl @@ -82,6 +82,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cyrus-sasl-2.1.22-bad-elif.patch cd $(DIR_APP) && sed -i '/sasl_global/s/^static //' lib/client.c cd $(DIR_APP) && sed -i 's/cat8/man8/' saslauthd/Makefile.in
diff --git a/lfs/dahdi b/lfs/dahdi deleted file mode 100644 index 0ae424c..0000000 --- a/lfs/dahdi +++ /dev/null @@ -1,144 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VERSUFIX=ipfire$(KCFG) - -VER = 2.2.1 -TVER = 2.2.1 - -DL_FILE = dahdi-linux-$(VER).tar.gz -DL_FILE1 = dahdi-tools-$(TVER).tar.gz - -THISAPP = dahdi-$(VER) -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/dahdi-linux-$(VER) -DIR_APP1 = $(DIR_SRC)/dahdi-tools-$(TVER) - -PROG = dahdi -PAK_VER = 2 - -DEPS = "" - - -ifeq "$(KMOD)" "1" - TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif - - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) $(DL_FILE1) dahdi-linux-2.2.1-firmware.tar.bz2 - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE1) = $(DL_FROM)/$(DL_FILE1) -dahdi-linux-2.2.1-firmware.tar.bz2 = $(DL_FROM)/dahdi-linux-2.2.1-firmware.tar.bz2 - -$(DL_FILE)_MD5 = 46e4abbe743830045364fc716d293e88 -$(DL_FILE1)_MD5 = 04e7097929851f744f777400125180db -dahdi-linux-2.2.1-firmware.tar.bz2_MD5 = ccc50ded1641cd619e8d3a4615a6ad19 - - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - $(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - - rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_SRC) && tar jxf $(DIR_DL)/dahdi-linux-2.2.1-firmware.tar.bz2 - cd $(DIR_APP) && make $(MAKETUNING) clean all KVERS=$(KVER) - -ifeq "$(KMOD)" "1" - cd $(DIR_APP) && make install-modules KVERS=$(KVER)-$(VERSUFIX) - @rm -rf $(DIR_APP) -else - cd $(DIR_APP) && make install-devices install-include \ - install-firmware install-xpp-firm KVERS=$(KVER)-$(VERSUFIX) - @rm -rf $(DIR_APP) - - # remove previous generated symlink (if this a rebuild) - rm -rf /etc/dahdi - - rm -rf $(DIR_APP1) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE1) - cd $(DIR_APP1) && ./configure --sysconfdir=/var/ipfire/asterisk - cd $(DIR_APP1) && make $(MAKETUNING) clean all - cd $(DIR_APP1) && make install - - # Supress Error output because this erase the log - cd $(DIR_APP1) && make config 2>/dev/null - - # remove build src - @rm -rf $(DIR_APP1) - - # config stuff - ln -sf ../init.d/dahdi /etc/rc.d/rc0.d/K30dahdi - ln -sf ../init.d/dahdi /etc/rc.d/rc6.d/K30dahdi - ln -sf ../init.d/dahdi /etc/rc.d/rc3.d/S15dahdi - mv -f /etc/dahdi/genconf_parameters /var/ipfire/asterisk/dahdi/ - mv -f /etc/dahdi/init.conf /var/ipfire/asterisk/dahdi/ - mv -f /etc/dahdi/modules /var/ipfire/asterisk/dahdi/ - rmdir /etc/dahdi - ln -s /var/ipfire/asterisk/dahdi /etc/dahdi - - # make init.d-script work with ipfire - sed s/system=redhat/system=debian/ /etc/init.d/dahdi > /tmp/dahdi-temp - mv /tmp/dahdi-temp /etc/init.d/dahdi && chmod 755 /etc/init.d/dahdi - - # add dummy-module (to get conference rooms work) - echo "#Dummy" >> /etc/dahdi/modules - echo "dahdi_dummy" >> /etc/dahdi/modules -endif - @$(POSTBUILD) - diff --git a/lfs/daq b/lfs/daq index a0f7b25..cac012b 100644 --- a/lfs/daq +++ b/lfs/daq @@ -24,7 +24,7 @@
include Config
-VER = 1.1.1 +VER = 2.0.0
THISAPP = daq-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = bc204ea09165b4ecbb1bb49c7c1a2ad4 +$(DL_FILE)_MD5 = a00855a153647df76d47f1ea454f74ae
install : $(TARGET)
diff --git a/lfs/dbus b/lfs/dbus index 818b89e..3a43106 100644 --- a/lfs/dbus +++ b/lfs/dbus @@ -77,6 +77,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_SRC)/dbus* cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dbus-1.0.3-compile-fix-1.patch cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var cd $(DIR_APP) && make $(MAKETUNING) diff --git a/lfs/dejavu-fonts-ttf b/lfs/dejavu-fonts-ttf new file mode 100644 index 0000000..cd31a2d --- /dev/null +++ b/lfs/dejavu-fonts-ttf @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + + +VER = 2.33 + +THISAPP = dejavu-fonts-ttf-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 8b601e91725b6d69141b0fcf527948c0 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + mkdir -pv /usr/share/fonts + install -m 644 $(DIR_APP)/ttf/* /usr/share/fonts + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/dhcp b/lfs/dhcp index 816a75d..083c31f 100644 --- a/lfs/dhcp +++ b/lfs/dhcp @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-remove-bind.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-errwarn-message.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-options.patch @@ -81,11 +82,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-xen-checksum.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-manpages.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-paths.patch - # Has to be enabled after glibc update. - #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-CLOEXEC.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-CLOEXEC.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-inherit-leases.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-garbage-chars.patch - #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch + # ??? + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-add_timeout_when_NULL.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-64_bit_lease_parse.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-capability.patch @@ -117,6 +118,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) --enable-paranoia \ --enable-early-chroot \ --disable-dhcpv6 + cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install
diff --git a/lfs/directfb b/lfs/directfb index e406af8..34acb59 100644 --- a/lfs/directfb +++ b/lfs/directfb @@ -79,6 +79,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/directfb-1.1.1-fix-mknod.patch cd $(DIR_APP) && sed -i "s/checkfor_matrox=yes/checkfor_matrox=no/g" configure cd $(DIR_APP) && sed -i "s/checkfor_cle266=no/checkfor_cle266=yes/g" configure cd $(DIR_APP) && sed -i "s/checkfor_omap=.*/checkfor_omap=no/g" configure diff --git a/lfs/dracut b/lfs/dracut index 029bc38..0779a6b 100644 --- a/lfs/dracut +++ b/lfs/dracut @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team info@ipfire.org # +# Copyright (C) 2011 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -92,11 +92,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # needed.
ifeq "$(MACHINE_TYPE)" "arm" - # versatile kernel - /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-versatile.img $(KVER)-ipfire-versatile # kirkwood kernel /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-kirkwood.img $(KVER)-ipfire-kirkwood cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-kirkwood.img uInit-ipfire-kirkwood + # omap kernel + /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-omap.img $(KVER)-ipfire-omap + cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-omap.img uInit-ipfire-omap else /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER).img $(KVER)-ipfire endif diff --git a/lfs/dvb-firmwares b/lfs/dvb-firmwares new file mode 100644 index 0000000..cd029e2 --- /dev/null +++ b/lfs/dvb-firmwares @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 20110802 + +THISAPP = dvb-firmwares-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/dvb-firmwares +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 330e19f9444a03f5338bab590ab9d728 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + mkdir -p /lib/firmware + tar axf $(DIR_DL)/$(DL_FILE) \ + -C /lib/firmware/ + # use newest ttpci firmware + cp /lib/firmware/dvb-ttpci-01.fw-2622 /lib/firmware/dvb-ttpci-01.fw + @$(POSTBUILD) diff --git a/lfs/e1000 b/lfs/e1000 index fe31df7..50e21fb 100644 --- a/lfs/e1000 +++ b/lfs/e1000 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -26,6 +26,12 @@ include Config
VERSUFIX = ipfire$(KCFG)
+# e1000 vendor modul is only for legacy xen kernel +# The 3.2.x kernel has newer module. + +KVER = 2.6.32.60 +MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000/ + VER = 8.0.35
THISAPP = e1000-$(VER) @@ -75,12 +81,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) #Save original e1000 module - -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000/e1000.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000/e1000.ko.org + -mv $(MODPATH)/e1000.ko \ + $(MODPATH)/e1000.ko.org @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \ - SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 e1000.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000 + cd $(DIR_APP)/src && make BUILD_KERNEL=$(KVER)-$(VERSUFIX) + cd $(DIR_APP)/src && install -m 644 e1000.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/e1000e b/lfs/e1000e index f046ee5..693c054 100644 --- a/lfs/e1000e +++ b/lfs/e1000e @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,8 +25,14 @@ include Config
VERSUFIX = ipfire$(KCFG) +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e +else + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/intel/e1000e +endif
-VER = 1.6.3 +VER = 2.1.4
THISAPP = e1000e-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -42,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 9526a6c004f936506a90e10911420bf8 +$(DL_FILE)_MD5 = e8dba81bfc86c6c75f39d025fb70899f
install : $(TARGET)
@@ -75,12 +81,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) #Save original e1000e module - -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e/e1000e.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e/e1000e.ko.org + -mv $(MODPATH)/e1000e.ko \ + $(MODPATH)/e1000e.ko.org @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \ - SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 e1000e.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e + cd $(DIR_APP)/src && make BUILD_KERNEL=$(KVER)-$(VERSUFIX) + cd $(DIR_APP)/src && install -m 644 e1000e.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/e2fsprogs b/lfs/e2fsprogs index 6844d3b..dff6393 100644 --- a/lfs/e2fsprogs +++ b/lfs/e2fsprogs @@ -24,7 +24,7 @@
include Config
-VER = 1.41.11 +VER = 1.42.6
THISAPP = e2fsprogs-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = fb507a40c2706bc38306f150d069e345 +$(DL_FILE)_MD5 = 9e444c240c1001b3292d108fbad0f49c
install : $(TARGET)
diff --git a/lfs/ebtables b/lfs/ebtables index e6cc69b..a7da349 100644 --- a/lfs/ebtables +++ b/lfs/ebtables @@ -24,7 +24,7 @@
include Config
-VER = 2.0.8-2 +VER = 2.0.10-4
THISAPP = ebtables-v$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = ebtables -PAK_VER = 1 +PAK_VER = 2
DEPS = ""
@@ -44,7 +44,8 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 66bcbcb2dcf3b981ad4e86e1720e796e +$(DL_FILE)_MD5 = 506742a3d44b9925955425a659c1a8d0 + install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects)) diff --git a/lfs/elinks b/lfs/elinks index 4a41e1b..59f1426 100644 --- a/lfs/elinks +++ b/lfs/elinks @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 0.11.7 +VER = 0.12pre6
THISAPP = elinks-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = elinks -PAK_VER = 3 +PAK_VER = 4
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = fcd087a6d2415cd4c6fd1db53dceb646 +$(DL_FILE)_MD5 = 3d0962f4b65fb039342fefd3ada050a9
install : $(TARGET)
diff --git a/lfs/fake-environ b/lfs/fake-environ index b724912..978a90d 100644 --- a/lfs/fake-environ +++ b/lfs/fake-environ @@ -28,7 +28,7 @@ VER = 1.0
THISAPP = fake-environ DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-tools$(PASS) +TARGET = $(DIR_INFO)/$(THISAPP)-tools
############################################################################### # Top-level Rules diff --git a/lfs/file b/lfs/file index 0d6fcf4..70a38e2 100644 --- a/lfs/file +++ b/lfs/file @@ -24,7 +24,7 @@
include Config
-VER = 4.17 +VER = 5.11
THISAPP = file-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 50919c65e0181423d66bb25d7fe7b0fd +$(DL_FILE)_MD5 = 16a407bd66d6c7a832f3a5c0d609c27b
install : $(TARGET)
@@ -70,7 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls + cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/flash-images b/lfs/flash-images index daf3ec1..36a343d 100644 --- a/lfs/flash-images +++ b/lfs/flash-images @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -44,28 +44,25 @@ md5 : ############################################################################### # Installation Details ############################################################################### -IMGinst := /install/images/$(SNAME)-$(VERSION).2gb-ext2.$(MACHINE)-full-core$(CORE).img -IMGinsts := /install/images/$(SNAME)-$(VERSION).2gb-ext2-scon.$(MACHINE)-full-core$(CORE).img +IMGinst := /install/images/$(SNAME)-$(VERSION).1gb-ext4.$(MACHINE)-full-core$(CORE).img +IMGinsts := /install/images/$(SNAME)-$(VERSION).1gb-ext4-scon.$(MACHINE)-full-core$(CORE).img MNThdd := /install/harddisk IMGpart := /install/images/part_area IMGboot := /install/images/bootfs # don't change SIZEboot this without checking Image size -SIZEboot := 20 +SIZEboot := 64 IMGroot := /install/images/rootfs -SIZEroot := 1400 -IMGvar := /install/images/varfs -SIZEvar := 430 +SIZEroot := 600
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) && mkdir -p $(MNThdd) + rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) && mkdir -p $(MNThdd)
# Create first 32 sectors of image dd bs=1k if=/dev/zero of=$(IMGpart) count=16
# Create images for filesystems - dd bs=1K if=/dev/zero of=$(IMGboot) count=20464 # 20MB-16K + dd bs=1K if=/dev/zero of=$(IMGboot) count=65520 # 64MB-16K dd bs=1M if=/dev/zero of=$(IMGroot) count=$(SIZEroot) - dd bs=1M if=/dev/zero of=$(IMGvar) count=$(SIZEvar)
# Format them ifeq "$(MACHINE_TYPE)" "arm" @@ -73,8 +70,11 @@ ifeq "$(MACHINE_TYPE)" "arm" else mkfs.ext2 -F $(IMGboot) endif - mkfs.ext2 -F $(IMGroot) - mkfs.ext2 -F $(IMGvar) + mkfs.ext4 -O ^has_journal,extent -F $(IMGroot) + + # Most systems that use Flashimages has no RTC at boot + # so the interval check should disables + tune2fs -i0 $(IMGroot)
# Mount Images mount -o loop $(IMGroot) $(MNThdd) @@ -82,7 +82,15 @@ endif mkdir $(MNThdd)/var mkdir $(MNThdd)/var/log mount -o loop $(IMGboot) $(MNThdd)/boot - mount -o loop $(IMGvar) $(MNThdd)/var + + # Install MLO and uboot first +ifeq "$(MACHINE_TYPE)" "arm" + cp -v /boot/MLO $(MNThdd)/boot/ + cp -v /boot/u-boot.bin $(MNThdd)/boot/ + sync + umount $(MNThdd)/boot + mount -o loop $(IMGboot) $(MNThdd)/boot +endif
# Install IPFire tar -C $(MNThdd)/ -xvaf /install/cdrom/$(SNAME)-$(VERSION).tlz @@ -102,8 +110,8 @@ ifeq "$(MACHINE_TYPE)" "arm" endif sed -i -e "s|DEVICE2|#DEVICE2|g" $(MNThdd)/etc/fstab sed -i -e "s|DEVICE3|UUID=$$(blkid -sUUID $(IMGroot) | cut -d'"' -f2)|g" $(MNThdd)/etc/fstab - sed -i -e "s|DEVICE4|UUID=$$(blkid -sUUID $(IMGvar) | cut -d'"' -f2)|g" $(MNThdd)/etc/fstab - sed -i -e "s|FSTYPE|ext2|g" $(MNThdd)/etc/fstab + sed -i -e "s|DEVICE4|#DEVICE4|g" $(MNThdd)/etc/fstab + sed -i -e "s|FSTYPE|ext4|g" $(MNThdd)/etc/fstab
ifneq "$(MACHINE_TYPE)" "arm" sed -i -e "s|MOUNT|ro|g" $(MNThdd)/boot/grub/grub.conf @@ -112,20 +120,19 @@ ifneq "$(MACHINE_TYPE)" "arm" ln -s grub.conf $(MNThdd)/boot/grub/menu.lst
# Copy grub files manually - cp -f $(MNThdd)/usr/share/grub/i386-pc/* $(MNThdd)/boot/grub/ + cp -f $(MNThdd)/usr/lib/grub/i386-pc/* $(MNThdd)/boot/grub/ endif
# Setup symlink for partresize at first boot... ln -sf ../init.d/partresize $(MNThdd)/etc/rc.d/rcsysinit.d/S25partresize # Setup symlink for fsresize at second boot... - ln -sf ../init.d/fsresize $(MNThdd)/etc/rc.d/rcsysinit.d/S26fsresize + ln -sf ../init.d/fsresize $(MNThdd)/etc/rc.d/rcsysinit.d/S42fsresize
# Unmount umount $(MNThdd)/proc umount $(MNThdd)/dev umount $(MNThdd)/sys umount $(MNThdd)/boot - umount $(MNThdd)/var umount $(MNThdd)
# zerofree the ext2 images to get better compression @@ -135,17 +142,20 @@ ifneq "$(MACHINE_TYPE)" "arm" fsck.ext2 -f -y $(IMGboot) endif zerofree $(IMGroot) - -fsck.ext2 -f -y $(IMGroot) - fsck.ext2 -f -y $(IMGroot) - zerofree $(IMGvar) - -fsck.ext2 -f -y $(IMGvar) - fsck.ext2 -f -y $(IMGvar) + -fsck.ext4 -f -y $(IMGroot) + fsck.ext4 -f -y $(IMGroot)
# Cat to an image - cat $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) > $(IMGinst) + cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinst) + # Write Partition table - echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,$(SIZEvar),L\n" \ +ifneq "$(MACHINE_TYPE)" "arm" + echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ + | sfdisk -D -uM -H 64 -S 32 $(IMGinst) +else + echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ | sfdisk -D -uM -H 64 -S 32 $(IMGinst) +endif
ifneq "$(MACHINE_TYPE)" "arm" # Install grub @@ -170,6 +180,10 @@ ifneq "$(MACHINE_TYPE)" "arm" sed -i -e "s|#serial|serial|g" $(MNThdd)/boot/grub/grub.conf sed -i -e "s|#terminal|terminal|g" $(MNThdd)/boot/grub/grub.conf sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" $(MNThdd)/boot/grub/grub.conf +else + sed -i -e "s| console=tty1 | console=ttyAMA0,115200n8 |g" $(MNThdd)/boot/cmdline.txt + sed -i -e "s| console=tty1 omapfb.mode=dvi:800x600MR-16@60 | console=ttyO2,115200n8 |g" $(MNThdd)/boot/boot.script + cd $(MNThdd)/boot && ./convert_bootscript endif
sed -i -e "s|1:2345:respawn:|#1:2345:respawn:|g" $(MNThdd)/etc/inittab @@ -190,18 +204,21 @@ ifneq "$(MACHINE_TYPE)" "arm" fsck.ext2 -f -y $(IMGboot) endif zerofree $(IMGroot) - -fsck.ext2 -f -y $(IMGroot) - fsck.ext2 -f -y $(IMGroot) - zerofree $(IMGvar) - -fsck.ext2 -f -y $(IMGvar) - fsck.ext2 -f -y $(IMGvar) + -fsck.ext4 -f -y $(IMGroot) + fsck.ext4 -f -y $(IMGroot)
# Cat to an image - cat $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) > $(IMGinsts) - rm -vf $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) + cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinsts) + rm -vf $(IMGpart) $(IMGboot) $(IMGroot) + # Write Partition table - echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,$(SIZEvar),L\n" \ +ifneq "$(MACHINE_TYPE)" "arm" + echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ | sfdisk -D -uM -H 64 -S 32 $(IMGinsts) +else + echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ + | sfdisk -D -uM -H 64 -S 32 $(IMGinsts) +endif
ifneq "$(MACHINE_TYPE)" "arm" # Install grub @@ -216,5 +233,4 @@ endif # Compress Image gzip -f9 $(IMGinsts)
- rm -rf $(MNThdd) $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) - + rm -rf $(MNThdd) $(IMGpart) $(IMGboot) $(IMGroot) diff --git a/lfs/fontconfig b/lfs/fontconfig index d5b020c..6f0850b 100644 --- a/lfs/fontconfig +++ b/lfs/fontconfig @@ -31,10 +31,6 @@ DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) -PROG = fontconfig -PAK_VER = 1 - -DEPS = ""
############################################################################### # Top-level Rules @@ -54,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
md5 : $(subst %,%_MD5,$(objects))
-dist: - $(PAK) - ############################################################################### # Downloading, checking, md5sum ############################################################################### diff --git a/lfs/fstrim b/lfs/fstrim new file mode 100644 index 0000000..451af5a --- /dev/null +++ b/lfs/fstrim @@ -0,0 +1,78 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.2 + +THISAPP = fstrim-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/fstrim +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 1a217ae44b12ae7538f922f495b8da31 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP) && install -m 0755 fstrim /usr/bin + # Install cronjob + install -m 0755 $(DIR_SRC)/config/fstrim/trim /etc/fcron.daily + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/fw_ath9k_htc b/lfs/fw_ath9k_htc deleted file mode 100644 index ebd686e..0000000 --- a/lfs/fw_ath9k_htc +++ /dev/null @@ -1,75 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 1.3 - -THISAPP = fw_ath9k_htc-$(VER) -DL_FILE = $(THISAPP).tar.xz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 6e83c7d87007e3edd700034990cccd61 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && cp -v htc*.fw /lib/firmware - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/gawk b/lfs/gawk index 7bf7044..66bbfac 100644 --- a/lfs/gawk +++ b/lfs/gawk @@ -45,6 +45,8 @@ else EXTRA_INSTALL = endif
+EXTRA_CONFIG += ac_cv_func_working_mktime=yes + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/gcc b/lfs/gcc index 785b965..0bdecda 100644 --- a/lfs/gcc +++ b/lfs/gcc @@ -24,48 +24,76 @@
include Config
-VER = 4.1.2 +VER = 4.4.7 + +GMP_VER = 5.0.5 +MPFR_VER = 2.4.2
THISAPP = gcc-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP)
+CFLAGS := $(patsubst -march=%,,$(CFLAGS)) +CFLAGS := $(patsubst -mtune=%,,$(CFLAGS)) +CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS)) + # Normal build or /tools build. # ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) - EXTRA_CONFIG = --prefix=/usr \ - --libexecdir=/usr/lib \ - --enable-shared \ - --enable-threads=posix \ - --enable-__cxa_atexit \ - --enable-clocale=gnu \ - --enable-languages=c,c++ \ - --disable-nls + EXTRA_CONFIG = \ + --prefix=/usr \ + --libexecdir=/usr/lib \ + --enable-shared \ + --enable-threads=posix \ + --enable-__cxa_atexit \ + --enable-clocale=gnu \ + --enable-languages=c,c++ \ + --disable-bootstrap \ + --disable-nls EXTRA_MAKE = EXTRA_INSTALL = else ifeq "$(PASS)" "1" TARGET = $(DIR_INFO)/$(THISAPP)-tools1 - EXTRA_CONFIG = --prefix=/tools \ - --with-local-prefix=/tools \ - --disable-nls \ - --enable-shared \ - --enable-languages=c \ - --disable-bootstrap + EXTRA_CONFIG = \ + --target=$(CROSSTARGET) \ + --prefix=/tools \ + --disable-nls \ + --disable-shared \ + --disable-decimal-float \ + --disable-threads \ + --disable-libmudflap \ + --disable-libssp \ + --disable-libgomp \ + --disable-libquadmath \ + --with-newlib \ + --without-headers \ + --without-ppl \ + --without-cloog \ + --enable-languages=c EXTRA_MAKE = EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools2 - EXTRA_CONFIG = --prefix=/tools \ - --with-local-prefix=/tools \ - --enable-clocale=gnu \ - --enable-shared \ - --enable-threads=posix \ - --enable-__cxa_atexit \ - --enable-languages=c,c++ \ - --disable-libstdcxx-pch + EXTRA_ENV = \ + CC="$(CROSSTARGET)-gcc -B/tools/lib/" \ + AR="$(CROSSTARGET)-ar" \ + RANLIB="$(CROSSTARGET)-ranlib" + EXTRA_CONFIG = \ + --host=$(BUILDTARGET) \ + --build=$(BUILDTARGET) \ + --target=$(BUILDTARGET) \ + --prefix=/tools \ + --with-local-prefix=/tools \ + --enable-clocale=gnu \ + --enable-shared \ + --enable-threads=posix \ + --enable-__cxa_atexit \ + --enable-languages=c,c++ \ + --disable-libstdcxx-pch \ + --disable-bootstrap EXTRA_MAKE = EXTRA_INSTALL = endif @@ -73,34 +101,39 @@ endif
ifeq "$(MACHINE_TYPE)" "arm" EXTRA_CONFIG += \ - --build=$(BUILDTARGET) \ - --host=$(BUILDTARGET) \ - --target=$(BUILDTARGET) \ --with-float=soft \ - --disable-libmudflap \ - --disable-libssp \ - --disable-libgomp \ - --enable-threads=posix \ - --enable-long-long \ - --enable-c99 \ - --enable-__cxa_atexit \ - --disable-multilib -else - EXTRA_CONFIG += --build=$(BUILDTARGET) --host=$(BUILDTARGET) \ - --target=$(BUILDTARGET) + --disable-sjlj-exceptions +endif + +ifeq "$(MACHINE)" "i586" + EXTRA_CONFIG += \ + --with-arch=i586 \ + --with-tune=generic endif
+EXTRA_CONFIG += \ + --with-bugurl=http://bugtracker.ipfire.org \ + --disable-libunwind-exceptions \ + --enable-gnu-unique-object + export XCFLAGS = $(CFLAGS) export TCFLAGS = $(CFLAGS)
############################################################################### # Top-level Rules ############################################################################### -objects = $(DL_FILE) + +objects = $(DL_FILE) \ + gmp-$(GMP_VER).tar.bz2 \ + mpfr-$(MPFR_VER).tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) +gmp-$(GMP_VER).tar.bz2 = $(DL_FROM)/gmp-$(GMP_VER).tar.bz2 +mpfr-$(MPFR_VER).tar.bz2 = $(DL_FROM)/mpfr-$(MPFR_VER).tar.bz2
-$(DL_FILE)_MD5 = a4a3eb15c96030906d8494959eeda23c +$(DL_FILE)_MD5 = 295709feb4441b04e87dea3f1bab4281 +gmp-$(GMP_VER).tar.bz2_MD5 = 041487d25e9c230b0c42b106361055fe +mpfr-$(MPFR_VER).tar.bz2_MD5 = 89e59fe665e2b3ad44a6789f40b059a0
install : $(TARGET)
@@ -130,42 +163,71 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-fix_linker_version_detection.patch @mkdir $(DIR_SRC)/gcc-build
- cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-gcc_eh.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-arm-linux-soft-float.patch + # Apply patches. + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-build-id.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-c++-builtin-redecl.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-i386-libgomp.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-libtool-no-rpath.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-no-add-needed.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-pr33763.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh330771.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh533181.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh610785.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-unwind-debug-hook.patch + +ifneq "$(ROOT)" "" + # Build gmp and mpfr internally in toolchain. + cd $(DIR_APP) && tar xfa $(DIR_DL)/gmp-$(GMP_VER).tar.bz2 + cd $(DIR_APP) && mv -v gmp-$(GMP_VER) gmp + cd $(DIR_APP) && tar xfa $(DIR_DL)/mpfr-$(MPFR_VER).tar.bz2 + cd $(DIR_APP) && mv -v mpfr-$(MPFR_VER) mpfr + +ifeq "$(PASS)" "1" + # GCC does not detect stack protection correctly, which causes problems + # for the build of libresolv_pic.a. + cd $(DIR_APP) && sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure +endif
-ifeq "$(ROOT)" "" - cd $(DIR_APP) && sed -i 's/install_to_$$(INSTALL_DEST) //' libiberty/Makefile.in - cd $(DIR_APP) && sed -i 's/^XCFLAGS =$$/& -fomit-frame-pointer/' gcc/Makefile.in - cd $(DIR_APP) && sed -i 's@./fixinc.sh@-c true@' gcc/Makefile.in - cd $(DIR_APP) && sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in +ifeq "$(PASS)" "2" + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.4.3-startfiles_fix-1.patch + + for file in $$(find $(DIR_APP)/gcc/config -name linux64.h -o -name linux.h \ + -o -name sysv4.h -o -name linux-eabi.h -o -name linux-elf.h); do \ + echo "Processing $${file}..."; \ + sed -i $${file} \ + -e 's@/lib(64)?(32)?/ld@/tools&@g' \ + -e 's@/usr@/tools@g'; \ + echo '#undef STANDARD_INCLUDE_DIR' >> $${file}; \ + echo '#define STANDARD_INCLUDE_DIR 0' >> $${file}; \ + echo '#define STANDARD_STARTFILE_PREFIX_1 ""' >> $${file}; \ + echo '#define STANDARD_STARTFILE_PREFIX_2 ""' >> $${file}; \ + done +endif +endif
- cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG) + cd $(DIR_APP) && sed -i 's/install_to_$$(INSTALL_DEST) //' libiberty/Makefile.in + cd $(DIR_APP) && sed -i gcc/Makefile.in \ + -e 's@./fixinc.sh@-c true@' \ + -e 's/^T_CFLAGS =$$/& -fomit-frame-pointer/' + + # The actual build. + cd $(DIR_SRC)/gcc-build && \ + $(EXTRA_ENV) \ + $(DIR_APP)/configure \ + $(EXTRA_CONFIG) cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install - ln -sfv ../usr/bin/cpp /lib - ln -sfv gcc /usr/bin/cc + +ifeq "$(ROOT)" "" + ln -svf ../usr/bin/cpp /lib + ln -svf gcc /usr/bin/cc else -ifeq "$(PASS)" "1" - cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG) - cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install - ln -sfv gcc /tools/bin/cc - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-gcc - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-g++ - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-cc +ifeq "$(PASS)" "1" + ln -svf libgcc.a $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/') else - cd $(DIR_APP) && cp -v gcc/Makefile.in{,.orig} - cd $(DIR_APP) && sed 's@./fixinc.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in - cd $(DIR_APP) && cp -v gcc/Makefile.in{,.tmp} - cd $(DIR_APP) && sed 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \ - > gcc/Makefile.in - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-specs-1.patch - cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG) - cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install + ln -svf gcc /tools/bin/cc endif endif @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build diff --git a/lfs/gettext b/lfs/gettext index 43e7552..b1ccbbe 100644 --- a/lfs/gettext +++ b/lfs/gettext @@ -24,7 +24,7 @@
include Config
-VER = 0.14.5 +VER = 0.18.1.1
THISAPP = gettext-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -34,14 +34,10 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) # Normal build or /tools build. # ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else TARGET = $(DIR_INFO)/$(THISAPP) EXTRA_CONFIG = --prefix=/usr --disable-nls EXTRA_MAKE = EXTRA_INSTALL = -endif else TARGET = $(DIR_INFO)/$(THISAPP)-tools EXTRA_CONFIG = --prefix=/tools --disable-shared --disable-nls @@ -57,7 +53,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = e2f6581626a22a0de66dce1d81d00de3 +$(DL_FILE)_MD5 = 3dd55b952826d2b32f51308f2f91aa89
install : $(TARGET)
@@ -88,21 +84,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix=/ --libdir=/lib \ - --with-included-gettext --disable-rpath \ - --enable-relocatable --disable-shared - cd $(DIR_APP)/gettext-runtime && make CFLAGS="-Os -fomit-frame-pointer" -C intl/ - cd $(DIR_APP)/gettext-runtime && make CFLAGS="-Os -fomit-frame-pointer" \ - DESTDIR=/opt/$(MACHINE)-uClibc -C intl/ install -else cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install -endif else cd $(DIR_APP)/gettext-tools && ./configure $(EXTRA_CONFIG) - cd $(DIR_APP)/gettext-tools && make -C lib + cd $(DIR_APP)/gettext-tools && make -C gnulib-lib cd $(DIR_APP)/gettext-tools && make -C src msgfmt cd $(DIR_APP)/gettext-tools && cp -v src/msgfmt /tools/bin endif diff --git a/lfs/git b/lfs/git index 82b90fd..615c5b4 100644 --- a/lfs/git +++ b/lfs/git @@ -24,7 +24,7 @@
include Config
-VER = 1.7.9.3 +VER = 1.8.1
THISAPP = git-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = git -PAK_VER = 8 +PAK_VER = 9
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = f93b976649216d731fd9f9befb90a58c +$(DL_FILE)_MD5 = a2c6f4404c5e432b47474d246ca83c7e
install : $(TARGET)
diff --git a/lfs/glib b/lfs/glib index 2c41905..1b43287 100644 --- a/lfs/glib +++ b/lfs/glib @@ -24,17 +24,13 @@
include Config
-VER = 2.22.2 +VER = 2.32.3
THISAPP = glib-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) -PROG = glib -PAK_VER = 3 - -DEPS = ""
############################################################################### # Top-level Rules @@ -44,7 +40,8 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 846a86c74b74d5b16826aa5508940f9b +$(DL_FILE)_MD5 = 9bd3ac535c24b6c162be13b2c43c5adc + install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects)) @@ -53,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
md5 : $(subst %,%_MD5,$(objects))
-dist: - @$(PAK) - ############################################################################### # Downloading, checking, md5sum ############################################################################### @@ -75,8 +69,9 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ + --with-pcre=system cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/glibc b/lfs/glibc index e2638b6..ccbdb31 100644 --- a/lfs/glibc +++ b/lfs/glibc @@ -24,11 +24,8 @@
include Config
-ifeq "$(MACHINE_TYPE)" "arm" - VER = 2.5 -else - VER = 2.3.6 -endif +VER = 2.12-2-gc4ccff1 +PORTS_VER = 2.12.1
THISAPP = glibc-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -39,23 +36,33 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) # ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) - EXTRA_CONFIG = --prefix=/usr \ - --disable-profile --enable-add-ons \ - --enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc + EXTRA_CONFIG = \ + --build=$(BUILDTARGET) \ + --prefix=/usr \ + --libexecdir=/usr/lib/glibc EXTRA_MAKE = EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools - EXTRA_CONFIG = --prefix=/tools \ - --disable-profile --enable-add-ons \ - --enable-kernel=2.6.0 --with-binutils=/tools/bin \ - --without-gd --with-headers=/tools/include \ - --without-selinux + EXTRA_CONFIG = \ + --host=$(CROSSTARGET) \ + --build=$(BUILDTARGET) \ + --prefix=/tools \ + --with-headers=/tools/include \ + libc_cv_forced_unwind=yes \ + libc_cv_ctors_header=yes \ + libc_cv_c_cleanup=yes EXTRA_MAKE = EXTRA_INSTALL = endif
-EXTRA_CONFIG += --build=$(BUILDTARGET) +# Enable some extra optimization for the glibc code. +CFLAGS = -O3 -DNDEBUG -fasynchronous-unwind-tables -fPIC -DPIC \ + -DNO_CTORS_DTORS_SECTIONS + +ifeq "$(MACHINE)" "i586" + CFLAGS += -march=i586 -mtune=generic -mno-tls-direct-seg-refs +endif
ifeq "$(MACHINE_TYPE)" "arm" # Disable hardware FP for ARM. @@ -63,29 +70,30 @@ ifeq "$(MACHINE_TYPE)" "arm" --without-fp endif
+# Add some general configuration flags +EXTRA_CONFIG += \ + --disable-profile \ + --enable-kernel=2.6.0 \ + --enable-add-ons \ + --without-selinux \ + --enable-experimental-malloc \ + --enable-bind-now + ############################################################################### # Top-level Rules ###############################################################################
-objects = $(DL_FILE) \ - glibc-libidn-$(VER).tar.bz2 +objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -glibc-libidn-$(VER).tar.bz2 = $(DL_FROM)/glibc-libidn-$(VER).tar.bz2
-ifeq "$(MACHINE_TYPE)" "arm" - $(DL_FILE)_MD5 = 1fb29764a6a650a4d5b409dda227ac9f - glibc-libidn-$(VER).tar.bz2_MD5 = 8787868ba8962d9b125997ec2f25ac01 -else - $(DL_FILE)_MD5 = bfdce99f82d6dbcb64b7f11c05d6bc96 - glibc-libidn-$(VER).tar.bz2_MD5 = 49dbe06ce830fc73874d6b38bdc5b4db -endif +$(DL_FILE)_MD5 = 450958ad3d3b5a432b356376904c96b0
# ARM needs glibc-ports ifeq "$(MACHINE_TYPE)" "arm" - objects += glibc-ports-$(VER).tar.bz2 - glibc-ports-$(VER).tar.bz2 = $(DL_FROM)/glibc-ports-$(VER).tar.bz2 - glibc-ports-$(VER).tar.bz2_MD5 = 183f6d46e8fa5e4b2aff240ab1586c2e + objects += glibc-ports-$(PORTS_VER).tar.bz2 + glibc-ports-$(PORTS_VER).tar.bz2 = $(DL_FROM)/glibc-ports-$(PORTS_VER).tar.bz2 + glibc-ports-$(PORTS_VER).tar.bz2_MD5 = cb01ab976180e98287cef5079e35359e endif
install : $(TARGET) @@ -117,25 +125,126 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) @mkdir $(DIR_SRC)/glibc-build -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP) && tar jxf $(DIR_DL)/glibc-ports-$(VER).tar.bz2 - cd $(DIR_APP) && mv -v glibc-ports-$(VER) ports
- cd $(DIR_APP)/ports && patch -Np1 -i $(DIR_SRC)/src/patches/glibc-ports-avoid-using-asm-procinfo.patch +ifeq "$(MACHINE_TYPE)" "arm" + cd $(DIR_APP) && tar jxf $(DIR_DL)/glibc-ports-$(PORTS_VER).tar.bz2 + cd $(DIR_APP) && mv -v glibc-ports-$(PORTS_VER) ports
- # asm/page.h should not be included in sysdeps/unix/sysv/linux/arm/ioperm.c. - cd $(DIR_APP) && sed "/asm/page.h/d" -i ports/sysdeps/unix/sysv/linux/arm/ioperm.c -else - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-dont_use_origin_on_privil_exec.patch + # http://sourceware.org/bugzilla/show_bug.cgi?id=12354 + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-cfi-entry-not-closed.patch endif
+ # Apply all patches. + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-aliasing.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-fedora.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-getlogin-r.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-localedata.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-recvmmsg.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh580498.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh582738.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh587360.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh593396.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh593686.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh601686.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh607010.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh607461.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh615090.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh615701.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh621959.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh623187.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh625893.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh630801.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh631011.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh641128.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh642584.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh643822.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh645672.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh646954.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh647448.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh652661.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh656014.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh656530.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh657572.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh661982.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh667974.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh676076.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh676591.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh681054.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh688720.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh688980.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh689471.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh692177.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh692838.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh694386.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh695595.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh695963.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh696472.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh697421.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh699724.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh700507.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh703480.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh703481.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh705465.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh711927.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh711987.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh712248.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh713134.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh714823.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh718057.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh726517.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh730379.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh731042.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh736346.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh737778.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh738665.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh738763.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh739184.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh739971.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh740506.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh740506-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh749188.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh750531.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh751750.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh752122.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh757888.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh766513.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767146.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767693.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767693-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767746.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh771342.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh782585.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh784402.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh785984.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh788959.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh788959-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789189.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789209.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789238.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789238-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh794817.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh794817-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh795498.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804630.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804689.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808337.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808545.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh809602.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh833716.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837026.patch + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-resolv-stack_chk_fail.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-remove-ctors-dtors-output-sections.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-test-installation.pl-nss_test1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-test-installation.pl-libgcc_s.patch + + # Fixes: + # Makefile:235: *** mixed implicit and normal rules. Stop. + cd $(DIR_APP) && sed -i 's/ot $$/ot:\n\ttouch $$@\n$$/' manual/Makefile + ifeq "$(ROOT)" "" -ifeq "$(MACHINE)" "i586" - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-linux_types-1.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-inotify-1.patch -endif - # This locale causes a loop on bash login - exclude it - cd $(DIR_APP) && sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED ifeq "$(MACHINE_TYPE)" "arm" cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.3 -o|' \ scripts/test-installation.pl @@ -144,27 +253,22 @@ else scripts/test-installation.pl endif endif - cd $(DIR_SRC)/glibc-build && CFLAGS="$(CFLAGS)" $(DIR_APP)/configure $(EXTRA_CONFIG)
-ifeq "$(ROOT)" "" - touch /etc/ld.so.conf - cd $(DIR_SRC)/glibc-build && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_SRC)/glibc-build && \ + CFLAGS="$(CFLAGS) -fno-asynchronous-unwind-tables" \ + $(DIR_APP)/configure $(EXTRA_CONFIG) + cd $(DIR_SRC)/glibc-build && make PARALLELMFLAGS=$(MAKETUNING) \ + CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install -ifeq "$(MACHINE)" "i586" - cp -v $(DIR_APP)/sysdeps/unix/sysv/linux/inotify.h /usr/include/sys -endif -else - -mkdir /tools/etc - touch /tools/etc/ld.so.conf - cd $(DIR_SRC)/glibc-build && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install -endif
- # Creating the locales ifeq "$(ROOT)" "" + # Creating the locales mkdir -p /usr/lib/locale cd $(DIR_SRC)/glibc-build && localedef -i en_US -f ISO-8859-1 en_US cd $(DIR_SRC)/glibc-build && localedef -i en_US -f UTF-8 en_US.utf8 + + # Timezone data will be shipped by tzdata. + rm -rfv /usr/share/zoneinfo endif @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build @$(POSTBUILD) diff --git a/lfs/gmp b/lfs/gmp index 5b50081..cf52276 100644 --- a/lfs/gmp +++ b/lfs/gmp @@ -24,7 +24,7 @@
include Config
-VER = 4.2.4 +VER = 5.0.5
THISAPP = gmp-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = fc1e3b3a2a5038d4d74138d0b9cf8dbe +$(DL_FILE)_MD5 = 041487d25e9c230b0c42b106361055fe
install : $(TARGET)
diff --git a/lfs/gmp-compat b/lfs/gmp-compat new file mode 100644 index 0000000..3d20e88 --- /dev/null +++ b/lfs/gmp-compat @@ -0,0 +1,83 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 4.3.2 + +THISAPP = gmp-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +ifeq "$(MACHINE)" "i586" + CONFIGURE_ARGS = ABI=32 +endif + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = dd60683d7057917e34630b4a787932e8 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && $(CONFIGURE_ARGS) ./configure --prefix=/usr \ + --enable-cxx --enable-mpbsd --disable-nls + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && install -m 644 .libs/libgmp.so.3.5.2 /usr/lib + ln -svf libgmp.so.3.5.2 /usr/lib/libgmp.so.3 + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/gnupg b/lfs/gnupg index c596a5f..5e5ead9 100644 --- a/lfs/gnupg +++ b/lfs/gnupg @@ -24,7 +24,7 @@
include Config
-VER = 1.4.5 +VER = 1.4.12
THISAPP = gnupg-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 811525965b4c0987e6418a7729a6444d +$(DL_FILE)_MD5 = ce3742e5c7912559cab7894ad8ba7f6b
install : $(TARGET)
diff --git a/lfs/gpgme b/lfs/gpgme new file mode 100644 index 0000000..12da4cb --- /dev/null +++ b/lfs/gpgme @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.3.2 + +THISAPP = gpgme-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = gpgme +PAK_VER = 1 + +DEPS = "libgpg-error libassuan" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 326fe97077141713f0930aa87949a287 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/grep b/lfs/grep index 4b3e1e1..e9b0b18 100644 --- a/lfs/grep +++ b/lfs/grep @@ -24,10 +24,10 @@
include Config
-VER = 2.5.1a +VER = 2.14
THISAPP = grep-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP)
@@ -41,7 +41,7 @@ ifeq "$(ROOT)" "" else TARGET = $(DIR_INFO)/$(THISAPP)-tools EXTRA_CONFIG = --prefix=/tools --disable-nls \ - --disable-perl-regexp + --disable-perl-regexp --without-included-regex EXTRA_MAKE = EXTRA_INSTALL = endif @@ -54,7 +54,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 52202fe462770fa6be1bb667bd6cf30c +$(DL_FILE)_MD5 = d4a3f03849d1e17ce56ab76aa5a24cab
install : $(TARGET)
@@ -83,11 +83,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(ROOT)" "" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-redhat_fixes-2.patch - cd $(DIR_APP) && chmod +x tests/fmbtest.sh -endif + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install diff --git a/lfs/grub b/lfs/grub index ad6e304..6850a3a 100644 --- a/lfs/grub +++ b/lfs/grub @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -73,63 +73,27 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-disk_geometry-1.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.90-append.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.90-symlinkmenulst.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.91-splashimagehelp.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-configfile.patch - cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/grub-0.93-endedit.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-graphics-bootterm.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-special-device-names.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.94-i2o.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-graphics.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-hiddenmenu-tweak.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md-rework.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md-mbr.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-moreraid.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-nonmbr.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-odirect.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-recheck-bad.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-staticcurses.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-xpmjunk.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-cmdline-size.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-datadir.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid-partition-names.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-install.in.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mactel-kbd.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mpath.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-nxstack.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-nx-multiinstall.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-once.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-splash-error-term.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.94-installcopyonly.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-prototypes.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-stderr.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-bz429187-cciss.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid-recheck-bad.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mdadm-path.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97_grub-install_virtio.patch - - # XXX Does not work anymore - #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97_grub-install_virtio.patch - - cd $(DIR_APP) && perl -pi -e 's,/usr/lib/grub/i386-pc,/usr/share/grub/i386-pc,' docs/grub.texi - cd $(DIR_APP) && sed -i 's/AM_INIT_AUTOMAKE/&\nAM_PROG_AS/' configure.ac - - cd $(DIR_APP) && aclocal && autoheader && autoconf && automake --add-missing - cd $(DIR_APP) && CFLAGS="-Os -s -fno-strict-aliasing" ./configure --prefix=/usr
+ # Applying patches. + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-gentoo-14.patch + cd $(DIR_APP) && autoreconf + cd $(DIR_APP) && autoconf + + # Build. + cd $(DIR_APP) && CFLAGS="$(CFLAGS)" ./configure --prefix=/usr \ + --disable-auto-linux-mem-opt cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install
# grub files mkdir -vp /boot/grub - cp -v /usr/share/grub/i386-pc/stage{1,2} /boot/grub + cp -v /usr/lib/grub/i386-pc/stage{1,2} /boot/grub for i in $(DIR_SRC)/config/grub/*; do \ [ -f $$i ] && cp -f $$i /boot/grub; \ done
+ # generate default file + grub-set-default 0 + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/hddtemp b/lfs/hddtemp deleted file mode 100644 index 9533f67..0000000 --- a/lfs/hddtemp +++ /dev/null @@ -1,76 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0.3-beta14 - -THISAPP = hddtemp-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = bbf8be4539495e18bec54af77511a680 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --with-db-path=/etc/hddtemp.db - cd $(DIR_APP) && make $(MAKETUNING) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/hdparm b/lfs/hdparm index 33a43d0..e4a44bf 100644 --- a/lfs/hdparm +++ b/lfs/hdparm @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 8.9 +VER = 9.42
THISAPP = hdparm-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 19fa013956612581af7d00907990ac84 +$(DL_FILE)_MD5 = 0af5a38b212fe08f5afbe5e37f34b40b
install : $(TARGET)
diff --git a/lfs/hostapd b/lfs/hostapd index b7283c8..2ce9c21 100644 --- a/lfs/hostapd +++ b/lfs/hostapd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 0.7.3 +VER = 2.0
THISAPP = hostapd-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = hostapd -PAK_VER = 21 +PAK_VER = 24
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 91a7c8d0f090b7104152d3455a84c112 +$(DL_FILE)_MD5 = ba22e639bc57aa4035d2ea8ffa9bbbee
install : $(TARGET)
@@ -82,9 +82,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) -cp /usr/src/linux/include/linux/netfilter/nfnetlink.h /usr/include/linux/netfilter/ -cp /usr/src/linux/include/linux/netfilter/nfnetlink_compat.h /usr/include/linux/netfilter/ cd $(DIR_APP)/hostapd && cp $(DIR_SRC)/config/hostapd/config ./.config -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP)/hostapd && sed -e "s/^CONFIG_DRIVER_MADWIFI=y/#&/" -i .config -endif cd $(DIR_APP)/hostapd && sed -e "s@/usr/local@/usr@g" -i Makefile cd $(DIR_APP)/hostapd && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP)/hostapd && make install diff --git a/lfs/hplip b/lfs/hplip index 1f86586..cfcdeef 100644 --- a/lfs/hplip +++ b/lfs/hplip @@ -24,7 +24,7 @@
include Config
-VER = 2.7.10 +VER = 3.12.6
THISAPP = hplip-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = hplip -PAK_VER = 1 +PAK_VER = 2
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = eafb815ca4b4bb5a2f35a76ee3c2dc72 +$(DL_FILE)_MD5 = 5303938e8630775ea6fb383af85775e5
install : $(TARGET)
diff --git a/lfs/hwdata b/lfs/hwdata index 6716a95..6804849 100644 --- a/lfs/hwdata +++ b/lfs/hwdata @@ -27,11 +27,7 @@ include Config VER = ipfire
THISAPP = hwdata -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -53,11 +49,6 @@ md5 :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) -ifeq "$(LFS_PASS)" "install" - -mkdir -p -m 755 /install/initrd/usr/share/hwdata - install -m 644 $(DIR_SRC)/src/hwdata/*.ids /install/initrd/usr/share/hwdata -else -mkdir -p -m 755 /usr/share/hwdata install -m 644 $(DIR_SRC)/src/hwdata/*.ids /usr/share/hwdata -endif @$(POSTBUILD) diff --git a/lfs/igb b/lfs/igb index ce7f8ad..0ebf466 100644 --- a/lfs/igb +++ b/lfs/igb @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,8 +25,14 @@ include Config
VERSUFIX = ipfire$(KCFG) +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb/ +else + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/intel/igb/ +endif
-VER = 3.2.10 +VER = 4.1.2
THISAPP = igb-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -42,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 22d09e7f7c8f0b23f744914e41c7ce43 +$(DL_FILE)_MD5 = 0a5462b76310b83a40c9023edae50d72
install : $(TARGET)
@@ -75,12 +81,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) #Save original igb module - -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb/igb.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb/igb.ko.org + -mv $(MODPATH)/igb.ko \ + $(MODPATH)//igb.ko.org @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \ - SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 igb.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb + cd $(DIR_APP)/src && make BUILD_KERNEL=$(KVER)-$(VERSUFIX) + cd $(DIR_APP)/src && install -m 644 igb.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/imspector b/lfs/imspector index 092211b..51654c5 100644 --- a/lfs/imspector +++ b/lfs/imspector @@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_SRC)/imspector && sed -e "s/^SSL_LIBS.*/& -lcrypto/" -i Makefile cd $(DIR_SRC)/imspector && make install -mv /usr/etc/imspector /etc/imspector -mv /etc/imspector/imspector /etc/imspector diff --git a/lfs/inetutils b/lfs/inetutils index c1d51ce..468c2af 100644 --- a/lfs/inetutils +++ b/lfs/inetutils @@ -72,6 +72,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-gcc4_fixes-3.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-daemon_fixes-1.patch + cd $(DIR_APP) && sed -i '/#include/a #include <stdlib.h>' libicmp/icmp_timestamp.c cd $(DIR_APP) && ./configure --prefix=/usr --libexecdir=/usr/sbin \ --sysconfdir=/etc --localstatedir=/var \ --mandir=/usr/share/man --infodir=/usr/share/info \ diff --git a/lfs/initrd b/lfs/initrd index fe221e8..7403644 100644 --- a/lfs/initrd +++ b/lfs/initrd @@ -71,6 +71,9 @@ $(TARGET) :
cd /install/initrd/ && patch -Np0 < $(DIR_SRC)/src/patches/dracut-init_start_ipfireinstaller.patch
+ # Hide udev messages + sed -i -e "s|err|none|g" /install/initrd/etc/udev/udev.conf + # make new dependencies depmod -a -F /boot/System.map-$(KVER)-ipfire $(KVER)-ipfire
diff --git a/lfs/initscripts b/lfs/initscripts index 7210c0d..213b46e 100644 --- a/lfs/initscripts +++ b/lfs/initscripts @@ -166,6 +166,8 @@ $(TARGET) : ln -sf ../init.d/udev_retry /etc/rc.d/rcsysinit.d/S45udev_retry ln -sf ../init.d/cleanfs /etc/rc.d/rcsysinit.d/S50cleanfs ln -sf ../init.d/setclock /etc/rc.d/rcsysinit.d/S60setclock + ln -sf ../init.d/setclock /etc/rc.d/rc0.d/K47setclock + ln -sf ../init.d/setclock /etc/rc.d/rc6.d/K47setclock ln -sf ../init.d/console /etc/rc.d/rcsysinit.d/S70console ln -sf ../init.d/firstsetup /etc/rc.d/rcsysinit.d/S75firstsetup ln -sf ../init.d/localnet /etc/rc.d/rcsysinit.d/S80localnet @@ -197,10 +199,13 @@ $(TARGET) : ln -sf any /etc/rc.d/init.d/networking/$$i; \ done
- # ARM does not need checkfstab + # ARM does not need checkfstab and acpid ifeq "$(MACHINE_TYPE)" "arm" - rm -vf /etc/rc.d/init.d/checkfstab + rm -vf /etc/rc.d/init.d/{acpid,checkfstab} else + ln -sf ../init.d/acpid /etc/rc.d/rc3.d/S12acpid + ln -sf ../init.d/acpid /etc/rc.d/rc0.d/K87acpid + ln -sf ../init.d/acpid /etc/rc.d/rc6.d/K87acpid ln -sf ../init.d/checkfstab /etc/rc.d/rcsysinit.d/S19checkfstab endif
diff --git a/lfs/installer b/lfs/installer index 7661963..740793a 100644 --- a/lfs/installer +++ b/lfs/installer @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -61,7 +61,7 @@ $(TARGET) : -DNAME='"$(NAME)"' -DSNAME='"$(SNAME)"' -DVERSION='"$(VERSION)"' \ -DSLOGAN='"$(SLOGAN)"' -DCONFIG_ROOT='"$(CONFIG_ROOT)"' -DKERNEL_VERSION='"$(KVER)"'" cd $(DIR_APP)/install && install -v -m 0755 install probenic.sh \ - probehw.sh downloadsource.sh mountsource.sh mountdest.sh /install/initrd/bin + downloadsource.sh mountsource.sh mountdest.sh /install/initrd/bin #Patch ISO Name for download ... sed -i -e "s|ipfire.iso|download.ipfire.org/releases/ipfire-2.x/$(VERSION)-core$(CORE)/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso|g" \ /install/initrd/bin/downloadsource.sh diff --git a/lfs/ipfireseeder b/lfs/ipfireseeder deleted file mode 100644 index 8834bbc..0000000 --- a/lfs/ipfireseeder +++ /dev/null @@ -1,84 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 1.00 - -THISAPP = ipfireseeder-$(VER) -DL_FILE = ipfire-2.9.i586-full-core51.iso.torrent - -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -SUP_ARCH = i586 -PROG = ipfireseeder -PAK_VER = 27 - -DEPS = "rtorrent" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = fa40cd03e4b0a11f8f703595a5c01a76 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - -mkdir -p /var/log/seeder /var/ipfire/seeder - cp -vf $(DIR_DL)/$(DL_FILE) /var/ipfire/seeder - echo "Folder for IPFireseeder data" > /var/log/seeder/info - @$(POSTBUILD) diff --git a/lfs/iproute2 b/lfs/iproute2 index 50ccf40..42a8184 100644 --- a/lfs/iproute2 +++ b/lfs/iproute2 @@ -24,10 +24,10 @@
include Config
-VER = 2.6.16-060323 +VER = 3.5.1
THISAPP = iproute2-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -35,13 +35,12 @@ TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules ############################################################################### -objects = $(DL_FILE) htb3.6-020525.tgz + +objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -htb3.6-020525.tgz = $(DL_FROM)/htb3.6-020525.tgz
-$(DL_FILE)_MD5 = f31d4516b35bbfeaa72c762f5959e97c -htb3.6-020525.tgz_MD5 = 3064fd8642ce6a7e155a29c5205b99d4 +$(DL_FILE)_MD5 = d4425b44edd5eacd6099e672e4baacbf
install : $(TARGET)
@@ -70,9 +69,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -# cd $(DIR_APP) && tar xfz $(DIR_DL)/htb3.6-020525.tgz *.diff -# cd $(DIR_APP) && for i in htb3*tc.diff ; do patch -Np1 < $$i; done + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make $(MAKETUNING) SBINDIR=/sbin cd $(DIR_APP) && make SBINDIR=/sbin install cd $(DIR_APP) && mv -v /sbin/arpd /usr/sbin diff --git a/lfs/iptables b/lfs/iptables index 6d36990..a247ba7 100644 --- a/lfs/iptables +++ b/lfs/iptables @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.4.6 +VER = 1.4.14
THISAPP = iptables-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -38,17 +38,23 @@ TARGET = $(DIR_INFO)/$(THISAPP) objects = $(DL_FILE) \ netfilter-layer7-v2.22.tar.gz \ libnfnetlink-1.0.0.tar.bz2 \ - libnetfilter_queue-0.0.17.tar.bz2 + libnetfilter_queue-0.0.17.tar.bz2 \ + libnetfilter_conntrack-1.0.2.tar.bz2 \ + libnetfilter_cttimeout-1.0.0.tar.bz2
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz libnfnetlink-1.0.0.tar.bz2 = $(URL_IPFIRE)/libnfnetlink-1.0.0.tar.bz2 libnetfilter_queue-0.0.17.tar.bz2 = $(URL_IPFIRE)/libnetfilter_queue-0.0.17.tar.bz2 +libnetfilter_conntrack-1.0.2.tar.bz2 = $(URL_IPFIRE)/libnetfilter_conntrack-1.0.2.tar.bz2 +libnetfilter_cttimeout-1.0.0.tar.bz2 = $(URL_IPFIRE)/libnetfilter_cttimeout-1.0.0.tar.bz2
-$(DL_FILE)_MD5 = c67cf30e281a924def6426be0973df56 +$(DL_FILE)_MD5 = 5ab24ad683f76689cfe7e0c73f44855d netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f libnfnetlink-1.0.0.tar.bz2_MD5 = 016fdec8389242615024c529acc1adb8 libnetfilter_queue-0.0.17.tar.bz2_MD5 = 2cde35e678ead3a8f9eb896bf807a159 +libnetfilter_conntrack-1.0.2.tar.bz2_MD5 = 447114b5d61bb9a9617ead3217c3d3ff +libnetfilter_cttimeout-1.0.0.tar.bz2_MD5 = 7697437fc9ebb6f6b83df56a633db7f9
install : $(TARGET)
@@ -89,16 +95,17 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) ./extensions/
# ipp2p 0.8.2-pomng - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch
# imq - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.6-imq_test1.patch - chmod +x $(DIR_APP)/extensions/.IMQ-test* + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.12-IMQ-test4.diff +# chmod +x $(DIR_APP)/extensions/.IMQ-test*
cd $(DIR_APP) && ./configure --prefix=/usr --with-ksource=/usr/src/linux \ --libdir=/lib --includedir=/usr/include --enable-libipq \ --libexecdir=/lib --bindir=/sbin \ - --sbindir=/sbin --mandir=/usr/share/man + --sbindir=/sbin --mandir=/usr/share/man \ + --with-pkgconfigdir=/usr/lib/pkgconfig cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install
@@ -123,5 +130,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_SRC)/libnetfilter_queue-0.0.17 && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_SRC)/libnetfilter_queue-0.0.17 && make install
+ cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnetfilter_conntrack-1.0.2.tar.bz2 + cd $(DIR_SRC)/libnetfilter_conntrack-1.0.2 && ./configure --prefix=/usr + cd $(DIR_SRC)/libnetfilter_conntrack-1.0.2 && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_SRC)/libnetfilter_conntrack-1.0.2 && make install + + cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnetfilter_cttimeout-1.0.0.tar.bz2 + cd $(DIR_SRC)/libnetfilter_cttimeout-1.0.0 && ./configure --prefix=/usr + cd $(DIR_SRC)/libnetfilter_cttimeout-1.0.0 && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_SRC)/libnetfilter_cttimeout-1.0.0 && make install + @rm -rf $(DIR_APP) $(DIR_SRC)/libnfnetlink-1.0.0 $(DIR_SRC)/netfilter-layer7* $(DIR_SRC)/libnetfilter_queue-0.0.17 @$(POSTBUILD) diff --git a/lfs/iptstate b/lfs/iptstate deleted file mode 100644 index ee50367..0000000 --- a/lfs/iptstate +++ /dev/null @@ -1,76 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 2.1 - -THISAPP = iptstate-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = c99e19c66645689b44a871428e003ec7 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/kbd b/lfs/kbd index 72e509f..1c99242 100644 --- a/lfs/kbd +++ b/lfs/kbd @@ -30,11 +30,7 @@ THISAPP = kbd-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -78,21 +74,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-more-programs-1.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-backspace-1.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-gcc4_fixes-1.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" ./configure --disable-nls - cd $(DIR_APP)/src && make CFLAGS="-Os -fomit-frame-pointer" DATA_DIR=/lib/kbd BINDIR=/bin setfont kbd_mode dumpkeys loadkeys loadunimap showconsolefont - cd $(DIR_APP)/src && install -m 0755 setfont loadunimap kbd_mode dumpkeys loadkeys showconsolefont unicode_start unicode_stop /install/initrd/bin - mkdir -p /install/initrd/lib/kbd/consolefonts - cd $(DIR_APP) && install -m 0644 data/consolefonts/lat0-16.psfu /install/initrd/lib/kbd/consolefonts - cd $(DIR_APP) && install -m 0644 data/consolefonts/lat1-16.psfu /install/initrd/lib/kbd/consolefonts - cd $(DIR_APP) && install -m 0644 data/consolefonts/lat2-16.psfu /install/initrd/lib/kbd/consolefonts - cd $(DIR_APP) && install -m 0644 data/consolefonts/lat5-16.psfu /install/initrd/lib/kbd/consolefonts - cd $(DIR_APP) && install -m 0644 data/consolefonts/iso07u-16.psfu /install/initrd/lib/kbd/consolefonts -else cd $(DIR_APP) && ./configure --datadir=/lib/kbd --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install mv -v /usr/bin/{kbd_mode,openvt,setfont} /bin -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/kqemu b/lfs/kqemu deleted file mode 100644 index 6e5ecfa..0000000 --- a/lfs/kqemu +++ /dev/null @@ -1,84 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VERSUFIX=ipfire$(KCFG) - -VER = 1.4.0pre1 - -THISAPP = kqemu-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) -SUP_ARCH = i586 - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = d738d8ca7332211ab716ec3213d82ee1 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - $(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --kernel-path=/usr/src/linux - cd $(DIR_APP) && make $(MAKETUNING) - -mkdir -p /lib/modules/$(KVER)-$(VERSUFIX)/misc/ - cd $(DIR_APP) && install -m 644 kqemu.ko /lib/modules/$(KVER)-$(VERSUFIX)/misc/ - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/kudzu b/lfs/kudzu deleted file mode 100644 index f66c325..0000000 --- a/lfs/kudzu +++ /dev/null @@ -1,92 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 1.2.64 - -THISAPP = kudzu-$(VER) -DL_FILE = kudzu-$(VER).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 3eb6fae5e8f62409fd5149f2079f6060 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kudzu-usbnet.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && patch -N < $(DIR_SRC)/src/patches/kudzu-link-lintl.diff - cd $(DIR_APP) && make RPM_OPT_FLAGS="-O2 -I/opt/$(MACHINE)-uClibc/include" \ - ARCH=$(MACHINE) - cd $(DIR_APP) && install -m 0755 kudzu /install/initrd/bin/kudzu - #cd $(DIR_APP) && install -m 0644 libkudzu.a /install/initrd/lib - #cd $(DIR_APP) && install -m 0644 libkudzu_loader.a /install/initrd/lib -else - rm -rf /usr/sbin/kudzu - cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make - cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make install - cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make install-program -endif - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/kvm-kmod b/lfs/kvm-kmod index 0280b5e..90bd790 100644 --- a/lfs/kvm-kmod +++ b/lfs/kvm-kmod @@ -26,7 +26,7 @@ include Config
VERSUFIX=ipfire$(KCFG)
-VER = 3.0b +VER = 3.6
THISAPP = kvm-kmod-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -43,7 +43,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 19792041adc25779b31ea5c5fdca7d8c +$(DL_FILE)_MD5 = 3e51d395d6a0ecac6ae600a0515880c2
install : $(TARGET)
@@ -76,7 +76,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)_remove_pvclock_scale_delta_redefinition.patch cd $(DIR_APP) && ./configure --kerneldir=/usr/src/linux cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && install -m 644 x86/*.ko \ diff --git a/lfs/lcr b/lfs/lcr index d6734ed..061cde9 100644 --- a/lfs/lcr +++ b/lfs/lcr @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,15 +24,15 @@
include Config
-VER = 1.10 +VER = 20121008
THISAPP = lcr-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = lcr -PAK_VER = 4 +PAK_VER = 5
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ccde843ee92f4d75f697d8a9e9fa3ba9 +$(DL_FILE)_MD5 = 6c5e25329be107e30436b716bafc786f
install : $(TARGET)
@@ -76,10 +76,14 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_SRC)/lcr && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_SRC)/lcr && sed -i 's|usr/local/lcr|var/ipfire/lcr|g' Makefile.in - cd $(DIR_SRC)/lcr && sed -i 's|usr/local/lcr|var/ipfire/lcr|g' Makefile.am - cd $(DIR_SRC)/lcr && ./configure --prefix=/usr + @rm -rf $(DIR_SRC)/lcr && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_SRC)/lcr && sed -i -e "s|^EXTENSIONdir=.*|EXTENSIONdir=/var/ipfire/lcr/extensions|g" \ + Makefile.am + cd $(DIR_SRC)/lcr && ./autogen.sh + cd $(DIR_SRC)/lcr && ./configure --prefix=/usr \ + --sysconfdir=/var/ipfire \ + --localstatedir=/var \ + --datarootdir=/var/ipfire cd $(DIR_SRC)/lcr && make $(MAKETUNING) cd $(DIR_SRC)/lcr && make install mv /var/ipfire/lcr/routing.conf /var/ipfire/lcr/routing.conf.org diff --git a/lfs/less b/lfs/less index 0a4833f..d9680c8 100644 --- a/lfs/less +++ b/lfs/less @@ -24,7 +24,7 @@
include Config
-VER = 394 +VER = 443
THISAPP = less-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = a9f072ccefa0d315b325f3e9cdbd4b97 +$(DL_FILE)_MD5 = 47db098fb3cdaf847b3c4be05ee954fc
install : $(TARGET)
diff --git a/lfs/libaal b/lfs/libaal deleted file mode 100644 index 08d8ac1..0000000 --- a/lfs/libaal +++ /dev/null @@ -1,77 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 1.0.5 - -THISAPP = libaal-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 6c55201acd2a2c0a1f46addf248da6a2 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/libassuan b/lfs/libassuan new file mode 100644 index 0000000..3a32984 --- /dev/null +++ b/lfs/libassuan @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.0.3 + +THISAPP = libassuan-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = libassuan +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 179d1918325fdb928c7bd90b8a514fc7 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/libffi b/lfs/libffi new file mode 100644 index 0000000..0e94b31 --- /dev/null +++ b/lfs/libffi @@ -0,0 +1,79 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 3.0.11 + +THISAPP = libffi-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = f69b9693227d976835b4857b1ba7d0e3 +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/libgpg-error b/lfs/libgpg-error new file mode 100644 index 0000000..59108c1 --- /dev/null +++ b/lfs/libgpg-error @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.10 + +THISAPP = libgpg-error-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = libgpg-error +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 736a03daa9dc5873047d4eb4a9c22a16 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/libmad b/lfs/libmad index 548374d..ea0491e 100644 --- a/lfs/libmad +++ b/lfs/libmad @@ -77,6 +77,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libmad-0.15.1b-cflags.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libmad-0.15.1b-cflags-O2.patch + cd $(DIR_APP) && autoconf + cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install diff --git a/lfs/libmnl b/lfs/libmnl new file mode 100644 index 0000000..5341e4b --- /dev/null +++ b/lfs/libmnl @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.0.3 + +THISAPP = libmnl-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 7d95fc3bea3365bc03c48e484224f65f + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/libnl b/lfs/libnl index d174775..ea557d9 100644 --- a/lfs/libnl +++ b/lfs/libnl @@ -73,6 +73,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libnl-1.1-ULONG_MAX.patch cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/if_vlan.h \ include/linux/if_vlan.h cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/netfilter/nf_conntrack_common.h \ diff --git a/lfs/libogg b/lfs/libogg index bd9c022..41a1c7f 100644 --- a/lfs/libogg +++ b/lfs/libogg @@ -24,15 +24,15 @@
include Config
-VER = 1.1.4 +VER = 1.3.0
THISAPP = libogg-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = libogg -PAK_VER = 2 +PAK_VER = 3
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 10200ec22543841d9d1c23e0aed4e5e9 +$(DL_FILE)_MD5 = 84a35715170f2cd4c77a4448772b95d5
install : $(TARGET)
@@ -76,7 +76,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install diff --git a/lfs/libsafe b/lfs/libsafe deleted file mode 100644 index 24c398c..0000000 --- a/lfs/libsafe +++ /dev/null @@ -1,78 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 2.0-16 - -THISAPP = libsafe_$(VER) -DL_FILE = $(THISAPP).orig.tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/libsafe-$(VER) -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 6b7b6e6df84d4afb469ccc66d04fc24d - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsafe-functioncaching.diff - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsafe-alpha.diff - cd $(DIR_APP) && make libsafe $(MAKETUNING) - cd $(DIR_APP) && yes | make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/libsigc++ b/lfs/libsigc++ index 3635c6e..0d90f4c 100644 --- a/lfs/libsigc++ +++ b/lfs/libsigc++ @@ -24,7 +24,7 @@
include Config
-VER = 2.0.17 +VER = 2.0.18
THISAPP = libsigc++-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = fde0ee69e3125e982746d9fe005763e1 +$(DL_FILE)_MD5 = ddebf5aafc8525d10366a8724abc9f28
install : $(TARGET)
@@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsigc++-gcc43.patch cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/libsolv b/lfs/libsolv index b602095..7651be7 100644 --- a/lfs/libsolv +++ b/lfs/libsolv @@ -24,7 +24,7 @@
include Config
-VER = 0.0.0-0db9d7f +VER = 0.0.0-c02d759
THISAPP = libsolv-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP)
PROG = libsolv DEPS = "" -PAK_VER = 1 +PAK_VER = 2
############################################################################### # Top-level Rules @@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ba95c404d807bc71297c508a7127a3d9 +$(DL_FILE)_MD5 = a8ba49ca49c309d61836fe78b0e0f83a
install : $(TARGET)
@@ -86,26 +86,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && sed "/examples/d" -i CMakeLists.txt cd $(DIR_APP) && sed "/tools/d" -i CMakeLists.txt
- # Make sure that libsatsolverext is linked properly to all needed - # libraries. - cd $(DIR_APP) && echo "TARGET_LINK_LIBRARIES(libsolvext libsolv $${EXPAT_LIBRARY} $${ZLIB_LIBRARY})" \ - >> ext/CMakeLists.txt - - # Remove the RPM stuff when we build with -DFEDORA=1 because we - # do not support RPM. - cd $(DIR_APP) && sed -e "s/DEBIAN/FEDORA/g" -i ext/CMakeLists.txt - - # Our version of glibc has no __qsort_r - cd $(DIR_APP) && echo "#define USE_OWN_QSORT" >> src/util.h - cd $(DIR_APP) && mkdir build - cd $(DIR_APP)/build && cmake .. -DFEDORA=1 \ + cd $(DIR_APP)/build && cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_SKIP_RPATH=1 + -DCMAKE_SKIP_RPATH=1 \ + -DENABLE_PERL=0 \ + -DENABLE_PYTHON=0 \ + -DENABLE_RUBY=0 cd $(DIR_APP)/build && make $(PARALELLISMFLAGS) - cd $(DIR_APP)/build && make install - @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/libtool b/lfs/libtool index 333f958..e6bcd40 100644 --- a/lfs/libtool +++ b/lfs/libtool @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,17 +24,15 @@
include Config
-VER = 1.5.22 +VER = 2.4.2
THISAPP = libtool-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)
PROG = libtool -PAK_VER = 1 -DEPS = ""
############################################################################### # Top-level Rules @@ -44,7 +42,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 8e0ac9797b62ba4dcc8a2fb7936412b0 +$(DL_FILE)_MD5 = 2ec8997e0c07249eb4cbd072417d70fe
install : $(TARGET)
@@ -76,7 +74,7 @@ dist:
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/libupnp b/lfs/libupnp index 7d6d6d3..3f8d2b5 100644 --- a/lfs/libupnp +++ b/lfs/libupnp @@ -24,7 +24,7 @@
include Config
-VER = 1.6.6 +VER = 1.6.18
THISAPP = libupnp-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 8918dcf7428cd119d0c8275765ff2833 +$(DL_FILE)_MD5 = 11c6484fd2e2927bf3b8d8108407ca56
install : $(TARGET)
diff --git a/lfs/libvorbis b/lfs/libvorbis index 3b6d0f9..8213e39 100644 --- a/lfs/libvorbis +++ b/lfs/libvorbis @@ -24,15 +24,15 @@
include Config
-VER = 1.2.3 +VER = 1.3.3
THISAPP = libvorbis-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = libvorbis -PAK_VER = 3 +PAK_VER = 4
DEPS = "libogg"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 67beb237faf97d74782ec7071756b2b6 +$(DL_FILE)_MD5 = 71b649d3e08e63ece16649df906ce8b9
install : $(TARGET)
@@ -76,11 +76,9 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) - #cd $(DIR_APP) && sed -i.bak -e 's/-mno-ieee-fp//' lib/Makefile cd $(DIR_APP) && make install - cd $(DIR_APP) && install -v -m644 doc/Vorbis* /usr/share/doc/libvorbis-1.2.3 @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/linux b/lfs/linux index b8d0dd8..e46a2d4 100644 --- a/lfs/linux +++ b/lfs/linux @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,34 +24,28 @@
include Config
-PATCHLEVEL = .45 -VER = 2.6.32.45 +VER = 3.2.38 + +RPI_PATCHES = linux-3.2.27-ada8b44
THISAPP = linux-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = linux-$(VER).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) CFLAGS = CXXFLAGS =
-PAK_VER = 19 +PAK_VER = 28 DEPS = ""
-# Normal build or XEN build. -# - VERSUFIX=ipfire$(KCFG)
-ifeq "$(HEADERS)" "1" ifeq "$(TOOLS)" "1" - TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)-tools + TARGET = $(DIR_INFO)/linux-$(VER)-$(VERSUFIX)-tools HEADERS_PREFIX = /tools else - TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX) - HEADERS_PREFIX = /usr -endif -else TARGET = $(DIR_INFO)/linux-$(VER)-$(VERSUFIX) + HEADERS_PREFIX = /usr endif
ifeq "$(MACHINE_TYPE)" "arm" @@ -71,22 +65,15 @@ endif # Top-level Rules ############################################################################### objects =$(DL_FILE) \ - netfilter-layer7-v2.22.tar.gz \ - patch-2.6.16-nath323-1.3.bz2 \ - reiser4-for-2.6.32.patch.bz2 \ - xen-patches-2.6.32-2f.tar.bz2 + rpi-patches-$(RPI_PATCHES).patch.xz +
$(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) -netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz -patch-2.6.16-nath323-1.3.bz2 = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2 -reiser4-for-2.6.32.patch.bz2 = $(URL_IPFIRE)/reiser4-for-2.6.32.patch.bz2 -xen-patches-2.6.32-2f.tar.bz2 = $(URL_IPFIRE)/xen-patches-2.6.32-2f.tar.bz2 +rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz + +$(DL_FILE)_MD5 = 16ea59fd8701f82d7d7c534a6e4bb923 +rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 966687ff27e450e04ff50e0da829dc00
-$(DL_FILE)_MD5 = d41f1c7e704cc95fdfc3374367b6fd64 -netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f -patch-2.6.16-nath323-1.3.bz2_MD5 = f926409ff703a307baf54b57ab75d138 -reiser4-for-2.6.32.patch.bz2_MD5 = 3246397973d9271eb8e6d7c97c5d2d91 -xen-patches-2.6.32-2f.tar.bz2_MD5 = b59d6f89e11accb9d40354418e13f31b
install : $(TARGET)
@@ -117,62 +104,51 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) $(DIR_SRC)/linux $(DIR_SRC)/linux-*-suse_xen_patches $(DIR_SRC)/xen-* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) $(DIR_SRC)/linux && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
ln -svf linux-$(VER) $(DIR_SRC)/linux
-ifeq "$(KCFG)" "-xen" - # Apply gentoo Xen patches - mkdir -p $(DIR_SRC)/xen-patches - cd $(DIR_SRC)/xen-patches && tar jxf $(DIR_DL)/xen-patches-2.6.32-2f.tar.bz2 - - for x in `ls -1 $(DIR_SRC)/xen-patches/*.patch1`; do \ - echo "*********** [Patch: $$x]"; \ - cd $(DIR_APP) && pwd && patch -Np1 < $$x || exit 1; \ - done - rm -rf $(DIR_SRC)/xen-patches - # Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-imq-test2.patch -else - # Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-imq-test2.patch -endif - - # Not report deprecated syscall 1.23 (for kudzu) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-imq.patch
- # Reiser4 (don't check if fail (some patches are already in xen patchset) - -cd $(DIR_APP) && bzcat $(DIR_DL)/reiser4-for-2.6.32.patch.bz2 | patch -Np1 - - # ipp2p 0.8.2-pomng - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-ipp2p-0.8.2-pomng.patch + # ipp2p 0.8.2-ipfire + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch
# Layer7-patch - cd $(DIR_SRC) && rm -rf $(DIR_SRC)/netfilter-layer7-v2.22 - cd $(DIR_SRC) && tar xzf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch - - # Add some more LED triggers - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/netfilter_layer7_2.22_kernel3.0.patch
- # Huawei Android Phones (Vodafone V845, T-Mobile Pulse/mini ...) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch + # Add LED trigger + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.33-ledtrig-netdev-1.patch
# Fix uevent PHYSDEVDRIVER - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.33_ipg-fix-driver-name.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch
ifeq "$(KCFG)" "-kirkwood" # Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.25-arm_kirkwood_setups.patch endif
ifeq "$(MACHINE_TYPE)" "arm" cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch + + # Reverse some asm optimizations that are incompatible with older gcc + cd $(DIR_APP) && patch -p1 -R < $(DIR_SRC)/src/patches/linux-2.6-arm-asm-constraint.patch +endif + +ifeq "$(KCFG)" "-omap" + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0001-panda-wlan-fix.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0002-panda-i2c.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-panda-reboot.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch +endif + +ifeq "$(KCFG)" "-rpi" + # Apply Raspberry Pi kernel patches. + cd $(DIR_APP) && xzcat $(DIR_DL)/rpi-patches-$(RPI_PATCHES).patch.xz | patch -Np1 endif
-ifeq "$(HEADERS)" "1" +ifeq "$(KCFG)" "-headers" # Install the header files cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install -mkdir -pv $(BUILDROOT)/$(HEADERS_PREFIX)/include @@ -188,29 +164,31 @@ else cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config cd $(DIR_APP) && make CC="$(KGCC)" oldconfig cd $(DIR_APP) && make CC="$(KGCC)" clean - cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile + cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ -$(VERSUFIX)/' Makefile
-ifeq "$(KCFG)" "-xen" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" vmlinuz - cd $(DIR_APP) && cp -v arch/i386/boot/vmlinuz /boot/vmlinuz-$(VER)-$(VERSUFIX) -else ifeq "$(KCFG)" "-kirkwood" cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) else -ifeq "$(KCFG)" "-versatile" +ifeq "$(KCFG)" "-omap" + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage + cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) +else +ifeq "$(KCFG)" "-rpi" cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage - cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd /boot && cat first32k.bin $(DIR_APP)/arch/arm/boot/Image > kernel.img + cd $(DIR_APP) && cp -v /boot/kernel.img /boot/vmlinuz-$(VER)-$(VERSUFIX) else cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX) endif endif endif cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX) cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX) - ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX) ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX) cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install @@ -242,10 +220,6 @@ ifeq "$(LASTKERNEL)" "1" echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6 endif
- # Remove mISDN modules - rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN - rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN - ifneq "$(MACHINE_TYPE)" "arm" # Disable geode_aes modul mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ diff --git a/lfs/linux-firmware b/lfs/linux-firmware index 6a7f956..33a5381 100644 --- a/lfs/linux-firmware +++ b/lfs/linux-firmware @@ -24,10 +24,10 @@
include Config
-VER = 20110518 +VER = 236367d
THISAPP = linux-firmware-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 3b215b5ec9a5e8784dd971c039e9b948 +$(DL_FILE)_MD5 = 35d2ecf9b7d0b4d339fa0d4cc0736f6f
install : $(TARGET)
@@ -69,7 +69,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) mkdir -p /lib/firmware cd $(DIR_APP) && cp -vr * /lib/firmware @rm -rf $(DIR_APP) diff --git a/lfs/linux-libc-header b/lfs/linux-libc-header deleted file mode 100644 index a2ff9d3..0000000 --- a/lfs/linux-libc-header +++ /dev/null @@ -1,105 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 2.6.12.0 - -THISAPP = linux-libc-headers-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) - -ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif -else - TARGET = $(DIR_INFO)/$(THISAPP)-tools1 -endif - -############################################################################### -# Top-level Rules -############################################################################### -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = eae2f562afe224ad50f65a6acfb4252c - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - -mkdir -p /opt/$(MACHINE)-uClibc - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-inotify-3.patch - cd $(DIR_APP) && install -dv /opt/$(MACHINE)-uClibc/usr/include/asm - cd $(DIR_APP) && cp -Rv include/asm-i386/* /opt/$(MACHINE)-uClibc/usr/include/asm - cd $(DIR_APP) && cp -Rv include/linux /opt/$(MACHINE)-uClibc/usr/include - cd $(DIR_APP) && chown -Rv root:root /opt/$(MACHINE)-uClibc/usr/include/{asm,linux} - cd $(DIR_APP) && find /opt/$(MACHINE)-uClibc/usr/include/{asm,linux} -type d -exec chmod -v 755 {} ; - cd $(DIR_APP) && find /opt/$(MACHINE)-uClibc/usr/include/{asm,linux} -type f -exec chmod -v 644 {} ; -else - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-inotify-3.patch - cd $(DIR_APP) && install -dv /usr/include/asm - cd $(DIR_APP) && cp -Rv include/asm-i386/* /usr/include/asm - cd $(DIR_APP) && cp -Rv include/linux /usr/include - cd $(DIR_APP) && chown -Rv root:root /usr/include/{asm,linux} - cd $(DIR_APP) && find /usr/include/{asm,linux} -type d -exec chmod -v 755 {} ; - cd $(DIR_APP) && find /usr/include/{asm,linux} -type f -exec chmod -v 644 {} ; -endif -else - cd $(DIR_APP) && cp -Rv include/asm-i386 /tools/include/asm - cd $(DIR_APP) && cp -Rv include/linux /tools/include -endif - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/linux-xen b/lfs/linux-xen index 356fc8f..39f19a8 100644 --- a/lfs/linux-xen +++ b/lfs/linux-xen @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -26,7 +26,7 @@ include Config
VER = kernel
-include linux +include linux2
PROG = linux-xen SUP_ARCH = i586 diff --git a/lfs/linux2 b/lfs/linux2 new file mode 100644 index 0000000..a412d9e --- /dev/null +++ b/lfs/linux2 @@ -0,0 +1,252 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +PATCHLEVEL = .60 +VER = 2.6.32.60 + +THISAPP = linux-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +CFLAGS = +CXXFLAGS = + +PAK_VER = 25 +DEPS = "" + +# Normal build or XEN build. +# + +VERSUFIX=ipfire$(KCFG) + +ifeq "$(HEADERS)" "1" +ifeq "$(TOOLS)" "1" + TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)-tools + HEADERS_PREFIX = /tools +else + TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX) + HEADERS_PREFIX = /usr +endif +else + TARGET = $(DIR_INFO)/linux-xen-$(VER)-$(VERSUFIX) +endif + +ifeq "$(MACHINE_TYPE)" "arm" + HEADERS_ARCH=arm +else + HEADERS_ARCH=x86 +endif + +ifeq "$(KCFG)" "" +LASTKERNEL=1 +endif +ifeq "$(KCFG)" "-kirkwood" +LASTKERNEL=1 +endif + +############################################################################### +# Top-level Rules +############################################################################### +objects =$(DL_FILE) \ + netfilter-layer7-v2.22.tar.gz \ + patch-2.6.16-nath323-1.3.bz2 \ + reiser4-for-2.6.32.patch.bz2 \ + xen-patches-2.6.32-2g.tar.bz2 + +$(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) +netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz +patch-2.6.16-nath323-1.3.bz2 = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2 +reiser4-for-2.6.32.patch.bz2 = $(URL_IPFIRE)/reiser4-for-2.6.32.patch.bz2 +xen-patches-2.6.32-2g.tar.bz2 = $(URL_IPFIRE)/xen-patches-2.6.32-2g.tar.bz2 + +$(DL_FILE)_MD5 = a8e037a78c5fabefd2baa83f7ae0b8b1 +netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f +patch-2.6.16-nath323-1.3.bz2_MD5 = f926409ff703a307baf54b57ab75d138 +reiser4-for-2.6.32.patch.bz2_MD5 = 3246397973d9271eb8e6d7c97c5d2d91 +xen-patches-2.6.32-2g.tar.bz2_MD5 = d259a847c9aa73cd6e5c3605d9657d66 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) $(DIR_SRC)/linux $(DIR_SRC)/linux-*-suse_xen_patches $(DIR_SRC)/xen-* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + + ln -svf linux-$(VER) $(DIR_SRC)/linux + +ifeq "$(KCFG)" "-xen" + # Apply gentoo Xen patches + mkdir -p $(DIR_SRC)/xen-patches + cd $(DIR_SRC)/xen-patches && tar jxf $(DIR_DL)/xen-patches-2.6.32-2g.tar.bz2 + + for x in `ls -1 $(DIR_SRC)/xen-patches/*.patch1`; do \ + echo "*********** [Patch: $$x]"; \ + cd $(DIR_APP) && pwd && patch -Np1 < $$x || exit 1; \ + done + rm -rf $(DIR_SRC)/xen-patches + + # Linux Intermediate Queueing Device + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-imq-test2.patch +else + # Linux Intermediate Queueing Device + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-imq-test2.patch +endif + + # Reiser4 (don't check if fail (some patches are already in xen patchset) + -cd $(DIR_APP) && bzcat $(DIR_DL)/reiser4-for-2.6.32.patch.bz2 | patch -Np1 + + # ipp2p 0.8.2-pomng + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-ipp2p-0.8.2-pomng.patch + + # Layer7-patch + cd $(DIR_SRC) && rm -rf $(DIR_SRC)/netfilter-layer7-v2.22 + cd $(DIR_SRC) && tar xzf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch + + # Add some more LED triggers + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch + + # Huawei Android Phones (Vodafone V845, T-Mobile Pulse/mini ...) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch + + # Fix uevent PHYSDEVDRIVER + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch + + # Fix mv_cesa + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-crypto-mv_cesa.patch + +ifeq "$(KCFG)" "-kirkwood" + # Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.57-arm_kirkwood_setups.patch +endif + +ifeq "$(MACHINE_TYPE)" "arm" + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch +endif + +ifeq "$(HEADERS)" "1" + # Install the header files + cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install + -mkdir -pv $(BUILDROOT)/$(HEADERS_PREFIX)/include + cd $(DIR_APP) && find dest/include ( -name .install -o -name ..install.cmd ) -delete + cd $(DIR_APP) && cp -rv dest/include/* $(BUILDROOT)/$(HEADERS_PREFIX)/include +else + + # Install ipfire logo + cd $(DIR_APP) && cp -vf $(DIR_SRC)/config/kernel/ipfire_logo.ppm \ + drivers/video/logo/logo_linux_clut224.ppm + + # Cleanup kernel source + cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config + cd $(DIR_APP) && make CC="$(KGCC)" oldconfig + cd $(DIR_APP) && make CC="$(KGCC)" clean + cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile + +ifeq "$(KCFG)" "-xen" + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" vmlinuz + cd $(DIR_APP) && cp -v arch/i386/boot/vmlinuz /boot/vmlinuz-$(VER)-$(VERSUFIX) +else +ifeq "$(KCFG)" "-kirkwood" + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage + cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) +else + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage + cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX) +endif +endif + cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX) + ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX) + ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX) + cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules + cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install + cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) firmware_install + +ifeq "$(LASTKERNEL)" "1" + # Only do this once + cd $(DIR_APP) && install -m 755 usr/gen_init_cpio /sbin/ + + # Blacklist matroxfb_base + echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer + # Blacklist old framebuffer modules + for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/video -name *fb.ko); do \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ + done + # Blacklist new drm framebuffer modules + for f in $$(ls -1 /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/gpu/drm/*/*.ko); do \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ + done + sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer + + # Blacklist isdn modules + for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn -name *.ko); do \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn ; \ + done + sed -i -e "s|.ko||g" /etc/modprobe.d/isdn + + # Disable ipv6 at runtime + echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6 +endif + + # Remove mISDN modules + rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN + rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN + +ifneq "$(MACHINE_TYPE)" "arm" + # Disable geode_aes modul + mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ + /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko.off +endif +endif + + @rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables* $(DIR_SRC)/squashfs* $(DIR_SRC)/netfilter-layer7-* + @$(POSTBUILD) diff --git a/lfs/m4 b/lfs/m4 index df4b6a9..4620221 100644 --- a/lfs/m4 +++ b/lfs/m4 @@ -36,13 +36,11 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) EXTRA_CONFIG = --prefix=/usr --disable-nls - EXTRA_LDFLAGS = EXTRA_MAKE = EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools EXTRA_CONFIG = --prefix=/tools --disable-nls - EXTRA_LDFLAGS = -static EXTRA_MAKE = EXTRA_INSTALL = endif @@ -85,7 +83,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG) + cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install @rm -rf $(DIR_APP) diff --git a/lfs/mISDN b/lfs/mISDN index c73f519..0fe76ec 100644 --- a/lfs/mISDN +++ b/lfs/mISDN @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -26,13 +26,17 @@ include Config
VERSUFIX=ipfire$(KCFG)
-VER = 20100525 +ifeq "$(KCFG)" "-xen" + KVER = "2.6.32.60" +endif + +VER = 20121008
THISAPP = mISDN-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) +TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(VERSUFIX)
############################################################################### # Top-level Rules @@ -42,7 +46,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 0f91aa47ee95833d74c8a81ffc6f6fd3 +$(DL_FILE)_MD5 = 7fee0514fd523176b36fca53b02b45cc
install : $(TARGET)
@@ -71,18 +75,31 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_SRC)/mISDN* && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_SRC)/mISDN* && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_SRC)/mISDN && patch -Np1 < $(DIR_SRC)/src/patches/mISDN-hfcusb-reportl1down.patch cd $(DIR_SRC)/mISDN && patch -Np1 < $(DIR_SRC)/src/patches/mISDN_hfc-s_add_id.patch ifeq "$(MACHINE_TYPE)" "arm" # Remove unsupported timestampcounter on arm. the result seems to be unused cd $(DIR_SRC)/mISDN && sed -i -e "s|rdtscl(pChan->ulTimestampIn);||g" drivers/isdn/mISDN/octvqe/octvqe_linux.c endif +ifeq "$(NOPCI)" "1" + # Disable PCI drivers if kernel has no PCI + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_HFCPCI|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_HFCMULTI|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_XHFC|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_AVMFRITZ|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_SPEEDFAX|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_INFINEON|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_W6692|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_NETJET|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_IPAC|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_ISAR|#&|g" mISDN.cfg.default +endif cd $(DIR_SRC)/mISDN && ./configure --with-kerneldir=/usr/src/linux cd $(DIR_SRC)/mISDN && make KVERS=$(KVER)-$(VERSUFIX) modules cd $(DIR_SRC)/mISDN && make KVERS=$(KVER)-$(VERSUFIX) \ INSTALL_PREFIX=$(DIR_SRC)/mISDN/dest/ \ - modules-install + modules_install mv $(DIR_SRC)/mISDN/dest/lib/modules/*/extra \ /lib/modules/$(KVER)-$(VERSUFIX)/mISDN
diff --git a/lfs/mISDNuser b/lfs/mISDNuser index 22183a6..4f4edd5 100644 --- a/lfs/mISDNuser +++ b/lfs/mISDNuser @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 20100525 +VER = 20121008
THISAPP = mISDNuser-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 8e9b507c3f576cefb857329f72e62318 +$(DL_FILE)_MD5 = 86dd2c68ef5b2fdff653f9f635771127
install : $(TARGET)
@@ -69,7 +69,8 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_SRC)/mISDNuser && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_SRC)/mISDNuser && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_SRC)/mISDNuser && make cd $(DIR_SRC)/mISDNuser && ./configure --prefix=/usr --with-AF_ISDN=34 cd $(DIR_SRC)/mISDNuser && make MISDNDIR=/usr/src/linux cd $(DIR_SRC)/mISDNuser && make install MISDNDIR=/usr/src/linux diff --git a/lfs/madwifi b/lfs/madwifi deleted file mode 100644 index 2d3f97e..0000000 --- a/lfs/madwifi +++ /dev/null @@ -1,93 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VERSUFIX=ipfire$(KCFG) - -VER = hal-0.10.5.6-r4119-20100201 - -THISAPP = madwifi-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) -SUP_ARCH = i586 - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 937cf8f185ddd39b95e7ce026f9fba63 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xzf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make $(MAKETUNING) KERNELPATH=/usr/src/linux - cd $(DIR_APP) && make KERNELPATH=/usr/src/linux BINDIR=/usr/bin \ - MANDIR=/usr/man install - cp -f $(DIR_SRC)/config/madwifi/madwifi.conf /etc/ - ln -sf $(DIR_APP) $(DIR_SRC)/madwifi - - # Add comment to set CountryCode to germany because some cards - # are not detected without cc but others doesn't like this - echo '#options ath_pci countrycode=276' > /etc/modprobe.d/madwifi - # Blacklist ath5k or madwifi for switching between the drivers - echo 'blacklist ath_pci' >> /etc/modprobe.d/madwifi - echo '#blacklist ath5k' >> /etc/modprobe.d/madwifi - echo '#blacklist ath9k' >> /etc/modprobe.d/madwifi - - # create madwifi symlink for hostapd build - cd $(DIR_SRC) && ln -sf $(THISAPP) madwifi - - @$(POSTBUILD) diff --git a/lfs/make b/lfs/make index ba34283..5650230 100644 --- a/lfs/make +++ b/lfs/make @@ -43,12 +43,16 @@ ifeq "$(ROOT)" "" EXTRA_MAKE = EXTRA_INSTALL = else - TARGET = $(DIR_INFO)/$(THISAPP)-tools-pass$(PASS) + TARGET = $(DIR_INFO)/$(THISAPP)-tools EXTRA_CONFIG = --prefix=/tools --disable-nls EXTRA_MAKE = EXTRA_INSTALL = endif
+ifeq "$(PASS)" "1" + CFLAGS = +endif + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/man b/lfs/man index c5f847f..04aed20 100644 --- a/lfs/man +++ b/lfs/man @@ -74,6 +74,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && mv man/es{_ES.88591,} cd $(DIR_APP) && mv man/it{_IT.88591,} cd $(DIR_APP) && mv man/ja{_JP.eucJP,} + cd $(DIR_APP) && sed -i "s/-I-//g" {lib,src}/Makefile* cd $(DIR_APP) && sed -i 's,*_*,??,' man/Makefile.in cd $(DIR_APP) && sed -i '/\t/usr/man/d' src/man_db.conf.in cd $(DIR_APP) && echo -e "#define WEB_BROWSER "exec /usr/bin/lynx"" >> include/manconfig.h.in diff --git a/lfs/mbr b/lfs/mbr index 077efa7..c43f2fd 100644 --- a/lfs/mbr +++ b/lfs/mbr @@ -24,7 +24,7 @@
include Config
-VER = 1.1.8 +VER = 1.1.11
THISAPP = mbr-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -41,7 +41,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = da195c75b26bd45ecbb113b317996f9a +$(DL_FILE)_MD5 = 4e406ded185f94c2d2bf5fc793ac1842
install : $(TARGET)
@@ -71,7 +71,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure + cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/mc b/lfs/mc index 25a949e..32946c1 100644 --- a/lfs/mc +++ b/lfs/mc @@ -24,17 +24,17 @@
include Config
-VER = 4.7.5.2 +VER = 4.8.4
THISAPP = mc-$(VER) -DL_FILE = $(THISAPP).tar.lzma +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = mc -PAK_VER = 5 +PAK_VER = 6
-DEPS = "glib" +DEPS = ""
############################################################################### # Top-level Rules @@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 9fede28ed63ced53f1beeba2f95473da +$(DL_FILE)_MD5 = a8edb8226cb25869f925ecce043faf1e
install : $(TARGET)
@@ -76,8 +76,9 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xf $(DIR_DL)/$(DL_FILE) --lzma + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr \ + --sysconfdir=/etc \ --without-x --disable-nls \ --with-samba \ --with-screen=ncurses diff --git a/lfs/minidlna b/lfs/minidlna index e2c1d21..26ec3dd 100644 --- a/lfs/minidlna +++ b/lfs/minidlna @@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && sed -i '/include/a #include <limits.h>/' metadata.c cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install
diff --git a/lfs/miniupnpd b/lfs/miniupnpd index 470fc28..7129ed5 100644 --- a/lfs/miniupnpd +++ b/lfs/miniupnpd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.4 +VER = 1.7
THISAPP = miniupnpd-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = miniupnpd -PAK_VER = 0 +PAK_VER = 1
############################################################################### # Top-level Rules @@ -42,7 +42,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ffa33d4ed8732c662bdb7d511e86db76 +$(DL_FILE)_MD5 = 5af9e8332d34a7b490d0d2ed3e674196
install : $(TARGET)
@@ -75,10 +75,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/miniupnpd-iptcrdr.patch cd $(DIR_APP) && make -f Makefile.linux \ CFLAGS="$(CFLAGS) -DIPTABLES_143 -I/usr/src/linux/include" - cd $(DIR_APP) && install -m 755 miniupnpd /usr/sbin -mkdir -pv /etc/miniupnpd cp -vf $(DIR_SRC)/config/miniupnpd/miniupnpd.conf /etc/miniupnpd/miniupnpd.conf diff --git a/lfs/misc-progs b/lfs/misc-progs index e59b305..6902cca 100644 --- a/lfs/misc-progs +++ b/lfs/misc-progs @@ -28,11 +28,7 @@ VER = ipfire
THISAPP = misc-progs DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -53,10 +49,6 @@ md5 : $(TARGET) : @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup && cp -R $(DIR_SRC)/src/misc-progs/ $(DIR_SRC) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && make CFLAGS="-Os -fomit-frame-pointer" iowrap - cd $(DIR_APP) && install -m 0755 iowrap /install/initrd/bin -else cp -R $(DIR_SRC)/src/install+setup/ $(DIR_SRC) for i in $(DIR_SRC)/langs/*/install/lang_*.c ; do \ cp $$i $(DIR_SRC)/install+setup/libsmooth; \ @@ -67,6 +59,5 @@ else -DSLOGAN='"$(SLOGAN)"' -DCONFIG_ROOT='"$(CONFIG_ROOT)"'" cd $(DIR_APP) && make CFLAGS="$(CFLAGS) -Wall -DCONFIG_ROOT='"$(CONFIG_ROOT)"' -DSNAME='"$(SNAME)"'" cd $(DIR_APP) && make install -endif @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup @$(POSTBUILD) diff --git a/lfs/motion b/lfs/motion index d42abaf..fa99ea0 100644 --- a/lfs/motion +++ b/lfs/motion @@ -77,11 +77,19 @@ dist: $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + + #Install obsolete V4L1 videodev.h + cp $(DIR_SRC)/config/include/obsolete_videodev.h /usr/include/linux/videodev.h + cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install cp -vf $(DIR_SRC)/config/motion/motion.conf /etc install -v -m 644 $(DIR_SRC)/config/backup/includes/motion \ /var/ipfire/backup/addons/includes/motion + + #Remove obsolete V4L1 videodev.h + rm -f /usr/include/linux/videodev.h + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/mpd b/lfs/mpd index ca82ad2..7b2c54d 100644 --- a/lfs/mpd +++ b/lfs/mpd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = mpd PAK_VER = 14
-DEPS = "alsa faad2 ffmpeg-libs glib lame libmad libshout libogg libid3tag libvorbis" +DEPS = "alsa faad2 ffmpeg-libs flac lame libmad libshout libogg libid3tag libvorbis"
############################################################################### # Top-level Rules diff --git a/lfs/mpfr b/lfs/mpfr new file mode 100644 index 0000000..de5e006 --- /dev/null +++ b/lfs/mpfr @@ -0,0 +1,78 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.4.2 + +THISAPP = mpfr-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 89e59fe665e2b3ad44a6789f40b059a0 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && $(CONFIGURE_ARGS) ./configure --prefix=/usr \ + --enable-thread-safe --disable-nls + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/nagios b/lfs/nagios index bbaed79..2bb2a41 100644 --- a/lfs/nagios +++ b/lfs/nagios @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = nagios PAK_VER = 2
-DEPS = "glib traceroute libtool" +DEPS = "traceroute"
############################################################################### # Top-level Rules @@ -111,6 +111,3 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) ln -s /etc/init.d/nagios /etc/rc.d/rc6.d/K33nagios @rm -rf $(DIR_APP) @$(POSTBUILD) - - - diff --git a/lfs/ncurses b/lfs/ncurses index 0b7bbb7..1c0fb04 100644 --- a/lfs/ncurses +++ b/lfs/ncurses @@ -24,7 +24,7 @@
include Config
-VER = 5.5 +VER = 5.9
THISAPP = ncurses-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -35,20 +35,25 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) # ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) - EXTRA_CONFIG = --prefix=/usr --with-shared \ - --without-debug --enable-widec --disable-nls - EXTRA_MAKE = - EXTRA_INSTALL = + PREFIX = /usr else TARGET = $(DIR_INFO)/$(THISAPP)-tools - EXTRA_CONFIG = --prefix=/tools --with-shared \ - --without-debug --without-ada --enable-overwrite \ - --disable-nls - EXTRA_MAKE = - EXTRA_INSTALL = + PREFIX = /tools endif
-EXTRA_CONFIG += --build=$(BUILDTARGET) +EXTRA_CONFIG += \ + --prefix=$(PREFIX) \ + --with-shared \ + --without-debug \ + --without-ada \ + --with-ospeed=unsigned \ + --with-chtype=long \ + --enable-hard-tabs \ + --enable-xmc-glitch \ + --enable-colorfgbg \ + --enable-overwrite \ + --with-termlib=tinfo \ + --disable-nls
############################################################################### # Top-level Rules @@ -58,7 +63,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = e73c1ac10b4bfc46db43b2ddfd6244ef +$(DL_FILE)_MD5 = 8cb9c412e5f2d96bc6f459aa8c6282a1
install : $(TARGET)
@@ -88,25 +93,35 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ncurses-5.5-fixes-1.patch - cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) - cd $(DIR_APP) && make $(EXTRA_MAKE) #$(MAKETUNING) # Causes an error! - cd $(DIR_APP) && make $(EXTRA_INSTALL) install -ifeq "$(ROOT)" "" - chmod -v 755 /usr/lib/*.5.5 - chmod -v 644 /usr/lib/libncurses++w.a - mv -v /usr/lib/libncursesw.so.5* /lib - ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so - cd $(DIR_APP) && for lib in curses ncurses form panel menu ; do \ - rm -vf /usr/lib/lib$${lib}.so ; \ - echo "INPUT(-l$${lib}w)" >/usr/lib/lib$${lib}.so ; \ - ln -sfv lib$${lib}w.a /usr/lib/lib$${lib}.a ; \ + cd $(DIR_APP) && mkdir -pv narrowc widec + + # Build narrowc version. + cd $(DIR_APP)/narrowc && ln -svf ../configure . + cd $(DIR_APP)/narrowc && ./configure $(EXTRA_CONFIG) --with-ticlib + cd $(DIR_APP)/narrowc && make libs + cd $(DIR_APP)/narrowc && make -C progs + + # Build widec version. + cd $(DIR_APP)/widec && ln -svf ../configure . + cd $(DIR_APP)/widec && ./configure $(EXTRA_CONFIG) \ + --enable-widec --without-progs + cd $(DIR_APP)/widec && make libs + + # Install everything. + cd $(DIR_APP) && make -C narrowc install.{libs,progs,data} + rm -vf $(PREFIX)/lib/libtinfo.* + cd $(DIR_APP) && make -C widec install.{libs,includes,man} + + # don't require -ltinfo when linking with --no-add-needed + for l in $(PREFIX)/lib/libncurses{,w}.so; do \ + soname=$$(basename $$(readlink $$l)); \ + rm -f $$l; \ + echo "INPUT($$soname -ltinfo)" > $$l; \ done - ln -sfv libncurses++w.a /usr/lib/libncurses++.a4 - echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so - ln -sfv libncurses.so /usr/lib/libcurses.so - ln -sfv libncursesw.a /usr/lib/libcursesw.a - ln -sfv libncurses.a /usr/lib/libcurses.a -endif + + rm -vf $(PREFIX)/lib/libcurses{,w}.so + echo "INPUT(-lncurses)" > $(PREFIX)/lib/libcurses.so + echo "INPUT(-lncursesw)" > $(PREFIX)/lib/libcursesw.so + echo "INPUT(-ltinfo)" > $(PREFIX)/lib/libtermcap.so @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/netpbm b/lfs/netpbm index 7ee4a19..5af5e47 100644 --- a/lfs/netpbm +++ b/lfs/netpbm @@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP)/converter && patch -Np1 < $(DIR_SRC)/src/patches/netpbm-10.26.46-getline.patch cp $(DIR_SRC)/config/netpbm/Makefile.config $(DIR_APP) cd $(DIR_APP) && make cd $(DIR_APP) && make package PKGDIR=/usr/local/netpbm diff --git a/lfs/newt b/lfs/newt index 34b0f69..b5c57d0 100644 --- a/lfs/newt +++ b/lfs/newt @@ -30,11 +30,7 @@ THISAPP = newt-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -75,20 +71,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/newt-0.51.6-if1close.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --without-gpm-support --host $(MACHINE)-uclibc - cd $(DIR_APP) && sed -i 's%^CFLAGS.*$$%CFLAGS = -Os -fomit-frame-pointer -Wall -D_GNU_SOURCE -DUTF8 -I/opt/i586-uClibc/include%' Makefile - cd $(DIR_APP) && make libnewt.a - -mkdir -p /opt/$(MACHINE)-uClibc/{include,lib} - cd $(DIR_APP) && install -m 0644 libnewt.a /opt/$(MACHINE)-uClibc/lib/libnewt.a - cd $(DIR_APP) && install -m 0644 newt.h /opt/$(MACHINE)-uClibc/include/newt.h -else cd $(DIR_APP) && ./configure --without-gpm-support cd $(DIR_APP) && sed -i 's%^CFLAGS.*$$%CFLAGS = $(CFLAGS) -Wall -D_GNU_SOURCE%' Makefile cd $(DIR_APP) && make cd $(DIR_APP) && make install cd $(DIR_APP) && install -m 0644 newt.h /usr/include ln -sf libnewt.so.0.51 /usr/lib/libnewt.so -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/nut b/lfs/nut index 8007a53..0a5f847 100644 --- a/lfs/nut +++ b/lfs/nut @@ -80,7 +80,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc/nut \ --with-usb --with-user=root --with-group=nut \ --with-wrap=no --with-udev-dir=/etc/udev - cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make cd $(DIR_APP) && make install # sed -i -e "s|ATTR{|SYSFS{|g" /etc/udev/rules.d/52-nut-usbups.rules -mkdir -p /var/state/ups diff --git a/lfs/openldap b/lfs/openldap index 9771ae4..a18d7e1 100644 --- a/lfs/openldap +++ b/lfs/openldap @@ -32,10 +32,12 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = openldap -PAK_VER = 2 +PAK_VER = 3
DEPS = ""
+export CPPFLAGS = -D_GNU_SOURCE + ############################################################################### # Top-level Rules ############################################################################### @@ -77,23 +79,24 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr \ - --libexecdir=/usr/sbin \ - --sysconfdir=/etc \ - --localstatedir=/srv/ldap \ - --disable-debug \ - --enable-dynamic \ - --enable-crypt \ - --enable-modules \ - --enable-ldap \ - --enable-ldbm \ - --enable-dyngroup \ - --enable-dynlist \ - --enable-ppolicy \ - --enable-valsort - cd $(DIR_APP) && make depend + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/openldap-gcc44-fixes.patch + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --libexecdir=/usr/lib \ + --sysconfdir=/etc \ + --localstatedir=/srv/ldap \ + --with-threads=posix \ + --disable-perl \ + --enable-dynamic \ + --enable-crypt \ + --enable-modules \ + --enable-rlookups \ + --enable-backends=mod \ + --enable-overlays=mod \ + --enable-sql=no \ + --enable-ndb=no \ + --disable-static cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install - chmod -v 755 /usr/lib/libl*-2.3.so.0.2.8 @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/openssh b/lfs/openssh index 26ac555..774e18a 100644 --- a/lfs/openssh +++ b/lfs/openssh @@ -24,7 +24,7 @@
include Config
-VER = 6.0p1 +VER = 6.1p1
THISAPP = openssh-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 3c9347aa67862881c5da3f3b1c08da7b +$(DL_FILE)_MD5 = 3345cbf4efe90ffb06a78670ab2d05d5
install : $(TARGET)
diff --git a/lfs/openssl b/lfs/openssl index 9aef173..b9d2617 100644 --- a/lfs/openssl +++ b/lfs/openssl @@ -24,7 +24,7 @@
include Config
-VER = 0.9.8x +VER = 0.9.8y
THISAPP = openssl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = ee17e9bc805c8cc7d0afac3b0ef78eda +$(DL_FILE)_MD5 = 47c7fb37f78c970f1d30aa2f9e9e26d8
install : $(TARGET)
diff --git a/lfs/openvmtools b/lfs/openvmtools index d8a7c48..229ed8f 100644 --- a/lfs/openvmtools +++ b/lfs/openvmtools @@ -34,7 +34,8 @@ TARGET = $(DIR_INFO)/$(THISAPP) SUP_ARCH = i586 PROG = openvmtools PAK_VER = 1 -DEPS = "glib" + +DEPS = ""
############################################################################### # Top-level Rules diff --git a/lfs/pakfire3 b/lfs/pakfire3 new file mode 100644 index 0000000..61dd988 --- /dev/null +++ b/lfs/pakfire3 @@ -0,0 +1,88 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.9.23 + +THISAPP = pakfire-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = http://source.ipfire.org/releases/pakfire/ +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = pakfire3 +PAK_VER = 2 + +DEPS = "libsolv pycurl pygpgme python-progressbar python-xattr sqlite urlgrabber" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 10e6dd51c917faa8bd2e7435495de211 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pakfire3-changes-for-ipfire2.diff + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + rm -vf /usr/bin/pakfire3 + + install -v -m 644 $(DIR_SRC)/config/backup/includes/pakfire3 \ + /var/ipfire/backup/addons/includes/pakfire3 + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/pakfire3-deps b/lfs/pakfire3-deps deleted file mode 100644 index 3a34e4f..0000000 --- a/lfs/pakfire3-deps +++ /dev/null @@ -1,56 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0 - -THISAPP = pakfire3-deps -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = pakfire3-deps -PAK_VER = 1 -DEPS = "intltool git make libsatsolver python-satsolver python-distutils python-distutils-extra python-lzma python-progressbar python-xattr sqlite urlgrabber" - -############################################################################### - -install : $(TARGET) - -check : - -download : - -md5 : - -dist: - @$(PAK) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - #Create a file for the package. Because empty rootfile will break. - echo "# Pakfire 3 deps is installed" > /var/ipfire/pakfire3-deps - @$(POSTBUILD) diff --git a/lfs/pango b/lfs/pango new file mode 100644 index 0000000..bd5d5f8 --- /dev/null +++ b/lfs/pango @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.30.1 + +THISAPP = pango-$(VER) +DL_FILE = $(THISAPP).tar.xz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = ec3c1f236ee9bd4a982a5f46fcaff7b9 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/pciutils b/lfs/pciutils index ce604c1..fc4a962 100644 --- a/lfs/pciutils +++ b/lfs/pciutils @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,17 +24,13 @@
include Config
-VER = 2.2.3 +VER = 3.1.10
THISAPP = pciutils-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -44,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 86cc20eaa0360587497a8105d33e57fc +$(DL_FILE)_MD5 = cdb1e5a95ab7ac67349f10c8f77a6d3c
install : $(TARGET)
@@ -73,32 +69,22 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && sed -i 's/null ;/null 2>&1 ;/' update-pciids.sh - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-strip.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.1.10-scan.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-havepread.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-devicetype.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.2.1-idpath.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.1.99-gcc4.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.2.3-multilib.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.2.3-sata.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP)/lib && CFLAGS="-Os -fomit-frame-pointer" ./configure - cd $(DIR_APP)/lib && CFLAGS="-Os -fomit-frame-pointer" make $(MAKETUNING) - -mkdir -p /opt/$(MACHINE)-uClibc/include/pci - cd $(DIR_APP) && install -m 0644 lib/libpci.a /opt/$(MACHINE)-uClibc/lib - cd $(DIR_APP) && install -m 0644 lib/*.h /opt/$(MACHINE)-uClibc/include/pci -else -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP)/lib && ./configure - cd $(DIR_APP)/lib && sed -e "s/^#error.*$$/#define CPU_ARCH_ARM/" -i config.h -endif - cd $(DIR_APP) && make PREFIX=/usr $(MAKETUNING) - cd $(DIR_APP) && make PREFIX=/usr install - cd $(DIR_APP) && install -v -m 755 -d /usr/include/pci - cd $(DIR_APP) && install -v -m 644 lib/libpci.a /usr/lib - cd $(DIR_APP) && install -v -m 644 lib/*.h /usr/include/pci -endif + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && make SHARED=yes OPT="$(CFLAGS)" PREFIX=/usr STRIP="" \ + IDSDIR=/usr/share/hwdata ZLIB=no $(MAKETUNING) + + cd $(DIR_APP) && install -p lspci setpci /bin + cd $(DIR_APP) && install -p update-pciids /sbin + cd $(DIR_APP) && install -p lib/libpci.so.* /lib/ + ln -svf ../../lib/libpci.so.$(VER) /usr/lib/libpci.so + + # Install headers. + mkdir -pv /usr/include/pci + cd $(DIR_APP) && install -p lib/pci.h /usr/include/pci + cd $(DIR_APP) && install -p lib/header.h /usr/include/pci + cd $(DIR_APP) && install -p lib/config.h /usr/include/pci + cd $(DIR_APP) && install -p lib/types.h /usr/include/pci + cd $(DIR_APP) && install -p lib/libpci.pc /usr/lib/pkgconfig + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/pcmciautils b/lfs/pcmciautils index 67ad560..c80208e 100644 --- a/lfs/pcmciautils +++ b/lfs/pcmciautils @@ -30,13 +30,7 @@ THISAPP = pcmciautils-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) - -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif - +TARGET = $(DIR_INFO)/$(THISAPP) PROG = pcmciautils PAK_VER = 1 DEPS = "" @@ -82,21 +76,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - -ifeq "$(LFS_PASS)" "install" - ln -f -s ../../../../../include/sysfs /opt/$(MACHINE)-uClibc/lib/gcc/$(MACHINE)-linux-uclibc/4.0.4/include/sysfs - cd $(DIR_APP) && make - cd $(DIR_APP) && install -m 755 pccardctl /install/initrd/sbin/ - ln -f -s pccardctl /install/initrd/sbin/lspcmcia - cd $(DIR_APP) && install -m 755 pcmcia-check-broken-cis /install/initrd/sbin/ - cd $(DIR_APP) && install -m 755 pcmcia-socket-startup /install/initrd/sbin/ - cp -f /etc/udev/rules.d/60-pcmcia.rules /install/initrd/etc/udev/rules.d/60-pcmcia.rules - mkdir -p /install/initrd/etc/pcmcia - cp -f /etc/pcmcia/config.opts /install/initrd/etc/pcmcia/config.opts -else cd $(DIR_APP) && make cd $(DIR_APP) && make install @sed -i -e 's/ MODALIAS=="?[*]",//g' /etc/udev/rules.d/60-pcmcia.rules -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/pcre b/lfs/pcre index f99abf3..5aa40bd 100644 --- a/lfs/pcre +++ b/lfs/pcre @@ -24,10 +24,10 @@
include Config
-VER = 7.7 +VER = 8.31
THISAPP = pcre-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 4b2e9cde1f7227448dddba59843efa0b +$(DL_FILE)_MD5 = fab1bb3b91a4c35398263a5c1e0858c1
install : $(TARGET)
@@ -69,11 +69,14 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --enable-utf8 + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --disable-static \ + --enable-utf8 \ + --enable-jit \ + --enable-unicode-properties cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install - cd $(DIR_APP) && mv -v /usr/lib/libpcre.so.* /lib/ - cd $(DIR_APP) && ln -v -sf ../../lib/libpcre.so.0 /usr/lib/libpcre.so @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/pcre-compat b/lfs/pcre-compat new file mode 100644 index 0000000..6b20bca --- /dev/null +++ b/lfs/pcre-compat @@ -0,0 +1,79 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 7.7 + +THISAPP = pcre-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 4b2e9cde1f7227448dddba59843efa0b + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr --enable-utf8 + cd $(DIR_APP) && make $(MAKETUNING) + + install -m 755 $(DIR_APP)/.libs/libpcre.so.0.0.1 /lib + ln -svf libpcre.so.0.0.1 /lib/libpcre.so.0 + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/php b/lfs/php index 503ddcc..58f442c 100644 --- a/lfs/php +++ b/lfs/php @@ -32,6 +32,10 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)
+ifeq "$(MACHINE_TYPE)" "arm" + CFLAGS := $(patsubst -march=%,,$(CFLAGS)) +endif + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/pixman b/lfs/pixman new file mode 100644 index 0000000..1cb2a08 --- /dev/null +++ b/lfs/pixman @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.26.0 + +THISAPP = pixman-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 6563b6400b9fa23b47fd52105faf72b4 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/popt b/lfs/popt index 25fcc69..ee4c3f9 100644 --- a/lfs/popt +++ b/lfs/popt @@ -30,11 +30,7 @@ THISAPP = popt-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -74,16 +70,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix=/ --disable-nls - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make DESTDIR=/opt/$(MACHINE)-uClibc install -else cd $(DIR_APP) && sed -i -e "/*origOptString ==/c 0)" popt.c - cd $(DIR_APP) && autoreconf -f -i cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/postfix b/lfs/postfix index bbb9b0c..5866b97 100644 --- a/lfs/postfix +++ b/lfs/postfix @@ -36,6 +36,9 @@ PAK_VER = 6
DEPS = "amavisd mysql"
+# Fake kernel release +export UTS_RELEASE = 2.6.32-ipfire + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/ppp b/lfs/ppp index e667b1e..5d772fc 100644 --- a/lfs/ppp +++ b/lfs/ppp @@ -32,6 +32,8 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)
+CFLAGS += -fno-strict-aliasing + ############################################################################### # Top-level Rules ############################################################################### @@ -70,7 +72,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && rm -f include/pcap-int.h + cd $(DIR_APP) && rm -f include/pcap-int.h include/linux/if_pppol2tp.h # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-pppoatm.patch # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-pppoatm-persist.patch # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.1-oedod.patch @@ -80,7 +82,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-close.patch cd $(DIR_APP) && sed -i -e "s+/etc/ppp/connect-errors+/var/log/connect-errors+" pppd/pathnames.h cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls - cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make $(MAKETUNING) CC="gcc $(CFLAGS)" cd $(DIR_APP) && make install cd $(DIR_APP) && make install-etcppp touch /var/log/connect-errors diff --git a/lfs/pptp b/lfs/pptp index e3237c3..8edb89b 100644 --- a/lfs/pptp +++ b/lfs/pptp @@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/pptp-1.7.2-compat.patch cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/pycurl b/lfs/pycurl new file mode 100644 index 0000000..cf8bd71 --- /dev/null +++ b/lfs/pycurl @@ -0,0 +1,86 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 7.19.0 + +THISAPP = pycurl-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = pycurl +PAK_VER = 2 + +DEPS = "" + +CFLAGS += -DHAVE_CURL_OPENSSL + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 919d58fe37e69fe87ce4534d8b6a1c7b + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/python-pycurl-fix-do_curl_reset-refcount.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/python-pycurl-no-static-libs.patch + cd $(DIR_APP) && python setup.py install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/pygpgme b/lfs/pygpgme new file mode 100644 index 0000000..4adf25a --- /dev/null +++ b/lfs/pygpgme @@ -0,0 +1,82 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.3 + +THISAPP = pygpgme-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = pygpgme +PAK_VER = 1 + +DEPS = "gpgme" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = d38355af73f0352cde3d410b25f34fd0 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && python setup.py install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/qemu b/lfs/qemu index da2ea34..d68b97d 100644 --- a/lfs/qemu +++ b/lfs/qemu @@ -78,12 +78,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - - cd $(DIR_APP) && sed -i -e 's|CFLAGS+="-march=i486"|CFLAGS+=""|g' configure cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/qemu-0.15.0_missing_definitions_hack.patch - cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ - --target-list="i386-linux-user i386-softmmu arm-softmmu" + --target-list="i386-linux-user i386-softmmu arm-softmmu" \ + --extra-cflags="$(CFLAGS)" cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/qemu-kqemu b/lfs/qemu-kqemu deleted file mode 100644 index c2b6b33..0000000 --- a/lfs/qemu-kqemu +++ /dev/null @@ -1,88 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team info@ipfire.org # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0.11.1 - -THISAPP = qemu-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-kqemu -SUP_ARCH = i586 -PROG = qemu-kqemu -PAK_VER = 3 - -DEPS = "sdl qemu" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 193285b0bcf655a7f7577d05ffcb82b1 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/qemu-kqemu_change-default-kqemu-bios.patch - cd $(DIR_APP) && ./configure --prefix=/usr \ - --target-list="i386-softmmu" - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && cp -f i386-softmmu/qemu /usr/bin/qemu-kqemu - cd $(DIR_APP) && cp -f pc-bios/bios.bin /usr/share/qemu/bios-kqemu.bin - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/r8101 b/lfs/r8101 index 266e891..85d3900 100644 --- a/lfs/r8101 +++ b/lfs/r8101 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,8 +25,14 @@ include Config
VERSUFIX = ipfire$(KCFG) +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net +else + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/realtek +endif
-VER = 1.019.00 +VER = 1.023.00
THISAPP = r8101-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -42,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 2804355badc4cb14f091dd8b32d270c3 +$(DL_FILE)_MD5 = 03cfc34e41522cd34ac6f4b1b6508896
install : $(TARGET)
@@ -77,6 +83,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/r8101_add_missing_pciids.patch cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 r8101.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net + cd $(DIR_APP)/src && install -m 644 r8101.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/r8168 b/lfs/r8168 index 2a4e2ab..c4aa6a9 100644 --- a/lfs/r8168 +++ b/lfs/r8168 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,8 +25,14 @@ include Config
VERSUFIX = ipfire$(KCFG) +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net +else + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/realtek +endif
-VER = 8.019.00 +VER = 8.035.00
THISAPP = r8168-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -42,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = f6934fc5df1dfb5fea82e4a310568890 +$(DL_FILE)_MD5 = 80b8d23e463e5408dced1b1377579dae
install : $(TARGET)
@@ -76,6 +82,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 r8168.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net + cd $(DIR_APP)/src && install -m 644 r8168.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/r8169 b/lfs/r8169 index 85a6dc1..65c34e6 100644 --- a/lfs/r8169 +++ b/lfs/r8169 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,8 +25,14 @@ include Config
VERSUFIX = ipfire$(KCFG) +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net +else + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/realtek +endif
-VER = 6.014.00 +VER = 6.017.00
THISAPP = r8169-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -42,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 0f1a8dffb4774e8f9ac29ae29a0696e3 +$(DL_FILE)_MD5 = 396d7e28d573bde416fbdfdef723f4bd
install : $(TARGET)
@@ -75,11 +81,11 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) #Save original r8169 module - -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/r8169.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/r8169.ko.org + -mv $(MODPATH)/r8169.ko \ + $(MODPATH)/r8169.ko.org @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/r8169_add_missing_pciids.patch cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 r8169.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net + cd $(DIR_APP)/src && install -m 644 r8169.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/readline b/lfs/readline index e2d6248..7b88adf 100644 --- a/lfs/readline +++ b/lfs/readline @@ -24,7 +24,7 @@
include Config
-VER = 5.1 +VER = 6.2
THISAPP = readline-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7ee5a692db88b30ca48927a13fd60e46 +$(DL_FILE)_MD5 = 67948acb2ca081f23359d0256e9a271c
install : $(TARGET)
@@ -70,16 +70,15 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/readline-5.1-fixes-3.patch - cd $(DIR_APP) && sed -i '/MV.*old/d' Makefile.in - cd $(DIR_APP) && sed -i '/{OLDSUFF}/c:' support/shlib-install - cd $(DIR_APP) && ./configure --prefix=/usr --libdir=/lib + + for i in $$(seq 1 4); do \ + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline62-$$(printf "%03d" "$${i}") || exit 1; \ + done + + cd $(DIR_APP) && ./configure --prefix=/usr --disable-static cd $(DIR_APP) && make $(MAKETUNING) SHLIB_LIBS=-lncurses cd $(DIR_APP) && make install - chmod -v 755 /lib/lib{readline,history}.so* - mv -v /lib/lib{readline,history}.a /usr/lib - rm -v /lib/lib{readline,history}.so - ln -sfv ../../lib/libreadline.so.5 /usr/lib/libreadline.so - ln -sfv ../../lib/libhistory.so.5 /usr/lib/libhistory.so + + rm -rfv /usr/share/readline @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/readline-compat b/lfs/readline-compat new file mode 100644 index 0000000..2f4388c --- /dev/null +++ b/lfs/readline-compat @@ -0,0 +1,86 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 5.2 + +THISAPP = readline-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = e39331f32ad14009b9ff49cc10c5e751 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + + for i in $$(seq 1 14); do \ + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline52-$$(printf "%03d" "$${i}") || exit 1; \ + done + + cd $(DIR_APP) && ./configure --prefix=/usr --libdir=/lib --disable-static + cd $(DIR_APP) && make $(MAKETUNING) SHLIB_LIBS=-lncurses + + cd $(DIR_APP)/shlib && install -m 755 libreadline.so.$(VER) /lib + cd $(DIR_APP)/shlib && install -m 755 libhistory.so.$(VER) /lib + ln -svf libreadline.so.$(VER) /lib/libreadline.so.5 + ln -svf libhistory.so.$(VER) /lib/libhistory.so.5 + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/reiser4progs b/lfs/reiser4progs deleted file mode 100644 index 99cbb84..0000000 --- a/lfs/reiser4progs +++ /dev/null @@ -1,77 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 1.0.6 - -THISAPP = reiser4progs-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = d408cfeac40c266623bd51afa008caf6 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --sbindir=/sbin --enable-static - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/reiserfsprogs b/lfs/reiserfsprogs index b78baef..402753e 100644 --- a/lfs/reiserfsprogs +++ b/lfs/reiserfsprogs @@ -30,11 +30,7 @@ THISAPP = reiserfsprogs-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -74,16 +70,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix=/ --sbindir=/sbin - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && install -v -m 755 mkreiserfs/mkreiserfs /install/initrd/sbin/mkreiserfs -else cd $(DIR_APP) && ./configure --prefix=/usr --sbindir=/sbin cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install ln -svf reiserfsck /sbin/fsck.reiserfs ln -svf mkreiserfs /sbin/mkfs.reiserfs -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/rpi-firmware b/lfs/rpi-firmware new file mode 100644 index 0000000..c02d5cc --- /dev/null +++ b/lfs/rpi-firmware @@ -0,0 +1,74 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2012 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 855e997 +THISAPP = rpi-firmware-$(VER) +DL_FILE = $(THISAPP).tar.xz +DL_FROM = $(URL_IPFIRE) +TARGET = $(DIR_INFO)/$(THISAPP) + +SUP_ARCH = armv5tel + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = c73700a10d792517b2b87fd28a6c9800 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @cd / && tar axf $(DIR_DL)/$(DL_FILE) + cp -f $(DIR_SRC)/config/rpi-firmware/config.txt /boot + @$(POSTBUILD) diff --git a/lfs/rrdtool b/lfs/rrdtool index db44716..0237b89 100644 --- a/lfs/rrdtool +++ b/lfs/rrdtool @@ -24,7 +24,7 @@
include Config
-VER = 1.2.30 +VER = 1.4.7
THISAPP = rrdtool-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 19b24f7184a8dbf7b48c1bbb565ad9fb +$(DL_FILE)_MD5 = ffe369d8921b4dfdeaaf43812100c38f
install : $(TARGET)
@@ -70,13 +70,16 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr/share/$(THISAPP) \ - --exec-prefix=/usr --mandir=/usr/share/man --enable-perl-site-install \ - --enable-local-libpng --enable-local-zlib --with-pic --enable-latin2 \ - --disable-python --disable-tcl + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --disable-rrdcgi \ + --enable-perl \ + --enable-perl-site-install \ + --disable-tcl \ + --disable-ruby \ + --disable-python cd $(DIR_APP) && make cd $(DIR_APP) && make install - cd $(DIR_APP) && make site-perl-install -mkdir -p /srv/web/ipfire/html/graphs/ chmod 777 /srv/web/ipfire/html/graphs/ -mkdir -p /var/log/rrd/ diff --git a/lfs/samba b/lfs/samba index ed4554a..b843dcd 100644 --- a/lfs/samba +++ b/lfs/samba @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 3.5.20 +VER = 3.6.12
THISAPP = samba-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = samba -PAK_VER = 44 +PAK_VER = 46
DEPS = "cups"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 5ac0420b2e7336f902204bcef3319b9f +$(DL_FILE)_MD5 = 430fd21a1acd26964d3ccf366df8709a
install : $(TARGET)
@@ -87,7 +87,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) --with-winbind \ --disable-swat \ --enable-cups \ - --with-cifsmount \ --with-syslog cd $(DIR_APP)/source3 && make proto && make all $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP)/source3 && make install diff --git a/lfs/screen b/lfs/screen index eef5862..b94d62e 100644 --- a/lfs/screen +++ b/lfs/screen @@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/screen-4.0.3-stropts.patch cd $(DIR_APP) && ./configure --prefix=/usr --with-socket-dir=/var/run/screen --with-sys-screenrc=/etc/screenrc cd $(DIR_APP) && sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/* cd $(DIR_APP) && make $(MAKETUNING) diff --git a/lfs/sdl b/lfs/sdl index 2716f3f..5f5ecdc 100644 --- a/lfs/sdl +++ b/lfs/sdl @@ -77,10 +77,8 @@ dist: $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -ifeq "$(MACHINE_TYPE)" "arm" cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/SDL-1.2.11-asm-page.h.patch cd $(DIR_APP) && sed "/asm/page.h/d" -i src/video/fbcon/SDL_fbvideo.c -endif cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/sdparm b/lfs/sdparm index f1c8bd0..daa94ff 100644 --- a/lfs/sdparm +++ b/lfs/sdparm @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.01 +VER = 1.07
THISAPP = sdparm-$(VER) DL_FILE = $(THISAPP).tgz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7c87e5e1ebba54b7dae40e45fd356ab9 +$(DL_FILE)_MD5 = c807f9db3dd7af175214be0d7fece494
install : $(TARGET)
diff --git a/lfs/sed b/lfs/sed index 22b8204..8904fd4 100644 --- a/lfs/sed +++ b/lfs/sed @@ -24,7 +24,7 @@
include Config
-VER = 4.1.5 +VER = 4.2.1
THISAPP = sed-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -36,13 +36,11 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) EXTRA_CONFIG = --prefix=/usr --bindir=/bin --disable-nls - EXTRA_LDFLAGS = EXTRA_MAKE = EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools EXTRA_CONFIG = --prefix=/tools --disable-nls - EXTRA_LDFLAGS = EXTRA_MAKE = EXTRA_INSTALL = endif @@ -55,7 +53,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7a1cbbbb3341287308e140bd4834c3ba +$(DL_FILE)_MD5 = f0fd4d7da574d4707e442285fd2d3b86
install : $(TARGET)
@@ -85,7 +83,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG) + cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install @rm -rf $(DIR_APP) diff --git a/lfs/slang b/lfs/slang index 542d32f..e6c8cc8 100644 --- a/lfs/slang +++ b/lfs/slang @@ -30,11 +30,7 @@ THISAPP = slang-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -78,13 +74,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-utf8-acs.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-1.4.5-utf8-segv.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-utf8-fix.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-1.4.9-uclibc.patch - cd $(DIR_APP) && ./configure --prefix="" - cd $(DIR_APP)/src && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_APP)/src && make install DESTDIR="/opt/$(MACHINE)-uClibc" - ln -sf libslang-utf8.a /opt/$(MACHINE)-uClibc/lib/libslang.a -else perl -p -i -e 's/(ELF_CFLAGS="[^"]*)-O2([^"]*".*)/$1'"$(CFLAGS)"' $2/gs' configure cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make elf all @@ -92,6 +81,5 @@ else ln -sf libslang-utf8.so.1.4.9 /usr/lib/libslang-utf8.so.1 ln -sf libslang-utf8.so /usr/lib/libslang.so ln -sf libslang-utf8.a /usr/lib/libslang.a -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/smartmontools b/lfs/smartmontools index 63e51f2..a4ae11b 100644 --- a/lfs/smartmontools +++ b/lfs/smartmontools @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 5.42 +VER = 6.0
THISAPP = smartmontools-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 4460bf9a79a1252ff5c00ba52cf76b2a +$(DL_FILE)_MD5 = 5646a07f5f4bee8e2e649de8c6b7ae87
install : $(TARGET)
@@ -71,7 +71,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/smartmontools-5.39-exit_segfault.patch - cd $(DIR_APP) && ./autogen.sh + cd $(DIR_APP) && autoreconf cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make BUILD_INFO='"($(NAME) $(VERSION))"' $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/snort b/lfs/snort index 98c232d..950b319 100644 --- a/lfs/snort +++ b/lfs/snort @@ -24,7 +24,7 @@
include Config
-VER = 2.9.3.1 +VER = 2.9.4
THISAPP = snort-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = b2102605a7ca023ad6a2429821061c29 +$(DL_FILE)_MD5 = e79ee6b4fbb32edc5dfed2d7dfcc6813
install : $(TARGET)
diff --git a/lfs/splix b/lfs/splix deleted file mode 100644 index c9e8e47..0000000 --- a/lfs/splix +++ /dev/null @@ -1,86 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 2.0.0-rc2 - -THISAPP = splix-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = splix -PAK_VER = 2 - -DEPS = "cups" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 4381ccf9a38b08012dbdc3c0f28414fd - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - $(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP) && sed -e "s/ceill/ceil/g" -i src/*.cpp -endif - cd $(DIR_APP) && make DISABLE_JBIG=1 $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/squid b/lfs/squid index 7468328..d06aede 100644 --- a/lfs/squid +++ b/lfs/squid @@ -24,7 +24,7 @@
include Config
-VER = 3.1.20 +VER = 3.1.23
THISAPP = squid-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = c4d733a383c0508fd0746d64a2d7278a +$(DL_FILE)_MD5 = e15fdb8c615cf1f9525be0a2b75c60a7
install : $(TARGET)
diff --git a/lfs/stage2 b/lfs/stage2 index 5059923..beb0abb 100644 --- a/lfs/stage2 +++ b/lfs/stage2 @@ -63,9 +63,11 @@ $(TARGET) : # Symlinks # for this reason, stage2 rebuild will broke the iso:perl, grubbatch - -ln -sv /tools/bin/{bash,cat,grep,pwd,stty} /bin + -ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin -ln -sv /tools/bin/perl /usr/bin -ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib + -ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib + sed 's/tools/usr/' /tools/lib/libstdc++.la > /usr/lib/libstdc++.la -ln -sv bash /bin/sh
# Config files @@ -81,7 +83,11 @@ $(TARGET) : [ -f $$i ] && cp $$i /etc/profile.d; \ done chmod 755 /etc/bashrc - ln -svf ../bashrc /etc/profile.d/bashrc.sh + + # Install root's bash files. + for i in $(DIR_SRC)/config/bash/dot_*; do \ + [ -f $$i ] && cp $$i /root/$$(basename $${i/dot_/.}); \ + done
# Scripts for i in `find $(DIR_SRC)/src/scripts -maxdepth 1 -type f`; do \ diff --git a/lfs/streamripper b/lfs/streamripper index 9ef65af..4e30f8b 100644 --- a/lfs/streamripper +++ b/lfs/streamripper @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = streamripper PAK_VER = 1
-DEPS = "glib libmad libogg libvorbis faad2" +DEPS = "libmad libogg libvorbis faad2"
############################################################################### # Top-level Rules diff --git a/lfs/strip b/lfs/strip index 169419e..30cb9b3 100644 --- a/lfs/strip +++ b/lfs/strip @@ -46,25 +46,5 @@ md5 : ###############################################################################
$(TARGET) : - -ifeq "$(LFS_PASS)" "toolchain" - -find $(TOOLS_DIR)/lib -type f -exec $(TOOLS_DIR)/bin/strip --strip-debug '{}' ';' - -find $(TOOLS_DIR)/{bin,sbin,libexec} -type f -exec $(TOOLS_DIR)/bin/strip --strip-all '{}' ';' - rm -rf $(TOOLS_DIR)/{,share/}{doc,info,man} -endif - -ifeq "$(LFS_PASS)" "install" - # Add -ls before -exec if you want to verify what files are in the path to be stripped - # A running binary can't be stripped, so use the version from /tools - # It may fail (signal 11) under circonstance not identified by me (Gilles), - # to strip libc again so ignore the error now. Probably need a static strip for libc - # Don't use --strip-all on libraries, or they'll be destroyed. Don't use --strip-unneeded, either. - -/tools/bin/find /lib /usr/lib /usr/share/rrdtool-* /install/initrd/lib \ - -type f ( -name '*.so' -o -name '*.so[.0-9]*' ) \ - -exec /tools/bin/strip --strip-debug {} ; 2>/dev/null - - -/tools/bin/strip --strip-all /{,usr/}{,local/}{bin,sbin}/* /install/{initrd,misc}/bin/* /usr/lib/cyrus/* 2>/dev/null - -/tools/bin/strip --strip-all /usr/lib/awk/{grcat,pwcat} 2>/dev/null - -/tools/bin/strip --strip-all /usr/lib/gcc/*-linux-gnu/4.0.4/{cc1*,collect2} 2>/dev/null -endif - + STRIP="/tools/bin/strip" $(DIR_SRC)/src/stripper / \ + --exclude=/usr/src --exclude=/tools diff --git a/lfs/strongswan b/lfs/strongswan index d0d533d..8e75329 100644 --- a/lfs/strongswan +++ b/lfs/strongswan @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 4.6.4 +VER = 5.0.2
THISAPP = strongswan-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -32,6 +32,12 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)
+ifeq "$(MACHINE)" "i586" + PADLOCK = --enable-padlock +else + PADLOCK = --disable-padlock +endif + ############################################################################### # Top-level Rules ############################################################################### @@ -40,7 +46,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 4c0999c42faa0860ae0afc4f8efd9d04 +$(DL_FILE)_MD5 = 77dc16443fd141f46183d3a4f60986ef
install : $(TARGET)
@@ -73,18 +79,20 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-4.5.3_ipfire.patch
- # Customize the welcome banner. - sed -i $(DIR_APP)/src/pluto/modecfg.c \ - -e 's/^#define.*DEFAULT_UNITY_BANNER.*/#define DEFAULT_UNITY_BANNER "Welcome to IPFire - An Open Source Firewall Solution.\n"/' - - cd $(DIR_APP) && ./configure --prefix="/usr" --sysconfdir="/etc" \ - --enable-cisco-quirks \ - --enable-curl \ - --enable-nat-transport + cd $(DIR_APP) && ./configure \ + --prefix="/usr" \ + --sysconfdir="/etc" \ + --enable-curl \ + --enable-openssl \ + --enable-eap-radius \ + $(PADLOCK)
cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install
+ # Remove all library files we don't want or need. + rm -vf /usr/lib/ipsec/plugins/*.{,l}a + -rm -rfv /etc/rc*.d/*ipsec cd $(DIR_SRC) && cp src/initscripts/init.d/ipsec /etc/rc.d/init.d/ipsec rm -f /etc/ipsec.conf /etc/ipsec.secrets diff --git a/lfs/sysfsutils b/lfs/sysfsutils index 297f770..4980f5e 100644 --- a/lfs/sysfsutils +++ b/lfs/sysfsutils @@ -31,11 +31,7 @@ DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -75,15 +71,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix="" --disable-shared - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make DESTDIR=/opt/$(MACHINE)-uClibc install - mv -v /opt/$(MACHINE)-uClibc/usr/include/sysfs /opt/$(MACHINE)-uClibc/include -else cd $(DIR_APP) && ./configure --prefix="" cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/syslinux b/lfs/syslinux index ba739ea..43bcde9 100644 --- a/lfs/syslinux +++ b/lfs/syslinux @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = 4.02 +VER = 4.06
THISAPP = syslinux-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -41,7 +41,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 52912c03f5c275d6c0ac09180ebab81f +$(DL_FILE)_MD5 = 77d33140860621cd850c3a7ab0ebb7d6
install : $(TARGET)
@@ -70,7 +70,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/sysvinit b/lfs/sysvinit index 2167b99..85864fd 100644 --- a/lfs/sysvinit +++ b/lfs/sysvinit @@ -24,17 +24,13 @@
include Config
-VER = 2.86 +VER = 2.88dsf
THISAPP = sysvinit-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -44,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 7d5d61c026122ab791ac04c8a84db967 +$(DL_FILE)_MD5 = 6eda8a97b86e0a6f59dabbf25202aa6f
install : $(TARGET)
@@ -73,17 +69,8 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP)/src && sed -i s'/-O2/-Os\ -fomit-frame-pointer/' Makefile - cd $(DIR_APP)/src && make killall5 - cd $(DIR_APP)/src && install -m 0755 killall5 /install/initrd/bin -else - cd $(DIR_APP) && cp src/init.c{,.backup} - cd $(DIR_APP) && sed -i 's@Sending processes@& started by init@g' \ - src/init.c + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make $(MAKETUNING) -C src cd $(DIR_APP) && make -C src install -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/texinfo b/lfs/texinfo index 0ead581..4ac591e 100644 --- a/lfs/texinfo +++ b/lfs/texinfo @@ -24,12 +24,12 @@
include Config
-VER = 4.8 +VER = 4.13a
THISAPP = texinfo-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) +DIR_APP = $(DIR_SRC)/texinfo-4.13
# Normal build or /tools build. # @@ -53,7 +53,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 6ba369bbfe4afaa56122e65b3ee3a68c +$(DL_FILE)_MD5 = 71ba711519209b5fb583fed2b3d86fcb
install : $(TARGET)
@@ -82,11 +82,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(ROOT)" "" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-multibyte-1.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-tempfile_fix-2.patch -endif + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install diff --git a/lfs/transmission b/lfs/transmission index 6e2ab79..ab34ee3 100644 --- a/lfs/transmission +++ b/lfs/transmission @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 2.42 +VER = 2.76
THISAPP = transmission-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = transmission -PAK_VER = 3 +PAK_VER = 5
DEPS = "libevent2"
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 50f6dd76c5c01f45d5ed20783c686815 +$(DL_FILE)_MD5 = 9abbffe29ce9b5ee68a116d293c51111
install : $(TARGET)
diff --git a/lfs/tzdata b/lfs/tzdata index 8321432..edf5ff2 100644 --- a/lfs/tzdata +++ b/lfs/tzdata @@ -24,11 +24,11 @@
include Config
-TZDATA_VER = 2011n -TZCODE_VER = 2011i +VER = 2012h +TZDATA_VER = 2012h +TZCODE_VER = 2012h
-THISAPP = tzdata -DL_FILE = tzdata-base-0.tar.bz2 +THISAPP = tzdata-$(VER) DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -37,15 +37,13 @@ TARGET = $(DIR_INFO)/$(THISAPP) # Top-level Rules ###############################################################################
-objects = $(DL_FILE) tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz +objects = tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE) tzdata$(TZDATA_VER).tar.gz = $(DL_FROM)/tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz = $(DL_FROM)/tzcode$(TZCODE_VER).tar.gz
-$(DL_FILE)_MD5 = e36d2f742c22f8c8dbf0686ac9769b55 -tzdata$(TZDATA_VER).tar.gz_MD5 = 20dbfb28efa008ddbf6dd34601ea40fa -tzcode$(TZCODE_VER).tar.gz_MD5 = cf7f4335b7c8682899fa2814e711c1b2 +tzdata$(TZDATA_VER).tar.gz_MD5 = b937335e087fb85b7f8e3ce33e69184b +tzcode$(TZCODE_VER).tar.gz_MD5 = 44b3b6c3e50240ac44f16437040a7ba2
install : $(TARGET)
@@ -74,19 +72,21 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && mkdir -pv $(DIR_APP) mkdir -pv $(DIR_APP)/tzdata$(TZDATA_VER) $(DIR_APP)/tzcode$(TZCODE_VER) - tar axf $(DIR_DL)/tzdata$(TZDATA_VER).tar.gz -C $(DIR_APP)/tzdata$(TZDATA_VER) - tar axf $(DIR_DL)/tzcode$(TZCODE_VER).tar.gz -C $(DIR_APP)/tzcode$(TZCODE_VER) + tar axf $(DIR_DL)/tzdata$(TZDATA_VER).tar.gz -C $(DIR_APP) + tar axf $(DIR_DL)/tzcode$(TZCODE_VER).tar.gz -C $(DIR_APP)
- cd $(DIR_APP) && sed -e 's|@objpfx@|$(DIR_APP)/obj/|' \ - -e 's|@datadir@|/usr/share|' \ - Makeconfig.in > Makeconfig - cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make TOPDIR=/usr ETCDIR=/tmp LIBDIR=/tmp MANDIR=/tmp \ + TZDIR=/usr/share/zoneinfo all + cd $(DIR_APP) && make TOPDIR=/usr ETCDIR=/tmp LIBDIR=/tmp MANDIR=/tmp \ + TZDIR=/usr/share/zoneinfo install
- cd $(DIR_APP) && sed -i 's|@install_root@||' Makeconfig - cd $(DIR_APP) && make install + -mkdir -pv /usr/share/zoneinfo + mv -v /usr/share/zoneinfo-posix /usr/share/zoneinfo/posix + mv -v /usr/share/zoneinfo-leaps /usr/share/zoneinfo/right + rm -vf /usr/share/zoneinfo/localtime
- cp -f /usr/share/zoneinfo/GMT /etc/localtime + cp -vf /usr/share/zoneinfo/GMT /etc/localtime @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/u-boot b/lfs/u-boot index 6fbd888..551fea5 100644 --- a/lfs/u-boot +++ b/lfs/u-boot @@ -24,10 +24,12 @@
include Config
-VER = 2011.06 +VER = 2011.12 +# Linare version: git clone git://git.linaro.org/boot/u-boot-linaro-stable.git +# Branch: origin/Linaro-u-boot-2011.12
-THISAPP = u-boot-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +THISAPP = uboot-panda-$(VER) +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -41,7 +43,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 0cc5026aad02f218a9b9ac56b301c97a +$(DL_FILE)_MD5 = 19975e9bb4b10d8e67db84e51fcaa43b
install : $(TARGET)
@@ -73,8 +75,13 @@ dist:
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make tools $(MAKETUNING) cd $(DIR_APP) && install tools/mkimage /usr/bin/ + cd $(DIR_APP) && make omap4_panda_config + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && install MLO /boot/ + cd $(DIR_APP) && install u-boot.bin /boot/ + cp -vf $(DIR_SRC)/config/u-boot/* /boot/ @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/udev b/lfs/udev index c7cba71..9ebec2f 100644 --- a/lfs/udev +++ b/lfs/udev @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2005-2010 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,29 +24,23 @@
include Config
-VER = 125 +VER = 141
THISAPP = udev-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules ###############################################################################
-objects = $(DL_FILE) udev-config-6.2.tar.bz2 +objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -udev-config-6.2.tar.bz2 = $(DL_FROM)/udev-config-6.2.tar.bz2
-$(DL_FILE)_MD5 = be98e04cefdd9ca76b8fe7e92735ce29 -udev-config-6.2.tar.bz2_MD5 = 9ff2667ab0f7bfe8182966ef690078a0 +$(DL_FILE)_MD5 = 1670fe81cabf5161319c52084cf81134
install : $(TARGET)
@@ -75,62 +69,42 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-125-netif_rename.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && make DESTDIR=/install/initrd sbindir=/sbin udevdir=/dev - cd $(DIR_APP) && make DESTDIR=/install/initrd sbindir=/sbin udevdir=/dev install - rm -f /install/initrd/sbin/udev* /install/initrd/usr/sbin/udev* /install/initrd/usr/bin/udev* - cd $(DIR_APP) && install udevadm udevd /install/initrd/sbin - cd $(DIR_APP) && make $(MAKETUNING) EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ - extras/firmware extras/floppy extras/path_id \ - extras/scsi_id extras/usb_id extras/volume_id" - cd $(DIR_APP) && make DESTDIR=/install/initrd EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ - extras/firmware extras/floppy extras/path_id \ - extras/scsi_id extras/usb_id extras/volume_id" install - cd /install/initrd/usr/share && rm -rf man - -mkdir -pv /install/initrd/dev - cd /install/initrd/dev && rm -f console - cd /install/initrd/dev && mknod -m 0600 console c 5 1 - cd /install/initrd/dev && rm -f null - cd /install/initrd/dev && mknod -m 0777 null c 1 3 - cd /install/initrd/dev && rm -f tty* - cd /install/initrd/dev && mknod -m 0600 tty1 c 4 1 - cd /install/initrd/dev && mknod -m 0600 tty2 c 4 2 - cd /install/initrd/dev && mknod -m 0600 tty3 c 4 3 - cd /install/initrd/dev && mknod -m 0600 tty4 c 4 4 - cd /install/initrd/dev && mknod -m 0600 tty5 c 4 5 - cd /install/initrd/dev && mknod -m 0600 tty6 c 4 6 - cp -f /etc/udev/rules.d/55-scsi-cdrom.rules /install/initrd/etc/udev/rules.d/55-scsi-cdrom.rules - -else + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-141_no_netif_rename.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-125-ext4_wo_journal.patch rm -rf /lib/udev/devices - cd $(DIR_APP) && tar jxf $(DIR_DL)/udev-config-6.2.tar.bz2 - cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/udev-config-6.2_persistent-storage-fix.patch - cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/udev-config-6.2_remove-lfs-usb-rule.patch install -dv /lib/{firmware,udev/devices/{pts,shm}} - echo "Put device firmwares here ..." > /lib/firmware/dirinfo mknod -m0666 /lib/udev/devices/null c 1 3 ln -sv /proc/self/fd /lib/udev/devices/fd ln -sv /proc/self/fd/0 /lib/udev/devices/stdin ln -sv /proc/self/fd/1 /lib/udev/devices/stdout ln -sv /proc/self/fd/2 /lib/udev/devices/stderr ln -sv /proc/kcore /lib/udev/devices/core + cd $(DIR_APP) && ./configure --disable-introspection --sbindir=/sbin --sysconfdir=/etc --libexecdir=/lib/udev cd $(DIR_APP) && make $(MAKETUNING) EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ extras/firmware extras/floppy extras/path_id \ extras/scsi_id extras/usb_id extras/volume_id" cd $(DIR_APP) && make DESTDIR=/ EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ extras/firmware extras/floppy extras/path_id \ extras/scsi_id extras/usb_id extras/volume_id" install - cd $(DIR_APP) && cp -v udev-config-6.2/[0-9]* /etc/udev/rules.d/ - cp -rf $(DIR_SRC)/config/udev/10-dvb.rules /etc/udev/rules.d/ - cp -rf $(DIR_SRC)/config/udev/55-scsi-cdrom.rules /etc/udev/rules.d/ - chmod 644 /etc/udev/rules.d/10-dvb.rules - chmod 644 /etc/udev/rules.d/55-scsi-cdrom.rules - cp -rf $(DIR_SRC)/config/udev/dvb.sh /etc/udev/ - chmod 755 /etc/udev/dvb.sh + + # Disable net generator rule. This does not work with the setup. + rm -f /lib/udev/rules.d/75-persistent-net-generator.rules + + # Create rule file for the setup touch /etc/udev/rules.d/30-persistent-network.rules + + # Blacklist some modules cp -vf $(DIR_SRC)/config/udev/blacklist /etc/modprobe.d/blacklist -endif + + # Install alsa rules. + install -v -m 644 $(DIR_SRC)/config/udev/25-alsa.rules \ + /lib/udev/rules.d + + # Install codel rules. + install -v -m 644 $(DIR_SRC)/config/udev/99-codel.rules \ + /lib/udev/rules.d + install -m 755 $(DIR_SRC)/config/udev/enable_codel \ + /lib/udev/enable_codel @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/urlgrabber b/lfs/urlgrabber index 9752a65..f2966c3 100644 --- a/lfs/urlgrabber +++ b/lfs/urlgrabber @@ -24,7 +24,7 @@
include Config
-VER = 3.1.0 +VER = 3.9.1
THISAPP = urlgrabber-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -44,7 +44,8 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 2a92d8ce0d89c5e772a98e9b8dcd5b73 +$(DL_FILE)_MD5 = 00c8359bf71062d0946bacea521f80b4 + install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects)) diff --git a/lfs/usb-stick b/lfs/usb-stick index 4c5e716..30a1475 100644 --- a/lfs/usb-stick +++ b/lfs/usb-stick @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -92,7 +92,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) COUNT=$$((`du -k -s $(IMGfs) | awk '{print $$1}'` + 32 )); \ dd bs=1k if=/dev/zero of=$(IMGhdd) count=$$COUNT # write mbr before partitioning save a 'not msdos fs' warning from sfdisk - /usr/local/sbin/install-mbr -f $(IMGhdd) + /usr/sbin/install-mbr -f $(IMGhdd) echo -e "0,,6,*\n;\n;\n;" | sfdisk -qLD -H 64 -S 32 $(IMGhdd) # copy the entire partition, make the fs and dd back dd if=$(IMGfs) of=$(IMGhdd) bs=512 seek=32 diff --git a/lfs/util-linux b/lfs/util-linux index 3dac54d..a394166 100644 --- a/lfs/util-linux +++ b/lfs/util-linux @@ -30,18 +30,7 @@ THISAPP = util-linux-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) - -# Normal build or /tools build. -# -ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif -else - TARGET = $(DIR_INFO)/$(THISAPP)-tools -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -82,16 +71,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/util-linux-2.12r-umount-no-special.patch -ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" ./configure - cd $(DIR_APP) && echo "HAVE_SLANG=yes" >> make_include - cd $(DIR_APP) && echo "SLANGFLAGS=-I/opt/$(MACHINE)-uClibc/include" >> make_include - cd $(DIR_APP)/fdisk && make cfdisk - cd $(DIR_APP)/fdisk && make sfdisk - cd $(DIR_APP)/fdisk && install -m 0755 cfdisk /install/initrd/bin - cd $(DIR_APP)/fdisk && install -m 0755 sfdisk /install/initrd/bin -else cd $(DIR_APP) && sed -i 's@etc/adjtime@var/lib/hwclock/adjtime@g' \ hwclock/hwclock.c -mkdir -p /var/lib/hwclock @@ -100,14 +79,5 @@ else cd $(DIR_APP) && ./configure cd $(DIR_APP) && make $(MAKETUNING) HAVE_KILL=yes HAVE_SLN=yes cd $(DIR_APP) && make HAVE_KILL=yes HAVE_SLN=yes install -endif -else - cd $(DIR_APP) && sed -i 's@/usr/include@/tools/include@g' configure - cd $(DIR_APP) && ./configure - cd $(DIR_APP) && make $(MAKETUNING) -C lib - cd $(DIR_APP) && make $(MAKETUNING) -C mount mount umount - cd $(DIR_APP) && make $(MAKETUNING) -C text-utils more - cd $(DIR_APP) && cp mount/{,u}mount text-utils/more /tools/bin -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/v4l-dvb b/lfs/v4l-dvb index 730173e..ef0f383 100644 --- a/lfs/v4l-dvb +++ b/lfs/v4l-dvb @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -26,15 +26,19 @@ include Config
VERSUFIX=ipfire$(KCFG)
-VER = git20110427 - +VER = 20120916 THISAPP = v4l-dvb-$(VER) DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -PAK_VER = 2 TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
+ifeq "$(KCFG)" "-xen" + XVER = 2.6.32 + KVER = 2.6.32.60 +else + XVER = 3.2.0 +endif ############################################################################### # Top-level Rules ############################################################################### @@ -43,7 +47,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 8b83a89332fe8468ebffd516a4a47128 +$(DL_FILE)_MD5 = 7824fdd540605c54584df0d16f0e923b
install : $(TARGET)
@@ -53,9 +57,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
md5 : $(subst %,%_MD5,$(objects))
-dist: - $(PAK) - ############################################################################### # Downloading, checking, md5sum ############################################################################### @@ -76,8 +77,27 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make all KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=2.6.32 - cd $(DIR_APP) && make install KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=2.6.32 + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_fix_tua6034_pll.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_bestunar_us638x.patch + + cd $(DIR_APP) && make allyesconfig KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER) +ifeq "$(KCFG)" "-omap" + # Disable failing OMAP2 Video Out and IR RX51 driver + cd $(DIR_APP) && sed -i -e \ + "s|^CONFIG_VIDEO_OMAP2_VOUT=m|# CONFIG_VIDEO_OMAP2_VOUT is not set|g" \ + v4l/.config + cd $(DIR_APP) && sed -i -e \ + "s|^CONFIG_IR_RX51=m|# CONFIG_IR_RX51 is not set|g" \ + v4l/.config +endif + # Disable Radio Shark (missing tuner module) + cd $(DIR_APP) && sed -i -e \ + "s|^CONFIG_RADIO_SHARK=m|# CONFIG_RADIO_SHARK is not set|g" \ + v4l/.config + cd $(DIR_APP) && make all KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER) + cd $(DIR_APP) && make install KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER) ln -sf $(DIR_APP)/ /usr/src/v4l-dvb -# @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/vdr b/lfs/vdr index af5b921..46ea5d3 100644 --- a/lfs/vdr +++ b/lfs/vdr @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -38,7 +38,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = vdr PAK_VER = 5
-DEPS = "freefont fontconfig" +DEPS = "freefont"
############################################################################### # Top-level Rules @@ -89,7 +89,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - + + # Install obsolete V4L1 videodev header. + cp $(DIR_SRC)/config/include/obsolete_videodev.h /usr/include/linux/videodev.h + # Accept also DVB_API_VERSION 5 cd $(DIR_APP) && sed -i -e "s|DVB_API_VERSION != 3|& && DVB_API_VERSION != 5|g" dvbdevice.h @@ -104,6 +107,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP)/PLUGINS/src && tar xvf $(DIR_DL)/$(DL_FILE4) cd $(DIR_APP)/PLUGINS/src && ln -s epgsearch-0.9.24 epgsearch cd $(DIR_APP) && patch -Np1 -i PLUGINS/src/epgsearch/patches/MainMenuHooks-v1_0.patch + cd $(DIR_APP)/PLUGINS/src/epgsearch && sed -i '/include/a #include <langinfo.h>/' \ + epgsearch.c + cd $(DIR_APP)/PLUGINS/src/epgsearch && patch -Np1 < $(DIR_SRC)/src/patches/vdr-plugin-epgsearch-gcc44.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vdr-1.6.0-gcc44-fixes.patch cd $(DIR_APP) && make VIDEODIR=/var/video plugins $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make VIDEODIR=/var/video vdr $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make DFB_SUPPORT=1 FB_SUPPORT=1 VIDIX_SUPPORT=1 $(MAKETUNING) $(EXTRA_MAKE) @@ -116,5 +123,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) ln -sf ../init.d/vdr /etc/rc.d/rc6.d/K40vdr install -v -m 644 $(DIR_SRC)/config/backup/includes/vdr \ /var/ipfire/backup/addons/includes/vdr + + # Remove obsolete V4L1 videodev header. + rm -f /usr/include/linux/videodev.h + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/videolan b/lfs/videolan deleted file mode 100644 index 17a9f7a..0000000 --- a/lfs/videolan +++ /dev/null @@ -1,104 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0.8.6i -THISAPP = vlc-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FILE1 = $(THISAPP)-bugfix-080903.patch.bz2 - -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = videolan -PAK_VER = 5 - -DEPS = "libshout libmpeg2 libmad libdvbpsi directfb ffmpeg faad2" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) $(DL_FILE1) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE1) = $(DL_FROM)/$(DL_FILE1) - -$(DL_FILE)_MD5 = 3c90520c9f22a68d287458d5a8af989e -$(DL_FILE1)_MD5 = 36ea293b5ebb604778b321b5e3e3cdc4 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - #Apply some patched from videolan 8.6-bugfix branch, - #ignore the error because one patch is already applied - -cd $(DIR_APP) && bzip2 -d -c $(DIR_DL)/$(DL_FILE1) | patch -p1 - cd $(DIR_APP) && ./configure --prefix=/usr --enable-shared --with-ffmpeg-tree=/usr/src/ffmpeg \ - --with-ffmpeg-config=/usr/src/ffmpeg \ - --disable-wxwidgets --disable-skins2 \ - --enable-httpd --enable-pth --enable-shout \ - --enable-smb --enable-cddax --enable-ncurses \ - --enable-a52 --enable-dts --enable-alsa \ - --enable-unicode-utf8 --enable-v4l --enable-vcd \ - --enable-ogg --enable-vorbis --enable-theora \ - --enable-mad --enable-v4l --enable-dvb \ - --with-dvb=/usr/src/v4l-dvb \ - --with-v4l=/usr/src/v4l-dvb \ - --enable-libdvbpsi --enable-faac --enable-mkv \ - --enable-x264 --enable-release --enable-sout \ - --disable-nls --enable-faad \ - --enable-directfb --with-directfb=/usr/src/directfb - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/w_scan b/lfs/w_scan index e58cf50..7df4b42 100644 --- a/lfs/w_scan +++ b/lfs/w_scan @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,7 +25,7 @@ include Config
-VER = 20080105 +VER = 20121111
THISAPP = w_scan-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -33,7 +33,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = w_scan -PAK_VER = 1 +PAK_VER = 3
DEPS = ""
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 9541244559d2da9442a137f7891d45d3 +$(DL_FILE)_MD5 = 30da05747fed9988e11ebc7745f5e71f
install : $(TARGET)
@@ -78,10 +78,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch < $(DIR_SRC)/src/patches/w_scan-ipfire.patch - cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) - -mkdir -pv /opt/vdr/bin - cd $(DIR_APP) && install -m 755 w_scan /opt/vdr/bin/ - cd $(DIR_APP) && install -m 755 w_scan_start.sh /opt/vdr/bin/w_scan_start + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + install -m 755 $(DIR_SRC)/config/w_scan/w_scan_start /usr/bin/ @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/wget b/lfs/wget index 0c29155..ce55e76 100644 --- a/lfs/wget +++ b/lfs/wget @@ -30,11 +30,7 @@ THISAPP = wget-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP)
############################################################################### # Top-level Rules @@ -74,15 +70,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix=/ --disable-nls --disable-ipv6 - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP)/src && install -m 755 wget /install/initrd/bin -else cd $(DIR_APP) && ./configure --prefix=/usr --with-ssl \ --disable-nls --disable-ipv6 cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/wpa_supplicant b/lfs/wpa_supplicant index f608206..1172e60 100644 --- a/lfs/wpa_supplicant +++ b/lfs/wpa_supplicant @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2008 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 0.7.3 +VER = 2.0
THISAPP = wpa_supplicant-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -41,7 +41,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = f516f191384a9a546e3f5145c08addda +$(DL_FILE)_MD5 = 3be2ebfdcced52e00eda0afe2889839d
install : $(TARGET)
@@ -75,11 +75,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP)/wpa_supplicant && cp $(DIR_SRC)/config/wpa_supplicant/config ./.config -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP)/wpa_supplicant && sed -e "s/^CONFIG_DRIVER_MADWIFI=y/#&/" -i .config -endif cd $(DIR_APP)/wpa_supplicant && sed -e "s/wpa_cli\ dynamic_eap_methods/wpa_cli\ #dynamic_eap_methods/" -i Makefile cd $(DIR_APP)/wpa_supplicant && sed -e "s@/usr/local@/usr@g" -i Makefile - cd $(DIR_APP)/wpa_supplicant && CFLAGS+=-I/usr/src/linux/include make && make install + cd $(DIR_APP)/wpa_supplicant && make && make install @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/xen-image b/lfs/xen-image index bd46b64..1c2624e 100644 --- a/lfs/xen-image +++ b/lfs/xen-image @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -29,6 +29,8 @@ VER = ipfire THISAPP = xen-image TARGET = $(DIR_INFO)/$(THISAPP)
+KVER2 = `grep "^VER " $(DIR_SRC)/lfs/linux2 | sed "s| ||g" | cut -d"=" -f2` + ############################################################################### # Top-level Rules ############################################################################### @@ -89,8 +91,13 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) tar -C $(MNThdd)/ -xvf /install/cdrom/$(SNAME)-$(VERSION).tlz --lzma \ --exclude=lib/modules* --exclude=boot*
- #Install Xen Kernel - tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-xen-$(KVER)-*.ipfire + #Install legacy Xen Kernel + tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-xen-$(KVER2)-*.ipfire + chroot $(MNThdd) /opt/pakfire/tmp/install.sh + rm -rf $(MNThdd)/opt/pakfire/tmp/* + + #Install pae Kernel + tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-pae-$(KVER)-*.ipfire chroot $(MNThdd) /opt/pakfire/tmp/install.sh rm -rf $(MNThdd)/opt/pakfire/tmp/*
@@ -98,23 +105,30 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) mkdir $(MNThdd)/boot/grub echo "timeout 10" > $(MNThdd)/boot/grub/grub.conf echo "default 0" >> $(MNThdd)/boot/grub/grub.conf - echo "title IPFire (XEN-Kernel)" >> $(MNThdd)/boot/grub/grub.conf - echo " kernel /vmlinuz-$(KVER)-ipfire-xen root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ + echo "title IPFire (legacy XEN-Kernel)" >> $(MNThdd)/boot/grub/grub.conf + echo " kernel /vmlinuz-$(KVER2)-ipfire-xen root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ >> $(MNThdd)/boot/grub/grub.conf - echo " initrd /ipfirerd-$(KVER)-xen.img" >> $(MNThdd)/boot/grub/grub.conf + echo " initrd /ipfirerd-$(KVER2)-xen.img" >> $(MNThdd)/boot/grub/grub.conf echo "# savedefault 0" >> $(MNThdd)/boot/grub/grub.conf + echo "title IPFire (PAE-Kernel)" >> $(MNThdd)/boot/grub/grub.conf + echo " kernel /vmlinuz-$(KVER)-ipfire-pae root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ + >> $(MNThdd)/boot/grub/grub.conf + echo " initrd /ipfirerd-$(KVER)-xen.img" >> $(MNThdd)/boot/grub/grub.conf + echo "# savedefault 1" >> $(MNThdd)/boot/grub/grub.conf
ln -s grub.conf $(MNThdd)/boot/grub/menu.lst
#Copy the meta-info of linux-xen package cp -f /install/packages/meta-linux-xen $(MNThdd)/opt/pakfire/db/installed cp -f /install/packages/meta-linux-xen $(MNThdd)/opt/pakfire/db/meta + cp -f /install/packages/meta-linux-pae $(MNThdd)/opt/pakfire/db/installed + cp -f /install/packages/meta-linux-pae $(MNThdd)/opt/pakfire/db/meta
#Set default configuration echo "LANGUAGE=en" >> $(MNThdd)/var/ipfire/main/settings echo "HOSTNAME=$(SNAME)" >> $(MNThdd)/var/ipfire/main/settings echo "THEME=ipfire" >> $(MNThdd)/var/ipfire/main/settings - touch $(MNThdd)/lib/modules/$(KVER)-ipfire-xen/modules.dep + touch $(MNThdd)/lib/modules/$(KVER2)-ipfire-xen/modules.dep mkdir $(MNThdd)/proc mount --bind /proc $(MNThdd)/proc mount --bind /dev $(MNThdd)/dev @@ -127,7 +141,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
sed -i -e "s|FSTYPE|ext3|g" $(MNThdd)/etc/fstab
- chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER)-xen.img $(KVER)-ipfire-xen + chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER2)-xen.img $(KVER2)-ipfire-xen + chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER)-pae.img $(KVER)-ipfire-pae
#Remove root / fstab check rm -rf $(MNThdd)/etc/rc.d/rcsysinit.d/S19checkfstab @@ -154,14 +169,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) sed -i -e "s|^thermal|#thermal|g" $(MNThdd)/etc/sysconfig/modules sed -i -e "s|^video|#video|g" $(MNThdd)/etc/sysconfig/modules
- #Copy initramdisk, kernel and config - #cp -f $(MNThdd)/boot/ipfirerd-$(KVER)-xen.img \ - # /install/images/$(SNAME)/boot - #cp -f $(MNThdd)/boot/vmlinuz-$(KVER)-ipfire-xen \ - # /install/images/$(SNAME)/boot + # Copy readme and config cp $(DIR_SRC)/config/xen-image/* \ /install/images/$(SNAME) - sed -i -e "s|KVER|$(KVER)|g" /install/images/$(SNAME)/ipfire.cfg
# Unmount umount $(MNThdd)/proc diff --git a/lfs/xfsprogs b/lfs/xfsprogs index 0dd83d3..2a548be 100644 --- a/lfs/xfsprogs +++ b/lfs/xfsprogs @@ -77,6 +77,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && sed -i "/include/a #include <sys/stat.h>" \ + libxfs/xfs_ialloc.c quota/quot.c mdrestore/xfs_mdrestore.c \ + rtcp/xfs_rtcp.c cd $(DIR_APP) && make DEBUG=-DNDEBUG INSTALL_USER=root INSTALL_GROUP=root \ LOCAL_CONFIGURE_OPTIONS="--enable-readline=yes" cd $(DIR_APP) && make install diff --git a/lfs/xz b/lfs/xz index 4845227..7a56c72 100644 --- a/lfs/xz +++ b/lfs/xz @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,14 +24,20 @@
include Config
-VER = 4.999.9beta +VER = 5.0.4
THISAPP = xz-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP)
-TARGET = $(DIR_INFO)/$(THISAPP) +ifeq "$(ROOT)" "" + PREFIX = /usr + TARGET = $(DIR_INFO)/$(THISAPP) +else + PREFIX = /tools + TARGET = $(DIR_INFO)/$(THISAPP)-tools +endif
############################################################################### # Top-level Rules @@ -41,8 +47,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = cc4044fcc073b8bcf3164d1d0df82161 - +$(DL_FILE)_MD5 = 741cd3a5f64b23b7bac56ec5b2258715
install : $(TARGET)
@@ -72,7 +77,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && ./configure --prefix=$(PREFIX) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/zlib b/lfs/zlib index a5a6849..0a2977d 100644 --- a/lfs/zlib +++ b/lfs/zlib @@ -24,18 +24,15 @@
include Config
-VER = 1.2.3 +VER = 1.2.7
THISAPP = zlib-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif -CFLAGS += -fPIC +TARGET = $(DIR_INFO)/$(THISAPP) + +CFLAGS += -fPIC -DPIC
############################################################################### # Top-level Rules @@ -44,7 +41,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = dee233bf288ee795ac96a98cc2e369b6 +$(DL_FILE)_MD5 = 60df6a37c56e7c1366cca812414f7b85
install : $(TARGET)
@@ -73,23 +70,16 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix=/opt/$(MACHINE)-uClibc - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - chmod -v 644 /opt/$(MACHINE)-uClibc/lib/libz.a -else - cd $(DIR_APP) && ./configure --prefix=/usr --shared --libdir=/lib + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr --shared cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install - rm -v /lib/libz.so - ln -sfv ../../lib/libz.so.1.2.3 /usr/lib/libz.so - cd $(DIR_APP) && make clean - cd $(DIR_APP) && ./configure --prefix=/usr - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - chmod -v 644 /usr/lib/libz.a -endif + + mv -v /usr/lib/libz.so.$(VER) /lib/libz.so.$(VER) + ln -svf libz.so.$(VER) /lib/libz.so.1 + ln -svf libz.so.$(VER) /lib/libz.so + rm -vf /usr/lib/libz.so.1 + rm -vf /usr/lib/libz.so + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/make.sh b/make.sh index 6fb2d94..8d42e47 100755 --- a/make.sh +++ b/make.sh @@ -24,7 +24,7 @@
NAME="IPFire" # Software name SNAME="ipfire" # Short name -VERSION="2.11" # Version number +VERSION="2.13rc2" # Version number CORE="65" # Core Level (Filename) PAKFIRE_CORE="65" # Core Level (PAKFIRE) GIT_BRANCH=`git status | head -n1 | cut -d" " -f4` # Git Branch @@ -37,12 +37,11 @@ KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'` MACHINE=`uname -m` GIT_TAG=$(git tag | tail -1) # Git Tag GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit -TOOLCHAINVER=3 +TOOLCHAINVER=6
BUILDMACHINE=$MACHINE if [ "$MACHINE" = "x86_64" ]; then BUILDMACHINE="i686"; - linux32="linux32"; fi
@@ -214,15 +213,10 @@ prepareenv() { mount --bind $BASEDIR/log $BASEDIR/build/usr/src/log mount --bind $BASEDIR/src $BASEDIR/build/usr/src/src
- # This is a temporary hack!!! - if [ ! -f /tools/bin/hostname ]; then - cp -f /bin/hostname /tools/bin/hostname 2>/dev/null - fi - # Run LFS static binary creation scripts one by one export CCACHE_DIR=$BASEDIR/ccache export CCACHE_COMPRESS=1 - export CCACHE_HASHDIR=1 + export CCACHE_COMPILERCHECK="none"
# Remove pre-install list of installed files in case user erase some files before rebuild rm -f $BASEDIR/build/usr/src/lsalr 2>/dev/null @@ -232,7 +226,7 @@ buildtoolchain() { local error=false case "${MACHINE}:$(uname -m)" in # x86 - i586:i586|i586:i686) + i586:i586|i586:i686|i586:x86_64) # These are working. ;; i586:*) @@ -240,7 +234,7 @@ buildtoolchain() { ;;
# ARM - armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv7l) + armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv6l|armv5tel:armv7l) # These are working. ;; armv5tel:*) @@ -251,34 +245,28 @@ buildtoolchain() { ${error} && \ exiterror "Cannot build ${MACHINE} toolchain on $(uname -m). Please use the download if any."
- if [ "$(uname -r | grep ipfire)" ]; then - exiterror "Cannot build toolchain on ipfire. Please use the download." + local gcc=$(type -p gcc) + if [ -z "${gcc}" ]; then + exiterror "Could not find GCC. You will need a working build enviroment in order to build the toolchain." fi
LOGFILE="$BASEDIR/log/_build.toolchain.log" export LOGFILE - NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}` - export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1} - ORG_PATH=$PATH - lfsmake1 ccache PASS=1 - lfsmake1 make PASS=1 - lfsmake1 binutils PASS=1 - lfsmake1 gcc PASS=1 - export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH - if [ "${MACHINE_TYPE}" = "arm" ]; then - lfsmake1 linux TOOLS=1 HEADERS=1 - else - lfsmake1 linux-libc-header - fi + + local ORG_PATH=$PATH + export PATH="/tools/ccache/bin:/tools/bin:$PATH" + lfsmake1 ccache PASS=1 + lfsmake1 binutils PASS=1 + lfsmake1 gcc PASS=1 + lfsmake1 linux TOOLS=1 KCFG="-headers" lfsmake1 glibc - lfsmake1 cleanup-toolchain PASS=1 - lfsmake1 fake-environ + lfsmake1 cleanup-toolchain PASS=1 + lfsmake1 binutils PASS=2 + lfsmake1 gcc PASS=2 + lfsmake1 ccache PASS=2 lfsmake1 tcl lfsmake1 expect lfsmake1 dejagnu - lfsmake1 gcc PASS=2 - lfsmake1 binutils PASS=2 - lfsmake1 ccache PASS=2 lfsmake1 ncurses lfsmake1 bash lfsmake1 bzip2 @@ -290,15 +278,15 @@ buildtoolchain() { lfsmake1 grep lfsmake1 gzip lfsmake1 m4 - lfsmake1 make PASS=2 + lfsmake1 make lfsmake1 patch lfsmake1 perl lfsmake1 sed lfsmake1 tar lfsmake1 texinfo - lfsmake1 util-linux - lfsmake1 strip - lfsmake1 cleanup-toolchain PASS=2 + lfsmake1 xz + lfsmake1 fake-environ + lfsmake1 cleanup-toolchain PASS=2 export PATH=$ORG_PATH }
@@ -306,17 +294,19 @@ buildbase() { LOGFILE="$BASEDIR/log/_build.base.log" export LOGFILE lfsmake2 stage2 - if [ "${MACHINE_TYPE}" = "arm" ]; then - lfsmake2 linux HEADERS=1 - else - lfsmake2 linux-libc-header - fi + lfsmake2 linux KCFG="-headers" lfsmake2 man-pages lfsmake2 glibc lfsmake2 tzdata - lfsmake2 cleanup-toolchain PASS=3 + lfsmake2 cleanup-toolchain PASS=3 + lfsmake2 zlib lfsmake2 binutils + lfsmake2 gmp + lfsmake2 gmp-compat + lfsmake2 mpfr + lfsmake2 file lfsmake2 gcc + lfsmake2 sed lfsmake2 berkeley lfsmake2 coreutils lfsmake2 iana-etc @@ -324,11 +314,12 @@ buildbase() { lfsmake2 bison lfsmake2 ncurses lfsmake2 procps - lfsmake2 sed lfsmake2 libtool lfsmake2 perl lfsmake2 readline - lfsmake2 zlib + lfsmake2 readline-compat + lfsmake2 pcre + lfsmake2 pcre-compat lfsmake2 autoconf lfsmake2 automake lfsmake2 bash @@ -336,7 +327,6 @@ buildbase() { lfsmake2 diffutils lfsmake2 e2fsprogs lfsmake2 ed - lfsmake2 file lfsmake2 findutils lfsmake2 flex lfsmake2 gawk @@ -348,7 +338,6 @@ buildbase() { lfsmake2 iproute2 lfsmake2 kbd lfsmake2 less - lfsmake2 libaal lfsmake2 make lfsmake2 man lfsmake2 mktemp @@ -356,7 +345,6 @@ buildbase() { lfsmake2 net-tools lfsmake2 patch lfsmake2 psmisc - lfsmake2 reiser4progs lfsmake2 shadow lfsmake2 sysklogd lfsmake2 sysvinit @@ -365,6 +353,7 @@ buildbase() { lfsmake2 udev lfsmake2 util-linux lfsmake2 vim + lfsmake2 xz lfsmake2 grub }
@@ -382,20 +371,18 @@ buildipfire() { ipfiremake pptp ipfiremake unzip ipfiremake which - ipfiremake xz ipfiremake linux-firmware + ipfiremake dvb-firmwares ipfiremake zd1211-firmware - ipfiremake fw_ath9k_htc + ipfiremake rpi-firmware ipfiremake u-boot
- # The xen and PAE kernels are only available for x86 if [ "${MACHINE_TYPE}" != "arm" ]; then - ipfiremake linux KCFG="-xen" - ipfiremake kqemu KCFG="-xen" + + # x86-xen (Legacy XEN) kernel build + ipfiremake linux2 KCFG="-xen" ipfiremake v4l-dvb KCFG="-xen" - ipfiremake madwifi KCFG="-xen" ipfiremake mISDN KCFG="-xen" - ipfiremake dahdi KCFG="-xen" KMOD=1 ipfiremake cryptodev KCFG="-xen" ipfiremake compat-wireless KCFG="-xen" ipfiremake r8169 KCFG="-xen" @@ -404,71 +391,60 @@ buildipfire() { ipfiremake e1000 KCFG="-xen" ipfiremake e1000e KCFG="-xen" ipfiremake igb KCFG="-xen" + + # x86-pae (Native and new XEN) kernel build ipfiremake linux KCFG="-pae" - ipfiremake kqemu KCFG="-pae" ipfiremake kvm-kmod KCFG="-pae" ipfiremake v4l-dvb KCFG="-pae" - ipfiremake madwifi KCFG="-pae" - ipfiremake alsa KCFG="-pae" KMOD=1 ipfiremake mISDN KCFG="-pae" - ipfiremake dahdi KCFG="-pae" KMOD=1 ipfiremake cryptodev KCFG="-pae" ipfiremake compat-wireless KCFG="-pae" -# ipfiremake r8169 KCFG="-pae" -# ipfiremake r8168 KCFG="-pae" -# ipfiremake r8101 KCFG="-pae" - ipfiremake e1000 KCFG="-pae" + ipfiremake r8169 KCFG="-pae" + ipfiremake r8168 KCFG="-pae" + ipfiremake r8101 KCFG="-pae" ipfiremake e1000e KCFG="-pae" ipfiremake igb KCFG="-pae" + + # x86 kernel build ipfiremake linux KCFG="" - ipfiremake v4l-dvb KCFG="" - ipfiremake kqemu KCFG="" ipfiremake kvm-kmod KCFG="" - ipfiremake madwifi KCFG="" - ipfiremake alsa KCFG="" KMOD=1 + ipfiremake v4l-dvb KCFG="" ipfiremake mISDN KCFG="" - ipfiremake dahdi KCFG="" KMOD=1 ipfiremake cryptodev KCFG="" ipfiremake compat-wireless KCFG="" -# ipfiremake r8169 KCFG="" -# ipfiremake r8168 KCFG="" -# ipfiremake r8101 KCFG="" - ipfiremake e1000 KCFG="" + ipfiremake r8169 KCFG="" + ipfiremake r8168 KCFG="" + ipfiremake r8101 KCFG="" ipfiremake e1000e KCFG="" ipfiremake igb KCFG="" + else - # arm-versatile kernel build - ipfiremake linux KCFG="-versatile" - ipfiremake v4l-dvb KCFG="-versatile" - ipfiremake kqemu KCFG="-versatile" - ipfiremake kvm-kmod KCFG="-versatile" - ipfiremake madwifi KCFG="-versatile" - ipfiremake mISDN KCFG="-versatile" - ipfiremake dahdi KCFG="-versatile" KMOD=1 - ipfiremake cryptodev KCFG="-versatile" - ipfiremake compat-wireless KCFG="-versatile" -# ipfiremake r8169 KCFG="-versatile" -# ipfiremake r8168 KCFG="-versatile" -# ipfiremake r8101 KCFG="-versatile" - ipfiremake e1000 KCFG="-versatile" - ipfiremake e1000e KCFG="-versatile" - ipfiremake igb KCFG="-versatile" - # arm-kirkwood kernel build + # arm-rpi (Raspberry Pi) kernel build + ipfiremake linux KCFG="-rpi" + ipfiremake v4l-dvb KCFG="-rpi" + ipfiremake mISDN KCFG="-rpi" NOPCI=1 + ipfiremake cryptodev KCFG="-rpi" + ipfiremake compat-wireless KCFG="-rpi" + + # arm-omap (Panda Board) kernel build + ipfiremake linux KCFG="-omap" + ipfiremake v4l-dvb KCFG="-omap" + ipfiremake mISDN KCFG="-omap" NOPCI=1 + ipfiremake cryptodev KCFG="-omap" + ipfiremake compat-wireless KCFG="-omap" + + # arm-kirkwood (Dreamplug, ICY-Box ...) kernel build ipfiremake linux KCFG="-kirkwood" ipfiremake v4l-dvb KCFG="-kirkwood" - ipfiremake kqemu KCFG="-kirkwood" - ipfiremake kvm-kmod KCFG="-kirkwood" - ipfiremake madwifi KCFG="-kirkwood" ipfiremake mISDN KCFG="-kirkwood" - ipfiremake dahdi KCFG="-kirkwood" KMOD=1 ipfiremake cryptodev KCFG="-kirkwood" ipfiremake compat-wireless KCFG="-kirkwood" -# ipfiremake r8169 KCFG="-kirkwood" -# ipfiremake r8168 KCFG="-kirkwood" -# ipfiremake r8101 KCFG="-kirkwood" - ipfiremake e1000 KCFG="-kirkwood" + ipfiremake r8169 KCFG="-kirkwood" + ipfiremake r8168 KCFG="-kirkwood" + ipfiremake r8101 KCFG="-kirkwood" ipfiremake e1000e KCFG="-kirkwood" ipfiremake igb KCFG="-kirkwood" + fi ipfiremake pkg-config ipfiremake linux-atm @@ -476,7 +452,6 @@ buildipfire() { ipfiremake dracut ipfiremake expat ipfiremake gdbm - ipfiremake gmp ipfiremake pam ipfiremake openssl ipfiremake curl @@ -534,16 +509,16 @@ buildipfire() { ipfiremake mtools ipfiremake initscripts ipfiremake whatmask + ipfiremake libmnl ipfiremake iptables + ipfiremake conntrack-tools ipfiremake libupnp ipfiremake ipaddr - ipfiremake iptstate ipfiremake iputils ipfiremake l7-protocols ipfiremake mISDNuser ipfiremake capi4k-utils ipfiremake hwdata - ipfiremake kudzu ipfiremake logrotate ipfiremake logwatch ipfiremake misc-progs @@ -579,12 +554,19 @@ buildipfire() { ipfiremake python-mechanize ipfiremake python-feedparser ipfiremake python-rssdler + ipfiremake libffi ipfiremake glib ipfiremake GeoIP ipfiremake fwhits ipfiremake noip_updater ipfiremake ntp ipfiremake openssh + ipfiremake fontconfig + ipfiremake dejavu-fonts-ttf + ipfiremake freefont + ipfiremake pixman + ipfiremake cairo + ipfiremake pango ipfiremake rrdtool ipfiremake setserial ipfiremake setup @@ -599,7 +581,6 @@ buildipfire() { ipfiremake traceroute ipfiremake vlan ipfiremake wireless - ipfiremake libsafe ipfiremake pakfire ipfiremake spandsp ipfiremake lzo @@ -609,13 +590,13 @@ buildipfire() { ipfiremake ghostscript ipfiremake foomatic ipfiremake hplip + ipfiremake cifs-utils ipfiremake samba ipfiremake sudo ipfiremake mc ipfiremake wget ipfiremake bridge-utils ipfiremake screen - ipfiremake hddtemp ipfiremake smartmontools ipfiremake htop ipfiremake postfix @@ -642,10 +623,8 @@ buildipfire() { ipfiremake cmake ipfiremake gnump3d ipfiremake libsigc++ - ipfiremake applejuice ipfiremake libtorrent ipfiremake rtorrent - ipfiremake ipfireseeder ipfiremake rsync ipfiremake tcpwrapper ipfiremake libevent @@ -661,7 +640,6 @@ buildipfire() { ipfiremake vsftpd ipfiremake strongswan ipfiremake lsof - ipfiremake centerim ipfiremake br2684ctl ipfiremake pcmciautils ipfiremake lm_sensors @@ -673,7 +651,6 @@ buildipfire() { ipfiremake fbset ipfiremake sdl ipfiremake qemu - ipfiremake qemu-kqemu ipfiremake sane ipfiremake netpbm ipfiremake phpSANE @@ -681,13 +658,10 @@ buildipfire() { ipfiremake nagios ipfiremake nagios_nrpe ipfiremake ebtables - ipfiremake fontconfig - ipfiremake freefont ipfiremake directfb ipfiremake dfb++ ipfiremake faad2 ipfiremake ffmpeg - ipfiremake videolan ipfiremake vdr ipfiremake w_scan ipfiremake icecast @@ -703,6 +677,7 @@ buildipfire() { ipfiremake iw ipfiremake wpa_supplicant ipfiremake hostapd + ipfiremake pycurl ipfiremake urlgrabber ipfiremake syslinux ipfiremake tftpd @@ -715,7 +690,6 @@ buildipfire() { ipfiremake netcat ipfiremake 7zip ipfiremake lynis - ipfiremake splix ipfiremake streamripper ipfiremake sshfs ipfiremake taglib @@ -737,7 +711,6 @@ buildipfire() { ipfiremake nut ipfiremake watchdog ipfiremake libpri - ipfiremake dahdi ipfiremake asterisk ipfiremake lcr ipfiremake usb_modeswitch @@ -763,18 +736,24 @@ buildipfire() { ipfiremake python-progressbar ipfiremake python-xattr ipfiremake intltool - ipfiremake pakfire3-deps ipfiremake transmission ipfiremake dpfhack ipfiremake lcd4linux ipfiremake mtr ipfiremake tcpick ipfiremake minidlna + ipfiremake acpid ipfiremake fping ipfiremake telnet + ipfiremake libgpg-error + ipfiremake libassuan + ipfiremake gpgme + ipfiremake pygpgme + ipfiremake pakfire3 ipfiremake stress ipfiremake libstatgrab ipfiremake sarg + ipfiremake fstrim echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild echo >> $BASEDIR/build/var/ipfire/firebuild @@ -784,11 +763,19 @@ buildipfire() { echo >> $BASEDIR/build/var/ipfire/firebuild cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild echo $PAKFIRE_CORE > $BASEDIR/build/opt/pakfire/db/core/mine - if [ "$GIT_BRANCH" = "master" -o "$GIT_BRANCH" = "next" ]; then - echo "$NAME $VERSION ($MACHINE) - Development Build: $GIT_LASTCOMMIT" > $BASEDIR/build/etc/system-release + if [ "$(git status -s | wc -l)" == "0" ]; then + GIT_STATUS="" else - echo "$NAME $VERSION ($MACHINE) - $GIT_BRANCH" > $BASEDIR/build/etc/system-release + GIT_STATUS="-dirty" fi + case "$GIT_BRANCH" in + core*|beta?|rc?) + echo "$NAME $VERSION ($MACHINE) - $GIT_BRANCH$GIT_STATUS" > $BASEDIR/build/etc/system-release + ;; + *) + echo "$NAME $VERSION ($MACHINE) - Development Build: $GIT_BRANCH/$GIT_LASTCOMMIT$GIT_STATUS" > $BASEDIR/build/etc/system-release + ;; + esac }
buildinstaller() { @@ -799,7 +786,6 @@ buildinstaller() { ipfiremake mbr ipfiremake memtest ipfiremake installer - cp -f $BASEDIR/doc/COPYING $BASEDIR/build/install/initrd/ installmake strip ipfiremake initrd } @@ -850,6 +836,8 @@ buildpackages() { if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]) && [ "${MACHINE_TYPE}" != "arm" ]; then cp -f $BASEDIR/packages/linux-xen-*.ipfire $LFS/install/packages/ cp -f $BASEDIR/packages/meta-linux-xen $LFS/install/packages/ + cp -f $BASEDIR/packages/linux-pae-*.ipfire $LFS/install/packages/ + cp -f $BASEDIR/packages/meta-linux-pae $LFS/install/packages/ ipfiremake xen-image rm -rf $LFS/install/packages/linux-xen-*.ipfire rm -rf $LFS/install/packages/meta-linux-xen @@ -886,7 +874,7 @@ ipfirepackages() { ipfiremake core-updates
local i - for i in $(find $BASEDIR/config/rootfiles/packages{${machine},} -maxdepth 1 -type f); do + for i in $(find $BASEDIR/config/rootfiles/packages{/${MACHINE},} -maxdepth 1 -type f); do i=$(basename ${i}) if [ -e $BASEDIR/lfs/$i ]; then ipfiredist $i @@ -1041,9 +1029,7 @@ toolchain) echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $MACHINE" | tee -a $LOGFILE test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \ - build/{bin,etc,usr/bin,usr/local} \ - build/tools/{bin,etc,*-linux-gnu*,include,lib,libexec,sbin,share,var} \ - log >> $LOGFILE + build/tools build/bin/sh log >> $LOGFILE md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \ > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.md5 stdumount diff --git a/src/fake-environ/Makefile b/src/fake-environ/Makefile index a75bdf2..3c3a3b4 100644 --- a/src/fake-environ/Makefile +++ b/src/fake-environ/Makefile @@ -19,7 +19,7 @@ all: $(LIB) $(CC) $(CFLAGS) -o $@ -c $<
$(LIB): $(OBJECTS) - $(CC) $(CFLAGS) -shared -o $@ $? -ldl + $(CC) $(CFLAGS) -shared -o $@ $? -ldl -static-libgcc
.PHONY: install install: all diff --git a/src/initscripts/init.d/acpid b/src/initscripts/init.d/acpid new file mode 100644 index 0000000..bca69c2 --- /dev/null +++ b/src/initscripts/init.d/acpid @@ -0,0 +1,44 @@ +#!/bin/sh +######################################################################## +# Begin $rc_base/init.d/acpid +# +# Description : ACPI daemon init script +# +######################################################################## + +. /etc/sysconfig/rc +. ${rc_functions} + +# Test if ACPI is present +if [ ! -d /proc/acpi ]; then + exit 0 +fi + +case "${1}" in + start) + boot_mesg "Starting ACPI daemon..." + loadproc /usr/sbin/acpid + ;; + + stop) + boot_mesg "Stopping ACPI daemon..." + killproc /usr/sbin/acpid + ;; + + restart) + ${0} stop + sleep 1 + ${0} start + ;; + + status) + statusproc /usr/sbin/acpid + ;; + + *) + echo "Usage: ${0} {start|stop|restart|status}" + exit 1 + ;; +esac + +# End $rc_base/init.d/acpid diff --git a/src/initscripts/init.d/asterisk b/src/initscripts/init.d/asterisk index b3a734b..aac9a63 100644 --- a/src/initscripts/init.d/asterisk +++ b/src/initscripts/init.d/asterisk @@ -23,7 +23,7 @@ case "${1}" in
stop) boot_mesg "Stopping Asterisk PBX..." - asterisk -rx "stop gracefully" >/dev/null 2>&1 + asterisk -rx "core stop gracefully" >/dev/null 2>&1 evaluate_retval ;;
diff --git a/src/initscripts/init.d/cleanfs b/src/initscripts/init.d/cleanfs index 855e63e..d526c35 100644 --- a/src/initscripts/init.d/cleanfs +++ b/src/initscripts/init.d/cleanfs @@ -90,6 +90,9 @@ case "${1}" in cd /var/lock && find . -type f ! -newer /proc -exec rm -f {} ; || failed=1
+ boot_mesg -n " /var/log/updatexlrator" ${NORMAL} + rm -f /var/log/updatexlrator/checkdeaddl.lck + boot_mesg " /var/run" ${NORMAL} cd /var/run && find . ! -type d ! -name utmp ! -newer /proc \ diff --git a/src/initscripts/init.d/cpufreq b/src/initscripts/init.d/cpufreq index 093b8b1..0d4cdb9 100644 --- a/src/initscripts/init.d/cpufreq +++ b/src/initscripts/init.d/cpufreq @@ -20,8 +20,8 @@ case "${1}" in boot_mesg -n "Starting cpufreq... "
# try cpufreq hardware depend modules - for i in $(find /lib/modules/$(uname -r)/kernel/arch/x86/kernel/cpu/cpufreq \ - ! -name speedstep-lib.ko ! -name p4-clockmod.ko | sort -d -r); do + for i in $(find /lib/modules/$(uname -r)/kernel/drivers/cpufreq \ + ! -name speedstep-lib.ko ! -name p4-clockmod.ko ! -name "cpufreq_*" ! -name mperf.ko | sort -d -r); do module=$(basename $i | cut -d. -f1); modprobe $module > /dev/null 2>&1; if [ ${?} = 0 ]; then diff --git a/src/initscripts/init.d/firewall b/src/initscripts/init.d/firewall index 7478978..e54eced 100644 --- a/src/initscripts/init.d/firewall +++ b/src/initscripts/init.d/firewall @@ -335,7 +335,9 @@ case "$1" in ;; restart) $0 stop + $0 stopovpn $0 start + $0 startovpn ;; *) echo "Usage: $0 {start|stop|reload|restart}" diff --git a/src/initscripts/init.d/firstsetup b/src/initscripts/init.d/firstsetup index b658cfa..0d3f448 100644 --- a/src/initscripts/init.d/firstsetup +++ b/src/initscripts/init.d/firstsetup @@ -1,4 +1,10 @@ #!/bin/bash + +# Exit if firstsetup was already done... +if [ -e /var/ipfire/main/firstsetup_ok ]; then + exit 0; +fi + # Edit the serial console entry at /etc/inittab matching to console parameter. ser_console() { while test x"$1" != x @@ -27,10 +33,19 @@ if [ "${?}" == "1" ]; then echo Setup not finished. Rebooting ... reboot -f fi + +# plan install pae kernel at next pakfire update if pae is supported +rm -rf /opt/pakfire/db/*/meta-linux-pae +if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then + echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae + echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae +fi + echo Restarting udev... killall udevd /sbin/udevd --daemon /sbin/udevadm trigger /sbin/udevadm settle /etc/init.d/sysklogd stop -rm -f /etc/rc.d/rcsysinit.d/S75firstsetup +touch /var/ipfire/main/firstsetup_ok diff --git a/src/initscripts/init.d/fsresize b/src/initscripts/init.d/fsresize index 8913eb9..3dbd1ad 100644 --- a/src/initscripts/init.d/fsresize +++ b/src/initscripts/init.d/fsresize @@ -2,11 +2,11 @@ ######################################################################## # Begin $rc_base/init.d/fsresize # -# Description : Resize the /var filesystem +# Description : Resize the root filesystem in the background # # Authors : Arne Fitzenreiter - arne_f@ipfire.org # -# Version : 1.00 +# Version : 1.01 # # Notes : # @@ -17,27 +17,24 @@
case "${1}" in start) - boot_mesg "Mounting root file system in read/write mode ..." - mount -o remount,rw / > /dev/null - evaluate_retval - - boot_mesg "Autoresize /var partition to use the whole drive ..." + boot_mesg "Background Autoresize root partition to use the whole drive" # Detect device ROOT=`mount | grep -m1 " / " | cut -d" " -f1`; DRV=${ROOT::`expr length $ROOT`-1} - boot_mesg " * check filesystem on ${DRV}4 before resize ..." - fsck -f -y ${DRV}4
- boot_mesg " * resize ${DRV}4 ..." - resize2fs -p ${DRV}4 - evaluate_retval + boot_mesg "resize ${DRV}3 ..." + nice -n 19 $0 background ${DRV}3 > /dev/null & + ;; + background) + resize2fs -p $2
# Erase symlink, it should run only once - rm -f /etc/rc.d/rcsysinit.d/S26fsresize + rm -f /etc/rc.d/rcsysinit.d/S42fsresize sync - exit 0; + ;; + *) echo "Usage: ${0} {start}" exit 1 diff --git a/src/initscripts/init.d/halt b/src/initscripts/init.d/halt index f3b016c..a3005c9 100644 --- a/src/initscripts/init.d/halt +++ b/src/initscripts/init.d/halt @@ -17,6 +17,20 @@
case "${1}" in stop) + sync && sync + boot_mesg "Remount root readonly..." + mount -f -o remount,ro / > /dev/null 2>&1 + evaluate_retval + + boot_mesg "Prepare for halt..." + sleep 2 + + #Disable all leds at shutdown + for led in $(ls /sys/class/leds); do + echo "none" > /sys/class/leds/$led/trigger + echo "0" > /sys/class/leds/$led/brightness + done + halt -d -f -i -p ;; *) diff --git a/src/initscripts/init.d/hostapd b/src/initscripts/init.d/hostapd index 3108339..c0b11e6 100644 --- a/src/initscripts/init.d/hostapd +++ b/src/initscripts/init.d/hostapd @@ -3,6 +3,7 @@ . ${rc_functions}
CHANNEL="05" +COUNTRY="00" TXPOWER="auto" INTERFACE="blue0" MACMODE="0" @@ -74,6 +75,10 @@ case "${1}" in fi fi
+ # First reset to World (00) and then set new country + /usr/sbin/iw reg set 00 + /usr/sbin/iw reg set $COUNTRY + /usr/sbin/iwconfig $INTERFACE channel $CHANNEL 2>/dev/null /usr/sbin/iwconfig $INTERFACE txpower $TXPOWER
diff --git a/src/initscripts/init.d/ipfireseeder b/src/initscripts/init.d/ipfireseeder deleted file mode 100644 index 5ce5cdf..0000000 --- a/src/initscripts/init.d/ipfireseeder +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/sh -######################################################################## -# Begin $rc_base/init.d/ipfireseeder -# -# Description : This is a script that starts the torrent-seeder on your -# local IPFire. -# -# Authors : Michael Tremer (mitch@ipfire.org) -# -# Version : 01.00 -# -# Notes : -# -######################################################################## - -. /etc/sysconfig/rc -. ${rc_functions} - -case "${1}" in - start) - boot_mesg "Starting IPFire Seeder..." - cd /var/log/seeder - # loadproc - screen -dmS seeder /usr/bin/rtorrent -o port_range=35700-35700 \ - -o download_rate=180 -o upload_rate=15 \ - -o min_peers=10 -o max_peers=30 \ - -o min_peers_seed=1 -o max_peers_seed=5 \ - -o max_uploads=3 \ - /var/ipfire/seeder/*.torrent & - evaluate_retval - if ! grep -q "35700:35700" /var/ipfire/xtaccess/config ; then - echo "tcp,0.0.0.0/0,35700:35700,on,0.0.0.0,IPFireSeeder" >> /var/ipfire/xtaccess/config - echo "udp,0.0.0.0/0,35700:35700,on,0.0.0.0,IPFireSeeder" >> /var/ipfire/xtaccess/config - /usr/local/bin/setxtaccess - fi - ;; - - stop) - boot_mesg "Stopping IPFire Seeder..." - killproc /usr/bin/rtorrent - ;; - - reload) - boot_mesg "Reloading IPFire Seeder..." - reloadproc /usr/bin/rtorrent - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - status) - statusproc /usr/bin/rtorrent - ;; - - *) - echo "Usage: ${0} {start|stop|reload|restart|status}" - exit 1 - ;; -esac - -# End $rc_base/init.d/ipfireseeder diff --git a/src/initscripts/init.d/lcr b/src/initscripts/init.d/lcr index 56a4553..dd72967 100644 --- a/src/initscripts/init.d/lcr +++ b/src/initscripts/init.d/lcr @@ -18,7 +18,7 @@ case "${1}" in start) boot_mesg "Starting Linux Call Router..." - nice --10 /usr/sbin/lcr fork >> /var/log/lcr 2>&1 + nice --10 /usr/sbin/lcr fork >> /var/log/lcr/console.log 2>&1 evaluate_retval ;;
diff --git a/src/initscripts/init.d/leds b/src/initscripts/init.d/leds index 4e678c5..3bd27a4 100644 --- a/src/initscripts/init.d/leds +++ b/src/initscripts/init.d/leds @@ -9,62 +9,103 @@ . /etc/sysconfig/rc . ${rc_functions}
+if [ -e /etc/init.d/leds.user ]; then + /etc/init.d/leds.user $* + exit ${?} +fi + # Load ethernet settings eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
-setup_red_modem() { - local led1=${1} - local led2=${2} - - modprobe ledtrig-netdev +if [ "${RED_DEV}" == "" ]; then + RED_DEV=ppp0 +fi
- local i - for i in ${led1} ${led2}; do - echo "netdev" > ${i}/trigger - echo "${RED_DEV}" > ${i}/device_name - done +# setup_netdev_trigger LED DEVICE MODE +setup_netdev_trigger () +{ + if [ -d "/sys/class/leds/$1" ]; then + modprobe -q ledtrig-netdev 2>&1 > /dev/null + echo "netdev" > /sys/class/leds/$1/trigger + echo "$2" > /sys/class/leds/$1/device_name + echo "$3 $4" > /sys/class/leds/$1/mode + fi +}
- echo "rx" > ${led1}/mode - echo "tx" > ${led2}/mode +# setup_netdev_trigger LED +setup_heartbeat_trigger () +{ + if [ -d "/sys/class/leds/$1" ]; then + modprobe -q ledtrig-heartbeat 2>&1 > /dev/null + echo "heartbeat" > /sys/class/leds/$1/trigger + fi }
-reset_trigger() { - [ -d "${1}" ] || return 0 - echo "none" > ${1}/trigger +# disable_led_trigger LED +disable_led_trigger () +{ + if [ -d "/sys/class/leds/$1" ]; then + echo "none" > /sys/class/leds/$1/trigger + echo "0" > /sys/class/leds/$1/brightness + fi }
-start_alix2() { - modprobe -q leds-alix2 &>/dev/null +case "${1}" in + start) + # Alix LED start + setup_heartbeat_trigger alix:1 + setup_netdev_trigger alix:2 ${RED_DEV} rx + setup_netdev_trigger alix:3 ${RED_DEV} tx
- local i - for i in 1 2 3; do - if [ ! -d "/sys/class/leds/alix:${i}" ]; then - return 1 - fi - done + # Dreamplug + setup_netdev_trigger dreamplug:green:wlan ${GREEN_DEV} tx rx + setup_netdev_trigger dreamplug:blue:wlanap ${BLUE_DEV} tx rx + setup_netdev_trigger dreamplug:blue:bluetooth ${RED_DEV} tx rx
- setup_red_modem /sys/class/leds/alix:2 /sys/class/leds/alix:3 -} + # Iomega iConnect start + setup_heartbeat_trigger iconnect:blue:otb + setup_netdev_trigger iconnect:blue:power ${RED_DEV} rx + setup_netdev_trigger iconnect:red:power ${RED_DEV} tx + setup_netdev_trigger iconnect:blue:usb_2 ${GREEN_DEV} tx rx + setup_netdev_trigger iconnect:blue:usb_3 ${BLUE_DEV} tx rx + setup_netdev_trigger iconnect:blue:usb_4 ${ORANGE_DEV} tx rx
-stop_alix2() { - local i - for i in 1 2 3; do - reset_trigger /sys/class/leds/alix:${i} - done -} + # ICY Box LED start + setup_netdev_trigger nas6210:red:power ${RED_DEV} tx rx + setup_netdev_trigger nas6210:red:usb_copy ${GREEN_DEV} tx rx + + exit 0 + ;; + + stop) + # Alix LED stop + disable_led_trigger alix:1 + disable_led_trigger alix:2 + disable_led_trigger alix:3 + + # Dreamplug + disable_led_trigger dreamplug:green:wlan + disable_led_trigger dreamplug:blue:wlanap + disable_led_trigger dreamplug:blue:bluetooth + + # Iomega iConnect stop (heartbeat will leave on) + disable_led_trigger iconnect:blue:power + disable_led_trigger iconnect:red:power + disable_led_trigger iconnect:blue:usb_2 + disable_led_trigger iconnect:blue:usb_3 + disable_led_trigger iconnect:blue:usb_4 + + # ICY Box LED stop + disable_led_trigger nas6210:red:power + disable_led_trigger nas6210:red:usb_copy
-case "${1}" in - start|stop) - for i in alix2; do - ${1}_${i} - done exit 0 - ;; + ;;
*) echo "Usage: ${0} {start|stop}" exit 1 - ;; + ;; esac
# End $rc_base/init.d/leds diff --git a/src/initscripts/init.d/minidlna b/src/initscripts/init.d/minidlna old mode 100755 new mode 100644 diff --git a/src/initscripts/init.d/mountfs b/src/initscripts/init.d/mountfs index 01ecafd..d4735d5 100644 --- a/src/initscripts/init.d/mountfs +++ b/src/initscripts/init.d/mountfs @@ -42,13 +42,17 @@ case "${1}" in stop) boot_mesg "Syncing discs..." sync && sync + sleep 2 + sync && sync evaluate_retval
boot_mesg "Unmounting all other currently mounted file systems..." umount -a -d -r &>/dev/null evaluate_retval - ;;
+ # mount /sys again for led control at halt + mount /sys 2>&1 >/dev/null + ;; *) echo "Usage: ${0} {start|stop}" exit 1 diff --git a/src/initscripts/init.d/network b/src/initscripts/init.d/network index 9de3994..9ff2200 100644 --- a/src/initscripts/init.d/network +++ b/src/initscripts/init.d/network @@ -28,6 +28,9 @@ init_networking() { (exit ${failed}) evaluate_retval
+ # Enable netfilter accounting + sysctl net.netfilter.nf_conntrack_acct=1 > /dev/null + if [ -e /var/ipfire/main/disable_nf_sip ]; then rmmod nf_nat_sip rmmod nf_conntrack_sip diff --git a/src/initscripts/init.d/network-vlans b/src/initscripts/init.d/network-vlans old mode 100755 new mode 100644 diff --git a/src/initscripts/init.d/networking/dhcpcd.exe b/src/initscripts/init.d/networking/dhcpcd.exe index d61c3d5..a7bad47 100644 --- a/src/initscripts/init.d/networking/dhcpcd.exe +++ b/src/initscripts/init.d/networking/dhcpcd.exe @@ -64,8 +64,8 @@ dhcpcd_up() echo -n "$new_ip_address" > /var/ipfire/red/local-ipaddress
#Get default gateway - grep -v " gateway$" /etc/hosts > /tmp/hosts - echo "$new_routers gateway" >> /tmp/hosts + grep -v -E "<gateway>" /etc/hosts > /tmp/hosts + echo "$new_routers gateway" >> /tmp/hosts mv /tmp/hosts /etc/hosts
fi diff --git a/src/initscripts/init.d/networking/red b/src/initscripts/init.d/networking/red index 2b342c8..421c6f6 100644 --- a/src/initscripts/init.d/networking/red +++ b/src/initscripts/init.d/networking/red @@ -120,8 +120,8 @@ case "${1}" in echo -n "${DEVICE}" > /var/ipfire/red/iface echo -n "${ADDRESS}" > /var/ipfire/red/local-ipaddress echo -n "${GATEWAY}" > /var/ipfire/red/remote-ipaddress - grep -v "gateway" /etc/hosts > /tmp/hosts - echo "$GATEWAY gateway" >> /tmp/hosts + grep -v -E "<gateway>" /etc/hosts > /tmp/hosts + echo "$GATEWAY gateway" >> /tmp/hosts mv /tmp/hosts /etc/hosts echo -n "${DNS1}" > /var/ipfire/red/dns1 echo -n "${DNS2}" > /var/ipfire/red/dns2 diff --git a/src/initscripts/init.d/networking/red.up/01-conntrack-cleanup b/src/initscripts/init.d/networking/red.up/01-conntrack-cleanup new file mode 100644 index 0000000..4bb43b9 --- /dev/null +++ b/src/initscripts/init.d/networking/red.up/01-conntrack-cleanup @@ -0,0 +1,25 @@ +#!/bin/bash +############################################################################ +# conntrack-cleanup - remove conntrack entries with the last red ipaddress # +############################################################################ +# + +curr_ip=`cat /var/ipfire/red/local-ipaddress 2>/dev/null` +last_ip=`cat /var/lock/last-ipaddress 2>/dev/null` + +if [ "$curr_ip" == "$last_ip" ]; then + exit 0 +fi + +if [ -z "$curr_ip" ]; then + echo ERROR: cannot read current IP. + exit 1 +fi + +if [ ! -z "$last_ip" ]; then + conntrack -D -s $last_ip 2>&1 > /dev/null + conntrack -D -d $last_ip 2>&1 > /dev/null + conntrack -D -r $last_ip 2>&1 > /dev/null + conntrack -D -q $last_ip 2>&1 > /dev/null +fi +echo $curr_ip > /var/lock/last-ipaddress diff --git a/src/initscripts/init.d/networking/red.up/98-leds b/src/initscripts/init.d/networking/red.up/98-leds new file mode 100644 index 0000000..825b46f --- /dev/null +++ b/src/initscripts/init.d/networking/red.up/98-leds @@ -0,0 +1,3 @@ +#!/bin/bash +/etc/init.d/leds start &>/dev/null +exit 0 diff --git a/src/initscripts/init.d/partresize b/src/initscripts/init.d/partresize index 8eddc46..33b5626 100644 --- a/src/initscripts/init.d/partresize +++ b/src/initscripts/init.d/partresize @@ -2,11 +2,11 @@ ######################################################################## # Begin $rc_base/init.d/partresize # -# Description : Resize the /var partition to the drivesize +# Description : Resize the root partition to the drivesize # # Authors : Arne Fitzenreiter - arne_f@ipfire.org # -# Version : 1.00 +# Version : 1.01 # # Notes : # @@ -24,10 +24,14 @@ case "${1}" in
# Detect device ROOT=`mount | grep -m1 " / " | cut -d" " -f1`; - DRV=${ROOT::`expr length $ROOT`-1} - - boot_mesg "Change Partition 4 to all free space ..." - echo -e 'd\n4\nn\np\n4\n\n\nw\nq\n' | fdisk ${DRV} + if [ "${ROOT:`expr length $ROOT`-2:1}" == "p" ]; then + DRV=${ROOT::`expr length $ROOT`-2} + else + DRV=${ROOT::`expr length $ROOT`-1} + fi + + boot_mesg "Change Partition ${DRV}3 to all free space ..." + echo -e 'd\n3\nn\np\n3\n\n\nw\nq\n' | fdisk ${DRV}
# Erase symlink, it should run only once rm -f /etc/rc.d/rcsysinit.d/S25partresize diff --git a/src/initscripts/init.d/reboot b/src/initscripts/init.d/reboot index fec0c1f..0602ac4 100644 --- a/src/initscripts/init.d/reboot +++ b/src/initscripts/init.d/reboot @@ -17,7 +17,12 @@
case "${1}" in stop) - boot_mesg "Restarting system..." + sync && sync + boot_mesg "Remount root readonly..." + mount -f -o remount,ro / > /dev/null 2>&1 + evaluate_retval + boot_mesg "Prepare for reboot..." + sleep 2 reboot -d -f -i ;;
diff --git a/src/initscripts/init.d/sendsignals b/src/initscripts/init.d/sendsignals index 1f5e07e..58c16c3 100644 --- a/src/initscripts/init.d/sendsignals +++ b/src/initscripts/init.d/sendsignals @@ -23,7 +23,7 @@ case "${1}" in
sleep ${KILLDELAY}
- if [ "${error_value}" = 0 ]; then + if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then echo_ok else echo_failure @@ -35,7 +35,7 @@ case "${1}" in
sleep ${KILLDELAY}
- if [ "${error_value}" = 0 ]; then + if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then echo_ok else echo_failure diff --git a/src/initscripts/init.d/setclock b/src/initscripts/init.d/setclock index 908d490..661e944 100644 --- a/src/initscripts/init.d/setclock +++ b/src/initscripts/init.d/setclock @@ -19,8 +19,26 @@ CLOCKPARAMS=
case ${1} in start) + boot_mesg "Setting system clock..." + + # udev not create the rtc symlink if rtc is in the kernel + if [ ! -e /dev/rtc ]; then + if [ -e /dev/rtc0 ]; then + ln -s rtc0 /dev/rtc + fi + fi + hwclock --hctosys ${CLOCKPARAMS} &>/dev/null + if [ ! ${?} == 0 ]; then + if [ -s /var/log/messages ]; then + boot_mesg -n "No RTC found, set time to last log accesstime ... " + DATE=`stat --format "%y" /var/log/messages | cut -d" " -f1` + TIME=`stat --format "%y" /var/log/messages | sed -e "s|..*||g" | cut -d" " -f2` + date -s $DATE > /dev/null + date -s $TIME + fi + fi evaluate_retval ;;
@@ -31,7 +49,7 @@ case ${1} in ;;
*) - echo "Usage: ${0} {start}" + echo "Usage: ${0} {start} {stop}" ;;
esac diff --git a/src/initscripts/init.d/tmpfs b/src/initscripts/init.d/tmpfs index 0e5a1e1..848dec6 100644 --- a/src/initscripts/init.d/tmpfs +++ b/src/initscripts/init.d/tmpfs @@ -43,10 +43,6 @@ case "$1" in mkdir -p /var/run/mysql chown mysql:mysql /var/run/mysql fi - if [ ! -e /var/run/pluto ]; then - mkdir -p /var/run/pluto - chmod 700 /var/run/pluto - fi if [ ! -e /var/run/saslauthd ]; then mkdir -p /var/run/saslauthd fi diff --git a/src/initscripts/init.d/transmission b/src/initscripts/init.d/transmission index 2ad7d48..6fd7cd5 100644 --- a/src/initscripts/init.d/transmission +++ b/src/initscripts/init.d/transmission @@ -18,12 +18,16 @@ case "${1}" in start) boot_mesg "Starting transmission daemon..." - transmission-daemon -g /etc/transmission + chown -R nobody /etc/transmission + chown -R nobody /var/transmission + sudo -u nobody transmission-daemon -g /etc/transmission + evaluate_retval ;;
stop) boot_mesg "Stopping transmission daemon..." killall transmission-daemon + evaluate_retval ;;
restart) diff --git a/src/initscripts/sysconfig/rc.local b/src/initscripts/sysconfig/rc.local index 5b89b82..83ea8e7 100644 --- a/src/initscripts/sysconfig/rc.local +++ b/src/initscripts/sysconfig/rc.local @@ -20,8 +20,3 @@ ############################################################################### # Used for private calls after boot # ############################################################################### - -# power button shutdown -if grep -q '^button' /proc/modules ; then - ( head -1 /proc/acpi/event | grep -q 'button/power PWRF' && poweroff ) & -fi diff --git a/src/install+setup/install/Makefile b/src/install+setup/install/Makefile index a3c95f7..89106de 100644 --- a/src/install+setup/install/Makefile +++ b/src/install+setup/install/Makefile @@ -21,10 +21,10 @@
CC = gcc CFLAGS = -Os -Wall -INCLUDE = -I/opt/i586-uClibc/include +INCLUDE =
LD = gcc -LDFLAGS = -L/install/lib +LDFLAGS = LIBS = -lnewt -lslang -lpci
COMPILE = $(CC) -c $(INCLUDE) $(CFLAGS) diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c index daa1c3f..14139b5 100644 --- a/src/install+setup/install/main.c +++ b/src/install+setup/install/main.c @@ -12,8 +12,9 @@ #include "install.h" #define _GNU_SOURCE
-#define INST_FILECOUNT 10700 +#define INST_FILECOUNT 14400 #define UNATTENDED_CONF "/cdrom/boot/unattended.conf" +#define LICENSE_FILE "/cdrom/COPYING"
#define EXT2 0 #define EXT3 1 @@ -34,6 +35,7 @@ extern char *en_tr[]; extern char *es_tr[]; extern char *de_tr[]; extern char *fr_tr[]; +extern char *nl_tr[]; extern char *pl_tr[]; extern char *ru_tr[];
@@ -42,11 +44,12 @@ int main(int argc, char *argv[])
char discl_msg[40000] = "Disclaimer\n";
- char *langnames[] = { "Deutsch", "English", "Français", "Español", "Polski", "Ð ÑÑÑкОй", NULL }; - char *shortlangnames[] = { "de", "en", "fr", "es", "pl", "ru", NULL }; - char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, pl_tr, ru_tr, NULL }; + char *langnames[] = { "Deutsch", "English", "Français", "Español", "Nederlands", "Polski", "Ð ÑÑÑкОй", NULL }; + char *shortlangnames[] = { "de", "en", "fr", "es", "nl", "pl", "ru", NULL }; + char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, nl_tr, pl_tr, ru_tr, NULL }; char hdletter; char harddrive[30], sourcedrive[5]; /* Device holder. */ + char harddrive_info[STRING_SIZE]; /* Additional infos about target */ struct devparams hdparams, cdromparams; /* Params for CDROM and HD */ int rc = 0; char commandstring[STRING_SIZE]; @@ -56,7 +59,6 @@ int main(int argc, char *argv[]) int choice; int i; int found = 0; - int firstrun = 0; char shortlangname[10]; char message[1000]; char title[STRING_SIZE]; @@ -120,19 +122,9 @@ int main(int argc, char *argv[]) } }
- // Read gpl ... - if (! (copying = fopen("/COPYING", "r"))) - { - fprintf(flog, "Couldn't open gpl (/COPYING)\n"); - sprintf(discl_msg, "Couldn't open gpl (/COPYING)\n"); - } else { - fread(discl_msg, 1, 40000, copying); - fclose(copying); - } - // Load common modules mysystem("/sbin/modprobe iso9660"); // CDROM - mysystem("/sbin/modprobe ext2"); // Boot patition +// mysystem("/sbin/modprobe ext2"); // Boot patition mysystem("/sbin/modprobe vfat"); // USB key /* German is the default */ @@ -157,11 +149,6 @@ int main(int argc, char *argv[]) if (!unattended) { sprintf(message, ctr[TR_WELCOME], NAME); newtWinMessage(title, ctr[TR_OK], message); - - if (disclaimerbox(discl_msg)==0) { - errorbox(ctr[TR_LICENSE_NOT_ACCEPTED]); - goto EXIT; - } }
mysystem("/bin/mountsource.sh"); @@ -178,7 +165,23 @@ int main(int argc, char *argv[]) fgets(sourcedrive, 5, handle); fprintf(flog, "Source drive: %s\n", sourcedrive); fclose(handle); - + + if (!unattended) { + // Read the license file. + if (!(copying = fopen(LICENSE_FILE, "r"))) { + sprintf(discl_msg, "Could not open license file: %s\n", LICENSE_FILE); + fprintf(flog, discl_msg); + } else { + fread(discl_msg, 1, 40000, copying); + fclose(copying); + + if (disclaimerbox(discl_msg)==0) { + errorbox(ctr[TR_LICENSE_NOT_ACCEPTED]); + goto EXIT; + } + } + } + i = 0; while (found == 0) { i++; @@ -201,13 +204,8 @@ int main(int argc, char *argv[]) found = 1; break; case 10: // No harddisk found - if (firstrun == 1) { - errorbox(ctr[TR_NO_HARDDISK]); - goto EXIT; - } - // Do this if the kudzu-scan fails... - runcommandwithstatus("/bin/probehw.sh deep-scan", ctr[TR_PROBING_HARDWARE]); - firstrun = 1; + errorbox(ctr[TR_NO_HARDDISK]); + goto EXIT; } }
@@ -217,6 +215,12 @@ int main(int argc, char *argv[]) } fgets(harddrive, 30, handle); fclose(handle); + if ((handle = fopen("/tmp/dest_device_info", "r")) == NULL) { + sprintf(harddrive_info, "%s", harddrive); + } + fgets(harddrive_info, 70, handle); + fclose(handle); + /* load unattended configuration */ if (unattended) { @@ -240,7 +244,7 @@ int main(int argc, char *argv[])
fprintf(flog, "Destination drive: %s\n", hdparams.devnode_disk); - sprintf(message, ctr[TR_PREPARE_HARDDISK], hdparams.devnode_disk); + sprintf(message, ctr[TR_PREPARE_HARDDISK], harddrive_info); if (unattended) { hardyn = 1; } else { @@ -327,7 +331,7 @@ int main(int argc, char *argv[]) /* Calculating the amount of free space */ - boot_partition = 20; /* in MB */ + boot_partition = 64; /* in MB */ system_partition = disk - ( root_partition + swap_file + boot_partition ); fprintf(flog, ", boot = %ld, swap = %ld, mylog = %ld, root = %ld\n", @@ -373,18 +377,18 @@ int main(int argc, char *argv[]) errorbox(ctr[TR_UNABLE_TO_PARTITION]); goto EXIT; } - + if (fstype == EXT2) { - mysystem("/sbin/modprobe ext2"); +// mysystem("/sbin/modprobe ext2"); sprintf(mkfscommand, "/sbin/mke2fs -T ext2"); } else if (fstype == REISERFS) { mysystem("/sbin/modprobe reiserfs"); sprintf(mkfscommand, "/sbin/mkreiserfs -f"); } else if (fstype == EXT3) { - mysystem("/sbin/modprobe ext3"); +// mysystem("/sbin/modprobe ext3"); sprintf(mkfscommand, "/sbin/mke2fs -T ext3"); } else if (fstype == EXT4) { - mysystem("/sbin/modprobe ext4"); +// mysystem("/sbin/modprobe ext4"); sprintf(mkfscommand, "/sbin/mke2fs -T ext4"); }
@@ -510,6 +514,15 @@ int main(int argc, char *argv[])
system("/bin/sed -e 's#/harddisk#/#g' -e 's#//#/#g' < /proc/mounts > /harddisk/etc/mtab");
+ /* + * Generate device.map to help grub finding the device to install itself on. + */ + FILE *f = NULL; + if (f = fopen("/harddisk/boot/grub/device.map", "w")) { + fprintf(f, "(hd0) %s\n", hdparams.devnode_disk); + fclose(f); + } + snprintf(commandstring, STRING_SIZE, "/usr/sbin/chroot /harddisk /usr/sbin/grub-install --no-floppy %s", hdparams.devnode_disk); if (runcommandwithstatus(commandstring, ctr[TR_INSTALLING_GRUB])) { diff --git a/src/install+setup/install/mountdest.sh b/src/install+setup/install/mountdest.sh index 00243a9..e28a068 100644 --- a/src/install+setup/install/mountdest.sh +++ b/src/install+setup/install/mountdest.sh @@ -1,8 +1,7 @@ -#!/bin/sh ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -19,131 +18,125 @@ # # ###############################################################################
+# Set histchars to an empty string so we are able to replace an +# exclamation mark. +histchars= + echo "Scanning for possible destination drives"
-# scan IDE devices -echo "--> IDE" -for DEVICE in $(kudzu -qps -t 30 -c HD -b IDE | grep device: | cut -d ' ' -f 2 | sort | uniq); do - if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is empty - SKIP" - continue - fi - mount /dev/${DEVICE}1 /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}1 is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - echo -n "$DEVICE" > /tmp/dest_device - echo "${DEVICE} - yes, it is our destination" - exit 0 # IDE / use DEVICE for grub - fi -done +function _mount() { + local what=${1} + + # Don't mount if the device does not exist. + [ -e "${what}" ] || return 1 + + mount ${what} /harddisk 2>/dev/null +} + +function _umount() { + umount -l /harddisk 2>/dev/null +} + +function check_source_drive() { + local device="/dev/${1}" + + local ret=1 + local dev + for dev in ${device} ${device}1; do + # Mount the device (if possible). + _mount ${dev} || continue
-# scan USB/SCSI devices -echo "--> USB/SCSI" -for DEVICE in $(kudzu -qps -t 30 -c HD -b SCSI | grep device: | cut -d ' ' -f 2 | sort | uniq); do - if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is empty - SKIP" - continue - fi - mount /dev/${DEVICE} /harddisk 2> /dev/null if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - mount /dev/${DEVICE}1 /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}1 is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - echo -n "$DEVICE" > /tmp/dest_device - echo "${DEVICE} - yes, it is our destination" - exit 1 # SCSI/USB (always use /dev/sda as bootdevicename) - fi + ret=0 fi -done
-# scan RAID devices -echo "--> RAID" -for DEVICE in $(kudzu -qps -t 30 -c HD -b RAID | grep device: | cut -d ' ' -f 2 | sort | uniq); do - if [ "$(grep ${DEVICE}p1 /proc/partitions)" = "" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}p1 is empty - SKIP" + _umount + + # Stop if the device has been detected as a source drive. + [ "${ret}" = "0" ] && break + done + + return ${ret} +} + +for path in /sys/block/*; do + device=$(basename ${path}) + + # Skip devices which cannot be used. + case "${device}" in + # Virtual devices. + loop*|ram*) continue - fi - mount /dev/${DEVICE}p1 /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}p1 is source drive - SKIP" + ;; + # Floppy. + fd*) continue - else - umount /harddisk 2> /dev/null - if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is empty - SKIP" - continue - fi - mount /dev/${DEVICE}1 /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}1 is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - mount /dev/${DEVICE} /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is source drive - SKIP" - continue - else - echo -n "$DEVICE" > /tmp/dest_device - echo "${DEVICE} - yes, it is our destination" - exit 2 # Raid ( /dev/device/diskx ) - fi - fi - fi -done - -# Virtio devices -echo "--> Virtio" -for DEVICE in vda vdb vdc vdd; do - if [ ! -e /dev/${DEVICE} ]; then + ;; + # Cd/Tape. + sr*) continue - else - if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is empty - SKIP" - continue - fi - mount /dev/${DEVICE} /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - mount /dev/${DEVICE}1 /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}1 is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - echo -n "$DEVICE" > /tmp/dest_device - echo "${DEVICE} - yes, it is our destination" - exit 0 # like ide / use device for grub - fi - fi + ;; + esac + + # Replace any exclamation marks (e.g. cciss!c0d0). + device_=${device//!//} + + # Guess if this could be a raid device. + for dev in ${device_} ${device_}p1; do + if [ -e "/dev/${dev}" ]; then + device=${dev} + break fi -done + done
+ # Check if user want skip by commandline + if [ "$(grep "skipdst=${device_}" /proc/cmdline)" ]; then + echo "${device_} was skipped via cmdline." + continue + fi + + echo "Checking ${device_}" + if check_source_drive ${device_}; then + echo " is source drive - skipping" + continue + fi + + device_size=$(cat /sys/block/${device}/size) + if [ "${device_size}" = "0" ]; then + echo " is empty - skipping" + continue + fi + + # Found it. + echo " OK, this is it..." + echo -n "${device_}" > /tmp/dest_device + + # Disk size to GiB. + device_size=$(( ${device_size} / 2097152 )) + + # Build string with drive details + device_str="/dev/${device_} - ${device_size} GiB -" + device_str="${device_str} $(cat /sys/block/${device}/device/vendor)" + device_str="${device_str} $(cat /sys/block/${device}/device/model)" + + # Remove all whitespace. + device_str=$(echo ${device_str}) + + echo -n "${device_str}" > /tmp/dest_device_info + + # Exit code table: + # 1: sda + # 2: RAID + # 10: nothing found + case "${device_}" in + *p1|*c0d0) + exit 2 + ;; + *) + exit 1 + ;; + esac +done
-exit 10 # Nothing found +# Nothing found. +exit 10 diff --git a/src/install+setup/install/mountsource.sh b/src/install+setup/install/mountsource.sh index 6813758..fbaec7e 100644 --- a/src/install+setup/install/mountsource.sh +++ b/src/install+setup/install/mountsource.sh @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -21,8 +21,9 @@
echo "Scanning source media"
-# scan CDROM devices -for DEVICE in $(kudzu -qps -t 30 -c CDROM | grep device: | cut -d ' ' -f 2 | sort | uniq); do +# scan all Block devices +for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} ;` +do mount /dev/${DEVICE} /cdrom 2> /dev/null if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then echo -n ${DEVICE} > /tmp/source_device @@ -34,9 +35,10 @@ for DEVICE in $(kudzu -qps -t 30 -c CDROM | grep device: | cut -d ' ' -f 2 | sor umount /cdrom 2> /dev/null done
-# scan HD device part1 (usb sticks, etc.) -for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort | uniq); do - for DEVICEP in $(ls /dev/${DEVICE}? | sed "s//dev///");do +# scan all Partitions on block devices +for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} ;` +do + for DEVICEP in $(ls /dev/${DEVICE}? | sed "s//dev///" 2> /dev/null);do mount /dev/${DEVICEP} /cdrom 2> /dev/null if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then echo -n ${DEVICEP} > /tmp/source_device @@ -49,17 +51,20 @@ for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort | done done
-# scan HD device unpart (usb sticks, etc.) -for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort | uniq); do - mount /dev/${DEVICE} /cdrom 2> /dev/null +# scan all Partitions on raid/mmc devices +for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} ;` +do + for DEVICEP in $(ls /dev/${DEVICE}p? | sed "s//dev///");do + mount /dev/${DEVICEP} /cdrom 2> /dev/null if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then - echo -n ${DEVICE} > /tmp/source_device - echo "Found tarball on ${DEVICE}" + echo -n ${DEVICEP} > /tmp/source_device + echo "Found tarball on ${DEVICEP}" exit 0 else - echo "Found no tarballs on ${DEVICE} - SKIP" + echo "Found no tarballs on ${DEVICEP} - SKIP" fi umount /cdrom 2> /dev/null + done done
exit 10 diff --git a/src/install+setup/install/probehw.sh b/src/install+setup/install/probehw.sh deleted file mode 100644 index c56462e..0000000 --- a/src/install+setup/install/probehw.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see http://www.gnu.org/licenses/. # -# # -############################################################################### - -echo "Detecting Hardware..." -for MODULE in $(kudzu -qps -t 30 | grep driver: | cut -d ' ' -f 2 | sort | uniq); do - if [ "${MODULE}" = "unknown" ] || \ - [ "${MODULE}" = "ignore" ] || \ - [ "${MODULE}" = "" ]; then - continue - fi - MODULE=$(find /lib/modules -name $(echo $MODULE | sed -e 's/[_-]/*/g')* 2>/dev/null) - [ "${MODULE}" == "" ] && continue - MODULE=$(basename $MODULE | cut -d. -f1 | head -1) - - if grep -Eqe "^${MODULE} " /proc/modules; then - continue - fi - echo -n "Loading ${MODULE}" - modprobe ${MODULE} >/dev/null 2>&1 - echo " --> ecode: $?" -done - -sleep 10 - -if [ $# -eq 0 ]; then - exit 0 -fi - -## If the autodetection fails we will try to load every module... -## Do this only when we want... - -for i in a b c d e f g; do - if [ ! -e /dev/sd$i ]; then - DEVICE="/dev/sd$i" - echo "Checking for: $DEVICE" - break - fi -done - -for MODULE in $(ls /lib/modules/*/kernel/drivers/ata && ls /lib/modules/*/kernel/drivers/scsi); do - MODULE=`basename $MODULE | awk -F. '{ print $1 }'` - - echo -n "Probing for $MODULE" - modprobe $MODULE >/dev/null 2>&1 - RETVAL=$? - echo " --> ecode: $RETVAL" - if [ "$RETVAL" -eq "0" ]; then - sleep 3 - if [ -e "$DEVICE" ]; then - break - fi - fi - -done - -sleep 5 - -exit 0 diff --git a/src/install+setup/install/probenic.sh b/src/install+setup/install/probenic.sh index 3072b01..fb428cc 100644 --- a/src/install+setup/install/probenic.sh +++ b/src/install+setup/install/probenic.sh @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# Copyright (C) 2011 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -40,10 +40,10 @@ for card in `ls /sys/class/net`; do if [ ! "$hwaddr" == "00:00:00:00:00:00" ];then if [ ! "$hwaddr" == "ff:ff:ff:ff:ff:ff" ];then
- driver=`grep PHYSDEVDRIVER= /sys/class/net/$card/uevent | cut -d"=" -f2` - type=`grep PHYSDEVBUS= /sys/class/net/$card/uevent | cut -d"=" -f2` + driver=`grep DRIVER= /sys/class/net/$card/device/uevent | cut -d"=" -f2` + type=`grep MODALIAS= /sys/class/net/$card/device/uevent | cut -d"=" -f2 | cut -d":" -f1`
- #Default if not avaiable in /sys/class/net + #Default if not available in /sys/class/net if [ "a$type" == "a" ]; then type="???" fi diff --git a/src/install+setup/libsmooth/Makefile b/src/install+setup/libsmooth/Makefile index bc09aa6..5ce869a 100644 --- a/src/install+setup/libsmooth/Makefile +++ b/src/install+setup/libsmooth/Makefile @@ -20,7 +20,7 @@
CC = gcc CFLAGS = -O2 -Wall -INCLUDE = -I/opt/i586-uClibc/include +INCLUDE =
LD = ld LDFLAGS = -i diff --git a/src/install+setup/libsmooth/main.c b/src/install+setup/libsmooth/main.c index 17adcc7..39cde7b 100644 --- a/src/install+setup/libsmooth/main.c +++ b/src/install+setup/libsmooth/main.c @@ -346,6 +346,7 @@ int replace(char filename1[], char *from, char *to) #include "lang_fr.c" #include "lang_pl.c" #include "lang_ru.c" + #include "lang_nl.c" #endif
// returns a pointer to the actual running version number of IPFire. diff --git a/src/install+setup/libsmooth/netstuff.c b/src/install+setup/libsmooth/netstuff.c index 46e49c0..de5c558 100644 --- a/src/install+setup/libsmooth/netstuff.c +++ b/src/install+setup/libsmooth/netstuff.c @@ -221,7 +221,14 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag, setnetaddress(kv, colour); result = 1; } - } + } + /* Workaround for a bug that dhcp radiobutton also end the dialog at arm + */ + else { + if (es.u.co != cancel) { + error = 1; + } + } } while (error);
@@ -322,7 +329,7 @@ void networkdialogcallbacktype(newtComponent cm, void *data) newtEntrySetFlags(dhcpforcemtuentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET); } newtRefresh(); - newtDrawForm(networkform); + newtDrawForm(networkform); }
int interfacecheck(struct keyvalue *kv, char *colour) diff --git a/src/install+setup/setup/main.c b/src/install+setup/setup/main.c index 65878f9..d078a52 100644 --- a/src/install+setup/setup/main.c +++ b/src/install+setup/setup/main.c @@ -26,6 +26,7 @@ extern char *fr_tr[]; extern char *es_tr[]; extern char *pl_tr[]; extern char *ru_tr[]; +extern char *nl_tr[];
int main(int argc, char *argv[]) { @@ -33,8 +34,8 @@ int main(int argc, char *argv[]) char *shortlangnames[] = { "en", NULL }; char **langtrs[] = { en_tr, NULL }; #else - char *shortlangnames[] = { "de", "en", "fr", "es", "pl", "ru", NULL }; - char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, pl_tr, ru_tr, NULL }; + char *shortlangnames[] = { "de", "en", "fr", "es", "nl", "pl", "ru", NULL }; + char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, nl_tr, pl_tr, ru_tr, NULL }; #endif int choice; char *sections[11]; /* need to fill this out AFTER knowning lang */ diff --git a/src/misc-progs/Makefile b/src/misc-progs/Makefile index 300e9ec..cc33266 100644 --- a/src/misc-progs/Makefile +++ b/src/misc-progs/Makefile @@ -29,22 +29,20 @@ SUID_PROGS = setdmzholes setportfw setxtaccess \ ipsecctrl timectrl dhcpctrl snortctrl \ applejuicectrl rebuildhosts backupctrl \ logwatch openvpnctrl outgoingfwctrl \ - wirelessctrl getipstat getiptstate qosctrl launch-ether-wake \ + wirelessctrl getipstat qosctrl launch-ether-wake \ redctrl syslogdctrl extrahdctrl sambactrl upnpctrl tripwirectrl \ smartctrl clamavctrl addonctrl pakfire mpfirectrl wlanapctrl \ setaliases urlfilterctrl updxlratorctrl fireinfoctrl rebuildroutes \ getconntracktable -SUID_UPDX = updxsetperms
install : all install -m 755 $(PROGS) /usr/local/bin install -m 4750 -g nobody $(SUID_PROGS) /usr/local/bin - install -m 4750 -g squid $(SUID_UPDX) /usr/local/bin
-all : $(PROGS) $(SUID_PROGS) $(SUID_UPDX) +all : $(PROGS) $(SUID_PROGS)
clean : - -rm -f $(PROGS) $(SUID_PROGS) $(SUID_UPDX) *.o core + -rm -f $(PROGS) $(SUID_PROGS) *.o core
######
@@ -58,8 +56,6 @@ $(SUID_PROGS): setuid.o
$(PROGS): setuid.o
-$(SUID_UPDX): setuid.o - logwatch: logwatch.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ logwatch.c setuid.o ../install+setup/libsmooth/varval.o -o $@
@@ -153,9 +149,6 @@ wlanapctrl: wlanapctrl.c setuid.o ../install+setup/libsmooth/varval.o setaliases: setaliases.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ setaliases.c setuid.o ../install+setup/libsmooth/varval.o -o $@
-updxsetperms: updxsetperms.c setuid.o ../install+setup/libsmooth/varval.o - $(COMPILE) -I../install+setup/libsmooth/ updxsetperms.c setuid.o ../install+setup/libsmooth/varval.o -o $@ - fireinfoctrl: fireinfoctrl.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ fireinfoctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
diff --git a/src/misc-progs/getiptstate.c b/src/misc-progs/getiptstate.c deleted file mode 100644 index 338b531..0000000 --- a/src/misc-progs/getiptstate.c +++ /dev/null @@ -1,24 +0,0 @@ -/* IPFire helper program - IPStat - * - * Get the list from IPTABLES -L - * - */ - -#include <stdio.h> -#include <string.h> -#include <unistd.h> -#include <stdlib.h> -#include <sys/types.h> -#include <fcntl.h> -#include "setuid.h" - - -int main(void) -{ - if (!(initsetuid())) - exit(1); - - safe_system("/usr/sbin/iptstate -1rbt"); - return 0; -} - diff --git a/src/misc-progs/ipsecctrl.c b/src/misc-progs/ipsecctrl.c index 0b05177..633004e 100644 --- a/src/misc-progs/ipsecctrl.c +++ b/src/misc-progs/ipsecctrl.c @@ -78,7 +78,6 @@ void ipsec_norules() { safe_system("/sbin/iptables -F IPSECINPUT"); safe_system("/sbin/iptables -F IPSECFORWARD"); safe_system("/sbin/iptables -F IPSECOUTPUT"); - }
/* @@ -87,8 +86,7 @@ void ipsec_norules() { int decode_line (char *s, char **key, char **name, - char **type, - char **interface + char **type ) { int count = 0; *key = NULL; @@ -108,8 +106,6 @@ int decode_line (char *s, *name = result; if (count == 4) *type = result; - if (count == 27) - *interface = result; count++; result = strsep(&s, ","); } @@ -128,11 +124,6 @@ int decode_line (char *s, return 0; }
- if (! (strcmp(*interface, "RED") == 0 || strcmp(*interface, "GREEN") == 0 || - strcmp(*interface, "ORANGE") == 0 || strcmp(*interface, "BLUE") == 0)) { - fprintf(stderr, "Bad interface name: %s\n", *interface); - return 0; - } //it's a valid & active line return 1; } @@ -140,69 +131,48 @@ int decode_line (char *s, /* issue ipsec commmands to turn on connection 'name' */ -void turn_connection_on (char *name, char *type) { -/* - Rename the connection and run ipsec update and rename it back to readd - a deleted connection. Because ipsec update ignores connection that have - not changed since last load. -*/ +void turn_connection_on(char *name, char *type) { + /* + * To bring up a connection, we need to reload the configuration + * and issue ipsec up afterwards. To make sure the connection + * is not established from the start, we bring it down in advance. + */ char command[STRING_SIZE]; - memset(command, 0, STRING_SIZE); - snprintf(command, STRING_SIZE - 1, - "sed -i -e 's|^conn %s$|conn %s-renamed|g' /var/ipfire/vpn/ipsec.conf >/dev/null", name, name); - safe_system(command);
- // Down and delete IKEv2 Tunnel before ipsec update + // Bring down the connection (if established). snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke down %s >/dev/null", name); + "/usr/sbin/ipsec down %s >/dev/null", name); safe_system(command); - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke delete %s >/dev/null", name); - safe_system(command); - - safe_system("/etc/rc.d/init.d/ipsec update >/dev/null");
- sleep(1); + // Reload the configuration into the daemon. + safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1");
- // Back to original name - snprintf(command, STRING_SIZE - 1, - "sed -i -e 's|^conn %s-renamed$|conn %s|g' /var/ipfire/vpn/ipsec.conf >/dev/null", name, name); - safe_system(command); - - // Down and delete IKEv2 Tunnel before ipsec update - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke down %s-renamed >/dev/null", name); - safe_system(command); - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke delete %s-renamed >/dev/null", name); - safe_system(command); - - safe_system("/etc/rc.d/init.d/ipsec update >/dev/null"); + // Bring the connection up again. + snprintf(command, STRING_SIZE - 1, + "/usr/sbin/ipsec up %s >/dev/null", name); + safe_system(command); } + /* issue ipsec commmands to turn off connection 'name' */ void turn_connection_off (char *name) { + /* + * To turn off a connection, all SAs must be turned down. + * After that, the configuration must be reloaded. + */ char command[STRING_SIZE]; - memset(command, 0, STRING_SIZE); - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec whack --delete --name %s >/dev/null", name); - safe_system(command); - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke down %s >/dev/null", name); - safe_system(command); + + // Bring down the connection. snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke delete %s >/dev/null", name); + "/usr/sbin/ipsec down %s >/dev/null", name); safe_system(command);
- safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null"); - safe_system("/usr/sbin/ipsec stroke rereadall >/dev/null"); - + // Reload, so the connection is dropped. + safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1"); }
- int main(int argc, char *argv[]) { - char configtype[STRING_SIZE]; char redtype[STRING_SIZE] = ""; struct keyvalue *kv = NULL; @@ -218,26 +188,15 @@ int main(int argc, char *argv[]) {
if (strcmp(argv[1], "I") == 0) { - safe_system("/usr/sbin/ipsec whack --status"); - safe_system("/usr/sbin/ipsec stroke status"); + safe_system("/usr/sbin/ipsec status"); exit(0); }
if (strcmp(argv[1], "R") == 0) { - safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null"); - safe_system("/usr/sbin/ipsec stroke rereadall >/dev/null"); + safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1"); exit(0); }
- /* Get vpnwatch pid */ - - - if ((argc == 2) && (file = fopen("/var/run/vpn-watch.pid", "r"))) { - safe_system("kill -9 $(cat /var/run/vpn-watch.pid)"); - safe_system("unlink /var/run/vpn-watch.pid"); - close(file); - } - /* FIXME: workaround for pclose() issue - still no real idea why * this is happening */ signal(SIGCHLD, SIG_DFL); @@ -245,16 +204,10 @@ int main(int argc, char *argv[]) { /* handle operations that doesn't need start the ipsec system */ if (argc == 2) { if (strcmp(argv[1], "D") == 0) { - /* Only shutdown pluto if it really is running */ - /* Get pluto pid */ - if (file = fopen("/var/run/pluto.pid", "r")) { - safe_system("/etc/rc.d/init.d/ipsec stop 2> /dev/null >/dev/null"); - close(file); - } + safe_system("/usr/sbin/ipsec stop >/dev/null 2>&1"); ipsec_norules(); exit(0); } - }
/* read vpn config */ @@ -300,97 +253,63 @@ int main(int argc, char *argv[]) { char if_blue[STRING_SIZE] = ""; char s[STRING_SIZE];
- if (!(file = fopen(CONFIG_ROOT "/vpn/config", "r"))) { - fprintf(stderr, "Couldn't open vpn settings file"); - exit(1); - } - while (fgets(s, STRING_SIZE, file) != NULL) { - char *key; - char *name; - char *type; - char *interface; - if (!decode_line(s,&key,&name,&type,&interface)) - continue; - /* search interface */ - if (!enable_red && strcmp (interface, "RED") == 0) { - // when RED is up, find interface name in special file - FILE *ifacefile = NULL; - if ((ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) { - if (fgets(if_red, STRING_SIZE, ifacefile)) { - if (if_red[strlen(if_red) - 1] == '\n') - if_red[strlen(if_red) - 1] = '\0'; - } - fclose (ifacefile); - - if (VALID_DEVICE(if_red)) - enable_red+=2; // present and running - } + // when RED is up, find interface name in special file + FILE *ifacefile = NULL; + if ((ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) { + if (fgets(if_red, STRING_SIZE, ifacefile)) { + if (if_red[strlen(if_red) - 1] == '\n') + if_red[strlen(if_red) - 1] = '\0'; } + fclose (ifacefile);
- if (!enable_green && strcmp (interface, "GREEN") == 0) { - enable_green = 1; - findkey(kv, "GREEN_DEV", if_green); - if (VALID_DEVICE(if_green)) - enable_green++; - else - fprintf(stderr, "IPSec enabled on green but green interface is invalid or not found\n"); - } + if (VALID_DEVICE(if_red)) + enable_red++; + }
- if (!enable_orange && strcmp (interface, "ORANGE") == 0) { - enable_orange = 1; - findkey(kv, "ORANGE_DEV", if_orange); - if (VALID_DEVICE(if_orange)) - enable_orange++; - else - fprintf(stderr, "IPSec enabled on orange but orange interface is invalid or not found\n"); - } + // Check if GREEN is enabled. + findkey(kv, "GREEN_DEV", if_green); + if (VALID_DEVICE(if_green)) + enable_green++;
- if (!enable_blue && strcmp (interface, "BLUE") == 0) { - enable_blue++; - findkey(kv, "BLUE_DEV", if_blue); - if (VALID_DEVICE(if_blue)) - enable_blue++; - else - fprintf(stderr, "IPSec enabled on blue but blue interface is invalid or not found\n"); + // Check if ORANGE is enabled. + findkey(kv, "ORANGE_DEV", if_orange); + if (VALID_DEVICE(if_orange)) + enable_orange++;
- } - } - fclose(file); - freekeyvalues(kv); + // Check if BLUE is enabled. + findkey(kv, "BLUE_DEV", if_blue); + if (VALID_DEVICE(if_blue)) + enable_blue++;
- // do nothing if something is in error condition - if ((enable_red==1) || (enable_green==1) || (enable_orange==1) || (enable_blue==1) ) - exit(1); + freekeyvalues(kv);
// exit if nothing to do - if ( (enable_red+enable_green+enable_orange+enable_blue) == 0 ) + if ((enable_red+enable_green+enable_orange+enable_blue) == 0) exit(0);
// open needed ports - // todo: read a nat_t indicator to allow or not openning UDP/4500 - if (enable_red==2) + if (enable_red > 0) open_physical(if_red, 4500);
- if (enable_green==2) + if (enable_green > 0) open_physical(if_green, 4500);
- if (enable_orange==2) + if (enable_orange > 0) open_physical(if_orange, 4500);
- if (enable_blue==2) + if (enable_blue > 0) open_physical(if_blue, 4500);
// start the system if ((argc == 2) && strcmp(argv[1], "S") == 0) { - safe_system("/etc/rc.d/init.d/ipsec restart >/dev/null"); - safe_system("/usr/local/bin/vpn-watch &"); + safe_system("/usr/sbin/ipsec restart >/dev/null"); exit(0); }
// it is a selective start or stop // second param is only a number 'key' if ((argc == 2) || strspn(argv[2], NUMBERS) != strlen(argv[2])) { - fprintf(stderr, "Bad arg\n"); + fprintf(stderr, "Bad arg: %s\n", argv[2]); usage(); exit(1); } @@ -404,26 +323,17 @@ int main(int argc, char *argv[]) { char *key; char *name; char *type; - char *interface; - if (!decode_line(s,&key,&name,&type,&interface)) + if (!decode_line(s,&key,&name,&type)) continue;
- // start/stop a vpn if belonging to specified interface - if (strcmp(argv[1], interface) == 0 ) { - if (strcmp(argv[2], "0")==0) - turn_connection_off (name); - else - turn_connection_on (name, type); - continue; - } // is it the 'key' requested ? if (strcmp(argv[2], key) != 0) continue; + // Start or Delete this Connection if (strcmp(argv[1], "S") == 0) turn_connection_on (name, type); - else - if (strcmp(argv[1], "D") == 0) + else if (strcmp(argv[1], "D") == 0) turn_connection_off (name); else { fprintf(stderr, "Bad command\n"); @@ -431,5 +341,6 @@ int main(int argc, char *argv[]) { } } fclose(file); + return 0; } diff --git a/src/misc-progs/rebuildhosts.c b/src/misc-progs/rebuildhosts.c index 0840887..e831858 100644 --- a/src/misc-progs/rebuildhosts.c +++ b/src/misc-progs/rebuildhosts.c @@ -41,11 +41,11 @@ void exithandler(void) int main(int argc, char *argv[]) { int fdpid; - char hostname[STRING_SIZE]; + char hostname[STRING_SIZE] = ""; char domainname[STRING_SIZE] = ""; char gateway[STRING_SIZE] = ""; char buffer[STRING_SIZE]; - char address[STRING_SIZE]; + char address[STRING_SIZE] = ""; char *active, *ip, *host, *domain; int pid;
diff --git a/src/misc-progs/setportfw.c b/src/misc-progs/setportfw.c index ca79218..a65aebd 100644 --- a/src/misc-progs/setportfw.c +++ b/src/misc-progs/setportfw.c @@ -45,11 +45,11 @@ int main(void) { FILE *ipfile = NULL, *ifacefile = NULL; int count; - char iface[STRING_SIZE]; - char locip[STRING_SIZE]; - char greenip[STRING_SIZE], greenmask[STRING_SIZE]; - char bluedev[STRING_SIZE], blueip[STRING_SIZE], bluemask[STRING_SIZE]; - char orangedev[STRING_SIZE], orangeip[STRING_SIZE], orangemask[STRING_SIZE]; + char iface[STRING_SIZE] =""; + char locip[STRING_SIZE] =""; + char greenip[STRING_SIZE] ="", greenmask[STRING_SIZE] =""; + char bluedev[STRING_SIZE] ="", blueip[STRING_SIZE] ="", bluemask[STRING_SIZE] =""; + char orangedev[STRING_SIZE] ="", orangeip[STRING_SIZE] ="", orangemask[STRING_SIZE] =""; char *protocol; char *srcip; char *locport; diff --git a/src/paks/applejuice/install.sh b/src/paks/applejuice/install.sh deleted file mode 100644 index 92cd67f..0000000 --- a/src/paks/applejuice/install.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -extract_files -sleep 60 && /etc/init.d/applejuice start & -ln -svf ../init.d/applejuice /etc/rc.d/rc0.d/K05applejuice -ln -svf ../init.d/applejuice /etc/rc.d/rc3.d/S98applejuice -ln -svf ../init.d/applejuice /etc/rc.d/rc6.d/K05applejuice -/etc/init.d/apache reload diff --git a/src/paks/applejuice/uninstall.sh b/src/paks/applejuice/uninstall.sh deleted file mode 100644 index e14e422..0000000 --- a/src/paks/applejuice/uninstall.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -/etc/init.d/applejuice stop -remove_files -rm -rf /etc/rc.d/rc*.d/*applejuice diff --git a/src/paks/applejuice/update.sh b/src/paks/applejuice/update.sh deleted file mode 100644 index 89c40d0..0000000 --- a/src/paks/applejuice/update.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -./uninstall.sh -./install.sh diff --git a/src/paks/elinks/install.sh b/src/paks/elinks/install.sh new file mode 100644 index 0000000..cd5a6ce --- /dev/null +++ b/src/paks/elinks/install.sh @@ -0,0 +1,34 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007-2013 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +extract_files +restore_backup ${NAME} + +# Suppress first welcome dialog by creating bookmark +# and history files for root +mkdir -p /root/.elinks +touch /root/.elinks/bookmarks +touch /root/.elinks/globhist + +start_service --background ${NAME} diff --git a/src/paks/elinks/uninstall.sh b/src/paks/elinks/uninstall.sh new file mode 100644 index 0000000..e296ccb --- /dev/null +++ b/src/paks/elinks/uninstall.sh @@ -0,0 +1,27 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007-2013 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +stop_service ${NAME} +make_backup ${NAME} +remove_files diff --git a/src/paks/elinks/update.sh b/src/paks/elinks/update.sh new file mode 100644 index 0000000..1ad1831 --- /dev/null +++ b/src/paks/elinks/update.sh @@ -0,0 +1,26 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007-2013 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +./uninstall.sh +./install.sh diff --git a/src/paks/files b/src/paks/files index ce88096..673a17d 100644 --- a/src/paks/files +++ b/src/paks/files @@ -1,4 +1,4 @@ -files +files.tar.xz install.sh uninstall.sh update.sh diff --git a/src/paks/ipfireseeder/install.sh b/src/paks/ipfireseeder/install.sh deleted file mode 100644 index 81abf5a..0000000 --- a/src/paks/ipfireseeder/install.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -extract_files -ln -s ../../ipfireseeder /etc/rc.d/init.d/networking/red.up/90-S-ipfireseeder -ln -s ../../ipfireseeder /etc/rc.d/init.d/networking/red.down/01-K-ipfireseeder - -start_service --delay 90 --background ${NAME} diff --git a/src/paks/ipfireseeder/uninstall.sh b/src/paks/ipfireseeder/uninstall.sh deleted file mode 100644 index 888c701..0000000 --- a/src/paks/ipfireseeder/uninstall.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -stop_service ${NAME} - -#prevent erasing the downloaded data at uninstall/update -cat /opt/pakfire/db/rootfiles/ipfireseeder | \ - grep -v "var/ipfire/seeder" | \ - grep -v "var/log/seeder" > /opt/pakfire/db/rootfiles/ipfireseeder.tmp -mv /opt/pakfire/db/rootfiles/ipfireseeder.tmp \ - /opt/pakfire/db/rootfiles/ipfireseeder - -grep -v "IPFireSeeder" /var/ipfire/xtaccess/config > /var/ipfire/xtaccess/config.tmp -mv /var/ipfire/xtaccess/config.tmp /var/ipfire/xtaccess/config -chown nobody:nobody /var/ipfire/xtaccess/config -chmod 644 /var/ipfire/xtaccess/config - -rm -f /etc/rc.d/rc?.d/???ipfireseeder -rm -f /etc/rc.d/init.d/networking/red.*/??-?-ipfireseeder - -remove_files diff --git a/src/paks/ipfireseeder/update.sh b/src/paks/ipfireseeder/update.sh deleted file mode 100644 index 89c40d0..0000000 --- a/src/paks/ipfireseeder/update.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire is free software; you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation; either version 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team info@ipfire.org. # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -./uninstall.sh -./install.sh diff --git a/src/paks/linux-pae/install.sh b/src/paks/linux-pae/install.sh index 60f8bbb..ab74051 100644 --- a/src/paks/linux-pae/install.sh +++ b/src/paks/linux-pae/install.sh @@ -17,7 +17,7 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2007-2011 IPFire-Team info@ipfire.org. # +# Copyright (C) 2007-2013 IPFire-Team info@ipfire.org. # # # ############################################################################ # @@ -48,13 +48,13 @@ let ENTRY=$_+1 if [ "$(grep "^serial" /boot/grub/grub.conf)" == "" ]; then console="" else - console=" console=ttyS0,38400n8" + console=" console=ttyS0,115200n8" fi
# # backup grub.conf # -cp /boot/grub/grub.conf /boot/grub/grub-backup-$KVER-pae.conf +cp /boot/grub/grub.conf /boot/grub/grub-backup-$KVER-pae_install.conf # # Add new Entry to grub.conf # @@ -71,3 +71,10 @@ echo " savedefault $ENTRY" >> /boot/grub/grub.conf # Create new module depency # depmod -a $KVER-ipfire-pae + +# Default pae and request a reboot if pae is supported +if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then + grub-set-default $ENTRY + touch /var/run/need_reboot +fi +sync && sync \ No newline at end of file diff --git a/src/paks/linux-pae/uninstall.sh b/src/paks/linux-pae/uninstall.sh index 959fdb1..69c7e56 100644 --- a/src/paks/linux-pae/uninstall.sh +++ b/src/paks/linux-pae/uninstall.sh @@ -17,10 +17,15 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2010 IPFire-Team info@ipfire.org. # +# Copyright (C) 2007-2013 IPFire-Team info@ipfire.org. # # # ############################################################################ # . /opt/pakfire/lib/functions.sh remove_files -#mv -f /boot/grub/grub-backup-2.6.32.*-pae.conf /boot/grub/grub.conf +rm -rf /boot/ipfirerd-*-pae.img +rm -rf /lib/modules/*-ipfire-pae +cp /boot/grub/grub.conf /boot/grub/grub-backup-pae_uninstall.conf +sed -i "/title IPFire (PAE-Kernel)/,+3d" /boot/grub/grub.conf +grub-set-default 1 +sync && sync diff --git a/src/paks/linux-pae/update.sh b/src/paks/linux-pae/update.sh index 2878dfb..1ad1831 100644 --- a/src/paks/linux-pae/update.sh +++ b/src/paks/linux-pae/update.sh @@ -17,11 +17,10 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2007-2011 IPFire-Team info@ipfire.org. # +# Copyright (C) 2007-2013 IPFire-Team info@ipfire.org. # # # ############################################################################ # . /opt/pakfire/lib/functions.sh -#Don't remove old pae kernel at update -#./uninstall.sh +./uninstall.sh ./install.sh diff --git a/src/paks/linux-xen/install.sh b/src/paks/linux-xen/install.sh index 70efa9d..39ac87c 100644 --- a/src/paks/linux-xen/install.sh +++ b/src/paks/linux-xen/install.sh @@ -24,7 +24,7 @@ . /opt/pakfire/lib/functions.sh extract_files # -KVER=xxxKVERxxx +KVER=2.6.32.60 ROOT=`mount | grep " / " | cut -d" " -f1` ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2` if [ ! -z $ROOTUUID ]; then @@ -51,7 +51,7 @@ cp /boot/grub/grub.conf /boot/grub/grub-backup-$KVER-xen.conf # Add new Entry to grub.conf # echo "" >> /boot/grub/grub.conf -echo "title IPFire (XEN-Kernel $KVER)" >> /boot/grub/grub.conf +echo "title IPFire (legacy XEN-Kernel $KVER)" >> /boot/grub/grub.conf echo " kernel /vmlinuz-$KVER-ipfire-xen root=$ROOT panic=10 console=xvc0 $MOUNT" >> /boot/grub/grub.conf echo " initrd /ipfirerd-$KVER-xen.img" >> /boot/grub/grub.conf echo "# savedefault $ENTRY" >> /boot/grub/grub.conf diff --git a/src/patches/bash-3.1-fixes-8.patch b/src/patches/bash-3.1-fixes-8.patch deleted file mode 100644 index 449f076..0000000 --- a/src/patches/bash-3.1-fixes-8.patch +++ /dev/null @@ -1,723 +0,0 @@ -Submitted By: Jeremy Huntwork (jhuntwork at linuxfromscratch dot org) -Date: 2006-04-11 -Initial Package Version: 3.1 -Origin: http://ftp.gnu.org/gnu/bash/bash-3.1-patches/ -Upstream Status: From Upstream -Description: Contains patches 001-017 from upstream - -diff -Naur bash-3.1.orig/arrayfunc.c bash-3.1/arrayfunc.c ---- bash-3.1.orig/arrayfunc.c 2005-07-04 17:25:58.000000000 -0700 -+++ bash-3.1/arrayfunc.c 2006-04-19 15:59:29.000000000 -0700 -@@ -592,11 +592,7 @@ - exp = (char *)xmalloc (len); - strncpy (exp, s, len - 1); - exp[len - 1] = '\0'; --#if 0 -- t = expand_string_to_string (exp, 0); --#else -- t = expand_string_to_string (exp, Q_DOUBLE_QUOTES); --#endif -+ t = expand_arith_string (exp, 0); - this_command_name = (char *)NULL; - val = evalexp (t, &expok); - free (t); -diff -Naur bash-3.1.orig/doc/bash.1 bash-3.1/doc/bash.1 ---- bash-3.1.orig/doc/bash.1 2005-10-12 08:40:52.000000000 -0700 -+++ bash-3.1/doc/bash.1 2006-04-19 15:58:34.000000000 -0700 -@@ -6,12 +6,12 @@ - ." Case Western Reserve University - ." chet@po.cwru.edu - ." --." Last Change: Sat Aug 27 13:28:44 EDT 2005 -+." Last Change: Wed Dec 28 19:58:45 EST 2005 - ." - ." bash_builtins, strip all but Built-Ins section - .if \n(zZ=1 .ig zZ - .if \n(zY=1 .ig zY --.TH BASH 1 "2005 Aug 27" "GNU Bash-3.1-beta1" -+.TH BASH 1 "2005 Dec 28" "GNU Bash-3.1" - ." - ." There's some problem with having a `@' - ." in a tagged paragraph with the BSD man macros. -@@ -677,8 +677,8 @@ - .B nocasematch - is enabled, the match is performed without regard to the case - of alphabetic characters. --The return value is 0 if the string matches or does not match --the pattern, respectively, and 1 otherwise. -+The return value is 0 if the string matches (\fB==\fP) or does not match -+(\fB!=\fP) the pattern, and 1 otherwise. - Any part of the pattern may be quoted to force it to be matched as a - string. - .if t .sp 0.5 -@@ -807,6 +807,12 @@ - as for pathname expansion (see - .B Pathname Expansion - below). -+The \fIword\fP is expanded using tilde -+expansion, parameter and variable expansion, arithmetic substituion, -+command substitution, process substitution and quote removal. -+Each \fIpattern\fP examined is expanded using tilde -+expansion, parameter and variable expansion, arithmetic substituion, -+command substitution, and process substitution. - If the shell option - .B nocasematch - is enabled, the match is performed without regard to the case -@@ -8484,7 +8490,7 @@ - returns true if any of the arguments are found, false if - none are found. - .TP --\fBulimit\fP [\fB-SHacdflmnpstuv\fP [\fIlimit\fP]] -+\fBulimit\fP [\fB-SHacdfilmnpqstuvx\fP [\fIlimit\fP]] - Provides control over the resources available to the shell and to - processes started by it, on systems that allow such control. - The \fB-H\fP and \fB-S\fP options specify that the hard or soft limit is -@@ -8523,6 +8529,9 @@ - .B -f - The maximum size of files created by the shell - .TP -+.B -i -+The maximum number of pending signals -+.TP - .B -l - The maximum size that may be locked into memory - .TP -@@ -8536,6 +8545,9 @@ - .B -p - The pipe size in 512-byte blocks (this may not be set) - .TP -+.B -q -+The maximum number of bytes in POSIX message queues -+.TP - .B -s - The maximum stack size - .TP -@@ -8547,6 +8559,9 @@ - .TP - .B -v - The maximum amount of virtual memory available to the shell -+.TP -+.B -x -+The maximum number of file locks - .PD - .PP - If -diff -Naur bash-3.1.orig/doc/bashref.texi bash-3.1/doc/bashref.texi ---- bash-3.1.orig/doc/bashref.texi 2005-10-03 12:07:21.000000000 -0700 -+++ bash-3.1/doc/bashref.texi 2006-04-19 15:58:34.000000000 -0700 -@@ -961,8 +961,8 @@ - (see the description of @code{shopt} in @ref{Bash Builtins}) - is enabled, the match is performed without regard to the case - of alphabetic characters. --The return value is 0 if the string matches or does not match --the pattern, respectively, and 1 otherwise. -+The return value is 0 if the string matches (@samp{==}) or does not -+match (@samp{!=})the pattern, and 1 otherwise. - Any part of the pattern may be quoted to force it to be matched as a - string. - -@@ -2598,7 +2598,7 @@ - Builtin commands are necessary to implement functionality impossible - or inconvenient to obtain with separate utilities. - --This section briefly the builtins which Bash inherits from -+This section briefly describes the builtins which Bash inherits from - the Bourne Shell, as well as the builtin commands which are unique - to or have been extended in Bash. - -@@ -3833,7 +3833,7 @@ - @item ulimit - @btindex ulimit - @example --ulimit [-acdflmnpstuvSH] [@var{limit}] -+ulimit [-acdfilmnpqstuvxSH] [@var{limit}] - @end example - @code{ulimit} provides control over the resources available to processes - started by the shell, on systems that allow such control. If an -@@ -3857,6 +3857,9 @@ - @item -f - The maximum size of files created by the shell. - -+@item -i -+The maximum number of pending signals. -+ - @item -l - The maximum size that may be locked into memory. - -@@ -3869,6 +3872,9 @@ - @item -p - The pipe buffer size. - -+@item -q -+The maximum number of bytes in POSIX message queues. -+ - @item -s - The maximum stack size. - -@@ -3881,6 +3887,9 @@ - @item -v - The maximum amount of virtual memory available to the process. - -+@item -x -+The maximum number of file locks. -+ - @end table - - If @var{limit} is given, it is the new value of the specified resource; -@@ -4089,8 +4098,8 @@ - Print shell input lines as they are read. - - @item -x --Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP --commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands -+Print a trace of simple commands, @code{for} commands, @code{case} -+commands, @code{select} commands, and arithmetic @code{for} commands - and their arguments or associated word lists after they are - expanded and before they are executed. The value of the @env{PS4} - variable is expanded and the resultant value is printed before -diff -Naur bash-3.1.orig/doc/version.texi bash-3.1/doc/version.texi ---- bash-3.1.orig/doc/version.texi 2005-09-20 11:52:56.000000000 -0700 -+++ bash-3.1/doc/version.texi 2006-04-19 15:58:34.000000000 -0700 -@@ -2,9 +2,9 @@ - Copyright (C) 1988-2005 Free Software Foundation, Inc. - @end ignore - --@set LASTCHANGE Mon Sep 5 11:47:04 EDT 2005 -+@set LASTCHANGE Fri Dec 30 10:50:51 EST 2005 - --@set EDITION 3.1-beta1 --@set VERSION 3.1-beta1 --@set UPDATED 5 September 2005 --@set UPDATED-MONTH September 2005 -+@set EDITION 3.1 -+@set VERSION 3.1 -+@set UPDATED 30 December 2005 -+@set UPDATED-MONTH December 2005 -diff -Naur bash-3.1.orig/jobs.c bash-3.1/jobs.c ---- bash-3.1.orig/jobs.c 2005-11-11 20:13:27.000000000 -0800 -+++ bash-3.1/jobs.c 2006-04-19 15:58:34.000000000 -0700 -@@ -619,8 +619,11 @@ - * once in the parent and once in each child. This is where - * the parent gives it away. - * -+ * Don't give the terminal away if this shell is an asynchronous -+ * subshell. -+ * - */ -- if (job_control && newjob->pgrp) -+ if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0) - give_terminal_to (newjob->pgrp, 0); - } - } -@@ -844,9 +847,10 @@ - realloc_jobs_list () - { - sigset_t set, oset; -- int nsize, i, j; -+ int nsize, i, j, ncur, nprev; - JOB **nlist; - -+ ncur = nprev = NO_JOB; - nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); - nsize *= JOB_SLOTS; - i = js.j_njobs % JOB_SLOTS; -@@ -854,17 +858,51 @@ - nsize += JOB_SLOTS; - - BLOCK_CHILD (set, oset); -- nlist = (JOB **) xmalloc (nsize * sizeof (JOB *)); -+ nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *)); -+ - for (i = j = 0; i < js.j_jobslots; i++) - if (jobs[i]) -- nlist[j++] = jobs[i]; -+ { -+ if (i == js.j_current) -+ ncur = j; -+ if (i == js.j_previous) -+ nprev = j; -+ nlist[j++] = jobs[i]; -+ } -+ -+#if defined (DEBUG) -+ itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize); -+ itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0); -+ itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0); -+#endif - - js.j_firstj = 0; -- js.j_lastj = (j > 0) ? j - 1: 0; -+ js.j_lastj = (j > 0) ? j - 1 : 0; -+ js.j_njobs = j; - js.j_jobslots = nsize; - -- free (jobs); -- jobs = nlist; -+ /* Zero out remaining slots in new jobs list */ -+ for ( ; j < nsize; j++) -+ nlist[j] = (JOB *)NULL; -+ -+ if (jobs != nlist) -+ { -+ free (jobs); -+ jobs = nlist; -+ } -+ -+ if (ncur != NO_JOB) -+ js.j_current = ncur; -+ if (nprev != NO_JOB) -+ js.j_previous = nprev; -+ -+ /* Need to reset these */ -+ if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj) -+ reset_current (); -+ -+#ifdef DEBUG -+ itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous); -+#endif - - UNBLOCK_CHILD (oset); - } -@@ -1655,7 +1693,7 @@ - In this case, we don't want to give the terminal to the - shell's process group (we could be in the middle of a - pipeline, for example). */ -- if (async_p == 0 && pipeline_pgrp != shell_pgrp) -+ if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0)) - give_terminal_to (pipeline_pgrp, 0); - - #if defined (PGRP_PIPE) -@@ -2198,7 +2236,11 @@ - /* This is possibly a race condition -- should it go in stop_pipeline? */ - wait_sigint_received = 0; - if (job_control == 0) -- old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); -+ { -+ old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); -+ if (old_sigint_handler == SIG_IGN) -+ set_signal_handler (SIGINT, old_sigint_handler); -+ } - - termination_state = last_command_exit_value; - -diff -Naur bash-3.1.orig/lib/glob/glob.c bash-3.1/lib/glob/glob.c ---- bash-3.1.orig/lib/glob/glob.c 2005-03-24 09:42:27.000000000 -0800 -+++ bash-3.1/lib/glob/glob.c 2006-04-19 15:58:34.000000000 -0700 -@@ -360,6 +360,7 @@ - count = lose = skip = 0; - - firstmalloc = 0; -+ nalloca = 0; - - /* If PAT is empty, skip the loop, but return one (empty) filename. */ - if (pat == 0 || *pat == '\0') -@@ -546,6 +547,8 @@ - firstmalloc = 0; - tmplink = lastlink; - } -+ else -+ tmplink = 0; - free (lastlink->name); - lastlink = lastlink->next; - FREE (tmplink); -diff -Naur bash-3.1.orig/lib/glob/sm_loop.c bash-3.1/lib/glob/sm_loop.c ---- bash-3.1.orig/lib/glob/sm_loop.c 2005-10-16 18:21:04.000000000 -0700 -+++ bash-3.1/lib/glob/sm_loop.c 2006-04-19 15:58:34.000000000 -0700 -@@ -638,12 +638,13 @@ - CHAR *psub; /* pointer to sub-pattern */ - CHAR *pnext; /* pointer to next sub-pattern */ - CHAR *srest; /* pointer to rest of string */ -- int m1, m2; -+ int m1, m2, xflags; /* xflags = flags passed to recursive matches */ - - #if DEBUG_MATCHING - fprintf(stderr, "extmatch: xc = %c\n", xc); - fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se); - fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe); -+fprintf(stderr, "extmatch: flags = %d\n", flags); - #endif - - prest = PATSCAN (p + (*p == L('(')), pe, 0); /* ) */ -@@ -677,8 +678,12 @@ - string matches the rest of the pattern. Also handle - multiple matches of the pattern. */ - if (m1) -- m2 = (GMATCH (srest, se, prest, pe, flags) == 0) || -- (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0); -+ { -+ /* if srest > s, we are not at start of string */ -+ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; -+ m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) || -+ (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0); -+ } - if (m1 && m2) - return (0); - } -@@ -704,8 +709,10 @@ - srest = (prest == pe) ? se : s; - for ( ; srest <= se; srest++) - { -+ /* if srest > s, we are not at start of string */ -+ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; - if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && -- GMATCH (srest, se, prest, pe, flags) == 0) -+ GMATCH (srest, se, prest, pe, xflags) == 0) - return (0); - } - if (pnext == prest) -@@ -726,7 +733,9 @@ - if (pnext == prest) - break; - } -- if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0) -+ /* if srest > s, we are not at start of string */ -+ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; -+ if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0) - return (0); - } - return (FNM_NOMATCH); -diff -Naur bash-3.1.orig/lib/readline/display.c bash-3.1/lib/readline/display.c ---- bash-3.1.orig/lib/readline/display.c 2005-11-30 11:05:02.000000000 -0800 -+++ bash-3.1/lib/readline/display.c 2006-04-19 15:58:34.000000000 -0700 -@@ -1983,11 +1983,15 @@ - int pchar; - { - int len; -- char *pmt; -+ char *pmt, *p; - - rl_save_prompt (); - -- if (saved_local_prompt == 0) -+ /* We've saved the prompt, and can do anything with the various prompt -+ strings we need before they're restored. We want the unexpanded -+ portion of the prompt string after any final newline. */ -+ p = rl_prompt ? strrchr (rl_prompt, '\n') : 0; -+ if (p == 0) - { - len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; - pmt = (char *)xmalloc (len + 2); -@@ -1998,19 +2002,17 @@ - } - else - { -- len = *saved_local_prompt ? strlen (saved_local_prompt) : 0; -+ p++; -+ len = strlen (p); - pmt = (char *)xmalloc (len + 2); - if (len) -- strcpy (pmt, saved_local_prompt); -+ strcpy (pmt, p); - pmt[len] = pchar; - pmt[len+1] = '\0'; -- local_prompt = savestring (pmt); -- prompt_last_invisible = saved_last_invisible; -- prompt_visible_length = saved_visible_length + 1; -- } -+ } - -+ /* will be overwritten by expand_prompt, called from rl_message */ - prompt_physical_chars = saved_physical_chars + 1; -- - return pmt; - } - -diff -Naur bash-3.1.orig/lib/readline/readline.c bash-3.1/lib/readline/readline.c ---- bash-3.1.orig/lib/readline/readline.c 2005-07-04 19:29:35.000000000 -0700 -+++ bash-3.1/lib/readline/readline.c 2006-04-19 15:58:34.000000000 -0700 -@@ -282,6 +282,7 @@ - { - FREE (rl_prompt); - rl_prompt = prompt ? savestring (prompt) : (char *)NULL; -+ rl_display_prompt = rl_prompt ? rl_prompt : ""; - - rl_visible_prompt_length = rl_expand_prompt (rl_prompt); - return 0; -diff -Naur bash-3.1.orig/lib/readline/terminal.c bash-3.1/lib/readline/terminal.c ---- bash-3.1.orig/lib/readline/terminal.c 2005-11-12 17:46:54.000000000 -0800 -+++ bash-3.1/lib/readline/terminal.c 2006-04-19 15:58:34.000000000 -0700 -@@ -122,7 +122,7 @@ - static char *_rl_visible_bell; - - /* Non-zero means the terminal can auto-wrap lines. */ --int _rl_term_autowrap; -+int _rl_term_autowrap = -1; - - /* Non-zero means that this terminal has a meta key. */ - static int term_has_meta; -@@ -274,6 +274,9 @@ - _rl_set_screen_size (rows, cols) - int rows, cols; - { -+ if (_rl_term_autowrap == -1) -+ _rl_init_terminal_io (rl_terminal_name); -+ - if (rows > 0) - _rl_screenheight = rows; - if (cols > 0) -diff -Naur bash-3.1.orig/parse.y bash-3.1/parse.y ---- bash-3.1.orig/parse.y 2005-11-11 20:14:18.000000000 -0800 -+++ bash-3.1/parse.y 2006-04-19 15:58:34.000000000 -0700 -@@ -2716,6 +2716,7 @@ - #define P_ALLOWESC 0x02 - #define P_DQUOTE 0x04 - #define P_COMMAND 0x08 /* parsing a command, so look for comments */ -+#define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */ - - static char matched_pair_error; - static char * -@@ -2725,12 +2726,12 @@ - int *lenp, flags; - { - int count, ch, was_dollar, in_comment, check_comment; -- int pass_next_character, nestlen, ttranslen, start_lineno; -+ int pass_next_character, backq_backslash, nestlen, ttranslen, start_lineno; - char *ret, *nestret, *ttrans; - int retind, retsize, rflags; - - count = 1; -- pass_next_character = was_dollar = in_comment = 0; -+ pass_next_character = backq_backslash = was_dollar = in_comment = 0; - check_comment = (flags & P_COMMAND) && qc != ''' && qc != '"' && (flags & P_DQUOTE) == 0; - - /* RFLAGS is the set of flags we want to pass to recursive calls. */ -@@ -2742,11 +2743,8 @@ - start_lineno = line_number; - while (count) - { --#if 0 -- ch = shell_getc ((qc != ''' || (flags & P_ALLOWESC)) && pass_next_character == 0); --#else -- ch = shell_getc (qc != ''' && pass_next_character == 0); --#endif -+ ch = shell_getc (qc != ''' && pass_next_character == 0 && backq_backslash == 0); -+ - if (ch == EOF) - { - free (ret); -@@ -2771,9 +2769,16 @@ - continue; - } - /* Not exactly right yet */ -- else if (check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind -1]))) -+ else if MBTEST(check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind - 1]))) - in_comment = 1; - -+ /* last char was backslash inside backquoted command substitution */ -+ if (backq_backslash) -+ { -+ backq_backslash = 0; -+ /* Placeholder for adding special characters */ -+ } -+ - if (pass_next_character) /* last char was backslash */ - { - pass_next_character = 0; -@@ -2814,6 +2819,8 @@ - { - if MBTEST((flags & P_ALLOWESC) && ch == '\') - pass_next_character++; -+ else if MBTEST((flags & P_BACKQUOTE) && ch == '\') -+ backq_backslash++; - continue; - } - -@@ -2898,7 +2905,11 @@ - } - else if MBTEST(qc == '`' && (ch == '"' || ch == ''') && in_comment == 0) - { -- nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags); -+ /* Add P_BACKQUOTE so backslash quotes the next character and -+ shell_getc does the right thing with <newline>. We do this for -+ a measure of backwards compatibility -- it's not strictly the -+ right POSIX thing. */ -+ nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_BACKQUOTE); - goto add_nestret; - } - else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ -@@ -2907,7 +2918,7 @@ - if (open == ch) /* undo previous increment */ - count--; - if (ch == '(') /* ) */ -- nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags); -+ nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE); - else if (ch == '{') /* } */ - nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); - else if (ch == '[') /* ] */ -@@ -3578,7 +3589,7 @@ - FREE (ttok); - all_digit_token = 0; - compound_assignment = 1; --#if 0 -+#if 1 - goto next_character; - #else - goto got_token; /* ksh93 seems to do this */ -@@ -3695,7 +3706,9 @@ - struct builtin *b; - b = builtin_address_internal (token, 0); - if (b && (b->flags & ASSIGNMENT_BUILTIN)) -- parser_state |= PST_ASSIGNOK; -+ parser_state |= PST_ASSIGNOK; -+ else if (STREQ (token, "eval") || STREQ (token, "let")) -+ parser_state |= PST_ASSIGNOK; - } - - yylval.word = the_word; -@@ -4686,18 +4699,21 @@ - int *retlenp; - { - WORD_LIST *wl, *rl; -- int tok, orig_line_number, orig_token_size; -+ int tok, orig_line_number, orig_token_size, orig_last_token, assignok; - char *saved_token, *ret; - - saved_token = token; - orig_token_size = token_buffer_size; - orig_line_number = line_number; -+ orig_last_token = last_read_token; - - last_read_token = WORD; /* WORD to allow reserved words here */ - - token = (char *)NULL; - token_buffer_size = 0; - -+ assignok = parser_state&PST_ASSIGNOK; /* XXX */ -+ - wl = (WORD_LIST *)NULL; /* ( */ - parser_state |= PST_COMPASSIGN; - -@@ -4740,7 +4756,7 @@ - jump_to_top_level (DISCARD); - } - -- last_read_token = WORD; -+ last_read_token = orig_last_token; /* XXX - was WORD? */ - if (wl) - { - rl = REVERSE_LIST (wl, WORD_LIST *); -@@ -4752,6 +4768,10 @@ - - if (retlenp) - *retlenp = (ret && *ret) ? strlen (ret) : 0; -+ -+ if (assignok) -+ parser_state |= PST_ASSIGNOK; -+ - return ret; - } - -diff -Naur bash-3.1.orig/patchlevel.h bash-3.1/patchlevel.h ---- bash-3.1.orig/patchlevel.h 2005-07-20 10:58:20.000000000 -0700 -+++ bash-3.1/patchlevel.h 2006-04-19 15:59:29.000000000 -0700 -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 0 -+#define PATCHLEVEL 17 - - #endif /* _PATCHLEVEL_H_ */ -diff -Naur bash-3.1.orig/subst.c bash-3.1/subst.c ---- bash-3.1.orig/subst.c 2005-10-24 06:51:13.000000000 -0700 -+++ bash-3.1/subst.c 2006-04-19 15:59:29.000000000 -0700 -@@ -2187,7 +2187,7 @@ - if (mklocal && variable_context) - { - v = find_variable (name); -- if (v == 0 || array_p (v) == 0) -+ if (v == 0 || array_p (v) == 0 || v->context != variable_context) - v = make_local_array_variable (name); - v = assign_array_var_from_string (v, value, flags); - } -@@ -2575,6 +2575,13 @@ - return (expand_string_to_string_internal (string, quoted, expand_string_assignment)); - } - -+char * -+expand_arith_string (string, quoted) -+ char *string; -+{ -+ return (expand_string_if_necessary (string, quoted, expand_string)); -+} -+ - #if defined (COND_COMMAND) - /* Just remove backslashes in STRING. Returns a new string. */ - char * -@@ -5248,7 +5255,7 @@ - else - t = (char *)0; - -- temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string); -+ temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES); - *e1p = evalexp (temp1, &expok); - free (temp1); - if (expok == 0) -@@ -5293,7 +5300,7 @@ - { - t++; - temp2 = savestring (t); -- temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); -+ temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); - free (temp2); - t[-1] = ':'; - *e2p = evalexp (temp1, &expok); -@@ -6435,7 +6442,7 @@ - temp2[t_index] = '\0'; - - /* Expand variables found inside the expression. */ -- temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); -+ temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); - free (temp2); - - arithsub: -@@ -6477,7 +6484,7 @@ - zindex = t_index; - - /* Do initial variable expansion. */ -- temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string); -+ temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES); - - goto arithsub; - -@@ -6795,6 +6802,12 @@ - if (temp && *temp && t_index > 0) - { - temp1 = bash_tilde_expand (temp, tflag); -+ if (temp1 && *temp1 == '~' && STREQ (temp, temp1)) -+ { -+ FREE (temp); -+ FREE (temp1); -+ goto add_character; /* tilde expansion failed */ -+ } - free (temp); - temp = temp1; - sindex += t_index; -diff -Naur bash-3.1.orig/subst.h bash-3.1/subst.h ---- bash-3.1.orig/subst.h 2004-11-07 12:12:28.000000000 -0800 -+++ bash-3.1/subst.h 2006-04-19 15:59:29.000000000 -0700 -@@ -151,6 +151,9 @@ - extern char *expand_string_unsplit_to_string __P((char *, int)); - extern char *expand_assignment_string_to_string __P((char *, int)); - -+/* Expand an arithmetic expression string */ -+extern char *expand_arith_string __P((char *, int)); -+ - /* De-quoted quoted characters in STRING. */ - extern char *dequote_string __P((char *)); - -diff -Naur bash-3.1.orig/variables.c bash-3.1/variables.c ---- bash-3.1.orig/variables.c 2005-11-12 18:22:37.000000000 -0800 -+++ bash-3.1/variables.c 2006-04-19 15:58:34.000000000 -0700 -@@ -860,9 +860,11 @@ - { - char val[INT_STRLEN_BOUND(int) + 1], *v; - -+#if defined (READLINE) - /* If we are currently assigning to LINES or COLUMNS, don't do anything. */ - if (winsize_assignment) - return; -+#endif - - v = inttostr (lines, val, sizeof (val)); - bind_variable ("LINES", v, 0); diff --git a/src/patches/bash-3.1-login.patch b/src/patches/bash-3.1-login.patch deleted file mode 100644 index 8e950ba..0000000 --- a/src/patches/bash-3.1-login.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- bash-3.1/shell.c.login 2006-01-13 16:52:14.000000000 +0000 -+++ bash-3.1/shell.c 2006-01-13 16:52:15.000000000 +0000 -@@ -1543,9 +1543,10 @@ - any startup files; just try to be more like /bin/sh. */ - shell_name = argv0 ? base_pathname (argv0) : PROGRAM; - -- if (*shell_name == '-') -+ if (argv0 && *argv0 == '-') - { -- shell_name++; -+ if (*shell_name == '-') -+ shell_name++; - login_shell++; - } - diff --git a/src/patches/bash-3.2-ssh_source_bash.patch b/src/patches/bash-3.2-ssh_source_bash.patch new file mode 100644 index 0000000..4b37132 --- /dev/null +++ b/src/patches/bash-3.2-ssh_source_bash.patch @@ -0,0 +1,9 @@ +diff -up bash-3.2/config-top.h.ssh_source_bash bash-3.2/config-top.h +--- bash-3.2/config-top.h.ssh_source_bash 2008-10-23 15:08:04.000000000 +0200 ++++ bash-3.2/config-top.h 2008-10-23 15:08:33.000000000 +0200 +@@ -86,4 +86,4 @@ + + /* Define this if you want bash to try to check whether it's being run by + sshd and source the .bashrc if so (like the rshd behavior). */ +-/* #define SSH_SOURCE_BASHRC */ ++#define SSH_SOURCE_BASHRC diff --git a/src/patches/bash-4.0-paths-1.patch b/src/patches/bash-4.0-paths-1.patch new file mode 100644 index 0000000..735a381 --- /dev/null +++ b/src/patches/bash-4.0-paths-1.patch @@ -0,0 +1,30 @@ +--- bash-3.0/config.h.in.paths 2004-07-21 21:08:31.000000000 +0100 ++++ bash-3.0/config.h.in 2004-07-28 09:16:27.257884999 +0100 +@@ -197,7 +197,7 @@ + + /* System paths */ + +-#define DEFAULT_MAIL_DIRECTORY "/usr/spool/mail" ++#define DEFAULT_MAIL_DIRECTORY "/var/spool/mail" + + /* Characteristics of the system's header files and libraries that affect + the compilation environment. */ +--- bash-3.0/config-top.h.paths 2003-08-05 15:36:12.000000000 +0100 ++++ bash-3.0/config-top.h 2004-07-28 09:36:27.117205637 +0100 +@@ -52,14 +52,14 @@ + /* The default value of the PATH variable. */ + #ifndef DEFAULT_PATH_VALUE + #define DEFAULT_PATH_VALUE \ +- "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:." ++ "/usr/local/bin:/bin:/usr/bin" + #endif + + /* The value for PATH when invoking `command -p'. This is only used when + the Posix.2 confstr () function, or CS_PATH define are not present. */ + #ifndef STANDARD_UTILS_PATH + #define STANDARD_UTILS_PATH \ +- "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc" ++ "/bin:/usr/bin:/usr/sbin:/sbin" + #endif + + /* Default primary and secondary prompt strings. */ diff --git a/src/patches/bash-4.0-profile-1.patch b/src/patches/bash-4.0-profile-1.patch new file mode 100644 index 0000000..ba3344b --- /dev/null +++ b/src/patches/bash-4.0-profile-1.patch @@ -0,0 +1,12 @@ +diff -up bash-3.2/config-top.h.profile bash-3.2/config-top.h +--- bash-3.2/config-top.h.profile 2008-07-17 13:35:39.000000000 +0200 ++++ bash-3.2/config-top.h 2008-07-17 13:42:18.000000000 +0200 +@@ -26,6 +26,8 @@ + what POSIX.2 specifies. */ + #define CONTINUE_AFTER_KILL_ERROR + ++#define NON_INTERACTIVE_LOGIN_SHELLS ++ + /* Define BREAK_COMPLAINS if you want the non-standard, but useful + error messages about `break' and `continue' out of context. */ + #define BREAK_COMPLAINS diff --git a/src/patches/bash/bash32-001 b/src/patches/bash/bash32-001 new file mode 100644 index 0000000..b7d1f1e --- /dev/null +++ b/src/patches/bash/bash32-001 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-001 + +Bug-Reported-by: Greg Schafer gschafer@zip.com.au +Bug-Reference-ID: 20061012084940.GA15768@tigers.local +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html + +Bug-Description: + +When using historical ``-style command substitution, bash incorrectly attempts +to interpret shell comments while scanning for the closing backquote. + +Patch: + +*** ../bash-3.2/parse.y Tue Sep 19 16:37:21 2006 +--- parse.y Thu Oct 12 10:30:57 2006 +*************** +*** 2736,2740 **** + count = 1; + pass_next_character = backq_backslash = was_dollar = in_comment = 0; +! check_comment = (flags & P_COMMAND) && qc != ''' && qc != '"' && (flags & P_DQUOTE) == 0; + + /* RFLAGS is the set of flags we want to pass to recursive calls. */ +--- 2736,2740 ---- + count = 1; + pass_next_character = backq_backslash = was_dollar = in_comment = 0; +! check_comment = (flags & P_COMMAND) && qc != '`' && qc != ''' && qc != '"' && (flags & P_DQUOTE) == 0; + + /* RFLAGS is the set of flags we want to pass to recursive calls. */ +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 0 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-002 b/src/patches/bash/bash32-002 new file mode 100644 index 0000000..b934df9 --- /dev/null +++ b/src/patches/bash/bash32-002 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-002 + +Bug-Reported-by: Jim Gifford jim@jg555.com +Bug-Reference-ID: 12j2pc3aq35mb04@corp.supernews.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00082.html + +Bug-Description: + +An incorrect encoding specification in the Content-Type header causes msgfmt +to fail, which causes `make install' to fail. + +Patch: + +*** ../bash-3.2/po/ru.po Tue Jan 10 17:51:03 2006 +--- po/ru.po Mon Oct 16 15:13:23 2006 +*************** +*** 13,17 **** + "Language-Team: Russian ru@li.org\n" + "MIME-Version: 1.0\n" +! "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +--- 13,17 ---- + "Language-Team: Russian ru@li.org\n" + "MIME-Version: 1.0\n" +! "Content-Type: text/plain; charset=KOI8-R\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-003 b/src/patches/bash/bash32-003 new file mode 100644 index 0000000..922041b --- /dev/null +++ b/src/patches/bash/bash32-003 @@ -0,0 +1,147 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-003 + +Bug-Reported-by: John Gatewood Ham zappaman@buraphalinux.org +Bug-Reference-ID: Pine.LNX.4.64.0610121334140.15558@www.buraphalinux.org +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html + +Bug-Description: + +When using the conditional command's `=~' operator to match regular +expressions, the parser did not skip over shell metacharacters in the +regular expression, leading to syntax errors. + +Patch: + +*** ../bash-3.2-patched/parse.y Tue Oct 17 11:45:20 2006 +--- parse.y Sat Oct 14 14:56:16 2006 +*************** +*** 1029,1034 **** +--- 1029,1035 ---- + #define PST_CMDTOKEN 0x1000 /* command token OK - unused */ + #define PST_COMPASSIGN 0x2000 /* parsing x=(...) compound assignment */ + #define PST_ASSIGNOK 0x4000 /* assignment statement ok in this context */ ++ #define PST_REGEXP 0x8000 /* parsing an ERE/BRE as a single word */ + + /* Initial size to allocate for tokens, and the + amount to grow them by. */ +*************** +*** 2591,2596 **** +--- 2592,2600 ---- + return (character); + } + ++ if (parser_state & PST_REGEXP) ++ goto tokword; ++ + /* Shell meta-characters. */ + if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0)) + { +*************** +*** 2698,2703 **** +--- 2702,2708 ---- + if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND)) + return (character); + ++ tokword: + /* Okay, if we got this far, we have to read a word. Read one, + and then check it against the known ones. */ + result = read_token_word (character); +*************** +*** 3202,3209 **** + if (tok == WORD && test_binop (yylval.word->word)) + op = yylval.word; + #if defined (COND_REGEXP) +! else if (tok == WORD && STREQ (yylval.word->word,"=~")) +! op = yylval.word; + #endif + else if (tok == '<' || tok == '>') + op = make_word_from_token (tok); /* ( */ +--- 3207,3217 ---- + if (tok == WORD && test_binop (yylval.word->word)) + op = yylval.word; + #if defined (COND_REGEXP) +! else if (tok == WORD && STREQ (yylval.word->word, "=~")) +! { +! op = yylval.word; +! parser_state |= PST_REGEXP; +! } + #endif + else if (tok == '<' || tok == '>') + op = make_word_from_token (tok); /* ( */ +*************** +*** 3234,3239 **** +--- 3242,3248 ---- + + /* rhs */ + tok = read_token (READ); ++ parser_state &= ~PST_REGEXP; + if (tok == WORD) + { + tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); +*************** +*** 3419,3427 **** + goto next_character; + } + + #ifdef EXTENDED_GLOB + /* Parse a ksh-style extended pattern matching specification. */ +! if (extended_glob && PATTERN_CHAR (character)) + { + peek_char = shell_getc (1); + if MBTEST(peek_char == '(') /* ) */ +--- 3428,3461 ---- + goto next_character; + } + ++ #ifdef COND_REGEXP ++ /* When parsing a regexp as a single word inside a conditional command, ++ we need to special-case characters special to both the shell and ++ regular expressions. Right now, that is only '(' and '|'. */ /*)*/ ++ if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|')) /*)*/ ++ { ++ if (character == '|') ++ goto got_character; ++ ++ push_delimiter (dstack, character); ++ ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0); ++ pop_delimiter (dstack); ++ if (ttok == &matched_pair_error) ++ return -1; /* Bail immediately. */ ++ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, ++ token_buffer_size, TOKEN_DEFAULT_GROW_SIZE); ++ token[token_index++] = character; ++ strcpy (token + token_index, ttok); ++ token_index += ttoklen; ++ FREE (ttok); ++ dollar_present = all_digit_token = 0; ++ goto next_character; ++ } ++ #endif /* COND_REGEXP */ ++ + #ifdef EXTENDED_GLOB + /* Parse a ksh-style extended pattern matching specification. */ +! if MBTEST(extended_glob && PATTERN_CHAR (character)) + { + peek_char = shell_getc (1); + if MBTEST(peek_char == '(') /* ) */ + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ + diff --git a/src/patches/bash/bash32-004 b/src/patches/bash/bash32-004 new file mode 100644 index 0000000..cd2accf --- /dev/null +++ b/src/patches/bash/bash32-004 @@ -0,0 +1,96 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-004 + +Bug-Reported-by: Stuart Shelton srcshelton@gmail.com +Bug-Reference-ID: 619141e40610261203y6cda5aa6i23cb24c7aeba996e@mail.gmail.com +Bug-Reference-URL: + +Bug-Description: + +A bug in the parameter pattern substitution implementation treated a pattern +whose first character was `/' (after expansion) as specifying global +replacement. + +Patch: + +*** ../bash-3.2/subst.c Tue Sep 19 08:35:09 2006 +--- subst.c Thu Oct 26 09:17:50 2006 +*************** +*** 5707,5712 **** +--- 5707,5717 ---- + vtype &= ~VT_STARSUB; + + mflags = 0; ++ if (patsub && *patsub == '/') ++ { ++ mflags |= MATCH_GLOBREP; ++ patsub++; ++ } + + /* Malloc this because expand_string_if_necessary or one of the expansion + functions in its call chain may free it on a substitution error. */ +*************** +*** 5741,5753 **** + } + + /* ksh93 doesn't allow the match specifier to be a part of the expanded +! pattern. This is an extension. */ + p = pat; +! if (pat && pat[0] == '/') +! { +! mflags |= MATCH_GLOBREP|MATCH_ANY; +! p++; +! } + else if (pat && pat[0] == '#') + { + mflags |= MATCH_BEG; +--- 5746,5757 ---- + } + + /* ksh93 doesn't allow the match specifier to be a part of the expanded +! pattern. This is an extension. Make sure we don't anchor the pattern +! at the beginning or end of the string if we're doing global replacement, +! though. */ + p = pat; +! if (mflags & MATCH_GLOBREP) +! mflags |= MATCH_ANY; + else if (pat && pat[0] == '#') + { + mflags |= MATCH_BEG; +*** ../bash-3.2/tests/new-exp.right Thu Aug 10 12:00:00 2006 +--- tests/new-exp.right Sun Oct 29 16:03:36 2006 +*************** +*** 430,436 **** + Case06---1---A B C::--- + Case07---3---A:B:C--- + Case08---3---A:B:C--- +! ./new-exp.tests: line 506: /${$(($#-1))}: bad substitution + argv[1] = <a> + argv[2] = <b> + argv[3] = <c> +--- 430,436 ---- + Case06---1---A B C::--- + Case07---3---A:B:C--- + Case08---3---A:B:C--- +! ./new-exp.tests: line 506: ${$(($#-1))}: bad substitution + argv[1] = <a> + argv[2] = <b> + argv[3] = <c> +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-005 b/src/patches/bash/bash32-005 new file mode 100644 index 0000000..903ec58 --- /dev/null +++ b/src/patches/bash/bash32-005 @@ -0,0 +1,223 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-005 + +Bug-Reported-by: Stuart Shelton stuart@openobjects.com +Bug-Reference-ID: 453F7CC8.6030907@openobjects.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00127.html + +Bug-Description: + +A missing extern declaration for `asprintf' caused `double' arguments to be +passed as `0', leading to incorrect results. Additionally, a bug in the +replacement asprintf/snprintf function caused an infinite loop when passed +0 arguments to the floating point conversions under some circumstances. + +Patch: + +*** ../bash-3.2/builtins/printf.def Mon Sep 18 08:48:42 2006 +--- builtins/printf.def Tue Oct 31 08:19:44 2006 +*************** +*** 49,54 **** +--- 49,60 ---- + # define INT_MIN (-2147483647-1) + #endif + ++ #if defined (PREFER_STDARG) ++ # include <stdarg.h> ++ #else ++ # include <varargs.h> ++ #endif ++ + #include <stdio.h> + #include <chartypes.h> + +*************** +*** 151,156 **** +--- 157,166 ---- + #define SKIP1 "#'-+ 0" + #define LENMODS "hjlLtz" + ++ #ifndef HAVE_ASPRINTF ++ extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3))); ++ #endif ++ + static void printf_erange __P((char *)); + static int printstr __P((char *, char *, int, int, int)); + static int tescape __P((char *, char *, int *)); + + +*** ../bash-3.2/lib/sh/snprintf.c Thu Apr 6 09:48:40 2006 +--- lib/sh/snprintf.c Sat Oct 28 00:00:13 2006 +*************** +*** 471,476 **** +--- 476,483 ---- + 10^x ~= r + * log_10(200) = 2; + * log_10(250) = 2; ++ * ++ * NOTE: do not call this with r == 0 -- an infinite loop results. + */ + static int + log_10(r) +*************** +*** 576,583 **** + { + integral_part[0] = '0'; + integral_part[1] = '\0'; +! fraction_part[0] = '0'; +! fraction_part[1] = '\0'; + if (fract) + *fract = fraction_part; + return integral_part; +--- 583,593 ---- + { + integral_part[0] = '0'; + integral_part[1] = '\0'; +! /* The fractional part has to take the precision into account */ +! for (ch = 0; ch < precision-1; ch++) +! fraction_part[ch] = '0'; +! fraction_part[ch] = '0'; +! fraction_part[ch+1] = '\0'; + if (fract) + *fract = fraction_part; + return integral_part; +*************** +*** 805,810 **** +--- 815,821 ---- + PUT_CHAR(*tmp, p); + tmp++; + } ++ + PAD_LEFT(p); + } + +*************** +*** 972,982 **** + if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp))) + tmp = t; + + /* calculate the padding. 1 for the dot */ + p->width = p->width - + ((d > 0. && p->justify == RIGHT) ? 1:0) - + ((p->flags & PF_SPACE) ? 1:0) - +! strlen(tmp) - p->precision - 1; + PAD_RIGHT(p); + PUT_PLUS(d, p, 0.); + PUT_SPACE(d, p, 0.); +--- 983,1003 ---- + if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp))) + tmp = t; + ++ if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) ++ { ++ /* smash the trailing zeros unless altform */ ++ for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) ++ tmp2[i] = '\0'; ++ if (tmp2[0] == '\0') ++ p->precision = 0; ++ } ++ + /* calculate the padding. 1 for the dot */ + p->width = p->width - + ((d > 0. && p->justify == RIGHT) ? 1:0) - + ((p->flags & PF_SPACE) ? 1:0) - +! strlen(tmp) - p->precision - +! ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0); /* radix char */ + PAD_RIGHT(p); + PUT_PLUS(d, p, 0.); + PUT_SPACE(d, p, 0.); +*************** +*** 991,1001 **** + if (p->precision != 0 || (p->flags & PF_ALTFORM)) + PUT_CHAR(decpoint, p); /* put the '.' */ + +- if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) +- /* smash the trailing zeros unless altform */ +- for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) +- tmp2[i] = '\0'; +- + for (; *tmp2; tmp2++) + PUT_CHAR(*tmp2, p); /* the fraction */ + +--- 1012,1017 ---- +*************** +*** 1011,1024 **** + char *tmp, *tmp2; + int j, i; + +! if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)) + return; /* already printed nan or inf */ + + GETLOCALEDATA(decpoint, thoussep, grouping); + DEF_PREC(p); +! j = log_10(d); +! d = d / pow_10(j); /* get the Mantissa */ +! d = ROUND(d, p); + tmp = dtoa(d, p->precision, &tmp2); + + /* 1 for unit, 1 for the '.', 1 for 'e|E', +--- 1027,1045 ---- + char *tmp, *tmp2; + int j, i; + +! if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))) + return; /* already printed nan or inf */ + + GETLOCALEDATA(decpoint, thoussep, grouping); + DEF_PREC(p); +! if (d == 0.) +! j = 0; +! else +! { +! j = log_10(d); +! d = d / pow_10(j); /* get the Mantissa */ +! d = ROUND(d, p); +! } + tmp = dtoa(d, p->precision, &tmp2); + + /* 1 for unit, 1 for the '.', 1 for 'e|E', +*************** +*** 1076,1081 **** +--- 1097,1103 ---- + PUT_CHAR(*tmp, p); + tmp++; + } ++ + PAD_LEFT(p); + } + #endif +*************** +*** 1358,1364 **** + STAR_ARGS(data); + DEF_PREC(data); + d = GETDOUBLE(data); +! i = log_10(d); + /* + * for '%g|%G' ANSI: use f if exponent + * is in the range or [-4,p] exclusively +--- 1380,1386 ---- + STAR_ARGS(data); + DEF_PREC(data); + d = GETDOUBLE(data); +! i = (d != 0.) ? log_10(d) : -1; + /* + * for '%g|%G' ANSI: use f if exponent + * is in the range or [-4,p] exclusively +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-006 b/src/patches/bash/bash32-006 new file mode 100644 index 0000000..589db9e --- /dev/null +++ b/src/patches/bash/bash32-006 @@ -0,0 +1,45 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-006 + +Bug-Reported-by: ebb9@byu.net +Bug-Reference-ID: 45540862.9030900@byu.net +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html + http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html + +Bug-Description: + +In some cases, code that is intended to be used in the presence of multibyte +characters is called when no such characters are present, leading to incorrect +display position calculations and incorrect redisplay. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006 +--- lib/readline/display.c Mon Nov 13 17:55:57 2006 +*************** +*** 2381,2384 **** +--- 2409,2414 ---- + if (end <= start) + return 0; ++ if (MB_CUR_MAX == 1 || rl_byte_oriented) ++ return (end - start); + + memset (&ps, 0, sizeof (mbstate_t)); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-007 b/src/patches/bash/bash32-007 new file mode 100644 index 0000000..9b86f4a --- /dev/null +++ b/src/patches/bash/bash32-007 @@ -0,0 +1,55 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-007 + +Bug-Reported-by: jidanni@jidanni.org +Bug-Reference-ID: E1Gkg12-00017D-Fm@jidanni.org +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00039.html + +Bug-Description: + +When removing the current or previous job from the jobs list, bash incorrectly +resets the current job under some circumstances. + +Patch: + +*** ../bash-3.2-patched/jobs.c Sat Jul 29 16:40:48 2006 +--- jobs.c Fri Nov 24 14:50:01 2006 +*************** +*** 985,990 **** + if (temp == 0) + return; +- if (job_index == js.j_current || job_index == js.j_previous) +- reset_current (); + + if ((dflags & DEL_NOBGPID) == 0) +--- 985,988 ---- +*************** +*** 1029,1032 **** +--- 1027,1033 ---- + else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0) + reset_job_indices (); ++ ++ if (job_index == js.j_current || job_index == js.j_previous) ++ reset_current (); + } + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ + + diff --git a/src/patches/bash/bash32-008 b/src/patches/bash/bash32-008 new file mode 100644 index 0000000..7ec07ff --- /dev/null +++ b/src/patches/bash/bash32-008 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-008 + +Bug-Reported-by: Linda Walsh bash@tlinx.org +Bug-Reference-ID: 456041FD.8000605@tlinx.org +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00040.html + +Bug-Description: + +When checking pathnames from the command hash table (e.g., when the `checkhash' +shell option is enabled), a bug causes bash to delete and re-lookup each +command. + +Patch: + +*** ../bash-3.2-patched/findcmd.c Wed Aug 17 16:49:54 2005 +--- findcmd.c Fri Nov 24 10:48:37 2006 +*************** +*** 309,313 **** + { + st = file_status (hashed_file); +! if ((st ^ (FS_EXISTS | FS_EXECABLE)) != 0) + { + phash_remove (pathname); +--- 309,313 ---- + { + st = file_status (hashed_file); +! if ((st & (FS_EXISTS|FS_EXECABLE)) != (FS_EXISTS|FS_EXECABLE)) + { + phash_remove (pathname); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-009 b/src/patches/bash/bash32-009 new file mode 100644 index 0000000..9cfd16e --- /dev/null +++ b/src/patches/bash/bash32-009 @@ -0,0 +1,61 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-009 + +Bug-Reported-by: James.M.Botte@lowes.com +Bug-Reference-ID: BA9FF90F7E5B424998F98EDA9F1F94BE01FA9853@msexchdb01.lowes.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00000.html + +Bug-Description: + +When using its built-in replacement for snprintf/asprintf, bash does not +treat the %x, %X, and %o format specifiers as unsigned numbers. + +Patch: + +*** ../bash-3.2-patched/lib/sh/snprintf.c Mon Nov 13 08:58:52 2006 +--- lib/sh/snprintf.c Wed Dec 6 11:15:04 2006 +*************** +*** 669,673 **** + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +--- 674,679 ---- + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = 0; +! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +*************** +*** 739,743 **** + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +--- 745,749 ---- + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-010 b/src/patches/bash/bash32-010 new file mode 100644 index 0000000..88de575 --- /dev/null +++ b/src/patches/bash/bash32-010 @@ -0,0 +1,207 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-010 + +Bug-Reported-by: Ryan Waldron rew@erebor.com +Bug-Reference-ID: 20070119065603.546D011E9C@kansas.erebor.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00059.html + +Bug-Description: + +The glibc implementation of regcomp/regexec does not allow backslashes to +escape "ordinary" pattern characters when matching. Bash used backslashes +to quote all characters when the pattern argument to the [[ special +command's =~ operator was quoted. This caused the match to fail on Linux +and other systems using GNU libc. + +Patch: + +*** ../bash-3.2.9/pathexp.h Sat Feb 19 17:23:18 2005 +--- pathexp.h Wed Jan 31 22:53:16 2007 +*************** +*** 1,5 **** + /* pathexp.h -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1987-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* pathexp.h -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 33,36 **** +--- 33,37 ---- + #define QGLOB_CVTNULL 0x01 /* convert QUOTED_NULL strings to '\0' */ + #define QGLOB_FILENAME 0x02 /* do correct quoting for matching filenames */ ++ #define QGLOB_REGEXP 0x04 /* quote an ERE for regcomp/regexec */ + + #if defined (EXTENDED_GLOB) +*** ../bash-3.2.9/pathexp.c Mon May 6 13:43:05 2002 +--- pathexp.c Mon Feb 26 16:59:23 2007 +*************** +*** 1,5 **** + /* pathexp.c -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1995-2002 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* pathexp.c -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1995-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 111,114 **** +--- 111,141 ---- + } + ++ /* Return 1 if C is a character that is `special' in a POSIX ERE and needs to ++ be quoted to match itself. */ ++ static inline int ++ ere_char (c) ++ int c; ++ { ++ switch (c) ++ { ++ case '.': ++ case '[': ++ case '\': ++ case '(': ++ case ')': ++ case '*': ++ case '+': ++ case '?': ++ case '{': ++ case '|': ++ case '^': ++ case '$': ++ return 1; ++ default: ++ return 0; ++ } ++ return (0); ++ } ++ + /* PATHNAME can contain characters prefixed by CTLESC; this indicates + that the character is to be quoted. We quote it here in the style +*************** +*** 143,146 **** +--- 170,175 ---- + if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/') + continue; ++ if ((qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0) ++ continue; + temp[j++] = '\'; + i++; +*** ../bash-3.2.9/subst.c Tue Nov 7 16:14:41 2006 +--- subst.c Wed Jan 31 23:09:58 2007 +*************** +*** 5,9 **** + beauty, but, hey, you're alright.'' */ + +! /* Copyright (C) 1987-2006 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 5,9 ---- + beauty, but, hey, you're alright.'' */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 2647,2655 **** + /* This needs better error handling. */ + /* Expand W for use as an argument to a unary or binary operator in a +! [[...]] expression. If SPECIAL is nonzero, this is the rhs argument + to the != or == operator, and should be treated as a pattern. In +! this case, we quote the string specially for the globbing code. The +! caller is responsible for removing the backslashes if the unquoted +! words is needed later. */ + char * + cond_expand_word (w, special) +--- 2647,2656 ---- + /* This needs better error handling. */ + /* Expand W for use as an argument to a unary or binary operator in a +! [[...]] expression. If SPECIAL is 1, this is the rhs argument + to the != or == operator, and should be treated as a pattern. In +! this case, we quote the string specially for the globbing code. If +! SPECIAL is 2, this is an rhs argument for the =~ operator, and should +! be quoted appropriately for regcomp/regexec. The caller is responsible +! for removing the backslashes if the unquoted word is needed later. */ + char * + cond_expand_word (w, special) +*************** +*** 2659,2662 **** +--- 2660,2664 ---- + char *r, *p; + WORD_LIST *l; ++ int qflags; + + if (w->word == 0 || w->word[0] == '\0') +*************** +*** 2673,2678 **** + else + { + p = string_list (l); +! r = quote_string_for_globbing (p, QGLOB_CVTNULL); + free (p); + } +--- 2675,2683 ---- + else + { ++ qflags = QGLOB_CVTNULL; ++ if (special == 2) ++ qflags |= QGLOB_REGEXP; + p = string_list (l); +! r = quote_string_for_globbing (p, qflags); + free (p); + } +*** ../bash-3.2.9/execute_cmd.c Sat Aug 26 00:23:17 2006 +--- execute_cmd.c Wed Jan 31 23:12:06 2007 +*************** +*** 1,5 **** + /* execute_cmd.c -- Execute a COMMAND structure. */ + +! /* Copyright (C) 1987-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* execute_cmd.c -- Execute a COMMAND structure. */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 2547,2551 **** + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, patmatch||rmatch); + if (arg2 == 0) + arg2 = nullstr; +--- 2547,2551 ---- + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0)); + if (arg2 == 0) + arg2 = nullstr; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-011 b/src/patches/bash/bash32-011 new file mode 100644 index 0000000..c021f52 --- /dev/null +++ b/src/patches/bash/bash32-011 @@ -0,0 +1,138 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-011 + +Bug-Reported-by: Petr Sumbera Petr.Sumbera@Sun.COM +Bug-Reference-ID: 45AF5F4B.1020800@sun.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00049.html + +Bug-Description: + +Under certain circumstances (loopback mounts), the bash getcwd does not +return correct results. This patch allows the use of the Solaris libc +getcwd even though it doesn't dynamically allocate memory. + +Run `touch configure' to make sure make doesn't try to run autoconf. +Then run configure with whatever options you like. + +Patch: + +*** ../bash-3.2-patched/configure.in Tue Sep 26 11:05:45 2006 +--- configure.in Wed Jan 31 09:48:00 2007 +*************** +*** 6,10 **** + dnl Process this file with autoconf to produce a configure script. + +! # Copyright (C) 1987-2006 Free Software Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify +--- 6,10 ---- + dnl Process this file with autoconf to produce a configure script. + +! # Copyright (C) 1987-2007 Free Software Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify +*************** +*** 992,996 **** + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +--- 992,997 ---- + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;; +! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +*** ../bash-3.2-patched/config-bot.h Tue Sep 12 16:43:04 2006 +--- config-bot.h Tue Mar 6 10:41:31 2007 +*************** +*** 2,6 **** + /* modify settings or make new ones based on what autoconf tells us. */ + +! /* Copyright (C) 1989-2002 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 2,6 ---- + /* modify settings or make new ones based on what autoconf tells us. */ + +! /* Copyright (C) 1989-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 71,77 **** + #endif + +! /* If we have a getcwd(3), but it calls popen(), #undef HAVE_GETCWD so +! the replacement in getcwd.c will be built. */ +! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) + # undef HAVE_GETCWD + #endif +--- 71,79 ---- + #endif + +! /* If we have a getcwd(3), but one that does not dynamically allocate memory, +! #undef HAVE_GETCWD so the replacement in getcwd.c will be built. We do +! not do this on Solaris, because their implementation of loopback mounts +! breaks the traditional file system assumptions that getcwd uses. */ +! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) && !defined (SOLARIS) + # undef HAVE_GETCWD + #endif +*** ../bash-3.2-patched/builtins/common.c Thu Jul 27 09:39:51 2006 +--- builtins/common.c Tue Mar 6 10:43:27 2007 +*************** +*** 1,3 **** +! /* Copyright (C) 1987-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,3 ---- +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 476,480 **** +--- 476,484 ---- + if (the_current_working_directory == 0) + { ++ #if defined (GETCWD_BROKEN) ++ the_current_working_directory = getcwd (0, PATH_MAX); ++ #else + the_current_working_directory = getcwd (0, 0); ++ #endif + if (the_current_working_directory == 0) + { +*** ../bash-3.2-patched/configure Tue Sep 26 11:06:01 2006 +--- configure Tue Mar 6 10:59:20 2007 +*************** +*** 27317,27321 **** + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +--- 27317,27322 ---- + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;; +! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-012 b/src/patches/bash/bash32-012 new file mode 100644 index 0000000..8d669d2 --- /dev/null +++ b/src/patches/bash/bash32-012 @@ -0,0 +1,96 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-012 + +Bug-Reported-by: John Wyman JohnWyman@celink.com +Bug-Reference-ID: 5E7DEFC094C35044B87FAE761D9F0EE20143A3B7@exchange2k.celink.com +Bug-Reference-URL: + +Bug-Description: + +Some systems (AIX 4.x) don't implement the PRI_xxx macros correctly, +causing syntax errors when attempting to compile bash on those systems. +This patch adds support for the PRI_MACROS_BROKEN define. + +You will need to re-run `configure' after applying the patch. Run +`touch configure' so make doesn't try to run autoconf. + +Patch: + +*** ../bash-3.2.11/config.h.in Tue Sep 12 16:00:54 2006 +--- config.h.in Tue Mar 6 11:17:55 2007 +*************** +*** 1,5 **** + /* config.h -- Configuration file for bash. */ + +! /* Copyright (C) 1987-2006 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* config.h -- Configuration file for bash. */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 414,417 **** +--- 414,419 ---- + #undef HAVE_DECL_STRTOLD + ++ #undef PRI_MACROS_BROKEN ++ + #undef STRTOLD_BROKEN + +*************** +*** 1007,1010 **** +--- 1009,1015 ---- + #undef HAVE_DCGETTEXT + ++ /* Define if you have the `localeconv' function. */ ++ #undef HAVE_LOCALECONV ++ + /* Define if your system has a working `malloc' function. */ + /* #undef HAVE_MALLOC */ +*** ../bash-3.2.11/builtins/printf.def Mon Nov 13 08:58:52 2006 +--- builtins/printf.def Sun Feb 4 13:58:59 2007 +*************** +*** 2,6 **** + It implements the builtin "printf" in Bash. + +! Copyright (C) 1997-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 2,6 ---- + It implements the builtin "printf" in Bash. + +! Copyright (C) 1997-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 71,74 **** +--- 71,78 ---- + #include "common.h" + ++ #if defined (PRI_MACROS_BROKEN) ++ # undef PRIdMAX ++ #endif ++ + #if !defined (PRIdMAX) + # if HAVE_LONG_LONG +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-013 b/src/patches/bash/bash32-013 new file mode 100644 index 0000000..d47bc1a --- /dev/null +++ b/src/patches/bash/bash32-013 @@ -0,0 +1,65 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-013 + +Bug-Reported-by: Magnus Svensson msvensson@mysql.com +Bug-Reference-ID: 45BDC44D.80609@mysql.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html + +Bug-Description: + +Readline neglects to reallocate the array it uses to keep track of wrapped +screen lines when increasing its size. This will eventually result in +segmentation faults when given sufficiently long input. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006 +--- lib/readline/display.c Fri Feb 2 20:23:17 2007 +*************** +*** 561,574 **** +--- 561,586 ---- + wrap_offset = prompt_invis_chars_first_line = 0; + } + ++ #if defined (HANDLE_MULTIBYTE) + #define CHECK_INV_LBREAKS() \ + do { \ + if (newlines >= (inv_lbsize - 2)) \ + { \ + inv_lbsize *= 2; \ + inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \ + } \ + } while (0) ++ #else ++ #define CHECK_INV_LBREAKS() \ ++ do { \ ++ if (newlines >= (inv_lbsize - 2)) \ ++ { \ ++ inv_lbsize *= 2; \ ++ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ } \ ++ } while (0) ++ #endif /* HANDLE_MULTIBYTE */ + + #if defined (HANDLE_MULTIBYTE) + #define CHECK_LPOS() \ + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-014 b/src/patches/bash/bash32-014 new file mode 100644 index 0000000..b706505 --- /dev/null +++ b/src/patches/bash/bash32-014 @@ -0,0 +1,307 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-014 + +Bug-Reported-by: Brett Stahlman brettstahlman@comcast.net +Bug-Reference-ID: 000701c72d29$a227e0e0$5ec7cf47@computerroom +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00065.html + +Bug-Description: + +Bash mishandles word splitting under certain circumstances when IFS is +null (IFS=). Constructs affected include ${param/pat/sub} and others +when expanding arrays (array[@]). + +Patch: + +*** ../bash-3.2-patched/array.c Wed Jun 1 16:39:22 2005 +--- array.c Mon Jan 15 22:58:00 2007 +*************** +*** 121,125 **** + } + +- #ifdef INCLUDE_UNUSED + /* + * Make and return a new array composed of the elements in array A from +--- 121,124 ---- +*************** +*** 142,146 **** + n = array_create_element (element_index(p), element_value(p)); + ADD_BEFORE(a->head, n); +! mi = element_index(ae); + } + a->num_elements = i; +--- 141,145 ---- + n = array_create_element (element_index(p), element_value(p)); + ADD_BEFORE(a->head, n); +! mi = element_index(n); + } + a->num_elements = i; +*************** +*** 148,152 **** + return a; + } +- #endif + + /* +--- 147,150 ---- +*************** +*** 301,304 **** +--- 299,319 ---- + } + ++ ARRAY * ++ array_quote_escapes(array) ++ ARRAY *array; ++ { ++ ARRAY_ELEMENT *a; ++ char *t; ++ ++ if (array == 0 || array_head(array) == 0 || array_empty(array)) ++ return (ARRAY *)NULL; ++ for (a = element_forw(array->head); a != array->head; a = element_forw(a)) { ++ t = quote_escapes (a->value); ++ FREE(a->value); ++ a->value = t; ++ } ++ return array; ++ } ++ + /* + * Return a string whose elements are the members of array A beginning at +*************** +*** 312,318 **** + int starsub, quoted; + { + ARRAY_ELEMENT *h, *p; + arrayind_t i; +! char *ifs, sep[2]; + + p = a ? array_head (a) : 0; +--- 327,334 ---- + int starsub, quoted; + { ++ ARRAY *a2; + ARRAY_ELEMENT *h, *p; + arrayind_t i; +! char *ifs, sep[2], *t; + + p = a ? array_head (a) : 0; +*************** +*** 337,340 **** +--- 353,363 ---- + ; + ++ a2 = array_slice(a, h, p); ++ ++ if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) ++ array_quote(a2); ++ else ++ array_quote_escapes(a2); ++ + if (starsub && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) { + ifs = getifs(); +*************** +*** 344,348 **** + sep[1] = '\0'; + +! return (array_to_string_internal (h, p, sep, quoted)); + } + +--- 367,374 ---- + sep[1] = '\0'; + +! t = array_to_string (a2, sep, 0); +! array_dispose(a2); +! +! return t; + } + +*************** +*** 368,372 **** + + if (mflags & MATCH_QUOTED) +! array_quote (a2); + if (mflags & MATCH_STARSUB) { + ifs = getifs(); +--- 394,400 ---- + + if (mflags & MATCH_QUOTED) +! array_quote(a2); +! else +! array_quote_escapes(a2); + if (mflags & MATCH_STARSUB) { + ifs = getifs(); +*** ../bash-3.2-patched/array.h Sun Jun 1 15:50:30 2003 +--- array.h Mon Jan 15 22:35:35 2007 +*************** +*** 56,59 **** +--- 56,60 ---- + extern int array_shift_element __P((ARRAY *, char *)); + extern ARRAY *array_quote __P((ARRAY *)); ++ extern ARRAY *array_quote_escapes __P((ARRAY *)); + + extern char *array_subrange __P((ARRAY *, arrayind_t, arrayind_t, int, int)); +*** ../bash-3.2-patched/subst.c Fri Mar 2 16:20:50 2007 +--- subst.c Tue Mar 6 11:40:55 2007 +*************** +*** 1888,1892 **** +--- 1889,1899 ---- + #endif + ++ /* XXX -- why call quote_list if ifs == 0? we can get away without doing ++ it now that quote_escapes quotes spaces */ ++ #if 0 + tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0)) ++ #else ++ tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ++ #endif + ? quote_list (list) + : list_quote_escapes (list); +*************** +*** 2922,2926 **** + /* Quote escape characters in string s, but no other characters. This is + used to protect CTLESC and CTLNUL in variable values from the rest of +! the word expansion process after the variable is expanded. */ + char * + quote_escapes (string) +--- 2935,2944 ---- + /* Quote escape characters in string s, but no other characters. This is + used to protect CTLESC and CTLNUL in variable values from the rest of +! the word expansion process after the variable is expanded. If IFS is +! null, we quote spaces as well, just in case we split on spaces later +! (in the case of unquoted $@, we will eventually attempt to split the +! entire word on spaces). Corresponding code exists in dequote_escapes. +! Even if we don't end up splitting on spaces, quoting spaces is not a +! problem. */ + char * + quote_escapes (string) +*************** +*** 2930,2933 **** +--- 2948,2952 ---- + size_t slen; + char *result, *send; ++ int quote_spaces; + DECLARE_MBSTATE; + +*************** +*** 2935,2938 **** +--- 2954,2958 ---- + send = string + slen; + ++ quote_spaces = (ifs_value && *ifs_value == 0); + t = result = (char *)xmalloc ((slen * 2) + 1); + s = string; +*************** +*** 2940,2944 **** + while (*s) + { +! if (*s == CTLESC || *s == CTLNUL) + *t++ = CTLESC; + COPY_CHAR_P (t, s, send); +--- 2960,2964 ---- + while (*s) + { +! if (*s == CTLESC || *s == CTLNUL || (quote_spaces && *s == ' ')) + *t++ = CTLESC; + COPY_CHAR_P (t, s, send); +*************** +*** 2982,2985 **** +--- 3002,3006 ---- + size_t slen; + char *result, *send; ++ int quote_spaces; + DECLARE_MBSTATE; + +*************** +*** 2996,3002 **** + return (strcpy (result, s)); + + while (*s) + { +! if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL)) + { + s++; +--- 3017,3024 ---- + return (strcpy (result, s)); + ++ quote_spaces = (ifs_value && *ifs_value == 0); + while (*s) + { +! if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL || (quote_spaces && s[1] == ' '))) + { + s++; +*************** +*** 4462,4466 **** + RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE); + +! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || c == CTLESC || c == CTLNUL) + istring[istring_index++] = CTLESC; + +--- 4498,4510 ---- + RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE); + +! /* This is essentially quote_string inline */ +! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) /* || c == CTLESC || c == CTLNUL */) +! istring[istring_index++] = CTLESC; +! /* Escape CTLESC and CTLNUL in the output to protect those characters +! from the rest of the word expansions (word splitting and globbing.) +! This is essentially quote_escapes inline. */ +! else if (c == CTLESC) +! istring[istring_index++] = CTLESC; +! else if (c == CTLNUL || (c == ' ' && (ifs_value && *ifs_value == 0))) + istring[istring_index++] = CTLESC; + +*************** +*** 5552,5555 **** +--- 5610,5616 ---- + rely on array_subrange to understand how to deal with them). */ + tt = array_subrange (array_cell (v), e1, e2, starsub, quoted); ++ #if 0 ++ /* array_subrange now calls array_quote_escapes as appropriate, so the ++ caller no longer needs to. */ + if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0) + { +*************** +*** 5558,5561 **** +--- 5619,5623 ---- + } + else ++ #endif + temp = tt; + break; +*************** +*** 5808,5811 **** +--- 5870,5876 ---- + case VT_ARRAYVAR: + temp = array_patsub (array_cell (v), p, rep, mflags); ++ #if 0 ++ /* Don't need to do this anymore; array_patsub calls array_quote_escapes ++ as appropriate before adding the space separators. */ + if (temp && (mflags & MATCH_QUOTED) == 0) + { +*************** +*** 5814,5817 **** +--- 5879,5883 ---- + temp = tt; + } ++ #endif + break; + #endif +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-015 b/src/patches/bash/bash32-015 new file mode 100644 index 0000000..d887f6e --- /dev/null +++ b/src/patches/bash/bash32-015 @@ -0,0 +1,95 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-015 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under certain circumstances, when using FIFOs for process substitution, +bash fails to unlink the FIFOs. This leaves open file descriptors that +can cause the shell to hang and litters the file system. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c Fri Mar 2 16:20:50 2007 +--- execute_cmd.c Wed Jan 31 23:12:06 2007 +*************** +*** 3051,3054 **** +--- 3051,3059 ---- + command_line = savestring (the_printed_command_except_trap); + ++ #if defined (PROCESS_SUBSTITUTION) ++ if ((subshell_environment & SUBSHELL_COMSUB) && (simple_command->flags & CMD_NO_FORK) && fifos_pending() > 0) ++ simple_command->flags &= ~CMD_NO_FORK; ++ #endif ++ + execute_disk_command (words, simple_command->redirects, command_line, + pipe_in, pipe_out, async, fds_to_close, +*** ../bash-3.2-patched/subst.c Fri Mar 2 16:20:50 2007 +--- subst.c Tue Mar 6 11:40:55 2007 +*************** +*** 4129,4132 **** +--- 4151,4160 ---- + } + ++ int ++ fifos_pending () ++ { ++ return nfifo; ++ } ++ + static char * + make_named_pipe () +*************** +*** 4178,4181 **** +--- 4206,4215 ---- + } + ++ int ++ fifos_pending () ++ { ++ return 0; /* used for cleanup; not needed with /dev/fd */ ++ } ++ + void + unlink_fifo_list () +*************** +*** 4671,4674 **** +--- 4719,4725 ---- + last_command_exit_value = rc; + rc = run_exit_trap (); ++ #if defined (PROCESS_SUBSTITUTION) ++ unlink_fifo_list (); ++ #endif + exit (rc); + } +*** ../bash-3.2-patched/subst.h Tue Sep 19 08:34:41 2006 +--- subst.h Wed Jan 10 09:46:47 2007 +*************** +*** 223,226 **** +--- 223,227 ---- + extern char *pat_subst __P((char *, char *, char *, int)); + ++ extern int fifos_pending __P((void)); + extern void unlink_fifo_list __P((void)); + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-016 b/src/patches/bash/bash32-016 new file mode 100644 index 0000000..a0f065a --- /dev/null +++ b/src/patches/bash/bash32-016 @@ -0,0 +1,52 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-016 + +Bug-Reported-by: Peter Volkov torre_cremata@mail.ru +Bug-Reference-ID: 1171795523.8021.18.camel@localhost +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html + +Bug-Description: + +When moving the cursor, bash sometimes misplaces the cursor when the prompt +contains two or more multibyte characters. The particular circumstance that +uncovered the problem was having the (multibyte) current directory name in +the prompt string. + +Patch: + +*** ../bash-3.2/lib/readline/display.c Fri Jan 19 13:34:50 2007 +--- lib/readline/display.c Sat Mar 10 17:25:44 2007 +*************** +*** 1745,1749 **** + { + dpos = _rl_col_width (data, 0, new); +! if (dpos > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1745,1752 ---- + { + dpos = _rl_col_width (data, 0, new); +! /* Use NEW when comparing against the last invisible character in the +! prompt string, since they're both buffer indices and DPOS is a +! desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-017 b/src/patches/bash/bash32-017 new file mode 100644 index 0000000..99e5e70 --- /dev/null +++ b/src/patches/bash/bash32-017 @@ -0,0 +1,85 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-017 + +Bug-Reported-by: Peter Volkov torre_cremata@mail.ru +Bug-Reference-ID: 1173636022.7039.36.camel@localhost +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html + +Bug-Description: + +When restoring the original prompt after finishing an incremental search, +bash sometimes places the cursor incorrectly if the primary prompt contains +invisible characters. + +Patch: + +*** ../bash-3.2.16/lib/readline/display.c Fri Apr 20 13:30:16 2007 +--- lib/readline/display.c Fri Apr 20 15:17:01 2007 +*************** +*** 1599,1604 **** + if (temp > 0) + { + _rl_output_some_chars (nfd, temp); +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);; + } + } +--- 1599,1618 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! { +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp); +! if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) +! { +! _rl_last_c_pos -= wrap_offset; +! cpos_adjusted = 1; +! } +! } +! else +! _rl_last_c_pos += temp; + } + } +*************** +*** 1608,1613 **** +--- 1622,1639 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; /* XXX */ ++ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ++ { ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ } + } + lendiff = (oe - old) - (ne - new); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-018 b/src/patches/bash/bash32-018 new file mode 100644 index 0000000..d729aaf --- /dev/null +++ b/src/patches/bash/bash32-018 @@ -0,0 +1,98 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-018 + +Bug-Reported-by: osicka@post.cz +Bug-Reference-ID: 228.177-19682-1132061412-1179356692@post.cz +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00061.html + +Bug-Description: + +In certain cases, bash can lose the saved status of a background job, though +it should still be reported by `wait'. Bash can also loop infinitely after +creating and waiting for 4096 jobs. + +Patch: + +*** ../bash-20070510/jobs.c Thu Mar 8 16:05:50 2007 +--- jobs.c Fri May 18 11:40:14 2007 +*************** +*** 784,792 **** + { + old = js.j_firstj++; + while (js.j_firstj != old) + { + if (js.j_firstj >= js.j_jobslots) + js.j_firstj = 0; +! if (jobs[js.j_firstj]) + break; + js.j_firstj++; +--- 784,794 ---- + { + old = js.j_firstj++; ++ if (old >= js.j_jobslots) ++ old = js.j_jobslots - 1; + while (js.j_firstj != old) + { + if (js.j_firstj >= js.j_jobslots) + js.j_firstj = 0; +! if (jobs[js.j_firstj] || js.j_firstj == old) /* needed if old == 0 */ + break; + js.j_firstj++; +*************** +*** 798,806 **** + { + old = js.j_lastj--; + while (js.j_lastj != old) + { + if (js.j_lastj < 0) + js.j_lastj = js.j_jobslots - 1; +! if (jobs[js.j_lastj]) + break; + js.j_lastj--; +--- 800,810 ---- + { + old = js.j_lastj--; ++ if (old < 0) ++ old = 0; + while (js.j_lastj != old) + { + if (js.j_lastj < 0) + js.j_lastj = js.j_jobslots - 1; +! if (jobs[js.j_lastj] || js.j_lastj == old) /* needed if old == js.j_jobslots */ + break; + js.j_lastj--; +*************** +*** 964,968 **** + realloc_jobs_list (); + +! return (js.j_lastj); + } + +--- 975,983 ---- + realloc_jobs_list (); + +! #ifdef DEBUG +! itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0); +! #endif +! +! return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0); + } + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-019 b/src/patches/bash/bash32-019 new file mode 100644 index 0000000..647bd1f --- /dev/null +++ b/src/patches/bash/bash32-019 @@ -0,0 +1,343 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-019 + +Bug-Reported-by: Thomas Loeber ifp@loeber1.de +Bug-Reference-ID: 200703082223.08919.ifp@loeber1.de +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html + +Bug-Description: + +When rl_read_key returns -1, indicating that bash's controlling terminal +has been invalidated for some reason (e.g., receiving a SIGHUP), the error +status was not reported correctly to the caller. This could cause input +loops. + +Patch: + +*** ../bash-3.2-patched/lib/readline/complete.c Fri Jul 28 11:35:49 2006 +--- lib/readline/complete.c Tue Mar 13 08:50:16 2007 +*************** +*** 429,433 **** + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +--- 440,444 ---- + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR || c < 0) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +*** ../bash-3.2-patched/lib/readline/input.c Wed Aug 16 15:15:16 2006 +--- lib/readline/input.c Wed May 2 16:07:59 2007 +*************** +*** 514,518 **** + int size; + { +! int mb_len = 0; + size_t mbchar_bytes_length; + wchar_t wc; +--- 522,526 ---- + int size; + { +! int mb_len, c; + size_t mbchar_bytes_length; + wchar_t wc; +*************** +*** 521,531 **** + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! mbchar[mb_len++] = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +--- 529,545 ---- + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! +! mb_len = 0; + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ break; ++ ++ mbchar[mb_len++] = c; ++ + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +*************** +*** 565,569 **** + c = first; + memset (mb, 0, mlen); +! for (i = 0; i < mlen; i++) + { + mb[i] = (char)c; +--- 579,583 ---- + c = first; + memset (mb, 0, mlen); +! for (i = 0; c >= 0 && i < mlen; i++) + { + mb[i] = (char)c; +*** ../bash-3.2-patched/lib/readline/isearch.c Mon Dec 26 17:18:53 2005 +--- lib/readline/isearch.c Fri Mar 9 14:30:59 2007 +*************** +*** 328,333 **** + + f = (rl_command_func_t *)NULL; +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +--- 328,340 ---- + + f = (rl_command_func_t *)NULL; +! +! if (c < 0) +! { +! cxt->sflags |= SF_FAILED; +! cxt->history_pos = cxt->last_found_line; +! return -1; +! } +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +*** ../bash-3.2-patched/lib/readline/misc.c Mon Dec 26 17:20:46 2005 +--- lib/readline/misc.c Fri Mar 9 14:44:11 2007 +*************** +*** 147,150 **** +--- 147,152 ---- + rl_clear_message (); + RL_UNSETSTATE(RL_STATE_NUMERICARG); ++ if (key < 0) ++ return -1; + return (_rl_dispatch (key, _rl_keymap)); + } +*** ../bash-3.2-patched/lib/readline/readline.c Wed Aug 16 15:00:36 2006 +--- lib/readline/readline.c Fri Mar 9 14:47:24 2007 +*************** +*** 646,649 **** +--- 669,677 ---- + { + nkey = _rl_subseq_getchar (cxt->okey); ++ if (nkey < 0) ++ { ++ _rl_abort_internal (); ++ return -1; ++ } + r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg); + cxt->flags |= KSEQ_DISPATCHED; +*** ../bash-3.2-patched/lib/readline/text.c Fri Jul 28 11:55:27 2006 +--- lib/readline/text.c Sun Mar 25 13:41:38 2007 +*************** +*** 858,861 **** +--- 864,870 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_SIGNALS) + if (RL_ISSTATE (RL_STATE_CALLBACK) == 0) +*************** +*** 1521,1524 **** +--- 1530,1536 ---- + mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX); + ++ if (mb_len <= 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, mbchar, mb_len)); +*************** +*** 1537,1540 **** +--- 1549,1555 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, c)); +*** ../bash-3.2-patched/lib/readline/vi_mode.c Sat Jul 29 16:42:28 2006 +--- lib/readline/vi_mode.c Fri Mar 9 15:02:11 2007 +*************** +*** 887,890 **** +--- 887,897 ---- + c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } ++ + *nextkey = c; + +*************** +*** 903,906 **** +--- 910,918 ---- + c = rl_read_key (); /* real command */ + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } + *nextkey = c; + } +*************** +*** 1225,1236 **** + _rl_callback_generic_arg *data; + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + + _rl_callback_func = 0; + _rl_want_redisplay = 1; +--- 1243,1262 ---- + _rl_callback_generic_arg *data; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) +! c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + ++ if (c <= 0) ++ return -1; ++ ++ #if !defined (HANDLE_MULTIBYTE) ++ _rl_vi_last_search_char = c; ++ #endif ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1248,1251 **** +--- 1274,1278 ---- + int count, key; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) + static char *target; +*************** +*** 1294,1302 **** + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + } +--- 1321,1335 ---- + { + #if defined (HANDLE_MULTIBYTE) +! c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); +! if (c <= 0) +! return -1; +! _rl_vi_last_search_mblen = c; + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ return -1; ++ _rl_vi_last_search_char = c; + #endif + } +*************** +*** 1468,1471 **** +--- 1501,1507 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +*************** +*** 1486,1489 **** +--- 1522,1528 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1517,1520 **** +--- 1556,1562 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + return (_rl_vi_change_char (count, c, mb)); + } +*************** +*** 1651,1655 **** + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1693,1697 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); +*************** +*** 1703,1707 **** + return 0; + } +! else if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1745,1749 ---- + return 0; + } +! else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-020 b/src/patches/bash/bash32-020 new file mode 100644 index 0000000..8c7e328 --- /dev/null +++ b/src/patches/bash/bash32-020 @@ -0,0 +1,183 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-020 + +Bug-Reported-by: Ian A Watson WATSON_IAN_A@LILLY.COM +Bug-Reference-ID: OFEC551808.69D02C7F-ON8525729A.0045708D-8525729A.0046150B@EliLilly.lilly.com +Bug-Reference-URL: + +Bug-Description: + +In some cases of error processing, a jump back to the top-level processing +loop from a builtin command would leave the shell in an inconsistent state. + +Patch: + +*** ../bash-3.2-patched/sig.c Wed Jan 25 14:57:59 2006 +--- sig.c Sat Mar 10 11:11:30 2007 +*************** +*** 351,354 **** +--- 351,373 ---- + #undef XHANDLER + ++ /* Run some of the cleanups that should be performed when we run ++ jump_to_top_level from a builtin command context. XXX - might want to ++ also call reset_parser here. */ ++ void ++ top_level_cleanup () ++ { ++ /* Clean up string parser environment. */ ++ while (parse_and_execute_level) ++ parse_and_execute_cleanup (); ++ ++ #if defined (PROCESS_SUBSTITUTION) ++ unlink_fifo_list (); ++ #endif /* PROCESS_SUBSTITUTION */ ++ ++ run_unwind_protects (); ++ loop_level = continuing = breaking = 0; ++ return_catch_flag = 0; ++ } ++ + /* What to do when we've been interrupted, and it is safe to handle it. */ + void +*** ../bash-3.2-patched/sig.h Wed Jan 25 14:50:27 2006 +--- sig.h Sat Mar 10 11:14:18 2007 +*************** +*** 122,125 **** +--- 122,126 ---- + extern void initialize_terminating_signals __P((void)); + extern void reset_terminating_signals __P((void)); ++ extern void top_level_cleanup __P((void)); + extern void throw_to_top_level __P((void)); + extern void jump_to_top_level __P((int)) __attribute__((__noreturn__)); +*** ../bash-3.2-patched/builtins/common.c Tue Apr 3 16:47:13 2007 +--- builtins/common.c Mon Apr 30 15:01:33 2007 +*************** +*** 132,135 **** +--- 132,136 ---- + { + builtin_error (_("too many arguments")); ++ top_level_cleanup (); + jump_to_top_level (DISCARD); + } +*************** +*** 396,400 **** + throw_to_top_level (); + else +! jump_to_top_level (DISCARD); + } + no_args (list->next); +--- 410,417 ---- + throw_to_top_level (); + else +! { +! top_level_cleanup (); +! jump_to_top_level (DISCARD); +! } + } + no_args (list->next); +*** ../bash-3.2-patched/subst.c Tue Apr 3 16:47:19 2007 +--- subst.c Tue Jul 17 09:45:11 2007 +*************** +*** 1279,1283 **** + if (no_longjmp_on_fatal_error == 0) + { /* { */ +! report_error ("bad substitution: no closing `%s' in %s", "}", string); + last_command_exit_value = EXECUTION_FAILURE; + exp_jump_to_top_level (DISCARD); +--- 1290,1294 ---- + if (no_longjmp_on_fatal_error == 0) + { /* { */ +! report_error (_("bad substitution: no closing `%s' in %s"), "}", string); + last_command_exit_value = EXECUTION_FAILURE; + exp_jump_to_top_level (DISCARD); +*************** +*** 7662,7665 **** +--- 7706,7711 ---- + expand_no_split_dollar_star = 0; /* XXX */ + expanding_redir = 0; ++ ++ top_level_cleanup (); /* from sig.c */ + + jump_to_top_level (v); +*************** +*** 7880,7884 **** + { + report_error (_("no match: %s"), tlist->word->word); +! jump_to_top_level (DISCARD); + } + else if (allow_null_glob_expansion == 0) +--- 7927,7931 ---- + { + report_error (_("no match: %s"), tlist->word->word); +! exp_jump_to_top_level (DISCARD); + } + else if (allow_null_glob_expansion == 0) +*** ../bash-3.2-patched/arrayfunc.c Thu Jul 27 09:37:59 2006 +--- arrayfunc.c Thu May 31 11:55:46 2007 +*************** +*** 619,622 **** +--- 619,624 ---- + { + last_command_exit_value = EXECUTION_FAILURE; ++ ++ top_level_cleanup (); + jump_to_top_level (DISCARD); + } +*** ../bash-3.2-patched/expr.c Wed Dec 28 17:47:03 2005 +--- expr.c Tue Apr 24 14:17:59 2007 +*************** +*** 930,933 **** +--- 930,934 ---- + { + expr_unwind (); ++ top_level_cleanup (); + jump_to_top_level (DISCARD); + } +*** ../bash-3.2-patched/variables.c Fri Sep 8 13:33:32 2006 +--- variables.c Tue Jul 17 09:54:59 2007 +*************** +*** 1822,1830 **** + lval = evalexp (oval, &expok); /* ksh93 seems to do this */ + if (expok == 0) +! jump_to_top_level (DISCARD); + } + rval = evalexp (value, &expok); + if (expok == 0) +! jump_to_top_level (DISCARD); + if (flags & ASS_APPEND) + rval += lval; +--- 1855,1869 ---- + lval = evalexp (oval, &expok); /* ksh93 seems to do this */ + if (expok == 0) +! { +! top_level_cleanup (); +! jump_to_top_level (DISCARD); +! } + } + rval = evalexp (value, &expok); + if (expok == 0) +! { +! top_level_cleanup (); +! jump_to_top_level (DISCARD); +! } + if (flags & ASS_APPEND) + rval += lval; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-021 b/src/patches/bash/bash32-021 new file mode 100644 index 0000000..003489c --- /dev/null +++ b/src/patches/bash/bash32-021 @@ -0,0 +1,72 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-021 + +Bug-Reported-by: BAGSHAW Paul RD-TECH-REN paul.bagshaw@orange-ftgroup.com +Bug-Reference-ID: 941BA0BF46DB8F4983FF7C8AFE800BC205EA7D4B@ftrdmel3.rd.francetelecom.fr +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00065.html + +Bug-Description: + +When the parser read a backslash-escaped character that would be treated +internally as an escape, it would double the number of escape characters. + +Patch: + +*** ../bash-3.2-patched/parse.y Mon Oct 30 17:22:00 2006 +--- parse.y Sat Mar 24 17:13:20 2007 +*************** +*** 3377,3381 **** + { + pass_next_character = 0; +! goto got_character; + } + +--- 3377,3381 ---- + { + pass_next_character = 0; +! goto got_escaped_character; + } + +*************** +*** 3651,3660 **** + got_character: + +- all_digit_token &= DIGIT (character); +- dollar_present |= character == '$'; +- + if (character == CTLESC || character == CTLNUL) + token[token_index++] = CTLESC; + + token[token_index++] = character; + +--- 3651,3662 ---- + got_character: + + if (character == CTLESC || character == CTLNUL) + token[token_index++] = CTLESC; + ++ got_escaped_character: ++ ++ all_digit_token &= DIGIT (character); ++ dollar_present |= character == '$'; ++ + token[token_index++] = character; + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-022 b/src/patches/bash/bash32-022 new file mode 100644 index 0000000..d3679e6 --- /dev/null +++ b/src/patches/bash/bash32-022 @@ -0,0 +1,126 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-022 + +Bug-Reported-by: Chet Ramey chet.ramey@cwru.edu +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +POSIX specifies that the `read' builtin invoked from an interative shell +must prompt with $PS2 when a line is continued using a backslash while +reading from a terminal. + +Patch: + +*** ../bash-3.2-patched/builtins/read.def Tue Sep 19 08:45:48 2006 +--- builtins/read.def Thu May 24 16:03:30 2007 +*************** +*** 128,133 **** + { + register char *varname; +! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code; +! int input_is_tty, input_is_pipe, unbuffered_read; + int raw, edit, nchars, silent, have_timeout, fd; + unsigned int tmout; +--- 131,136 ---- + { + register char *varname; +! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2; +! int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul; + int raw, edit, nchars, silent, have_timeout, fd; + unsigned int tmout; +*************** +*** 135,139 **** + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1; + struct stat tsb; + SHELL_VAR *var; +--- 138,142 ---- + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1, *ps2; + struct stat tsb; + SHELL_VAR *var; +*************** +*** 149,152 **** +--- 152,156 ---- + USE_VAR(i); + USE_VAR(pass_next); ++ USE_VAR(print_ps2); + USE_VAR(saw_escape); + USE_VAR(input_is_pipe); +*************** +*** 164,167 **** +--- 168,172 ---- + #endif + USE_VAR(list); ++ USE_VAR(ps2); + + i = 0; /* Index into the string that we are reading. */ +*************** +*** 387,391 **** + #endif + +! for (eof = retval = 0;;) + { + #if defined (READLINE) +--- 394,399 ---- + #endif + +! ps2 = 0; +! for (print_ps2 = eof = retval = 0;;) + { + #if defined (READLINE) +*************** +*** 413,416 **** +--- 421,433 ---- + #endif + ++ if (print_ps2) ++ { ++ if (ps2 == 0) ++ ps2 = get_string_value ("PS2"); ++ fprintf (stderr, "%s", ps2 ? ps2 : ""); ++ fflush (stderr); ++ print_ps2 = 0; ++ } ++ + if (unbuffered_read) + retval = zread (fd, &c, 1); +*************** +*** 441,445 **** + pass_next = 0; + if (c == '\n') +! i--; /* back up over the CTLESC */ + else + goto add_char; +--- 458,466 ---- + pass_next = 0; + if (c == '\n') +! { +! i--; /* back up over the CTLESC */ +! if (interactive && input_is_tty && raw == 0) +! print_ps2 = 1; +! } + else + goto add_char; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-023 b/src/patches/bash/bash32-023 new file mode 100644 index 0000000..34a6394 --- /dev/null +++ b/src/patches/bash/bash32-023 @@ -0,0 +1,51 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-023 + +Bug-Reported-by: Chet Ramey chet.ramey@cwru.edu +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +When an error occurs during the pattern removal word expansion, the shell +can free unallocated memory or free memory multiple times. + +Patch: + +*** ../bash-3.2-patched/subst.c Tue Apr 3 16:47:19 2007 +--- subst.c Tue Jul 17 09:45:11 2007 +*************** +*** 3975,3979 **** + patstr++; + +! pattern = getpattern (patstr, quoted, 1); + + temp1 = (char *)NULL; /* shut up gcc */ +--- 4008,4016 ---- + patstr++; + +! /* Need to pass getpattern newly-allocated memory in case of expansion -- +! the expansion code will free the passed string on an error. */ +! temp1 = savestring (patstr); +! pattern = getpattern (temp1, quoted, 1); +! free (temp1); + + temp1 = (char *)NULL; /* shut up gcc */ +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-024 b/src/patches/bash/bash32-024 new file mode 100644 index 0000000..1575f37 --- /dev/null +++ b/src/patches/bash/bash32-024 @@ -0,0 +1,77 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-024 + +Bug-Reported-by: Peter Volkov torre_cremata@mail.ru +Bug-Reference-ID: 1178376645.9063.25.camel@localhost +Bug-Reference-URL: http://bugs.gentoo.org/177095 + +Bug-Description: + +The readline display code miscalculated the screen position when performing +a redisplay in which the new text occupies more screen space that the old, +but takes fewer bytes to do so (e.g., when replacing a shorter string +containing multibyte characters with a longer one containing only ASCII). + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c Thu Apr 26 11:38:22 2007 +--- lib/readline/display.c Thu Jul 12 23:10:10 2007 +*************** +*** 1519,1527 **** + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and +--- 1568,1596 ---- + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; ++ /* If col_lendiff is > 0, implying that the new string takes up more ++ screen real estate than the old, but lendiff is < 0, meaning that it ++ takes fewer bytes, we need to just output the characters starting ++ from the first difference. These will overwrite what is on the ++ display, so there's no reason to do a smart update. This can really ++ only happen in a multibyte environment. */ ++ if (lendiff < 0) ++ { ++ _rl_output_some_chars (nfd, temp); ++ _rl_last_c_pos += _rl_col_width (nfd, 0, temp); ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ return; ++ } + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-025 b/src/patches/bash/bash32-025 new file mode 100644 index 0000000..4d53d89 --- /dev/null +++ b/src/patches/bash/bash32-025 @@ -0,0 +1,79 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-025 + +Bug-Reported-by: Tom Bjorkholm tom.bjorkholm@ericsson.com +Bug-Reference-ID: AEA1A32F001C6B4F98614B5B80D7647D01C075E9@esealmw115.eemea.ericsson.se +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html + +Bug-Description: + +An off-by-one error in readline's input buffering caused readline to drop +each 511th character of buffered input (e.g., when pasting a large amount +of data into a terminal window). + +Patch: + +*** ../bash-3.2-patched/lib/readline/input.c Wed Aug 16 15:15:16 2006 +--- lib/readline/input.c Tue Jul 17 09:24:21 2007 +*************** +*** 134,139 **** + + *key = ibuffer[pop_index++]; +! + if (pop_index >= ibuffer_len) + pop_index = 0; + +--- 134,142 ---- + + *key = ibuffer[pop_index++]; +! #if 0 + if (pop_index >= ibuffer_len) ++ #else ++ if (pop_index > ibuffer_len) ++ #endif + pop_index = 0; + +*************** +*** 251,255 **** + { + k = (*rl_getc_function) (rl_instream); +! rl_stuff_char (k); + if (k == NEWLINE || k == RETURN) + break; +--- 254,259 ---- + { + k = (*rl_getc_function) (rl_instream); +! if (rl_stuff_char (k) == 0) +! break; /* some problem; no more room */ + if (k == NEWLINE || k == RETURN) + break; +*************** +*** 374,378 **** +--- 378,386 ---- + } + ibuffer[push_index++] = key; ++ #if 0 + if (push_index >= ibuffer_len) ++ #else ++ if (push_index > ibuffer_len) ++ #endif + push_index = 0; + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 25 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-026 b/src/patches/bash/bash32-026 new file mode 100644 index 0000000..ba7de50 --- /dev/null +++ b/src/patches/bash/bash32-026 @@ -0,0 +1,82 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-026 + +Bug-Reported-by: Chet Ramey chet.ramey@case.edu +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +This keeps the Apple linker from attempting to link bash against Apple's +readline library "replacement" rather than the one shipped with bash. It +extends the configure workaround to Mac OS X Leopard (10.5). + +As a side effect, the patch updates the copyright date displayed in the +version string. + +You must re-run configure after applying the patch, and before rebuilding +bash. + +Patch: + +*** ../bash-3.2-patched/configure.in 2007-03-06 11:07:38.000000000 -0500 +--- configure.in 2007-11-23 15:37:41.000000000 -0500 +*************** +*** 519,523 **** + # dynamic version + case "${host_os}" in +! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +--- 519,523 ---- + # dynamic version + case "${host_os}" in +! darwin[[89]]*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +*** ../bash-3.2-patched/configure 2007-03-24 14:51:22.000000000 -0400 +--- configure 2007-11-23 15:46:15.000000000 -0500 +*************** +*** 4872,4876 **** + # dynamic version + case "${host_os}" in +! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +--- 4872,4876 ---- + # dynamic version + case "${host_os}" in +! darwin[89]*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +*** ../bash-3.2-patched/version.c 2005-05-16 11:58:34.000000000 -0400 +--- version.c 2007-11-23 16:03:40.000000000 -0500 +*************** +*** 80,83 **** + printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); + if (extended) +! printf (_("Copyright (C) 2005 Free Software Foundation, Inc.\n")); + } +--- 80,83 ---- + printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); + if (extended) +! printf (_("Copyright (C) 2007 Free Software Foundation, Inc.\n")); + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 25 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-027 b/src/patches/bash/bash32-027 new file mode 100644 index 0000000..5e110cb --- /dev/null +++ b/src/patches/bash/bash32-027 @@ -0,0 +1,85 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-027 + +Bug-Reported-by: dAniel hAhler ubuntu@thequod.de +Bug-Reference-ID: 4702ED8A.5000503@thequod.de +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938 + +Bug-Description: + +When updating the display after displaying, for instance, a list of possible +completions, readline will place the cursor at the wrong position if the +prompt contains invisible characters and a newline. + +Patch: + +*** ../bash-3.2.25/lib/readline/display.c Mon Aug 6 14:26:29 2007 +--- lib/readline/display.c Wed Oct 10 22:43:58 2007 +*************** +*** 1049,1053 **** + else + tx = nleft; +! if (_rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +--- 1049,1053 ---- + else + tx = nleft; +! if (tx >= 0 && _rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1205,1209 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1466,1469 **** +--- 1466,1471 ---- + } + ++ o_cpos = _rl_last_c_pos; ++ + /* When this function returns, _rl_last_c_pos is correct, and an absolute + cursor postion in multibyte mode, but a buffer index when not in a +*************** +*** 1475,1479 **** + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif +--- 1477,1483 ---- + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && +! (_rl_last_c_pos > 0 || o_cpos > 0) && +! _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 27 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-028 b/src/patches/bash/bash32-028 new file mode 100644 index 0000000..e818294 --- /dev/null +++ b/src/patches/bash/bash32-028 @@ -0,0 +1,60 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-028 + +Bug-Reported-by: dAniel hAhler ubuntu@thequod.de +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under some circumstances, readline will incorrectly display a prompt string +containing invisible characters after the final newline. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400 +--- lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 392,396 **** + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! (int *)NULL, + &prompt_physical_chars); + c = *t; *t = '\0'; +--- 420,424 ---- + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! &prompt_invis_chars_first_line, + &prompt_physical_chars); + c = *t; *t = '\0'; +*************** +*** 399,403 **** + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! &prompt_invis_chars_first_line, + (int *)NULL); + *t = c; +--- 427,431 ---- + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! (int *)NULL, + (int *)NULL); + *t = c; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 27 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 28 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-029 b/src/patches/bash/bash32-029 new file mode 100644 index 0000000..9de2085 --- /dev/null +++ b/src/patches/bash/bash32-029 @@ -0,0 +1,52 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-029 + +Bug-Reported-by: Tomas Janousek tjanouse@redhat.com +Bug-Reference-ID: 20071102104034.GA26893@redhat.com +Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=286861 + +Bug-Description: + +When the bash arithmetic expression evaluator has temporarily turned off +evalation, such as when parsing a pre- or post-decrement or -increment +operator, and an error occurs, evaluation is not re-enabled. + +Patch: + +*** ../bash-3.2-patched/expr.c 2007-08-25 13:47:05.000000000 -0400 +--- expr.c 2007-10-18 08:08:44.000000000 -0400 +*************** +*** 287,290 **** +--- 287,292 ---- + } + free (expr_stack[expr_depth]); /* free the allocated EXPR_CONTEXT */ ++ ++ noeval = 0; /* XXX */ + } + +*************** +*** 320,323 **** +--- 322,326 ---- + + val = 0; ++ noeval = 0; + + FASTCOPY (evalbuf, oevalbuf, sizeof (evalbuf)); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 28 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-030 b/src/patches/bash/bash32-030 new file mode 100644 index 0000000..3f12c28 --- /dev/null +++ b/src/patches/bash/bash32-030 @@ -0,0 +1,50 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-030 + +Bug-Reported-by: Paul Eggert eggert@cs.ucla.edu Andreas Schwab schwab@suse.de +Bug-Reference-ID: 877il0nu84.fsf_-_@penguin.cs.ucla.edu m28x5gparz.fsf@igel.home +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00023.html http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.htmlhttp://lists... + +Bug-Description: + +If redirections attached to a compound command fail, bash does not set the +command's exit status correctly. This only happens when the command is the +first in a sequential list. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2007-03-24 14:51:05.000000000 -0400 +--- execute_cmd.c 2007-11-05 22:31:14.000000000 -0500 +*************** +*** 615,619 **** + redirection_undo_list = (REDIRECT *)NULL; + dispose_exec_redirects (); +! return (EXECUTION_FAILURE); + } + +--- 620,624 ---- + redirection_undo_list = (REDIRECT *)NULL; + dispose_exec_redirects (); +! return (last_command_exit_value = EXECUTION_FAILURE); + } + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ + + diff --git a/src/patches/bash/bash32-031 b/src/patches/bash/bash32-031 new file mode 100644 index 0000000..6c96fb9 --- /dev/null +++ b/src/patches/bash/bash32-031 @@ -0,0 +1,62 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-031 + +Bug-Reported-by: Miroslav Lichvar mlichvar@redhat.com +Bug-Reference-ID: Fri, 02 Nov 2007 14:07:45 +0100 +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html + +Bug-Description: + +In certain cases when outputting characters at the end of the line, +e.g., when displaying the prompt string, readline positions the cursor +incorrectly if the prompt string contains invisible characters and the +text being drawn begins before the last invisible character in the line. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400 +--- lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 1566,1574 **** + else + { +- /* We have horizontal scrolling and we are not inserting at +- the end. We have invisible characters in this line. This +- is a dumb update. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; + return; + } +--- 1619,1632 ---- + else + { + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } + return; + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-032 b/src/patches/bash/bash32-032 new file mode 100644 index 0000000..5e53e29 --- /dev/null +++ b/src/patches/bash/bash32-032 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-032 + +Bug-Reported-by: Uwe Doering gemini@geminix.org +Bug-Reference-ID: 46F3DD72.2090801@geminix.org +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html + +Bug-Description: + +There is an off-by-one error in the code that buffers characters received +very quickly in succession, causing characters to be dropped. + +Patch: + +*** ../bash-3.2-patched/lib/readline/input.c 2007-08-25 13:47:10.000000000 -0400 +--- lib/readline/input.c 2007-10-12 22:55:25.000000000 -0400 +*************** +*** 155,159 **** + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len - 1; + ibuffer[pop_index] = key; + return (1); +--- 155,159 ---- + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len; + ibuffer[pop_index] = key; + return (1); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-033 b/src/patches/bash/bash32-033 new file mode 100644 index 0000000..0d69810 --- /dev/null +++ b/src/patches/bash/bash32-033 @@ -0,0 +1,88 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-033 + +Bug-Reported-by: Christophe Martin schplurtz@free.fr +Bug-Reference-ID: 465ABA4A.3030805@free.fr +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00104.html + +Bug-Description: + +References made within a function to an uninitialized local array variable +using the [*] subscript in a double-quoted string can result in spurious +ASCII 127 characters in the expanded value. + +Patch: + +*** ../bash-3.2-patched/arrayfunc.c 2007-08-25 13:47:05.000000000 -0400 +--- arrayfunc.c 2007-05-31 11:55:46.000000000 -0400 +*************** +*** 723,727 **** + { + if (rtype) +! *rtype = 1; + if (allow_all == 0) + { +--- 723,727 ---- + { + if (rtype) +! *rtype = (t[0] == '*') ? 1 : 2; + if (allow_all == 0) + { +*** ../bash-3.2-patched/subst.c 2007-08-25 13:47:08.000000000 -0400 +--- subst.c 2007-11-14 15:43:00.000000000 -0500 +*************** +*** 4908,4915 **** + intmax_t arg_index; + SHELL_VAR *var; +! int atype; + + ret = 0; + temp = 0; + + /* Handle multiple digit arguments, as in ${11}. */ +--- 4973,4981 ---- + intmax_t arg_index; + SHELL_VAR *var; +! int atype, rflags; + + ret = 0; + temp = 0; ++ rflags = 0; + + /* Handle multiple digit arguments, as in ${11}. */ +*************** +*** 4944,4947 **** +--- 5010,5015 ---- + ? quote_string (temp) + : quote_escapes (temp); ++ else if (atype == 1 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) ++ rflags |= W_HASQUOTEDNULL; + } + #endif +*************** +*** 4971,4974 **** +--- 5039,5043 ---- + ret = alloc_word_desc (); + ret->word = temp; ++ ret->flags |= rflags; + } + return ret; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 33 + + #endif /* _PATCHLEVEL_H_ */ + diff --git a/src/patches/bash/bash32-034 b/src/patches/bash/bash32-034 new file mode 100644 index 0000000..4f08162 --- /dev/null +++ b/src/patches/bash/bash32-034 @@ -0,0 +1,74 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-034 + +Bug-Reported-by: Ian Campbell ian.campbell@xensource.com +Bug-Reference-ID: EXCHPAFExU3l5bhn1ow00001dfe@rpc.xensource.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-10/msg00060.html + +Bug-Description: + +The bash getcwd replacement will write past the end of allocated memory +when it allocates the buffer itself if it uses the buffer size passed as +an argument, and that size is less than the length of the pathname. + +Patch: + +*** ../bash-3.2-patched/lib/sh/getcwd.c 2004-07-21 17:15:19.000000000 -0400 +--- lib/sh/getcwd.c 2007-12-31 19:26:36.000000000 -0500 +*************** +*** 252,268 **** + { + size_t len = pathbuf + pathsize - pathp; + if (buf == NULL) + { +! if (len < (size_t) size) +! len = size; +! buf = (char *) malloc (len); + if (buf == NULL) + goto lose2; + } +! else if ((size_t) size < len) +! { +! errno = ERANGE; +! goto lose2; +! } + (void) memcpy((PTR_T) buf, (PTR_T) pathp, len); + } +--- 287,305 ---- + { + size_t len = pathbuf + pathsize - pathp; ++ if (buf == NULL && size <= 0) ++ size = len; ++ ++ if ((size_t) size < len) ++ { ++ errno = ERANGE; ++ goto lose2; ++ } + if (buf == NULL) + { +! buf = (char *) malloc (size); + if (buf == NULL) + goto lose2; + } +! + (void) memcpy((PTR_T) buf, (PTR_T) pathp, len); + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 33 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 34 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-035 b/src/patches/bash/bash32-035 new file mode 100644 index 0000000..55506ba --- /dev/null +++ b/src/patches/bash/bash32-035 @@ -0,0 +1,159 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-035 + +Bug-Reported-by: Ingo Molnar mingo@elte.hu +Bug-Reference-ID: 20071205202901.GA25202@elte.hu +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-12/msg00014.html + +Bug-Description: + +Bash incorrectly puts the second and subsequent children spawned by a +shell forked to run a command substitution in the wrong process group. + +Patch: + +*** ../bash-3.2-patched/subst.c 2007-12-13 22:31:21.000000000 -0500 +--- subst.c 2008-01-17 22:48:15.000000000 -0500 +*************** +*** 4621,4627 **** + + #if defined (JOB_CONTROL) + set_sigchld_handler (); + stop_making_children (); +! pipeline_pgrp = old_pipeline_pgrp; + #else + stop_making_children (); +--- 4721,4728 ---- + + #if defined (JOB_CONTROL) + set_sigchld_handler (); + stop_making_children (); +! if (pid != 0) +! pipeline_pgrp = old_pipeline_pgrp; + #else + stop_making_children (); +*** ../bash-3.2-patched/jobs.c 2007-08-25 13:46:59.000000000 -0400 +--- jobs.c 2007-12-08 16:47:43.000000000 -0500 +*************** +*** 251,254 **** +--- 251,255 ---- + static int set_job_status_and_cleanup __P((int)); + ++ static WAIT job_signal_status __P((int)); + static WAIT raw_job_exit_status __P((int)); + +*************** +*** 2220,2223 **** +--- 2238,2261 ---- + } + ++ static WAIT ++ job_signal_status (job) ++ int job; ++ { ++ register PROCESS *p; ++ WAIT s; ++ ++ p = jobs[job]->pipe; ++ do ++ { ++ s = p->status; ++ if (WIFSIGNALED(s) || WIFSTOPPED(s)) ++ break; ++ p = p->next; ++ } ++ while (p != jobs[job]->pipe); ++ ++ return s; ++ } ++ + /* Return the exit status of the last process in the pipeline for job JOB. + This is the exit status of the entire job. */ +*************** +*** 2302,2310 **** + received, only if one of the jobs run is killed via SIGINT. If + job control is not set, the job will be run in the same pgrp as +! the shell, and the shell will see any signals the job gets. */ + + /* This is possibly a race condition -- should it go in stop_pipeline? */ + wait_sigint_received = 0; +! if (job_control == 0) + { + old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +--- 2343,2354 ---- + received, only if one of the jobs run is killed via SIGINT. If + job control is not set, the job will be run in the same pgrp as +! the shell, and the shell will see any signals the job gets. In +! fact, we want this set every time the waiting shell and the waited- +! for process are in the same process group, including command +! substitution. */ + + /* This is possibly a race condition -- should it go in stop_pipeline? */ + wait_sigint_received = 0; +! if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB)) + { + old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +*************** +*** 2452,2464 **** + the last process in the pipeline. If no process exits due to a + signal, S is left as the status of the last job in the pipeline. */ +! p = jobs[job]->pipe; +! do +! { +! s = p->status; +! if (WIFSIGNALED(s) || WIFSTOPPED(s)) +! break; +! p = p->next; +! } +! while (p != jobs[job]->pipe); + + if (WIFSIGNALED (s) || WIFSTOPPED (s)) +--- 2496,2500 ---- + the last process in the pipeline. If no process exits due to a + signal, S is left as the status of the last job in the pipeline. */ +! s = job_signal_status (job); + + if (WIFSIGNALED (s) || WIFSTOPPED (s)) +*************** +*** 2494,2497 **** +--- 2530,2551 ---- + } + } ++ else if ((subshell_environment & SUBSHELL_COMSUB) && wait_sigint_received) ++ { ++ /* If waiting for a job in a subshell started to do command ++ substitution, simulate getting and being killed by the SIGINT to ++ pass the status back to our parent. */ ++ s = job_signal_status (job); ++ ++ if (WIFSIGNALED (s) && WTERMSIG (s) == SIGINT && signal_is_trapped (SIGINT) == 0) ++ { ++ UNBLOCK_CHILD (oset); ++ restore_sigint_handler (); ++ old_sigint_handler = set_signal_handler (SIGINT, SIG_DFL); ++ if (old_sigint_handler == SIG_IGN) ++ restore_sigint_handler (); ++ else ++ kill (getpid (), SIGINT); ++ } ++ } + + /* Moved here from set_job_status_and_cleanup, which is in the SIGCHLD +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 34 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 35 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-036 b/src/patches/bash/bash32-036 new file mode 100644 index 0000000..ef22e60 --- /dev/null +++ b/src/patches/bash/bash32-036 @@ -0,0 +1,44 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-036 + +Bug-Reported-by: Len Lattanzi llattanzi@apple.com +Bug-Reference-ID: 87493131-7AEC-4301-A684-E6CC6D06E3E1@apple.com +Bug-Reference-URL: + +Bug-Description: + +When initializing a subshell, bash did not reset a sentinel keeping track +of the number of command substitutions, leading to an infinite loop if +an error was encountered in the subshell. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2007-12-13 22:31:14.000000000 -0500 +--- execute_cmd.c 2007-12-20 08:52:34.000000000 -0500 +*************** +*** 3881,3884 **** +--- 3916,3921 ---- + + clear_unwind_protect_list (0); ++ /* XXX -- are there other things we should be resetting here? */ ++ parse_and_execute_level = 0; /* nothing left to restore it */ + + /* We're no longer inside a shell function. */ +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 35 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 36 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-037 b/src/patches/bash/bash32-037 new file mode 100644 index 0000000..376bd93 --- /dev/null +++ b/src/patches/bash/bash32-037 @@ -0,0 +1,110 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-037 + +Bug-Reported-by: jared r r spiegel jrrs@iorek.ice-nine.org +Bug-Reference-ID: 200801152201.m0FM1lDp021260@iorek.ice-nine.org +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-01/msg00049.html + +Bug-Description: + +Bash inappropriately evaluates command substitutions while expanding +directory names as part of command substitution. + +Patch: + +*** ../bash-3.2-patched/subst.c 2007-12-13 22:31:21.000000000 -0500 +--- subst.c 2008-01-17 22:48:15.000000000 -0500 +*************** +*** 2815,2821 **** + to jump_to_top_level here so we don't endlessly loop. */ + WORD_LIST * +! expand_prompt_string (string, quoted) + char *string; + int quoted; + { + WORD_LIST *value; +--- 2895,2902 ---- + to jump_to_top_level here so we don't endlessly loop. */ + WORD_LIST * +! expand_prompt_string (string, quoted, wflags) + char *string; + int quoted; ++ int wflags; + { + WORD_LIST *value; +*************** +*** 2825,2829 **** + return ((WORD_LIST *)NULL); + +! td.flags = 0; + td.word = savestring (string); + +--- 2906,2910 ---- + return ((WORD_LIST *)NULL); + +! td.flags = wflags; + td.word = savestring (string); + +*** ../bash-3.2-patched/subst.h 2007-03-24 14:51:05.000000000 -0400 +--- subst.h 2008-01-17 22:46:08.000000000 -0500 +*************** +*** 136,140 **** + + /* Expand a prompt string. */ +! extern WORD_LIST *expand_prompt_string __P((char *, int)); + + /* Expand STRING just as if you were expanding a word. This also returns +--- 137,141 ---- + + /* Expand a prompt string. */ +! extern WORD_LIST *expand_prompt_string __P((char *, int, int)); + + /* Expand STRING just as if you were expanding a word. This also returns +*** ../bash-3.2-patched/parse.y 2007-08-25 13:47:06.000000000 -0400 +--- parse.y 2008-01-17 22:46:30.000000000 -0500 +*************** +*** 4367,4371 **** + { + last_exit_value = last_command_exit_value; +! list = expand_prompt_string (result, Q_DOUBLE_QUOTES); + free (result); + result = string_list (list); +--- 4367,4371 ---- + { + last_exit_value = last_command_exit_value; +! list = expand_prompt_string (result, Q_DOUBLE_QUOTES, 0); + free (result); + result = string_list (list); +*** ../bash-3.2-patched/bashline.c 2006-07-29 16:39:30.000000000 -0400 +--- bashline.c 2008-02-17 12:53:42.000000000 -0500 +*************** +*** 2358,2362 **** + { + new_dirname = savestring (local_dirname); +! wl = expand_prompt_string (new_dirname, 0); /* does the right thing */ + if (wl) + { +--- 2376,2380 ---- + { + new_dirname = savestring (local_dirname); +! wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB); /* does the right thing */ + if (wl) + { +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 36 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 37 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-038 b/src/patches/bash/bash32-038 new file mode 100644 index 0000000..842b1b5 --- /dev/null +++ b/src/patches/bash/bash32-038 @@ -0,0 +1,80 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-038 + +Bug-Reported-by: Wojciech Puchar wojtek@wojtek.tensor.gdynia.pl +Bug-Reference-ID: 200803131141.m2DBf9vo001136@wojtek.tensor.gdynia.pl +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-03/msg00029.html + +Bug-Description: + +When reading input lines into a single variable using the `read' builtin, +bash did not free the memory it read after assigining it to the named +variable, causing a memory leak noticable when reading large amounts of +data. + + +Patch: + +*** ../bash-3.2-patched/builtins/read.def 2007-08-25 13:47:07.000000000 -0400 +--- builtins/read.def 2008-03-07 12:55:47.000000000 -0500 +*************** +*** 135,139 **** + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1, *ps2; + struct stat tsb; + SHELL_VAR *var; +--- 152,156 ---- + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1, *ps2, *tofree; + struct stat tsb; + SHELL_VAR *var; +*************** +*** 675,678 **** +--- 728,732 ---- + /* Check whether or not the number of fields is exactly the same as the + number of variables. */ ++ tofree = NULL; + if (*input_string) + { +*************** +*** 680,684 **** + t = get_word_from_string (&input_string, ifs_chars, &e); + if (*input_string == 0) +! input_string = t; + else + input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape); +--- 734,738 ---- + t = get_word_from_string (&input_string, ifs_chars, &e); + if (*input_string == 0) +! tofree = input_string = t; + else + input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape); +*************** +*** 695,698 **** +--- 749,754 ---- + var = bind_read_variable (list->word->word, input_string); + stupidly_hack_special_variables (list->word->word); ++ FREE (tofree); ++ + if (var) + VUNSETATTR (var, att_invisible); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 37 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 38 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-039 b/src/patches/bash/bash32-039 new file mode 100644 index 0000000..c225a5a --- /dev/null +++ b/src/patches/bash/bash32-039 @@ -0,0 +1,175 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-039 + +Bug-Reported-by: rew@erebor.com +Bug-Reference-ID: 20070119065603.546D011E9C@kansas.erebor.com +Bug-Reference-URL: + +Bug-Description: + +Bash-3.2 changed the behavior of the [[ command's `=~' operator when the +right-hand side was quoted: it matched the quoted portions as strings. +This patch introduces a new shell option: compat31. When enabled, it +restores the bash-3.1 behavior with respect to evaluating quoted arguments +to the =~ operator. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2007-12-14 21:12:39.000000000 -0500 +--- execute_cmd.c 2008-02-22 21:20:40.000000000 -0500 +*************** +*** 2547,2551 **** + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0)); + if (arg2 == 0) + arg2 = nullstr; +--- 2552,2557 ---- + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, +! (rmatch && shell_compatibility_level > 31) ? 2 : (patmatch ? 1 : 0)); + if (arg2 == 0) + arg2 = nullstr; +*** ../bash-3.2-patched/shell.h 2003-06-01 15:04:36.000000000 -0400 +--- shell.h 2008-02-22 21:16:48.000000000 -0500 +*************** +*** 90,93 **** +--- 90,94 ---- + extern int interactive, interactive_shell; + extern int startup_state; ++ extern int shell_compatibility_level; + + /* Structure to pass around that holds a bitmap of file descriptors +*** ../bash-3.2-patched/version.c 2007-12-14 21:12:29.000000000 -0500 +--- version.c 2008-04-10 08:22:22.000000000 -0400 +*************** +*** 44,47 **** +--- 44,50 ---- + const char *sccs_version = SCCSVERSION; + ++ /* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */ ++ int shell_compatibility_level = 32; ++ + /* Functions for getting, setting, and displaying the shell version. */ + +*** ../bash-3.2-patched/builtins/shopt.def 2005-02-19 17:25:03.000000000 -0500 +--- builtins/shopt.def 2008-04-10 08:13:32.000000000 -0400 +*************** +*** 102,105 **** +--- 102,107 ---- + static int set_shellopts_after_change __P((int)); + ++ static int set_compatibility_level __P((int)); ++ + #if defined (RESTRICTED_SHELL) + static int set_restricted_shell __P((int)); +*************** +*** 107,110 **** +--- 109,113 ---- + + static int shopt_login_shell; ++ static int shopt_compat31; + + typedef int shopt_set_func_t __P((int)); +*************** +*** 122,125 **** +--- 125,129 ---- + { "cmdhist", &command_oriented_history, (shopt_set_func_t *)NULL }, + #endif ++ { "compat31", &shopt_compat31, set_compatibility_level }, + { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL }, + { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL }, +*************** +*** 460,463 **** +--- 464,479 ---- + } + ++ static int ++ set_compatibility_level (mode) ++ int mode; ++ { ++ /* Need to change logic here as we add more compatibility levels */ ++ if (shopt_compat31) ++ shell_compatibility_level = 31; ++ else ++ shell_compatibility_level = 32; ++ return 0; ++ } ++ + #if defined (RESTRICTED_SHELL) + /* Don't allow the value of restricted_shell to be modified. */ +*** ../bash-3.2-patched/doc/bash.1 2006-09-28 10:26:05.000000000 -0400 +--- doc/bash.1 2008-04-25 12:32:49.000000000 -0400 +*************** +*** 7978,7981 **** +--- 8200,8209 ---- + easy re-editing of multi-line commands. + .TP 8 ++ .B compat31 ++ If set, ++ .B bash ++ changes its behavior to that of version 3.1 with respect to quoted ++ arguments to the conditional command's =~ operator. ++ .TP 8 + .B dotglob + If set, +*** ../bash-20080214/doc/bashref.texi 2008-02-08 21:28:35.000000000 -0500 +--- doc/bashref.texi 2008-02-22 21:44:51.000000000 -0500 +*************** +*** 4053,4056 **** +--- 4061,4069 ---- + easy re-editing of multi-line commands. + ++ @item compat31 ++ If set, Bash ++ changes its behavior to that of version 3.1 with respect to quoted ++ arguments to the conditional command's =~ operator. ++ + @item dotglob + If set, Bash includes filenames beginning with a `.' in +*** ../bash-3.2-patched/tests/shopt.right 2005-02-19 17:46:09.000000000 -0500 +--- tests/shopt.right 2008-04-28 09:13:07.000000000 -0400 +*************** +*** 7,10 **** +--- 7,11 ---- + shopt -u checkwinsize + shopt -s cmdhist ++ shopt -u compat31 + shopt -u dotglob + shopt -u execfail +*************** +*** 54,57 **** +--- 55,59 ---- + shopt -u checkhash + shopt -u checkwinsize ++ shopt -u compat31 + shopt -u dotglob + shopt -u execfail +*************** +*** 78,81 **** +--- 80,84 ---- + checkhash off + checkwinsize off ++ compat31 off + dotglob off + execfail off + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 38 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 39 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-040 b/src/patches/bash/bash32-040 new file mode 100644 index 0000000..50b85bb --- /dev/null +++ b/src/patches/bash/bash32-040 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-040 + +Bug-Reported-by: John McCabe-Dansted +Bug-Reference-ID: +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/202885 + +Bug-Description: + +When using the `set' builtin to list all shell variables, the shell uses +the wrong variable when computing the length of a variable's value. + +Patch: + +*** ../bash-3.2-patched/array.c 2007-03-24 14:51:03.000000000 -0400 +--- array.c 2008-08-17 13:07:04.000000000 -0400 +*************** +*** 684,688 **** + valstr = element_value (ae) ? sh_double_quote (element_value(ae)) + : (char *)NULL; +! elen = STRLEN (indstr) + 8 + STRLEN (valstr); + RESIZE_MALLOCED_BUFFER (result, rlen, (elen + 1), rsize, rsize); + +--- 809,813 ---- + valstr = element_value (ae) ? sh_double_quote (element_value(ae)) + : (char *)NULL; +! elen = STRLEN (is) + 8 + STRLEN (valstr); + RESIZE_MALLOCED_BUFFER (result, rlen, (elen + 1), rsize, rsize); + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 39 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 40 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-041 b/src/patches/bash/bash32-041 new file mode 100644 index 0000000..3c05c04 --- /dev/null +++ b/src/patches/bash/bash32-041 @@ -0,0 +1,154 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-041 + +Bug-Reported-by: Dan Jacobson jidanni@jidanni.org +Bug-Reference-ID: 873arjs11h.fsf@jidanni.org +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-02/msg00049.html + +Bug-Description: + +Bash saved and restored the value of `set -o history' while sourcing files, +preventing users from turning off history with `set +o history' in .bashrc. + +Patch: + +*** ../bash-3.2-patched/bashhist.c 2005-12-26 13:31:16.000000000 -0500 +--- bashhist.c 2008-08-17 13:07:40.000000000 -0400 +*************** +*** 81,84 **** +--- 81,85 ---- + becomes zero when we read lines from a file, for example. */ + int remember_on_history = 1; ++ int enable_history_list = 1; /* value for `set -o history' */ + + /* The number of lines that Bash has added to this history session. The +*************** +*** 235,239 **** + history_expansion_inhibited = 1; + #endif +! remember_on_history = interact != 0; + history_inhibit_expansion_function = bash_history_inhibit_expansion; + } +--- 236,240 ---- + history_expansion_inhibited = 1; + #endif +! remember_on_history = enable_history_list = interact != 0; + history_inhibit_expansion_function = bash_history_inhibit_expansion; + } +*** ../bash-3.2-patched/builtins/set.def 2006-07-27 09:41:43.000000000 -0400 +--- builtins/set.def 2008-08-14 16:33:41.000000000 -0400 +*************** +*** 190,194 **** + #endif /* BANG_HISTORY */ + #if defined (HISTORY) +! { "history", '\0', &remember_on_history, bash_set_history, (setopt_get_func_t *)NULL }, + #endif + { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL }, +--- 198,202 ---- + #endif /* BANG_HISTORY */ + #if defined (HISTORY) +! { "history", '\0', &enable_history_list, bash_set_history, (setopt_get_func_t *)NULL }, + #endif + { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL }, +*************** +*** 382,385 **** +--- 390,394 ---- + if (on_or_off == FLAG_ON) + { ++ enable_history_list = 1; + bash_history_enable (); + if (history_lines_this_session == 0) +*************** +*** 387,392 **** + } + else +! bash_history_disable (); +! return (1 - remember_on_history); + } + #endif +--- 396,404 ---- + } + else +! { +! enable_history_list = 0; +! bash_history_disable (); +! } +! return (1 - enable_history_list); + } + #endif +*************** +*** 566,570 **** + { + #if defined (HISTORY) +! remember_on_history = 1; + #endif + ignoreeof = 0; +--- 578,582 ---- + { + #if defined (HISTORY) +! remember_on_history = enable_history_list = 1; + #endif + ignoreeof = 0; +*** ../bash-3.2-patched/builtins/evalstring.c 2006-07-28 15:12:16.000000000 -0400 +--- builtins/evalstring.c 2008-11-10 21:17:16.000000000 -0500 +*************** +*** 68,71 **** +--- 68,79 ---- + static int cat_file __P((REDIRECT *)); + ++ #if defined (HISTORY) ++ static void ++ set_history_remembering () ++ { ++ remember_on_history = enable_history_list; ++ } ++ #endif ++ + /* How to force parse_and_execute () to clean up after itself. */ + void +*************** +*** 116,120 **** + + #if defined (HISTORY) +! unwind_protect_int (remember_on_history); /* can be used in scripts */ + # if defined (BANG_HISTORY) + if (interactive_shell) +--- 124,131 ---- + + #if defined (HISTORY) +! if (parse_and_execute_level == 0) +! add_unwind_protect (set_history_remembering, (char *)NULL); +! else +! unwind_protect_int (remember_on_history); /* can be used in scripts */ + # if defined (BANG_HISTORY) + if (interactive_shell) +*** ../bash-3.2-patched/bashhist.h 2005-07-01 15:44:41.000000000 -0400 +--- bashhist.h 2008-08-17 12:51:07.000000000 -0400 +*************** +*** 32,35 **** +--- 32,38 ---- + + extern int remember_on_history; ++ extern int enable_history_list; /* value for `set -o history' */ ++ extern int literal_history; /* controlled by `shopt lithist' */ ++ extern int force_append_history; + extern int history_lines_this_session; + extern int history_lines_in_file; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 40 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 41 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-042 b/src/patches/bash/bash32-042 new file mode 100644 index 0000000..4c9f4d6 --- /dev/null +++ b/src/patches/bash/bash32-042 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-042 + +Bug-Reported-by: Archimerged Ark Submedes archimerged@gmail.com +Bug-Reference-ID: 5ba4bef00804182116g65ff71e0qdffcf672f205e708@mail.gmail.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-04/msg00041.html + +Bug-Description: + +An operator precedence error prevented the bash arithmetic evaluator from +parsing conditional commands correctly. + +Patch: + +*** ../bash-3.2-patched/expr.c 2007-12-13 22:30:43.000000000 -0500 +--- expr.c 2008-08-17 13:09:59.000000000 -0400 +*************** +*** 521,525 **** + noeval++; + } +! val2 = explor (); + if (set_noeval) + noeval--; +--- 521,526 ---- + noeval++; + } +! +! val2 = expcond (); + if (set_noeval) + noeval--; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 41 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 42 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-043 b/src/patches/bash/bash32-043 new file mode 100644 index 0000000..5a51843 --- /dev/null +++ b/src/patches/bash/bash32-043 @@ -0,0 +1,62 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-043 + +Bug-Reported-by: Morita Sho morita-pub-en-debian@inz.sakura.ne.jp +Bug-Reference-ID: +Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478096 + +Bug-Description: + +Side effects caused by setting function-local versions of variables bash +handles specially persisted after the function returned. + +Patch: + +*** ../bash-3.2-patched/variables.c 2007-08-25 13:47:05.000000000 -0400 +--- variables.c 2008-11-09 17:47:31.000000000 -0500 +*************** +*** 3459,3465 **** + var->attributes &= ~(att_tempvar|att_propagate); + else +! shell_variables->flags |= VC_HASTMPVAR; + v->attributes |= var->attributes; + } + + dispose_variable (var); +--- 3771,3779 ---- + var->attributes &= ~(att_tempvar|att_propagate); + else +! shell_variables->flags |= VC_HASTMPVAR; + v->attributes |= var->attributes; + } ++ else ++ stupidly_hack_special_variables (var->name); /* XXX */ + + dispose_variable (var); +*************** +*** 3548,3551 **** +--- 3862,3867 ---- + v->attributes |= var->attributes; + } ++ else ++ stupidly_hack_special_variables (var->name); /* XXX */ + + dispose_variable (var); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 42 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 43 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-044 b/src/patches/bash/bash32-044 new file mode 100644 index 0000000..3e7a392 --- /dev/null +++ b/src/patches/bash/bash32-044 @@ -0,0 +1,150 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-044 + +Bug-Reported-by: slinkp stuff@slinkp.com +Bug-Reference-ID: da52a26a-9f38-4861-a918-14d3482b539d@c65g2000hsa.googlegroups.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-05/msg00085.html + +Bug-Description: + +The presence of invisible characters in a prompt longer than the screenwidth +with invisible characters on the first and last prompt lines caused readline +to place the cursor in the wrong physical location. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c 2007-12-14 21:12:40.000000000 -0500 +--- lib/readline/display.c 2008-10-23 09:39:46.000000000 -0400 +*************** +*** 911,914 **** +--- 944,951 ---- + OFFSET (which has already been calculated above). */ + ++ #define INVIS_FIRST() (prompt_physical_chars > _rl_screenwidth ? prompt_invis_chars_first_line : wrap_offset) ++ #define WRAP_OFFSET(line, offset) ((line == 0) \ ++ ? (offset ? INVIS_FIRST() : 0) \ ++ : ((line == prompt_last_screen_line) ? wrap_offset-prompt_invis_chars_first_line : 0)) + #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0) + #define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l])) +*************** +*** 945,949 **** + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= wrap_offset; + + /* If this is the line with the prompt, we might need to +--- 982,992 ---- + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */ +! else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth && +! (MB_CUR_MAX > 1 && rl_byte_oriented == 0) && +! cpos_adjusted == 0 && +! _rl_last_c_pos != o_cpos && +! _rl_last_c_pos > (prompt_last_invisible - _rl_screenwidth - prompt_invis_chars_first_line)) +! _rl_last_c_pos -= (wrap_offset-prompt_invis_chars_first_line); + + /* If this is the line with the prompt, we might need to +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1264,1268 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, twidth, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1221,1225 **** + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +--- 1280,1284 ---- + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - WRAP_OFFSET (_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +*************** +*** 1587,1599 **** + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); +- #if 1 + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! #else +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff); +! #endif + } + } +--- 1648,1660 ---- + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! else +! twidth = temp - lendiff; +! _rl_last_c_pos += twidth; + } + } +*************** +*** 1789,1793 **** + int cpos, dpos; /* current and desired cursor positions */ + +! woff = W_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +--- 1850,1854 ---- + int cpos, dpos; /* current and desired cursor positions */ + +! woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +*************** +*** 1803,1807 **** + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1864,1872 ---- + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if ((new > prompt_last_invisible) || /* XXX - don't use woff here */ +! (prompt_physical_chars > _rl_screenwidth && +! _rl_last_v_pos == prompt_last_screen_line && +! wrap_offset != woff && +! new > (prompt_last_invisible-_rl_screenwidth-wrap_offset))) + { + dpos -= woff; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 43 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 44 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-045 b/src/patches/bash/bash32-045 new file mode 100644 index 0000000..68b91ff --- /dev/null +++ b/src/patches/bash/bash32-045 @@ -0,0 +1,50 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-045 + +Bug-Reported-by: Roman Rakus rrakus@redhat.com +Bug-Reference-ID: 4864B4A0.1060402@redhat.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-06/msg00098.html + +Bug-Description: + +When short-circuiting execution due to the `break' or `continue' builtins, +bash did not preserve the value of $?. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2008-04-28 22:00:24.000000000 -0400 +--- execute_cmd.c 2008-10-18 14:35:03.000000000 -0400 +*************** +*** 502,507 **** +--- 514,526 ---- + volatile int save_line_number; + ++ #if 0 + if (command == 0 || breaking || continuing || read_but_dont_execute) + return (EXECUTION_SUCCESS); ++ #else ++ if (breaking || continuing) ++ return (last_command_exit_value); ++ if (command == 0 || read_but_dont_execute) ++ return (EXECUTION_SUCCESS); ++ #endif + + QUIT; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 44 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 45 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-046 b/src/patches/bash/bash32-046 new file mode 100644 index 0000000..78aaf01 --- /dev/null +++ b/src/patches/bash/bash32-046 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-046 + +Bug-Reported-by: Wang Xin wxinee@gmail.com +Bug-Reference-ID: 9a73e1570807062042ide16698m10e1b18036c95592@mail.gmail.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-07/msg00014.html + +Bug-Description: + +Bash did not compute the length of multibyte characters correctly when +performing array element length references (e.g., ${#var[subscript]}). + +Patch: + +*** /usr/src/local/bash/bash-3.2-patched/subst.c 2008-04-28 22:00:20.000000000 -0400 +--- subst.c 2008-11-10 22:02:38.000000000 -0500 +*************** +*** 4813,4817 **** + t = (ind == 0) ? value_cell (var) : (char *)NULL; + +! len = STRLEN (t); + return (len); + } +--- 4813,4817 ---- + t = (ind == 0) ? value_cell (var) : (char *)NULL; + +! len = MB_STRLEN (t); + return (len); + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 45 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 46 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-047 b/src/patches/bash/bash32-047 new file mode 100644 index 0000000..b8272b1 --- /dev/null +++ b/src/patches/bash/bash32-047 @@ -0,0 +1,65 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-047 + +Bug-Reported-by: Roman Rakus rrakus@redhat.com +Bug-Reference-ID: 48A89EBC.906@redhat.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-08/msg00026.html + +Bug-Description: + +When using the `.' (source) builtin, under certain circumstances bash was +too careful in discarding state to preserve internal consistency. One +effect was that assignments to readonly variables would cause entire scripts +to be aborted instead of execution of the offending command. This behavior +was introduced by bash-3.2 patch 20. + +Patch: + +*** /usr/src/local/chet/src/bash/bash-3.2-patched/subst.c 2008-04-29 21:24:55.000000000 -0400 +--- subst.c 2008-11-13 17:44:25.000000000 -0500 +*************** +*** 138,142 **** + extern int last_command_exit_value, last_command_exit_signal; + extern int subshell_environment; +! extern int subshell_level; + extern int eof_encountered; + extern int return_catch_flag, return_catch_value; +--- 138,142 ---- + extern int last_command_exit_value, last_command_exit_signal; + extern int subshell_environment; +! extern int subshell_level, parse_and_execute_level; + extern int eof_encountered; + extern int return_catch_flag, return_catch_value; +*************** +*** 7673,7677 **** + expanding_redir = 0; + +! top_level_cleanup (); /* from sig.c */ + + jump_to_top_level (v); +--- 7673,7679 ---- + expanding_redir = 0; + +! if (parse_and_execute_level == 0) +! top_level_cleanup (); /* from sig.c */ +! + + jump_to_top_level (v); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 46 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 47 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-048 b/src/patches/bash/bash32-048 new file mode 100644 index 0000000..551dade --- /dev/null +++ b/src/patches/bash/bash32-048 @@ -0,0 +1,56 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-048 + +Bug-Reported-by: Steffen Kiess s-kiess@web.de +Bug-Reference-ID: 1223929957.5383.6.camel@fips +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-10/msg00047.html + +Bug-Description: + +When invoked as `bash -c', bash did not execute an EXIT trap when the last +command in the executed list was a command run from the file system. + +Patch: + +*** /Users/chet/src/bash/bash-3.2-patched/builtins/evalstring.c 2006-07-28 15:12:16.000000000 -0400 +--- builtins/evalstring.c 2008-11-13 18:38:45.000000000 -0500 +*************** +*** 249,252 **** +--- 249,253 ---- + * we're not running a trap AND + * we have parsed the full command (string == '\0') AND ++ * we're not going to run the exit trap AND + * we have a simple command without redirections AND + * the command is not being timed AND +*************** +*** 259,263 **** + *bash_input.location.string == '\0' && + command->type == cm_simple && +! !command->redirects && !command->value.Simple->redirects && + ((command->flags & CMD_TIME_PIPELINE) == 0) && + ((command->flags & CMD_INVERT_RETURN) == 0)) +--- 260,265 ---- + *bash_input.location.string == '\0' && + command->type == cm_simple && +! signal_is_trapped (EXIT_TRAP) == 0 && +! command->redirects == 0 && command->value.Simple->redirects == 0 && + ((command->flags & CMD_TIME_PIPELINE) == 0) && + ((command->flags & CMD_INVERT_RETURN) == 0)) +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 47 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 48 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-049 b/src/patches/bash/bash32-049 new file mode 100644 index 0000000..469c4c8 --- /dev/null +++ b/src/patches/bash/bash32-049 @@ -0,0 +1,64 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-049 + +Bug-Reported-by: Len Lattanzi llattanzi@apple.com +Bug-Reference-ID: 52B1297F-6675-45CC-B63E-24745337D006@apple.com +Bug-Reference-URL: + +Bug-Description: + +On systems where mbrtowc() returns -2 when passed a length argument with +value 0, when using a multibyte locale, Readline's emacs-mode forward-char +at the end of a line will leave the point beyond the end of the line. + +Patch: + +*** ../bash-3.2-patched/lib/readline/mbutil.c 2009-05-29 23:09:26.000000000 -0400 +--- lib/readline/mbutil.c 2009-05-29 23:10:12.000000000 -0400 +*************** +*** 78,82 **** + int seed, count, find_non_zero; + { +! size_t tmp; + mbstate_t ps; + int point; +--- 78,82 ---- + int seed, count, find_non_zero; + { +! size_t tmp, len; + mbstate_t ps; + int point; +*************** +*** 99,103 **** + while (count > 0) + { +! tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps); + if (MB_INVALIDCH ((size_t)tmp)) + { +--- 99,106 ---- + while (count > 0) + { +! len = strlen (string + point); +! if (len == 0) +! break; +! tmp = mbrtowc (&wc, string+point, len, &ps); + if (MB_INVALIDCH ((size_t)tmp)) + { +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 48 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 49 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-050 b/src/patches/bash/bash32-050 new file mode 100644 index 0000000..aef537e --- /dev/null +++ b/src/patches/bash/bash32-050 @@ -0,0 +1,56 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-050 + +Bug-Reported-by: Jan Hnatek Jan.Hnatek@Sun.COM +Bug-Reference-ID: 4A44991F.8010005@sun.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-06/msg00084.html + +Bug-Description: + +On systems where mbrtowc() returns -2 when passed a length argument with +value 0, when using a multibyte locale, Readline's emacs-mode forward-char +at the end of a line will leave the point beyond the end of the line. + +Patch: + +*** ../bash-3.2-patched/lib/readline/mbutil.c 2009-06-16 11:26:50.000000000 -0400 +--- lib/readline/mbutil.c 2009-01-04 14:32:33.000000000 -0500 +*************** +*** 132,141 **** + { + tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); +! while (tmp > 0 && wcwidth (wc) == 0) + { + point += tmp; + tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); +- if (MB_NULLWCH (tmp) || MB_INVALIDCH (tmp)) +- break; + } + } +--- 130,137 ---- + { + tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); +! while (MB_NULLWCH (tmp) == 0 && MB_INVALIDCH (tmp) == 0 && wcwidth (wc) == 0) + { + point += tmp; + tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); + } + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 49 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 50 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-051 b/src/patches/bash/bash32-051 new file mode 100644 index 0000000..404fbd6 --- /dev/null +++ b/src/patches/bash/bash32-051 @@ -0,0 +1,46 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-051 + +Bug-Reported-by: werner@suse.de +Bug-Reference-ID: 201002251238.o1PCcYcg016893@boole.suse.de +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-02/msg00132.html + +Bug-Description: + +When the `read' builtin times out after the timeout specified with -t is +exceeded, it does not reset the flags that tell signal handlers to process +signals immediately instead of deferring their handling. This can result +in unsafe functions being called from signal handlers, which can cause bash +to hang or dump core. + +Patch: + +*** ../bash-3.2-patched/builtins/read.def 2008-04-29 21:25:00.000000000 -0400 +--- builtins/read.def 2010-03-17 09:50:51.000000000 -0400 +*************** +*** 327,330 **** +--- 327,332 ---- + if (code) + { ++ interrupt_immediately--; ++ terminate_immediately = 0; + run_unwind_frame ("read_builtin"); + return (EXECUTION_FAILURE); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 50 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 51 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/binutils-2.18-configure-1.patch b/src/patches/binutils-2.18-configure-1.patch deleted file mode 100644 index ae6aaa3..0000000 --- a/src/patches/binutils-2.18-configure-1.patch +++ /dev/null @@ -1,19 +0,0 @@ -Submitted By: Matt Burgess (matthew at linuxfromscratch dot org) -Date: 2007-11-19 -Initial Package Version: 2.18 -Origin: Upstream (http://sourceware.org/cgi-bin/cvsweb.cgi/src/configure.diff?r1=1.268&r2=...) -Upstream Status: Applied -Description: Fixes the configure script to correctly dictate Texinfo > 4.9. - -diff -Naur binutils-2.18.orig/configure binutils-2.18/configure ---- binutils-2.18.orig/configure 2007-08-06 20:29:40.000000000 +0000 -+++ binutils-2.18/configure 2007-11-18 22:37:58.000000000 +0000 -@@ -6128,7 +6128,7 @@ - # For an installed makeinfo, we require it to be from texinfo 4.4 or - # higher, else we use the "missing" dummy. - if ${MAKEINFO} --version \ -- | egrep 'texinfo[^0-9]*([1-3][0-9]|4.[4-9]|[5-9])' >/dev/null 2>&1; then -+ | egrep 'texinfo[^0-9]*(4.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then - : - else - MAKEINFO="$MISSING makeinfo" diff --git a/src/patches/ccache-3.1.6-no_compiler_mtime.patch b/src/patches/ccache-3.1.6-no_compiler_mtime.patch deleted file mode 100644 index fd921cd..0000000 --- a/src/patches/ccache-3.1.6-no_compiler_mtime.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -Naur ccache-3.1.org/ccache.c ccache-3.1/ccache.c ---- ccache-3.1.org/ccache.c 2010-09-16 19:01:09.000000000 +0200 -+++ ccache-3.1/ccache.c 2010-10-21 21:41:08.000000000 +0200 -@@ -805,13 +805,16 @@ - */ - compilercheck = getenv("CCACHE_COMPILERCHECK"); - if (!compilercheck) { -- compilercheck = "mtime"; -+ compilercheck = "size"; - } - if (str_eq(compilercheck, "none")) { - /* Do nothing. */ - } else if (str_eq(compilercheck, "content")) { - hash_delimiter(hash, "cc_content"); - hash_file(hash, args->argv[0]); -+ } else if (str_eq(compilercheck, "size")) { -+ hash_delimiter(hash, "cc_size"); -+ hash_int(hash, st.st_size); - } else if (str_eq(compilercheck, "mtime")) { - hash_delimiter(hash, "cc_mtime"); - hash_int(hash, st.st_size); diff --git a/src/patches/compat-wireless-3.0-libertas_uap.patch b/src/patches/compat-wireless-3.0-libertas_uap.patch deleted file mode 100644 index 77bab83..0000000 --- a/src/patches/compat-wireless-3.0-libertas_uap.patch +++ /dev/null @@ -1,5101 +0,0 @@ -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/Makefile compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/Makefile ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/Makefile 2011-10-21 11:13:58.697110085 +0200 -@@ -0,0 +1,6 @@ -+obj-$(CONFIG_LIBERTAS_UAP) += uap8xxx.o -+ -+uap8xxx-y += uap_main.o uap_sdio_mmc.o -+uap8xxx-$(CONFIG_PROC_FS) += uap_proc.o uap_debug.o -+ -+EXTRA_CFLAGS += -DFPNUM='"52"' -DPXA3XX_DMA_ALIGN -DDEBUG_LEVEL1 -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_debug.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_debug.c ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_debug.c 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_debug.c 2011-10-21 11:13:58.707113466 +0200 -@@ -0,0 +1,261 @@ -+/** @file uap_debug.c -+ * @brief This file contains functions for debug proc file. -+ * -+ * Copyright (C) 2008-2009, Marvell International Ltd. -+ * -+ * This software file (the "File") is distributed by Marvell International -+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 -+ * (the "License"). You may use, redistribute and/or modify this File in -+ * accordance with the terms and conditions of the License, a copy of which -+ * is available along with the File in the gpl.txt file or by writing to -+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. -+ * -+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE -+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about -+ * this warranty disclaimer. -+ * -+ */ -+#ifdef CONFIG_PROC_FS -+#include "uap_headers.h" -+ -+/******************************************************** -+ Local Variables -+********************************************************/ -+ -+#define item_size(n) (sizeof ((uap_adapter *)0)->n) -+#define item_addr(n) ((u32) &((uap_adapter *)0)->n) -+ -+#define item_dbg_size(n) (sizeof (((uap_adapter *)0)->dbg.n)) -+#define item_dbg_addr(n) ((u32) &(((uap_adapter *)0)->dbg.n)) -+ -+#define item_dev_size(n) (sizeof ((uap_dev_t *)0)->n) -+#define item_dev_addr(n) ((u32) &((uap_dev_t *)0)->n) -+ -+/** MicroAp device offset */ -+#define OFFSET_UAP_DEV 0x01 -+/** Bluetooth adapter offset */ -+#define OFFSET_UAP_ADAPTER 0x02 -+ -+struct debug_data -+{ -+ /** Name */ -+ char name[32]; -+ /** Size */ -+ u32 size; -+ /** Address */ -+ u32 addr; -+ /** Offset */ -+ u32 offset; -+ /** Flag */ -+ u32 flag; -+}; -+ -+/* To debug any member of uap_adapter, simply add one line here. -+ */ -+static struct debug_data items[] = { -+ {"cmd_sent", item_dev_size(cmd_sent), 0, item_dev_addr(cmd_sent), -+ OFFSET_UAP_DEV}, -+ {"data_sent", item_dev_size(data_sent), 0, item_dev_addr(data_sent), -+ OFFSET_UAP_DEV}, -+ {"IntCounter", item_size(IntCounter), 0, item_addr(IntCounter), -+ OFFSET_UAP_ADAPTER}, -+ {"cmd_pending", item_size(cmd_pending), 0, item_addr(cmd_pending), -+ OFFSET_UAP_ADAPTER}, -+ {"num_cmd_h2c_fail", item_dbg_size(num_cmd_host_to_card_failure), 0, -+ item_dbg_addr(num_cmd_host_to_card_failure), OFFSET_UAP_ADAPTER}, -+ {"num_tx_h2c_fail", item_dbg_size(num_tx_host_to_card_failure), 0, -+ item_dbg_addr(num_tx_host_to_card_failure), OFFSET_UAP_ADAPTER}, -+ {"psmode", item_size(psmode), 0, item_addr(psmode), OFFSET_UAP_ADAPTER}, -+ {"ps_state", item_size(ps_state), 0, item_addr(ps_state), -+ OFFSET_UAP_ADAPTER}, -+#ifdef DEBUG_LEVEL1 -+ {"drvdbg", sizeof(drvdbg), (u32) & drvdbg, 0, 0} -+#endif -+}; -+ -+static int num_of_items = sizeof(items) / sizeof(items[0]); -+ -+/******************************************************** -+ Global Variables -+********************************************************/ -+ -+/******************************************************** -+ Local Functions -+********************************************************/ -+/** -+ * @brief proc read function -+ * -+ * @param page pointer to buffer -+ * @param s read data starting position -+ * @param off offset -+ * @param cnt counter -+ * @param eof end of file flag -+ * @param data data to output -+ * @return number of output data -+ */ -+static int -+uap_debug_read(char *page, char **s, off_t off, int cnt, int *eof, void *data) -+{ -+ int val = 0; -+ char *p = page; -+ int i; -+ -+ struct debug_data *d = (struct debug_data *) data; -+ -+ if (MODULE_GET == 0) -+ return UAP_STATUS_FAILURE; -+ -+ for (i = 0; i < num_of_items; i++) { -+ if (d[i].size == 1) -+ val = *((u8 *) d[i].addr); -+ else if (d[i].size == 2) -+ val = *((u16 *) d[i].addr); -+ else if (d[i].size == 4) -+ val = *((u32 *) d[i].addr); -+ -+ p += sprintf(p, "%s=%d\n", d[i].name, val); -+ } -+ MODULE_PUT; -+ return p - page; -+} -+ -+/** -+ * @brief proc write function -+ * -+ * @param f file pointer -+ * @param buf pointer to data buffer -+ * @param cnt data number to write -+ * @param data data to write -+ * @return number of data -+ */ -+static int -+uap_debug_write(struct file *f, const char *buf, unsigned long cnt, void *data) -+{ -+ int r, i; -+ char *pdata; -+ char *p; -+ char *p0; -+ char *p1; -+ char *p2; -+ struct debug_data *d = (struct debug_data *) data; -+ -+ if (MODULE_GET == 0) -+ return UAP_STATUS_FAILURE; -+ -+ pdata = (char *) kmalloc(cnt, GFP_KERNEL); -+ if (pdata == NULL) { -+ MODULE_PUT; -+ return 0; -+ } -+ -+ if (copy_from_user(pdata, buf, cnt)) { -+ PRINTM(INFO, "Copy from user failed\n"); -+ kfree(pdata); -+ MODULE_PUT; -+ return 0; -+ } -+ -+ p0 = pdata; -+ for (i = 0; i < num_of_items; i++) { -+ do { -+ p = strstr(p0, d[i].name); -+ if (p == NULL) -+ break; -+ p1 = strchr(p, '\n'); -+ if (p1 == NULL) -+ break; -+ p0 = p1++; -+ p2 = strchr(p, '='); -+ if (!p2) -+ break; -+ p2++; -+ r = string_to_number(p2); -+ if (d[i].size == 1) -+ *((u8 *) d[i].addr) = (u8) r; -+ else if (d[i].size == 2) -+ *((u16 *) d[i].addr) = (u16) r; -+ else if (d[i].size == 4) -+ *((u32 *) d[i].addr) = (u32) r; -+ break; -+ } while (TRUE); -+ } -+ kfree(pdata); -+#ifdef DEBUG_LEVEL1 -+ printk(KERN_ALERT "drvdbg = 0x%x\n", drvdbg); -+ printk(KERN_ALERT "INFO (%08lx) %s\n", DBG_INFO, -+ (drvdbg & DBG_INFO) ? "X" : ""); -+ printk(KERN_ALERT "WARN (%08lx) %s\n", DBG_WARN, -+ (drvdbg & DBG_WARN) ? "X" : ""); -+ printk(KERN_ALERT "ENTRY (%08lx) %s\n", DBG_ENTRY, -+ (drvdbg & DBG_ENTRY) ? "X" : ""); -+ printk(KERN_ALERT "CMD_D (%08lx) %s\n", DBG_CMD_D, -+ (drvdbg & DBG_CMD_D) ? "X" : ""); -+ printk(KERN_ALERT "DAT_D (%08lx) %s\n", DBG_DAT_D, -+ (drvdbg & DBG_DAT_D) ? "X" : ""); -+ printk(KERN_ALERT "CMND (%08lx) %s\n", DBG_CMND, -+ (drvdbg & DBG_CMND) ? "X" : ""); -+ printk(KERN_ALERT "DATA (%08lx) %s\n", DBG_DATA, -+ (drvdbg & DBG_DATA) ? "X" : ""); -+ printk(KERN_ALERT "ERROR (%08lx) %s\n", DBG_ERROR, -+ (drvdbg & DBG_ERROR) ? "X" : ""); -+ printk(KERN_ALERT "FATAL (%08lx) %s\n", DBG_FATAL, -+ (drvdbg & DBG_FATAL) ? "X" : ""); -+ printk(KERN_ALERT "MSG (%08lx) %s\n", DBG_MSG, -+ (drvdbg & DBG_MSG) ? "X" : ""); -+#endif -+ MODULE_PUT; -+ return cnt; -+} -+ -+/******************************************************** -+ Global Functions -+********************************************************/ -+/** -+ * @brief create debug proc file -+ * -+ * @param priv pointer uap_private -+ * @param dev pointer net_device -+ * @return N/A -+ */ -+void -+uap_debug_entry(uap_private * priv, struct net_device *dev) -+{ -+ int i; -+ struct proc_dir_entry *r; -+ -+ if (priv->proc_entry == NULL) -+ return; -+ -+ for (i = 0; i < num_of_items; i++) { -+ if (items[i].flag & OFFSET_UAP_ADAPTER) -+ items[i].addr = items[i].offset + (u32) priv->adapter; -+ if (items[i].flag & OFFSET_UAP_DEV) -+ items[i].addr = items[i].offset + (u32) & priv->uap_dev; -+ } -+ r = create_proc_entry("debug", 0644, priv->proc_entry); -+ if (r == NULL) -+ return; -+ -+ r->data = &items[0]; -+ r->read_proc = uap_debug_read; -+ r->write_proc = uap_debug_write; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) -+ r->owner = THIS_MODULE; -+#endif -+} -+ -+/** -+ * @brief remove proc file -+ * -+ * @param priv pointer uap_private -+ * @return N/A -+ */ -+void -+uap_debug_remove(uap_private * priv) -+{ -+ remove_proc_entry("debug", priv->proc_entry); -+} -+ -+#endif -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_drv.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_drv.h ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_drv.h 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_drv.h 2011-10-21 11:13:58.717113637 +0200 -@@ -0,0 +1,667 @@ -+/** @file uap_drv.h -+ * @brief This file contains Linux OS related definitions and -+ * declarations, uAP driver -+ * -+ * Copyright (C) 2008-2009, Marvell International Ltd. -+ * -+ * This software file (the "File") is distributed by Marvell International -+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 -+ * (the "License"). You may use, redistribute and/or modify this File in -+ * accordance with the terms and conditions of the License, a copy of which -+ * is available along with the File in the gpl.txt file or by writing to -+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. -+ * -+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE -+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about -+ * this warranty disclaimer. -+ * -+ */ -+ -+#ifndef _UAP_DRV_H -+#define _UAP_DRV_H -+ -+/** Driver release version */ -+#define DRIVER_VERSION "26146" -+ -+/** True */ -+#ifndef TRUE -+#define TRUE 1 -+#endif -+/** False */ -+#ifndef FALSE -+#define FALSE 0 -+#endif -+ -+/** Bit definitions */ -+#ifndef BIT -+#define BIT(x) (1UL << (x)) -+#endif -+ -+/** Dma addresses are 32-bits wide. */ -+#ifndef __ATTRIB_ALIGN__ -+#define __ATTRIB_ALIGN__ __attribute__((aligned(4))) -+#endif -+ -+/** attribute pack */ -+#ifndef __ATTRIB_PACK__ -+#define __ATTRIB_PACK__ __attribute__ ((packed)) -+#endif -+ -+/** Debug Macro definition*/ -+#ifdef DEBUG_LEVEL1 -+ -+extern u32 drvdbg; -+ -+/** Debug message control bit definition for drvdbg */ -+/** Debug message */ -+#define DBG_MSG BIT(0) -+/** Debug fatal message */ -+#define DBG_FATAL BIT(1) -+/** Debug error message */ -+#define DBG_ERROR BIT(2) -+/** Debug data message */ -+#define DBG_DATA BIT(3) -+/** Debug command message */ -+#define DBG_CMND BIT(4) -+ -+/** Debug data */ -+#define DBG_DAT_D BIT(16) -+/** Debug command */ -+#define DBG_CMD_D BIT(17) -+ -+/** Debug entry */ -+#define DBG_ENTRY BIT(28) -+/** Debug warning */ -+#define DBG_WARN BIT(29) -+/** Debug info */ -+#define DBG_INFO BIT(30) -+ -+/** Print info */ -+#define PRINTM_INFO(msg...) {if (drvdbg & DBG_INFO) printk(KERN_DEBUG msg);} -+/** Print warn message */ -+#define PRINTM_WARN(msg...) {if (drvdbg & DBG_WARN) printk(KERN_DEBUG msg);} -+/** Print entry */ -+#define PRINTM_ENTRY(msg...) {if (drvdbg & DBG_ENTRY) printk(KERN_DEBUG msg);} -+/** Print cmd_d */ -+#define PRINTM_CMD_D(msg...) {if (drvdbg & DBG_CMD_D) printk(KERN_DEBUG msg);} -+/** Print data_d */ -+#define PRINTM_DAT_D(msg...) {if (drvdbg & DBG_DAT_D) printk(KERN_DEBUG msg);} -+/** Print command */ -+#define PRINTM_CMND(msg...) {if (drvdbg & DBG_CMND) printk(KERN_DEBUG msg);} -+/** Print data */ -+#define PRINTM_DATA(msg...) {if (drvdbg & DBG_DATA) printk(KERN_DEBUG msg);} -+/** Print error message */ -+#define PRINTM_ERROR(msg...) {if (drvdbg & DBG_ERROR) printk(KERN_DEBUG msg);} -+/** Print fatal message */ -+#define PRINTM_FATAL(msg...) {if (drvdbg & DBG_FATAL) printk(KERN_DEBUG msg);} -+/** Print message */ -+#define PRINTM_MSG(msg...) {if (drvdbg & DBG_MSG) printk(KERN_ALERT msg);} -+/** Print level */ -+#define PRINTM(level,msg...) PRINTM_##level(msg) -+ -+#else -+ -+#define PRINTM(level,msg...) do {} while (0) -+ -+#endif /* DEBUG_LEVEL1 */ -+ -+/** Wait until a condition becomes true */ -+#define ASSERT(cond) \ -+do { \ -+ if (!(cond)) \ -+ PRINTM(INFO, "ASSERT: %s, %s:%i\n", \ -+ __FUNCTION__, __FILE__, __LINE__); \ -+} while(0) -+ -+/** Log enrty point for debugging */ -+#define ENTER() PRINTM(ENTRY, "Enter: %s, %s:%i\n", __FUNCTION__, \ -+ __FILE__, __LINE__) -+/** Log exit point for debugging */ -+#define LEAVE() PRINTM(ENTRY, "Leave: %s, %s:%i\n", __FUNCTION__, \ -+ __FILE__, __LINE__) -+ -+#ifdef DEBUG_LEVEL1 -+/** Dump buffer length */ -+#define DBG_DUMP_BUF_LEN 64 -+/** Maximum dump per line */ -+#define MAX_DUMP_PER_LINE 16 -+/** Data dump length */ -+#define DATA_DUMP_LEN 32 -+ -+static inline void -+hexdump(char *prompt, u8 * buf, int len) -+{ -+ int i; -+ char dbgdumpbuf[DBG_DUMP_BUF_LEN]; -+ char *ptr = dbgdumpbuf; -+ -+ printk(KERN_DEBUG "%s:\n", prompt); -+ for (i = 1; i <= len; i++) { -+ ptr += sprintf(ptr, "%02x ", *buf); -+ buf++; -+ if (i % MAX_DUMP_PER_LINE == 0) { -+ *ptr = 0; -+ printk(KERN_DEBUG "%s\n", dbgdumpbuf); -+ ptr = dbgdumpbuf; -+ } -+ } -+ if (len % MAX_DUMP_PER_LINE) { -+ *ptr = 0; -+ printk(KERN_DEBUG "%s\n", dbgdumpbuf); -+ } -+} -+ -+/** Debug command */ -+#define DBG_HEXDUMP_CMD_D(x,y,z) {if (drvdbg & DBG_CMD_D) hexdump(x,y,z);} -+/** Debug data */ -+#define DBG_HEXDUMP_DAT_D(x,y,z) {if (drvdbg & DBG_DAT_D) hexdump(x,y,z);} -+/** Debug hexdump */ -+#define DBG_HEXDUMP(level,x,y,z) DBG_HEXDUMP_##level(x,y,z) -+/** hexdump */ -+#define HEXDUMP(x,y,z) {if (drvdbg & DBG_INFO) hexdump(x,y,z);} -+#else -+/** Do nothing since debugging is not turned on */ -+#define DBG_HEXDUMP(level,x,y,z) do {} while (0) -+/** Do nothing since debugging is not turned on */ -+#define HEXDUMP(x,y,z) do {} while (0) -+#endif -+ -+/** -+ * Typedefs -+ */ -+/** Unsigned char */ -+typedef u8 BOOLEAN; -+ -+/* -+ * OS macro definitions -+ */ -+/** OS macro to get time */ -+#define os_time_get() jiffies -+ -+/** OS macro to update transfer start time */ -+#define UpdateTransStart(dev) { \ -+ dev->trans_start = jiffies; \ -+} -+ -+/** Try to get a reference to the module */ -+#define MODULE_GET try_module_get(THIS_MODULE) -+/** Decrease module reference count */ -+#define MODULE_PUT module_put(THIS_MODULE) -+ -+/** OS macro to initialize semaphore */ -+#define OS_INIT_SEMAPHORE(x) sema_init(x,1) -+/** OS macro to acquire blocking semaphore */ -+#define OS_ACQ_SEMAPHORE_BLOCK(x) down_interruptible(x) -+/** OS macro to acquire non-blocking semaphore */ -+#define OS_ACQ_SEMAPHORE_NOBLOCK(x) down_trylock(x) -+/** OS macro to release semaphore */ -+#define OS_REL_SEMAPHORE(x) up(x) -+ -+static inline void -+os_sched_timeout(u32 millisec) -+{ -+ set_current_state(TASK_INTERRUPTIBLE); -+ schedule_timeout((millisec * HZ) / 1000); -+} -+ -+/** Maximum size of ethernet packet */ -+#define MRVDRV_MAXIMUM_ETH_PACKET_SIZE 1514 -+ -+/** Maximum size of multicast list */ -+#define MRVDRV_MAX_MULTICAST_LIST_SIZE 32 -+ -+/** Find minimum */ -+#ifndef MIN -+#define MIN(a,b) ((a) < (b) ? (a) : (b)) -+#endif -+ -+/** Find maximum */ -+#ifndef MAX -+#define MAX(a,b) ((a) > (b) ? (a) : (b)) -+#endif -+ -+/** Find number of elements */ -+#ifndef NELEMENTS -+#define NELEMENTS(x) (sizeof(x)/sizeof(x[0])) -+#endif -+ -+/** Buffer Constants */ -+ -+/** Size of command buffer */ -+#define MRVDRV_SIZE_OF_CMD_BUFFER (2 * 1024) -+ -+/** Length of device length */ -+#define DEV_NAME_LEN 32 -+ -+/** Length of ethernet address */ -+#ifndef ETH_ALEN -+#define ETH_ALEN 6 -+#endif -+ -+/** Default watchdog timeout */ -+#define MRVDRV_DEFAULT_WATCHDOG_TIMEOUT (2 * HZ) -+ -+/** Success */ -+#define UAP_STATUS_SUCCESS (0) -+/** Failure */ -+#define UAP_STATUS_FAILURE (-1) -+/** Not accepted */ -+#define UAP_STATUS_NOT_ACCEPTED (-2) -+ -+/** Max loop count (* 100ms) for waiting device ready at init time */ -+#define MAX_WAIT_DEVICE_READY_COUNT 50 -+ -+/** Tx high watermark. Stop Tx queue after this is crossed */ -+#define TX_HIGH_WATERMARK 4 -+/** Tx low watermark. Restart Tx queue after this is crossed */ -+#define TX_LOW_WATERMARK 2 -+ -+/** Netlink protocol number */ -+#define NETLINK_MARVELL (MAX_LINKS - 1) -+/** Netlink maximum payload size */ -+#define NL_MAX_PAYLOAD 1024 -+/** Netlink multicast group number */ -+#define NL_MULTICAST_GROUP 1 -+ -+/** 20 seconds */ -+#define MRVDRV_TIMER_20S 20000 -+ -+/** Host Command option for wait till Send */ -+#define HostCmd_OPTION_WAITFORSEND 0x0001 -+/** Host Command option for wait for RSP */ -+#define HostCmd_OPTION_WAITFORRSP 0x0002 -+/** Host Command option for wait for RSP or Timeout */ -+#define HostCmd_OPTION_WAITFORRSP_TIMEOUT 0x0003 -+/** Host Command option for wait for RSP of sleep confirm */ -+#define HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM 0x0004 -+ -+/** Sleep until a condition gets true or a timeout elapses */ -+#define os_wait_interruptible_timeout(waitq, cond, timeout) \ -+ wait_event_interruptible_timeout(waitq, cond, ((timeout) * HZ / 1000)) -+ -+/** Private command ID to Host command */ -+#define UAPHOSTCMD (SIOCDEVPRIVATE + 1) -+ -+/** Private command ID to Power Mode */ -+#define UAP_POWER_MODE (SIOCDEVPRIVATE + 3) -+/** sleep_param */ -+typedef struct _ps_sleep_param -+{ -+ /** control bitmap */ -+ u32 ctrl_bitmap; -+ /** minimum sleep period (micro second) */ -+ u32 min_sleep; -+ /** maximum sleep period (micro second) */ -+ u32 max_sleep; -+} ps_sleep_param; -+ -+/** inactivity sleep_param */ -+typedef struct _inact_sleep_param -+{ -+ /** inactivity timeout (micro second) */ -+ u32 inactivity_to; -+ /** miniumu awake period (micro second) */ -+ u32 min_awake; -+ /** maximum awake period (micro second) */ -+ u32 max_awake; -+} inact_sleep_param; -+ -+/** flag for ps mode */ -+#define PS_FLAG_PS_MODE 1 -+/** flag for sleep param */ -+#define PS_FLAG_SLEEP_PARAM 2 -+/** flag for inactivity sleep param */ -+#define PS_FLAG_INACT_SLEEP_PARAM 4 -+ -+/** Disable power mode */ -+#define PS_MODE_DISABLE 0 -+/** Enable periodic dtim ps */ -+#define PS_MODE_PERIODIC_DTIM 1 -+/** Enable inactivity ps */ -+#define PS_MODE_INACTIVITY 2 -+ -+/** sleep parameter */ -+#define SLEEP_PARAMETER 1 -+/** inactivity sleep parameter */ -+#define INACTIVITY_SLEEP_PARAMETER 2 -+/** ps_mgmt */ -+typedef struct _ps_mgmt -+{ -+ /** flags for valid field */ -+ u16 flags; -+ /** power mode */ -+ u16 ps_mode; -+ /** sleep param */ -+ ps_sleep_param sleep_param; -+ /** inactivity sleep param */ -+ inact_sleep_param inact_param; -+} ps_mgmt; -+ -+/** Semaphore structure */ -+typedef struct semaphore SEMAPHORE; -+ -+/** Global Varibale Declaration */ -+/** Private data structure of the device */ -+typedef struct _uap_private uap_private; -+/** Adapter data structure of the device */ -+typedef struct _uap_adapter uap_adapter; -+/** private structure */ -+extern uap_private *uappriv; -+ -+/** ENUM definition*/ -+ -+/** Hardware status codes */ -+typedef enum _HARDWARE_STATUS -+{ -+ HWReady, -+ HWInitializing, -+ HWReset, -+ HWClosing, -+ HWNotReady -+} HARDWARE_STATUS; -+ -+/** info for debug purpose */ -+typedef struct _uap_dbg -+{ -+ /** Number of host to card command failures */ -+ u32 num_cmd_host_to_card_failure; -+ /** Number of host to card Tx failures */ -+ u32 num_tx_host_to_card_failure; -+} uap_dbg; -+ -+/** Set thread state */ -+#define OS_SET_THREAD_STATE(x) set_current_state(x) -+ -+typedef struct -+{ -+ /** Task */ -+ struct task_struct *task; -+ /** Queue */ -+ wait_queue_head_t waitQ; -+ /** PID */ -+ pid_t pid; -+ /** Private structure */ -+ void *priv; -+} uap_thread; -+ -+static inline void -+uap_activate_thread(uap_thread * thr) -+{ -+ /** Record the thread pid */ -+ thr->pid = current->pid; -+ -+ /** Initialize the wait queue */ -+ init_waitqueue_head(&thr->waitQ); -+} -+ -+static inline void -+uap_deactivate_thread(uap_thread * thr) -+{ -+ thr->pid = 0; -+ return; -+} -+ -+static inline void -+uap_create_thread(int (*uapfunc) (void *), uap_thread * thr, char *name) -+{ -+ thr->task = kthread_run(uapfunc, thr, "%s", name); -+} -+ -+static inline int -+uap_terminate_thread(uap_thread * thr) -+{ -+ /* Check if the thread is active or not */ -+ if (!thr->pid) -+ return -1; -+ kthread_stop(thr->task); -+ return 0; -+} -+ -+/** Data structure for the Marvell uAP device */ -+typedef struct _uap_dev -+{ -+ /** device name */ -+ char name[DEV_NAME_LEN]; -+ /** card pointer */ -+ void *card; -+ /** IO port */ -+ u32 ioport; -+ /** Rx unit */ -+ u8 rx_unit; -+ /** Data sent: -+ TRUE - Data is sent to fw, no Tx Done received -+ FALSE - Tx done received for previous Tx */ -+ BOOLEAN data_sent; -+ /** CMD sent: -+ TRUE - CMD is sent to fw, no CMD Done received -+ FALSE - CMD done received for previous CMD */ -+ BOOLEAN cmd_sent; -+ /** netdev pointer */ -+ struct net_device *netdev; -+} uap_dev_t, *puap_dev_t; -+ -+/** Private structure for the MV device */ -+struct _uap_private -+{ -+ /** Device open */ -+ int open; -+ -+ /** Device adapter structure */ -+ uap_adapter *adapter; -+ /** Device structure */ -+ uap_dev_t uap_dev; -+ -+ /** Net device statistics structure */ -+ struct net_device_stats stats; -+ -+ /** Number of Tx timeouts */ -+ u32 num_tx_timeout; -+ -+ /** Media connection status */ -+ BOOLEAN MediaConnected; -+ -+#ifdef CONFIG_PROC_FS -+ struct proc_dir_entry *proc_uap; -+ struct proc_dir_entry *proc_entry; -+#endif /* CONFIG_PROC_FS */ -+ -+ /** Firmware helper */ -+ const struct firmware *fw_helper; -+ /** Firmware */ -+ const struct firmware *firmware; -+ /** Hotplug device */ -+ struct device *hotplug_device; -+ /** thread to service interrupts */ -+ uap_thread MainThread; -+ /** Driver lock */ -+ spinlock_t driver_lock; -+ /** Driver lock flags */ -+ ulong driver_flags; -+ -+}; -+ -+/** PS_CMD_ConfirmSleep */ -+typedef struct _PS_CMD_ConfirmSleep -+{ -+ /** SDIO Length */ -+ u16 SDLen; -+ /** SDIO Type */ -+ u16 SDType; -+ /** Command */ -+ u16 Command; -+ /** Size */ -+ u16 Size; -+ /** Sequence number */ -+ u16 SeqNum; -+ /** Result */ -+ u16 Result; -+} __ATTRIB_PACK__ PS_CMD_ConfirmSleep, *PPS_CMD_ConfirmSleep; -+ -+/** Wlan Adapter data structure*/ -+struct _uap_adapter -+{ -+ /** Power save confirm sleep command */ -+ PS_CMD_ConfirmSleep PSConfirmSleep; -+ /** Device status */ -+ HARDWARE_STATUS HardwareStatus; -+ /** Interrupt counter */ -+ u32 IntCounter; -+ /** Tx packet queue */ -+ struct sk_buff_head tx_queue; -+ /** Cmd packet queue */ -+ struct sk_buff_head cmd_queue; -+ /** Command sequence number */ -+ u16 SeqNum; -+ /** Command buffer */ -+ u8 *CmdBuf; -+ /** cmd pending flag */ -+ u8 cmd_pending; -+ /** cmd wait option */ -+ u8 cmd_wait_option; -+ /** Command buffer length */ -+ u32 CmdSize; -+ /** Command wait queue */ -+ wait_queue_head_t cmdwait_q __ATTRIB_ALIGN__; -+ /** Command wait queue state flag */ -+ u8 CmdWaitQWoken; -+ /** PnP support */ -+ BOOLEAN SurpriseRemoved; -+ /** Debug */ -+ uap_dbg dbg; -+ /** Netlink kernel socket */ -+ struct sock *nl_sk; -+ /** Semaphore for CMD */ -+ SEMAPHORE CmdSem; -+ /** Power Save mode */ -+ u8 psmode; -+ /** Power Save state */ -+ u8 ps_state; -+ /** Number of wakeup tries */ -+ u32 WakeupTries; -+}; -+ -+static inline int -+os_upload_rx_packet(uap_private * priv, struct sk_buff *skb) -+{ -+ skb->dev = priv->uap_dev.netdev; -+ skb->protocol = eth_type_trans(skb, priv->uap_dev.netdev); -+ skb->ip_summed = CHECKSUM_UNNECESSARY; -+ if (in_interrupt()) -+ netif_rx(skb); -+ else -+ netif_rx_ni(skb); -+ return 0; -+} -+ -+/* -+ * netif carrier_on/off and start(wake)/stop_queue handling -+ */ -+static inline void -+os_carrier_on(uap_private * priv) -+{ -+ if (!netif_carrier_ok(priv->uap_dev.netdev) && -+ (priv->MediaConnected == TRUE)) { -+ netif_carrier_on(priv->uap_dev.netdev); -+ } -+} -+ -+static inline void -+os_carrier_off(uap_private * priv) -+{ -+ if (netif_carrier_ok(priv->uap_dev.netdev)) { -+ netif_carrier_off(priv->uap_dev.netdev); -+ } -+} -+ -+static inline void -+os_start_queue(uap_private * priv) -+{ -+ if (netif_queue_stopped(priv->uap_dev.netdev) && -+ (priv->MediaConnected == TRUE)) { -+ netif_wake_queue(priv->uap_dev.netdev); -+ } -+} -+ -+static inline void -+os_stop_queue(uap_private * priv) -+{ -+ if (!netif_queue_stopped(priv->uap_dev.netdev)) { -+ netif_stop_queue(priv->uap_dev.netdev); -+ } -+} -+ -+/** Interface specific header */ -+#define INTF_HEADER_LEN 4 -+ -+/** headroom alignment for tx packet */ -+#define HEADER_ALIGNMENT 8 -+ -+/** The number of times to try when polling for status bits */ -+#define MAX_POLL_TRIES 100 -+ -+/** Length of SNAP header */ -+#define MRVDRV_SNAP_HEADER_LEN 8 -+ -+/** Extra length of Tx packet buffer */ -+#define EXTRA_LEN 36 -+ -+/** Buffer size for ethernet Tx packets */ -+#define MRVDRV_ETH_TX_PACKET_BUFFER_SIZE \ -+ (ETH_FRAME_LEN + sizeof(TxPD) + EXTRA_LEN) -+ -+/** Buffer size for ethernet Rx packets */ -+#define MRVDRV_ETH_RX_PACKET_BUFFER_SIZE \ -+ (ETH_FRAME_LEN + sizeof(RxPD) \ -+ + MRVDRV_SNAP_HEADER_LEN + EXTRA_LEN) -+ -+/** Packet type: data, command & event */ -+typedef enum _mv_type -+{ -+ MV_TYPE_DAT = 0, -+ MV_TYPE_CMD = 1, -+ MV_TYPE_EVENT = 3 -+} mv_type; -+ -+/** Disable interrupt */ -+#define OS_INT_DISABLE spin_lock_irqsave(&priv->driver_lock, priv->driver_flags) -+/** Enable interrupt */ -+#define OS_INT_RESTORE spin_unlock_irqrestore(&priv->driver_lock, priv->driver_flags) -+ -+int uap_process_rx_packet(uap_private * priv, struct sk_buff *skb); -+void uap_interrupt(uap_private * priv); -+uap_private *uap_add_card(void *card); -+int uap_remove_card(void *card); -+int uap_process_event(uap_private * priv, u8 * payload, uint len); -+int uap_soft_reset(uap_private * priv); -+int uap_process_sleep_confirm_resp(uap_private * priv, u8 * resp, int resp_len); -+ -+#ifdef CONFIG_PROC_FS -+/** The proc fs interface */ -+void uap_proc_entry(uap_private * priv, struct net_device *dev); -+void uap_proc_remove(uap_private * priv); -+int string_to_number(char *s); -+void uap_debug_entry(uap_private * priv, struct net_device *dev); -+void uap_debug_remove(uap_private * priv); -+#endif /* CONFIG_PROC_FS */ -+ -+int sbi_register(void); -+ -+void sbi_unregister(void); -+int sbi_register_dev(uap_private * priv); -+int sbi_unregister_dev(uap_private * priv); -+int sbi_prog_fw_w_helper(uap_private *); -+ -+int sbi_host_to_card(uap_private * priv, u8 * payload, u16 nb); -+int sbi_enable_host_int(uap_private * priv); -+int sbi_disable_host_int(uap_private * priv); -+ -+int sbi_get_int_status(uap_private * priv, u8 * ireg); -+/** Check firmware status */ -+int sbi_check_fw_status(uap_private *, int); -+int sbi_prog_helper(uap_private *); -+ -+int sbi_wakeup_firmware(uap_private * priv); -+ -+#endif /* _UAP_DRV_H */ -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_fw.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_fw.h ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_fw.h 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_fw.h 2011-10-21 11:13:58.727115088 +0200 -@@ -0,0 +1,359 @@ -+/** @file uap_fw.h -+ * -+ * @brief This file contains firmware specific defines. -+ * -+ * Copyright (C) 2008-2009, Marvell International Ltd. -+ * -+ * This software file (the "File") is distributed by Marvell International -+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 -+ * (the "License"). You may use, redistribute and/or modify this File in -+ * accordance with the terms and conditions of the License, a copy of which -+ * is available along with the File in the gpl.txt file or by writing to -+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. -+ * -+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE -+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about -+ * this warranty disclaimer. -+ * -+ */ -+/******************************************************** -+Change log: -+ 02/26/08: Initial creation -+********************************************************/ -+ -+#ifndef _UAP_FW_H -+#define _UAP_FW_H -+ -+/** uap upload size */ -+#define UAP_UPLD_SIZE 2312 -+/** Packet type Micro AP */ -+#define PKT_TYPE_MICROAP 1 -+/** Packet type client */ -+#define PKT_TYPE_CLIENT 0 -+ -+/** TxPD descriptor */ -+typedef struct _TxPD -+{ -+ /** Bss Type */ -+ u8 BssType; -+ /** Bss num */ -+ u8 BssNum; -+ /** Tx packet length */ -+ u16 TxPktLength; -+ /** Tx packet offset */ -+ u16 TxPktOffset; -+ /** Tx packet type */ -+ u16 TxPktType; -+ /** Tx Control */ -+ u32 TxControl; -+ /** reserved */ -+ u32 reserved[2]; -+} __ATTRIB_PACK__ TxPD, *PTxPD; -+ -+/** RxPD Descriptor */ -+typedef struct _RxPD -+{ -+ /** Bss Type */ -+ u8 BssType; -+ /** Bss Num */ -+ u8 BssNum; -+ /** Tx packet length */ -+ u16 RxPktLength; -+ /** Tx packet offset */ -+ u16 RxPktOffset; -+} __ATTRIB_PACK__ RxPD, *PRxPD; -+ -+#ifdef BIG_ENDIAN -+/** Convert from 16 bit little endian format to CPU format */ -+#define uap_le16_to_cpu(x) le16_to_cpu(x) -+/** Convert from 32 bit little endian format to CPU format */ -+#define uap_le32_to_cpu(x) le32_to_cpu(x) -+/** Convert from 64 bit little endian format to CPU format */ -+#define uap_le64_to_cpu(x) le64_to_cpu(x) -+/** Convert to 16 bit little endian format from CPU format */ -+#define uap_cpu_to_le16(x) cpu_to_le16(x) -+/** Convert to 32 bit little endian format from CPU format */ -+#define uap_cpu_to_le32(x) cpu_to_le32(x) -+/** Convert to 64 bit little endian format from CPU format */ -+#define uap_cpu_to_le64(x) cpu_to_le64(x) -+ -+/** Convert TxPD to little endian format from CPU format */ -+#define endian_convert_TxPD(x); \ -+ { \ -+ (x)->TxPktLength = uap_cpu_to_le16((x)->TxPktLength); \ -+ (x)->TxPktOffset = uap_cpu_to_le32((x)->TxPktOffset); \ -+ (x)->TxControl = uap_cpu_to_le32((x)->TxControl); \ -+ (x)->TxPktType = uap_cpu_to_le32((x)->TxPktType); \ -+ } -+ -+/** Convert RxPD from little endian format to CPU format */ -+#define endian_convert_RxPD(x); \ -+ { \ -+ (x)->RxPktLength = uap_le16_to_cpu((x)->RxPktLength); \ -+ (x)->RxPktOffset = uap_le32_to_cpu((x)->RxPktOffset); \ -+ } -+#else /* BIG_ENDIAN */ -+/** Do nothing */ -+#define uap_le16_to_cpu(x) x -+/** Do nothing */ -+#define uap_le32_to_cpu(x) x -+/** Do nothing */ -+#define uap_le64_to_cpu(x) x -+/** Do nothing */ -+#define uap_cpu_to_le16(x) x -+/** Do nothing */ -+#define uap_cpu_to_le32(x) x -+/** Do nothing */ -+#define uap_cpu_to_le64(x) x -+ -+/** Do nothing */ -+#define endian_convert_TxPD(x) -+/** Do nothing */ -+#define endian_convert_RxPD(x) -+#endif /* BIG_ENDIAN */ -+ -+/** Host Command ID : Function initialization */ -+#define HostCmd_CMD_FUNC_INIT 0x00a9 -+/** Host Command ID : Function shutdown */ -+#define HostCmd_CMD_FUNC_SHUTDOWN 0x00aa -+ -+/** Host Command id: SYS_INFO */ -+#define HOST_CMD_APCMD_SYS_INFO 0x00ae -+/** Host Command id: SYS_RESET */ -+#define HOST_CMD_APCMD_SYS_RESET 0x00af -+/** Host Command id: SYS_CONFIGURE */ -+#define HOST_CMD_APCMD_SYS_CONFIGURE 0x00b0 -+/** Host Command id: BSS_START */ -+#define HOST_CMD_APCMD_BSS_START 0x00b1 -+/** Host Command id: SYS_STOP */ -+#define HOST_CMD_APCMD_BSS_STOP 0x00b2 -+/** Host Command id: STA_LIST */ -+#define HOST_CMD_APCMD_STA_LIST 0x00b3 -+/** Host Command id: STA_FILTER_TABLE */ -+#define HOST_CMD_APCMD_STA_FILTER_TABLE 0x00b4 -+/** Host Command id: STA_DEAUTH */ -+#define HOST_CMD_APCMD_STA_DEAUTH 0x00b5 -+/** Host Command id: SOFT_RESET */ -+#define HOST_CMD_APCMD_SOFT_RESET 0x00d5 -+/** Host Command id: POWER_MGMT_EXT */ -+#define HOST_CMD_POWER_MGMT_EXT 0x00ef -+/** Host Command id: SLEEP_CONFIRM*/ -+#define HOST_CMD_SLEEP_CONFIRM 0x00d8 -+ -+/** TLV type : SSID */ -+#define TLV_TYPE_SSID 0x0000 -+/** TLV type : Rates */ -+#define TLV_TYPE_RATES 0x0001 -+/** TLV type : PHY DS */ -+#define TLV_TYPE_PHY_DS 0x0003 -+ -+/** TLV Id : Base id */ -+#define PROPRIETARY_TLV_BASE_ID 0x0100 -+/** TLV Id : AP_MAC_ADDRESS */ -+#define MRVL_AP_MAC_ADDRESS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 43) -+/** TLV Id : Beacon period */ -+#define MRVL_BEACON_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 44) -+/** TLV Id : Dtim period */ -+#define MRVL_DTIM_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 45) -+/** TLV Id : Basic rates */ -+#define MRVL_BASIC_RATES_TLV_ID (PROPRIETARY_TLV_BASE_ID + 46) -+/** TLV Id : Tx Power */ -+#define MRVL_TX_POWER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 47) -+/** TLV Id : Broadcast SSID control */ -+#define MRVL_BCAST_SSID_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 48) -+/** TLV Id : Preamble control */ -+#define MRVL_PREAMBLE_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 49) -+/** TLV Id : Antenna control */ -+#define MRVL_ANTENNA_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 50) -+/** TLV Id : RTS threshold */ -+#define MRVL_RTS_THRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 51) -+/** TLV Id : Radio control */ -+#define MRVL_RADIO_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 52) -+/** TLV Id : TX data rate */ -+#define MRVL_TX_DATA_RATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 53) -+/** TLV Id : Packet forward control */ -+#define MRVL_PKT_FWD_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 54) -+/** TLV Id : STA info */ -+#define MRVL_STA_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 55) -+/** TLV Id : STA MAC address filter */ -+#define MRVL_STA_MAC_ADDR_FILTER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 56) -+/** TLV Id : STA ageout timer */ -+#define MRVL_STA_AGEOUT_TIMER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 57) -+/** TLV Id : Security config */ -+#define MRVL_SECURITY_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 58) -+/** TLV Id : WEP KEY */ -+#define MRVL_WEP_KEY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 59) -+/** TLV Id : WPA Passphrase */ -+#define MRVL_WPA_PASSPHRASE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 60) -+ -+/** Action get */ -+#define ACTION_GET 0 -+/** Action set */ -+#define ACTION_SET 1 -+/** Length of ethernet address */ -+#ifndef ETH_ALEN -+#define ETH_ALEN 6 -+#endif -+ -+/** HostCmd_DS_GEN */ -+typedef struct -+{ -+ /** Command */ -+ u16 Command; -+ /** Size */ -+ u16 Size; -+ /** Sequence number */ -+ u16 SeqNum; -+ /** Result */ -+ u16 Result; -+} __ATTRIB_PACK__ HostCmd_DS_GEN; -+ -+/** Size of HostCmd_DS_GEN */ -+#define S_DS_GEN sizeof(HostCmd_DS_GEN) -+ -+/** _HostCmd_HEADER*/ -+typedef struct -+{ -+ /** Command Header : Command */ -+ u16 Command; -+ /** Command Header : Size */ -+ u16 Size; -+} __ATTRIB_PACK__ HostCmd_HEADER; -+ -+/** HostCmd_SYS_CONFIG */ -+typedef struct _HostCmd_SYS_CONFIG -+{ -+ /** CMD Action GET/SET*/ -+ u16 Action; -+ /** Tlv buffer */ -+ u8 TlvBuffer[0]; -+} __ATTRIB_PACK__ HostCmd_SYS_CONFIG; -+ -+/** HostCmd_DS_POWER_MGMT_EXT */ -+typedef struct _HostCmd_DS_POWER_MGMT_EXT -+{ -+ /** CMD Action Get/Set*/ -+ u16 action; -+ /** power mode */ -+ u16 power_mode; -+} __ATTRIB_PACK__ HostCmd_DS_POWER_MGMT_EXT; -+ -+/** _HostCmd_DS_COMMAND*/ -+typedef struct _HostCmd_DS_COMMAND -+{ -+ -+ /** Command Header : Command */ -+ u16 Command; -+ /** Command Header : Size */ -+ u16 Size; -+ /** Command Header : Sequence number */ -+ u16 SeqNum; -+ /** Command Header : Result */ -+ u16 Result; -+ /** Command Body */ -+ union -+ { -+ HostCmd_SYS_CONFIG sys_config; -+ HostCmd_DS_POWER_MGMT_EXT pm_cfg; -+ -+ } params; -+} __ATTRIB_PACK__ HostCmd_DS_COMMAND; -+ -+/** MrvlIEtypesHeader_*/ -+typedef struct _MrvlIEtypesHeader -+{ -+ /** Header type */ -+ u16 Type; -+ /** Header length */ -+ u16 Len; -+} __ATTRIB_PACK__ MrvlIEtypesHeader_t; -+ -+/** MrvlIEtypes_Data_t */ -+typedef struct _MrvlIEtypes_Data_t -+{ -+ /** Header */ -+ MrvlIEtypesHeader_t Header; -+ /** Data */ -+ u8 Data[1]; -+} __ATTRIB_PACK__ MrvlIEtypes_Data_t; -+ -+/** MrvlIEtypes_ChanListParamSet_t */ -+typedef struct _MrvlIEtypes_MacAddr_t -+{ -+ /** Header */ -+ MrvlIEtypesHeader_t Header; -+ /** AP MAC address */ -+ u8 ApMacAddr[ETH_ALEN]; -+} __ATTRIB_PACK__ MrvlIEtypes_MacAddr_t; -+ -+/** Event ID: BSS started */ -+#define MICRO_AP_EV_ID_BSS_START 46 -+ -+/** Event ID: BSS idle event */ -+#define MICRO_AP_EV_BSS_IDLE 67 -+ -+/** Event ID: BSS active event */ -+#define MICRO_AP_EV_BSS_ACTIVE 68 -+ -+/** Event ID: PS_AWAKE */ -+#define EVENT_PS_AWAKE 0x0a -+ -+/** Event ID: PS_SLEEP */ -+#define EVENT_PS_SLEEP 0x0b -+ -+/** PS_STATE */ -+typedef enum _PS_STATE -+{ -+ PS_STATE_AWAKE, -+ PS_STATE_PRE_SLEEP, -+ PS_STATE_SLEEP -+} PS_STATE; -+ -+/** TLV type: AP Sleep param */ -+#define TLV_TYPE_AP_SLEEP_PARAM (PROPRIETARY_TLV_BASE_ID + 106) -+/** TLV type: AP Inactivity Sleep param */ -+#define TLV_TYPE_AP_INACT_SLEEP_PARAM (PROPRIETARY_TLV_BASE_ID + 107) -+ -+/** MrvlIEtypes_sleep_param_t */ -+typedef struct _MrvlIEtypes_sleep_param_t -+{ -+ /** Header */ -+ MrvlIEtypesHeader_t header; -+ /** control bitmap */ -+ u32 ctrl_bitmap; -+ /** min_sleep */ -+ u32 min_sleep; -+ /** max_sleep */ -+ u32 max_sleep; -+} __ATTRIB_PACK__ MrvlIEtypes_sleep_param_t; -+ -+/** MrvlIEtypes_inact_sleep_param_t */ -+typedef struct _MrvlIEtypes_inact_sleep_param_t -+{ -+ /** Header */ -+ MrvlIEtypesHeader_t header; -+ /** inactivity timeout */ -+ u32 inactivity_to; -+ /** min_awake */ -+ u32 min_awake; -+ /** max_awake */ -+ u32 max_awake; -+} __ATTRIB_PACK__ MrvlIEtypes_inact_sleep_param_t; -+ -+/** AP_Event */ -+typedef struct _AP_Event -+{ -+ /** Event ID */ -+ u32 EventId; -+ /* -+ * Reserved for STA_ASSOCIATED event and contains -+ * status information for the MIC_COUNTERMEASURES event. -+ */ -+ /** Reserved/status */ -+ u16 status; -+ /** AP MAC address */ -+ u8 MacAddr[ETH_ALEN]; -+} __ATTRIB_PACK__ AP_Event; -+#endif /* _UAP_FW_H */ -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_headers.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_headers.h ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_headers.h 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_headers.h 2011-10-21 11:13:58.727115088 +0200 -@@ -0,0 +1,64 @@ -+/** @file uap_headers.h -+ * -+ * @brief This file contains all the necessary include file. -+ * -+ * Copyright (C) 2008-2009, Marvell International Ltd. -+ * -+ * This software file (the "File") is distributed by Marvell International -+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 -+ * (the "License"). You may use, redistribute and/or modify this File in -+ * accordance with the terms and conditions of the License, a copy of which -+ * is available along with the File in the gpl.txt file or by writing to -+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. -+ * -+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE -+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about -+ * this warranty disclaimer. -+ * -+ */ -+#ifndef _UAP_HEADERS_H -+#define _UAP_HEADERS_H -+ -+/* Linux header files */ -+#include <linux/kernel.h> -+#include <linux/module.h> -+#include <linux/init.h> -+#include <linux/version.h> -+#include <linux/param.h> -+#include <linux/types.h> -+#include <linux/interrupt.h> -+#include <linux/proc_fs.h> -+#include <linux/kthread.h> -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) -+#include <linux/semaphore.h> -+#else -+#include <asm/semaphore.h> -+#endif -+ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) -+#include <linux/config.h> -+#endif -+ -+/* Net header files */ -+#include <linux/netdevice.h> -+#include <linux/net.h> -+#include <linux/skbuff.h> -+#include <linux/if_ether.h> -+#include <linux/etherdevice.h> -+#include <net/sock.h> -+#include <linux/netlink.h> -+#include <linux/firmware.h> -+#include <linux/delay.h> -+ -+#include "uap_drv.h" -+#include "uap_fw.h" -+ -+#include <linux/mmc/sdio.h> -+#include <linux/mmc/sdio_ids.h> -+#include <linux/mmc/sdio_func.h> -+#include <linux/mmc/card.h> -+#include "uap_sdio_mmc.h" -+ -+#endif /* _UAP_HEADERS_H */ -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_main.c ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.c 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_main.c 2011-10-21 11:13:58.767112032 +0200 -@@ -0,0 +1,1830 @@ -+/** @file uap_main.c -+ * @brief This file contains the major functions in uAP -+ * driver. It includes init, exit etc.. -+ * This file also contains the initialization for SW, -+ * FW and HW -+ * -+ * Copyright (C) 2008-2009, Marvell International Ltd. -+ * -+ * This software file (the "File") is distributed by Marvell International -+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 -+ * (the "License"). You may use, redistribute and/or modify this File in -+ * accordance with the terms and conditions of the License, a copy of which -+ * is available along with the File in the gpl.txt file or by writing to -+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. -+ * -+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE -+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about -+ * this warranty disclaimer. -+ * -+ */ -+/** -+ * @mainpage uAP Linux Driver -+ * -+ * @section overview_sec Overview -+ * -+ * This is Linux reference driver for Marvell uAP. -+ * -+ * @section copyright_sec Copyright -+ * -+ * Copyright (C) 2008, Marvell International Ltd. -+ * -+ */ -+ -+#include "uap_headers.h" -+ -+/** -+ * the global variable of a pointer to uap_private -+ * structure variable -+ */ -+uap_private *uappriv = NULL; -+#ifdef DEBUG_LEVEL1 -+#define DEFAULT_DEBUG_MASK (DBG_MSG | DBG_FATAL | DBG_ERROR) -+u32 drvdbg = DEFAULT_DEBUG_MASK; -+#endif -+/** Helper name */ -+char *helper_name = NULL; -+/** Firmware name */ -+char *fw_name = NULL; -+ -+/** Semaphore for add/remove card */ -+SEMAPHORE AddRemoveCardSem; -+ -+/******************************************************** -+ Local Functions -+********************************************************/ -+/** -+ * @brief This function send sleep confirm command to firmware -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE -+ */ -+static int -+uap_dnld_sleep_confirm_cmd(uap_private * priv) -+{ -+ uap_adapter *Adapter = priv->adapter; -+ int ret = UAP_STATUS_SUCCESS; -+ ENTER(); -+ PRINTM(CMND, "Sleep confirm\n"); -+ Adapter->cmd_pending = TRUE; -+ Adapter->cmd_wait_option = HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM; -+ ret = -+ sbi_host_to_card(priv, (u8 *) & Adapter->PSConfirmSleep, -+ sizeof(PS_CMD_ConfirmSleep)); -+ if (ret != UAP_STATUS_SUCCESS) { -+ Adapter->ps_state = PS_STATE_AWAKE; -+ Adapter->cmd_pending = FALSE; -+ Adapter->cmd_wait_option = FALSE; -+ } -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function process sleep confirm resp from firmware -+ * -+ * @param priv A pointer to uap_private structure -+ * @param resp A pointer to resp buf -+ * @param resp_len resp buf len -+ * @return UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE -+ */ -+int -+uap_process_sleep_confirm_resp(uap_private * priv, u8 * resp, int resp_len) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ HostCmd_DS_COMMAND *cmd; -+ uap_adapter *Adapter = priv->adapter; -+ ENTER(); -+ PRINTM(CMND, "Sleep confirm resp\n"); -+ if (!resp_len) { -+ PRINTM(ERROR, "Cmd Size is 0\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ cmd = (HostCmd_DS_COMMAND *) resp; -+ cmd->Result = uap_le16_to_cpu(cmd->Result); -+ if (cmd->Result != UAP_STATUS_SUCCESS) { -+ PRINTM(ERROR, "HOST_CMD_APCMD_PS_SLEEP_CONFIRM fail=%x\n", cmd->Result); -+ ret = -EFAULT; -+ } -+ done: -+ if (ret == UAP_STATUS_SUCCESS) -+ Adapter->ps_state = PS_STATE_SLEEP; -+ else -+ Adapter->ps_state = PS_STATE_AWAKE; -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function checks condition and prepares to -+ * send sleep confirm command to firmware if OK. -+ * -+ * @param priv A pointer to uap_private structure -+ * @return n/a -+ */ -+static void -+uap_ps_cond_check(uap_private * priv) -+{ -+ uap_adapter *Adapter = priv->adapter; -+ -+ ENTER(); -+ if (!priv->uap_dev.cmd_sent && -+ !Adapter->cmd_pending && !Adapter->IntCounter) { -+ uap_dnld_sleep_confirm_cmd(priv); -+ } else { -+ PRINTM(INFO, "Delay Sleep Confirm (%s%s%s)\n", -+ (priv->uap_dev.cmd_sent) ? "D" : "", -+ (Adapter->cmd_pending) ? "C" : "", -+ (Adapter->IntCounter) ? "I" : ""); -+ } -+ LEAVE(); -+} -+ -+/** -+ * @brief This function add cmd to cmdQ and waiting for response -+ * -+ * @param priv A pointer to uap_private structure -+ * @param skb A pointer to the skb for process -+ * @param wait_option Wait option -+ * @return UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE -+ */ -+static int -+uap_process_cmd(uap_private * priv, struct sk_buff *skb, u8 wait_option) -+{ -+ uap_adapter *Adapter = priv->adapter; -+ int ret = UAP_STATUS_SUCCESS; -+ HostCmd_DS_COMMAND *cmd; -+ u8 *headptr; -+ ENTER(); -+ if (Adapter->HardwareStatus != HWReady) { -+ PRINTM(ERROR, "Hw not ready, uap_process_cmd\n"); -+ kfree(skb); -+ LEAVE(); -+ return -EFAULT; -+ } -+ skb->cb[0] = wait_option; -+ headptr = skb->data; -+ *(u16 *) & headptr[0] = uap_cpu_to_le16(skb->len); -+ *(u16 *) & headptr[2] = uap_cpu_to_le16(MV_TYPE_CMD); -+ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN); -+ Adapter->SeqNum++; -+ cmd->SeqNum = uap_cpu_to_le16(Adapter->SeqNum); -+ PRINTM(CMND, "process_cmd: %x\n", cmd->Command); -+ DBG_HEXDUMP(CMD_D, "process_cmd", (u8 *) cmd, cmd->Size); -+ if (!wait_option) { -+ skb_queue_tail(&priv->adapter->cmd_queue, skb); -+ wake_up_interruptible(&priv->MainThread.waitQ); -+ LEAVE(); -+ return ret; -+ } -+ if (OS_ACQ_SEMAPHORE_BLOCK(&Adapter->CmdSem)) { -+ PRINTM(ERROR, "Acquire semaphore error, uap_prepare_cmd\n"); -+ kfree(skb); -+ LEAVE(); -+ return -EBUSY; -+ } -+ skb_queue_tail(&priv->adapter->cmd_queue, skb); -+ Adapter->CmdWaitQWoken = FALSE; -+ wake_up_interruptible(&priv->MainThread.waitQ); -+ /* Sleep until response is generated by FW */ -+ if (wait_option == HostCmd_OPTION_WAITFORRSP_TIMEOUT) { -+ if (!os_wait_interruptible_timeout -+ (Adapter->cmdwait_q, Adapter->CmdWaitQWoken, MRVDRV_TIMER_20S)) { -+ PRINTM(ERROR, "Cmd timeout\n"); -+ Adapter->cmd_pending = FALSE; -+ ret = -EFAULT; -+ } -+ } else -+ wait_event_interruptible(Adapter->cmdwait_q, Adapter->CmdWaitQWoken); -+ OS_REL_SEMAPHORE(&Adapter->CmdSem); -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief Inspect the response buffer for pointers to expected TLVs -+ * -+ * -+ * @param pTlv Pointer to the start of the TLV buffer to parse -+ * @param tlvBufSize Size of the TLV buffer -+ * @param reqTlvType request tlv's tlvtype -+ * @param ppTlv Output parameter: Pointer to the request TLV if found -+ * -+ * @return void -+ */ -+static void -+uap_get_tlv_ptrs(MrvlIEtypes_Data_t * pTlv, int tlvBufSize, -+ u16 reqTlvType, MrvlIEtypes_Data_t ** ppTlv) -+{ -+ MrvlIEtypes_Data_t *pCurrentTlv; -+ int tlvBufLeft; -+ u16 tlvType; -+ u16 tlvLen; -+ -+ ENTER(); -+ pCurrentTlv = pTlv; -+ tlvBufLeft = tlvBufSize; -+ *ppTlv = NULL; -+ PRINTM(INFO, "uap_get_tlv: tlvBufSize = %d, reqTlvType=%x\n", tlvBufSize, -+ reqTlvType); -+ while (tlvBufLeft >= sizeof(MrvlIEtypesHeader_t)) { -+ tlvType = uap_le16_to_cpu(pCurrentTlv->Header.Type); -+ tlvLen = uap_le16_to_cpu(pCurrentTlv->Header.Len); -+ if (reqTlvType == tlvType) -+ *ppTlv = (MrvlIEtypes_Data_t *) pCurrentTlv; -+ if (*ppTlv) { -+ HEXDUMP("TLV Buf", (u8 *) * ppTlv, tlvLen); -+ break; -+ } -+ tlvBufLeft -= (sizeof(pTlv->Header) + tlvLen); -+ pCurrentTlv = (MrvlIEtypes_Data_t *) (pCurrentTlv->Data + tlvLen); -+ } /* while */ -+ LEAVE(); -+} -+ -+/** -+ * @brief This function get mac -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS on success, otherwise failure code -+ */ -+static int -+uap_get_mac_address(uap_private * priv) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ u32 CmdSize; -+ HostCmd_DS_COMMAND *cmd; -+ uap_adapter *Adapter = priv->adapter; -+ struct sk_buff *skb; -+ MrvlIEtypes_MacAddr_t *pMacAddrTlv; -+ MrvlIEtypes_Data_t *pTlv; -+ u16 tlvBufSize; -+ ENTER(); -+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); -+ if (!skb) { -+ PRINTM(ERROR, "No free skb\n"); -+ ret = -ENOMEM; -+ goto done; -+ } -+ CmdSize = -+ S_DS_GEN + sizeof(HostCmd_SYS_CONFIG) + sizeof(MrvlIEtypes_MacAddr_t); -+ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN); -+ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SYS_CONFIGURE); -+ cmd->Size = uap_cpu_to_le16(CmdSize); -+ cmd->params.sys_config.Action = uap_cpu_to_le16(ACTION_GET); -+ pMacAddrTlv = -+ (MrvlIEtypes_MacAddr_t *) (skb->data + INTF_HEADER_LEN + S_DS_GEN + -+ sizeof(HostCmd_SYS_CONFIG)); -+ pMacAddrTlv->Header.Type = uap_cpu_to_le16(MRVL_AP_MAC_ADDRESS_TLV_ID); -+ pMacAddrTlv->Header.Len = uap_cpu_to_le16(ETH_ALEN); -+ skb_put(skb, CmdSize + INTF_HEADER_LEN); -+ if (UAP_STATUS_SUCCESS != -+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) { -+ PRINTM(ERROR, "Fail to process cmd SYS_CONFIGURE Query\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ if (!Adapter->CmdSize) { -+ PRINTM(ERROR, "Cmd Size is 0\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf; -+ cmd->Result = uap_le16_to_cpu(cmd->Result); -+ if (cmd->Result != UAP_STATUS_SUCCESS) { -+ PRINTM(ERROR, "uap_get_mac_address fail=%x\n", cmd->Result); -+ ret = -EFAULT; -+ goto done; -+ } -+ pTlv = -+ (MrvlIEtypes_Data_t *) (Adapter->CmdBuf + S_DS_GEN + -+ sizeof(HostCmd_SYS_CONFIG)); -+ tlvBufSize = Adapter->CmdSize - S_DS_GEN - sizeof(HostCmd_SYS_CONFIG); -+ uap_get_tlv_ptrs(pTlv, tlvBufSize, MRVL_AP_MAC_ADDRESS_TLV_ID, -+ (MrvlIEtypes_Data_t **) & pMacAddrTlv); -+ if (pMacAddrTlv) { -+ memcpy(priv->uap_dev.netdev->dev_addr, pMacAddrTlv->ApMacAddr, -+ ETH_ALEN); -+ HEXDUMP("Original MAC addr", priv->uap_dev.netdev->dev_addr, ETH_ALEN); -+ } -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function checks the conditions and sends packet to device -+ * -+ * @param priv A pointer to uap_private structure -+ * @param skb A pointer to the skb for process -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+uap_process_tx(uap_private * priv, struct sk_buff *skb) -+{ -+ uap_adapter *Adapter = priv->adapter; -+ int ret = UAP_STATUS_SUCCESS; -+ TxPD *pLocalTxPD; -+ u8 *headptr; -+ struct sk_buff *newskb; -+ int newheadlen; -+ ENTER(); -+ ASSERT(skb); -+ if (!skb) { -+ LEAVE(); -+ return UAP_STATUS_FAILURE; -+ } -+ if (skb_headroom(skb) < (sizeof(TxPD) + INTF_HEADER_LEN + HEADER_ALIGNMENT)) { -+ newheadlen = sizeof(TxPD) + INTF_HEADER_LEN + HEADER_ALIGNMENT; -+ PRINTM(WARN, "Tx: Insufficient skb headroom %d\n", skb_headroom(skb)); -+ /* Insufficient skb headroom - allocate a new skb */ -+ newskb = skb_realloc_headroom(skb, newheadlen); -+ if (unlikely(newskb == NULL)) { -+ PRINTM(ERROR, "Tx: Cannot allocate skb\n"); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ kfree_skb(skb); -+ skb = newskb; -+ PRINTM(INFO, "new skb headroom %d\n", skb_headroom(skb)); -+ } -+ /* headptr should be aligned */ -+ headptr = skb->data - sizeof(TxPD) - INTF_HEADER_LEN; -+ headptr = (u8 *) ((u32) headptr & ~((u32) (HEADER_ALIGNMENT - 1))); -+ -+ pLocalTxPD = (TxPD *) (headptr + INTF_HEADER_LEN); -+ memset(pLocalTxPD, 0, sizeof(TxPD)); -+ pLocalTxPD->BssType = PKT_TYPE_MICROAP; -+ pLocalTxPD->TxPktLength = skb->len; -+ /* offset of actual data */ -+ pLocalTxPD->TxPktOffset = (long) skb->data - (long) pLocalTxPD; -+ endian_convert_TxPD(pLocalTxPD); -+ *(u16 *) & headptr[0] = -+ uap_cpu_to_le16(skb->len + ((long) skb->data - (long) headptr)); -+ *(u16 *) & headptr[2] = uap_cpu_to_le16(MV_TYPE_DAT); -+ ret = -+ sbi_host_to_card(priv, headptr, -+ skb->len + ((long) skb->data - (long) headptr)); -+ if (ret) { -+ PRINTM(ERROR, "uap_process_tx Error: sbi_host_to_card failed: 0x%X\n", -+ ret); -+ Adapter->dbg.num_tx_host_to_card_failure++; -+ goto done; -+ } -+ PRINTM(DATA, "Data => FW\n"); -+ DBG_HEXDUMP(DAT_D, "Tx", headptr, -+ MIN(skb->len + sizeof(TxPD), DATA_DUMP_LEN)); -+ done: -+ /* Freed skb */ -+ kfree_skb(skb); -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function initializes the adapter structure -+ * and set default value to the member of adapter. -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+uap_init_sw(uap_private * priv) -+{ -+ uap_adapter *Adapter = priv->adapter; -+ -+ ENTER(); -+ -+ if (!(Adapter->CmdBuf = kmalloc(MRVDRV_SIZE_OF_CMD_BUFFER, GFP_KERNEL))) { -+ PRINTM(INFO, "Failed to allocate command buffer!\n"); -+ LEAVE(); -+ return UAP_STATUS_FAILURE; -+ } -+ -+ Adapter->cmd_pending = FALSE; -+ Adapter->CmdWaitQWoken = FALSE; -+ Adapter->ps_state = PS_STATE_AWAKE; -+ Adapter->WakeupTries = 0; -+ -+ memset(&Adapter->PSConfirmSleep, 0, sizeof(PS_CMD_ConfirmSleep)); -+ /** SDIO header */ -+ Adapter->PSConfirmSleep.SDLen = -+ uap_cpu_to_le16(sizeof(PS_CMD_ConfirmSleep)); -+ Adapter->PSConfirmSleep.SDType = uap_cpu_to_le16(MV_TYPE_CMD); -+ Adapter->PSConfirmSleep.SeqNum = 0; -+ Adapter->PSConfirmSleep.Command = uap_cpu_to_le16(HOST_CMD_SLEEP_CONFIRM); -+ Adapter->PSConfirmSleep.Size = uap_cpu_to_le16(sizeof(HostCmd_DS_GEN)); -+ Adapter->PSConfirmSleep.Result = 0; -+ -+ init_waitqueue_head(&Adapter->cmdwait_q); -+ OS_INIT_SEMAPHORE(&Adapter->CmdSem); -+ -+ skb_queue_head_init(&Adapter->tx_queue); -+ skb_queue_head_init(&Adapter->cmd_queue); -+ -+ /* Status variable */ -+ Adapter->HardwareStatus = HWInitializing; -+ -+ /* PnP support */ -+ Adapter->SurpriseRemoved = FALSE; -+ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) -+ Adapter->nl_sk = netlink_kernel_create(NETLINK_MARVELL, -+ NL_MULTICAST_GROUP, NULL, -+ THIS_MODULE); -+#else -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) -+ Adapter->nl_sk = netlink_kernel_create(NETLINK_MARVELL, -+ NL_MULTICAST_GROUP, NULL, NULL, -+ THIS_MODULE); -+#else -+ Adapter->nl_sk = netlink_kernel_create(&init_net, NETLINK_MARVELL, -+ NL_MULTICAST_GROUP, NULL, NULL, -+ THIS_MODULE); -+#endif -+#endif -+ if (!Adapter->nl_sk) { -+ PRINTM(ERROR, -+ "Could not initialize netlink event passing mechanism!\n"); -+ } -+ LEAVE(); -+ return UAP_STATUS_SUCCESS; -+} -+ -+/** -+ * @brief This function sends FUNC_INIT command to firmware -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS on success, otherwise failure code -+ */ -+static int -+uap_func_init(uap_private * priv) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ u32 CmdSize; -+ HostCmd_DS_GEN *cmd; -+ uap_adapter *Adapter = priv->adapter; -+ struct sk_buff *skb; -+ ENTER(); -+ if (Adapter->HardwareStatus != HWReady) { -+ PRINTM(ERROR, "uap_func_init:Hardware is not ready!\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); -+ if (!skb) { -+ PRINTM(ERROR, "No free skb\n"); -+ ret = -ENOMEM; -+ goto done; -+ } -+ CmdSize = sizeof(HostCmd_DS_GEN); -+ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN); -+ cmd->Command = uap_cpu_to_le16(HostCmd_CMD_FUNC_INIT); -+ cmd->Size = uap_cpu_to_le16(CmdSize); -+ skb_put(skb, CmdSize + INTF_HEADER_LEN); -+ PRINTM(CMND, "HostCmd_CMD_FUNC_INIT\n"); -+ if (UAP_STATUS_SUCCESS != -+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) { -+ PRINTM(ERROR, "Fail to process cmd HostCmd_CMD_FUNC_INIT\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function sends FUNC_SHUTDOWN command to firmware -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS on success, otherwise failure code -+ */ -+static int __exit -+uap_func_shutdown(uap_private * priv) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ u32 CmdSize; -+ HostCmd_DS_GEN *cmd; -+ uap_adapter *Adapter = priv->adapter; -+ struct sk_buff *skb; -+ ENTER(); -+ if (Adapter->HardwareStatus != HWReady) { -+ PRINTM(ERROR, "uap_func_shutdown:Hardware is not ready!\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); -+ if (!skb) { -+ PRINTM(ERROR, "No free skb\n"); -+ ret = -ENOMEM; -+ goto done; -+ } -+ CmdSize = sizeof(HostCmd_DS_GEN); -+ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN); -+ cmd->Command = uap_cpu_to_le16(HostCmd_CMD_FUNC_SHUTDOWN); -+ cmd->Size = uap_cpu_to_le16(CmdSize); -+ skb_put(skb, CmdSize + INTF_HEADER_LEN); -+ PRINTM(CMND, "HostCmd_CMD_FUNC_SHUTDOWN\n"); -+ if (UAP_STATUS_SUCCESS != -+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) { -+ PRINTM(ERROR, "Fail to process cmd HostCmd_CMD_FUNC_SHUTDOWN\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function initializes firmware -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+uap_init_fw(uap_private * priv) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ ENTER(); -+ sbi_disable_host_int(priv); -+ /* Check if firmware is already running */ -+ if (sbi_check_fw_status(priv, 1) == UAP_STATUS_SUCCESS) { -+ PRINTM(MSG, "UAP FW already running! Skip FW download\n"); -+ } else { -+ if ((ret = request_firmware(&priv->fw_helper, helper_name, -+ priv->hotplug_device)) < 0) { -+ PRINTM(FATAL, -+ "request_firmware() failed (helper), error code = %#x\n", -+ ret); -+ goto done; -+ } -+ -+ /* Download the helper */ -+ ret = sbi_prog_helper(priv); -+ -+ if (ret) { -+ PRINTM(FATAL, -+ "Bootloader in invalid state! Helper download failed!\n"); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ if ((ret = request_firmware(&priv->firmware, fw_name, -+ priv->hotplug_device)) < 0) { -+ PRINTM(FATAL, "request_firmware() failed, error code = %#x\n", ret); -+ goto done; -+ } -+ -+ /* Download the main firmware via the helper firmware */ -+ if (sbi_prog_fw_w_helper(priv)) { -+ PRINTM(FATAL, "UAP FW download failed!\n"); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ /* Check if the firmware is downloaded successfully or not */ -+ if (sbi_check_fw_status(priv, MAX_FIRMWARE_POLL_TRIES) == -+ UAP_STATUS_FAILURE) { -+ PRINTM(FATAL, "FW failed to be active in time!\n"); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ PRINTM(MSG, "UAP FW is active\n"); -+ } -+ sbi_enable_host_int(priv); -+ priv->adapter->HardwareStatus = HWReady; -+ if (uap_func_init(priv) != UAP_STATUS_SUCCESS) { -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ done: -+ if (priv->fw_helper) -+ release_firmware(priv->fw_helper); -+ if (priv->firmware) -+ release_firmware(priv->firmware); -+ LEAVE(); -+ return ret; -+ -+} -+ -+/** -+ * @brief This function frees the structure of adapter -+ * -+ * @param priv A pointer to uap_private structure -+ * @return n/a -+ */ -+static void -+uap_free_adapter(uap_private * priv) -+{ -+ uap_adapter *Adapter = priv->adapter; -+ -+ ENTER(); -+ -+ if (Adapter) { -+ if ((Adapter->nl_sk) && ((Adapter->nl_sk)->sk_socket)) { -+ sock_release((Adapter->nl_sk)->sk_socket); -+ Adapter->nl_sk = NULL; -+ } -+ if (Adapter->CmdBuf) -+ kfree(Adapter->CmdBuf); -+ skb_queue_purge(&priv->adapter->tx_queue); -+ skb_queue_purge(&priv->adapter->cmd_queue); -+ /* Free the adapter object itself */ -+ kfree(Adapter); -+ priv->adapter = NULL; -+ } -+ -+ LEAVE(); -+} -+ -+/** -+ * @brief This function handles the major job in uap driver. -+ * it handles the event generated by firmware, rx data received -+ * from firmware and tx data sent from kernel. -+ * -+ * @param data A pointer to uap_thread structure -+ * @return BT_STATUS_SUCCESS -+ */ -+static int -+uap_service_main_thread(void *data) -+{ -+ uap_thread *thread = data; -+ uap_private *priv = thread->priv; -+ uap_adapter *Adapter = priv->adapter; -+ wait_queue_t wait; -+ u8 ireg = 0; -+ struct sk_buff *skb; -+ ENTER(); -+ uap_activate_thread(thread); -+ init_waitqueue_entry(&wait, current); -+ current->flags |= PF_NOFREEZE; -+ -+ for (;;) { -+ add_wait_queue(&thread->waitQ, &wait); -+ OS_SET_THREAD_STATE(TASK_INTERRUPTIBLE); -+ if ((Adapter->WakeupTries) || -+ (!Adapter->IntCounter && Adapter->ps_state == PS_STATE_PRE_SLEEP) || -+ (!priv->adapter->IntCounter -+ && (priv->uap_dev.data_sent || -+ skb_queue_empty(&priv->adapter->tx_queue)) -+ && (priv->uap_dev.cmd_sent || Adapter->cmd_pending || -+ skb_queue_empty(&priv->adapter->cmd_queue)) -+ )) { -+ PRINTM(INFO, "Main: Thread sleeping...\n"); -+ schedule(); -+ } -+ OS_SET_THREAD_STATE(TASK_RUNNING); -+ remove_wait_queue(&thread->waitQ, &wait); -+ if (kthread_should_stop() || Adapter->SurpriseRemoved) { -+ PRINTM(INFO, "main-thread: break from main thread: " -+ "SurpriseRemoved=0x%x\n", Adapter->SurpriseRemoved); -+ /* Cancel pending command */ -+ if (Adapter->cmd_pending == TRUE) { -+ /* Wake up cmd Q */ -+ Adapter->CmdWaitQWoken = TRUE; -+ wake_up_interruptible(&Adapter->cmdwait_q); -+ } -+ break; -+ } -+ -+ PRINTM(INFO, "Main: Thread waking up...\n"); -+ if (priv->adapter->IntCounter) { -+ OS_INT_DISABLE; -+ Adapter->IntCounter = 0; -+ OS_INT_RESTORE; -+ sbi_get_int_status(priv, &ireg); -+ } else if ((priv->adapter->ps_state == PS_STATE_SLEEP) && -+ (!skb_queue_empty(&priv->adapter->cmd_queue) || -+ !skb_queue_empty(&priv->adapter->tx_queue))) { -+ priv->adapter->WakeupTries++; -+ PRINTM(CMND, "%lu : Wakeup device...\n", os_time_get()); -+ sbi_wakeup_firmware(priv); -+ continue; -+ } -+ if (Adapter->ps_state == PS_STATE_PRE_SLEEP) -+ uap_ps_cond_check(priv); -+ -+ /* The PS state is changed during processing of Sleep Request event -+ above */ -+ if ((Adapter->ps_state == PS_STATE_SLEEP) || -+ (Adapter->ps_state == PS_STATE_PRE_SLEEP)) -+ continue; -+ /* Execute the next command */ -+ if (!priv->uap_dev.cmd_sent && !Adapter->cmd_pending && -+ (Adapter->HardwareStatus == HWReady)) { -+ if (!skb_queue_empty(&priv->adapter->cmd_queue)) { -+ skb = skb_dequeue(&priv->adapter->cmd_queue); -+ if (skb) { -+ Adapter->CmdSize = 0; -+ Adapter->cmd_pending = TRUE; -+ Adapter->cmd_wait_option = skb->cb[0]; -+ if (sbi_host_to_card(priv, skb->data, skb->len)) { -+ PRINTM(ERROR, "Cmd:sbi_host_to_card failed!\n"); -+ Adapter->cmd_pending = FALSE; -+ Adapter->dbg.num_cmd_host_to_card_failure++; -+ /* Wake up cmd Q */ -+ Adapter->CmdWaitQWoken = TRUE; -+ wake_up_interruptible(&Adapter->cmdwait_q); -+ } else { -+ if (Adapter->cmd_wait_option == -+ HostCmd_OPTION_WAITFORSEND) { -+ /* Wake up cmd Q */ -+ Adapter->CmdWaitQWoken = TRUE; -+ wake_up_interruptible(&Adapter->cmdwait_q); -+ Adapter->cmd_wait_option = FALSE; -+ } -+ } -+ kfree_skb(skb); -+ } -+ } -+ } -+ if (!priv->uap_dev.data_sent && (Adapter->HardwareStatus == HWReady)) { -+ if (!skb_queue_empty(&priv->adapter->tx_queue)) { -+ skb = skb_dequeue(&priv->adapter->tx_queue); -+ if (skb) { -+ if (uap_process_tx(priv, skb)) { -+ priv->stats.tx_dropped++; -+ priv->stats.tx_errors++; -+ os_start_queue(priv); -+ } else { -+ priv->stats.tx_packets++; -+ priv->stats.tx_bytes += skb->len; -+ } -+ -+ } -+ } -+ } -+ } -+ uap_deactivate_thread(thread); -+ LEAVE(); -+ return UAP_STATUS_SUCCESS; -+} -+ -+/** -+ * @brief uap hostcmd ioctl handler -+ * -+ * @param dev A pointer to net_device structure -+ * @param req A pointer to ifreq structure -+ * @return UAP_STATUS_SUCCESS --success, otherwise fail -+ */ -+/********* format of ifr_data *************/ -+/* buf_len + Hostcmd_body */ -+/* buf_len: 4 bytes */ -+/* the length of the buf which */ -+/* can be used to return data */ -+/* to application */ -+/* Hostcmd_body */ -+/*******************************************/ -+static int -+uap_hostcmd_ioctl(struct net_device *dev, struct ifreq *req) -+{ -+ u32 buf_len; -+ HostCmd_HEADER head; -+ uap_private *priv = (uap_private *) netdev_priv(dev); -+ uap_adapter *Adapter = priv->adapter; -+ int ret = UAP_STATUS_SUCCESS; -+ struct sk_buff *skb; -+ -+ ENTER(); -+ -+ /* Sanity check */ -+ if (req->ifr_data == NULL) { -+ PRINTM(ERROR, "uap_hostcmd_ioctl() corrupt data\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ if (copy_from_user(&buf_len, req->ifr_data, sizeof(buf_len))) { -+ PRINTM(ERROR, "Copy from user failed\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ memset(&head, 0, sizeof(HostCmd_HEADER)); -+ /* Get the command size from user space */ -+ if (copy_from_user -+ (&head, req->ifr_data + sizeof(buf_len), sizeof(HostCmd_HEADER))) { -+ PRINTM(ERROR, "Copy from user failed\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ head.Size = uap_le16_to_cpu(head.Size); -+ if (head.Size > MRVDRV_SIZE_OF_CMD_BUFFER) { -+ PRINTM(ERROR, "CmdSize too big=%d\n", head.Size); -+ LEAVE(); -+ return -EFAULT; -+ } -+ PRINTM(CMND, "ioctl: hostcmd=%x, size=%d,buf_len=%d\n", head.Command, -+ head.Size, buf_len); -+ skb = dev_alloc_skb(head.Size + INTF_HEADER_LEN); -+ if (!skb) { -+ PRINTM(ERROR, "No free skb\n"); -+ LEAVE(); -+ return -ENOMEM; -+ } -+ -+ /* Get the command from user space */ -+ if (copy_from_user -+ (skb->data + INTF_HEADER_LEN, req->ifr_data + sizeof(buf_len), -+ head.Size)) { -+ PRINTM(ERROR, "Copy from user failed\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ skb_put(skb, head.Size + INTF_HEADER_LEN); -+ if (UAP_STATUS_SUCCESS != -+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP)) { -+ PRINTM(ERROR, "Fail to process cmd\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ if (!Adapter->CmdSize) { -+ PRINTM(ERROR, "Cmd Size is 0\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ if (Adapter->CmdSize > buf_len) { -+ PRINTM(ERROR, "buf_len is too small\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ /* Copy to user */ -+ if (copy_to_user -+ (req->ifr_data + sizeof(buf_len), Adapter->CmdBuf, Adapter->CmdSize)) { -+ PRINTM(ERROR, "Copy to user failed!\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief uap power mode ioctl handler -+ * -+ * @param dev A pointer to net_device structure -+ * @param req A pointer to ifreq structure -+ * @return UAP_STATUS_SUCCESS --success, otherwise fail -+ */ -+static int -+uap_power_mode_ioctl(struct net_device *dev, struct ifreq *req) -+{ -+ ps_mgmt pm_cfg; -+ int ret = UAP_STATUS_SUCCESS; -+ uap_private *priv = (uap_private *) netdev_priv(dev); -+ uap_adapter *Adapter = priv->adapter; -+ struct sk_buff *skb = NULL; -+ HostCmd_DS_COMMAND *cmd; -+ u32 CmdSize; -+ u8 *tlv = NULL; -+ MrvlIEtypes_sleep_param_t *sleep_tlv = NULL; -+ MrvlIEtypes_inact_sleep_param_t *inact_tlv = NULL; -+ u16 tlv_buf_left = 0; -+ MrvlIEtypesHeader_t *tlvbuf = NULL; -+ u16 tlv_type = 0; -+ u16 tlv_len = 0; -+ -+ ENTER(); -+ -+ /* Sanity check */ -+ if (req->ifr_data == NULL) { -+ PRINTM(ERROR, "uap_power_mode_ioctl() corrupt data\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ -+ memset(&pm_cfg, 0, sizeof(ps_mgmt)); -+ if (copy_from_user(&pm_cfg, req->ifr_data, sizeof(ps_mgmt))) { -+ PRINTM(ERROR, "Copy from user failed\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ PRINTM(CMND, -+ "ioctl power: flag=0x%x ps_mode=%d ctrl_bitmap=%d min_sleep=%d max_sleep=%d " -+ "inact_to=%d min_awake=%d max_awake=%d\n", pm_cfg.flags, -+ (int) pm_cfg.ps_mode, (int) pm_cfg.sleep_param.ctrl_bitmap, -+ (int) pm_cfg.sleep_param.min_sleep, -+ (int) pm_cfg.sleep_param.max_sleep, -+ (int) pm_cfg.inact_param.inactivity_to, -+ (int) pm_cfg.inact_param.min_awake, -+ (int) pm_cfg.inact_param.max_awake); -+ -+ if (pm_cfg. -+ flags & ~(PS_FLAG_PS_MODE | PS_FLAG_SLEEP_PARAM | -+ PS_FLAG_INACT_SLEEP_PARAM)) { -+ PRINTM(ERROR, "Invalid parameter: flags = 0x%x\n", pm_cfg.flags); -+ ret = -EINVAL; -+ goto done; -+ } -+ if (pm_cfg.ps_mode > PS_MODE_INACTIVITY) { -+ PRINTM(ERROR, "Invalid parameter: ps_mode = %d\n", (int) pm_cfg.flags); -+ ret = -EINVAL; -+ goto done; -+ } -+ -+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); -+ if (!skb) { -+ PRINTM(INFO, "No free skb\n"); -+ ret = -ENOMEM; -+ goto done; -+ } -+ -+ CmdSize = S_DS_GEN + sizeof(HostCmd_DS_POWER_MGMT_EXT); -+ -+ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN); -+ cmd->Command = uap_cpu_to_le16(HOST_CMD_POWER_MGMT_EXT); -+ if (!pm_cfg.flags) { -+ cmd->params.pm_cfg.action = uap_cpu_to_le16(ACTION_GET); -+ } else { -+ cmd->params.pm_cfg.action = uap_cpu_to_le16(ACTION_SET); -+ cmd->params.pm_cfg.power_mode = uap_cpu_to_le16(pm_cfg.ps_mode); -+ tlv = (u8 *) & cmd->params.pm_cfg + sizeof(HostCmd_DS_POWER_MGMT_EXT); -+ -+ if ((pm_cfg.ps_mode) && (pm_cfg.flags & PS_FLAG_SLEEP_PARAM)) { -+ sleep_tlv = (MrvlIEtypes_sleep_param_t *) tlv; -+ sleep_tlv->header.Type = uap_cpu_to_le16(TLV_TYPE_AP_SLEEP_PARAM); -+ sleep_tlv->header.Len = -+ uap_cpu_to_le16(sizeof(MrvlIEtypes_sleep_param_t) - -+ sizeof(MrvlIEtypesHeader_t)); -+ sleep_tlv->ctrl_bitmap = -+ uap_cpu_to_le32(pm_cfg.sleep_param.ctrl_bitmap); -+ sleep_tlv->min_sleep = -+ uap_cpu_to_le32(pm_cfg.sleep_param.min_sleep); -+ sleep_tlv->max_sleep = -+ uap_cpu_to_le32(pm_cfg.sleep_param.max_sleep); -+ CmdSize += sizeof(MrvlIEtypes_sleep_param_t); -+ tlv += sizeof(MrvlIEtypes_sleep_param_t); -+ } -+ if ((pm_cfg.ps_mode == PS_MODE_INACTIVITY) && -+ (pm_cfg.flags & PS_FLAG_INACT_SLEEP_PARAM)) { -+ inact_tlv = (MrvlIEtypes_inact_sleep_param_t *) tlv; -+ inact_tlv->header.Type = -+ uap_cpu_to_le16(TLV_TYPE_AP_INACT_SLEEP_PARAM); -+ inact_tlv->header.Len = -+ uap_cpu_to_le16(sizeof(MrvlIEtypes_inact_sleep_param_t) - -+ sizeof(MrvlIEtypesHeader_t)); -+ inact_tlv->inactivity_to = -+ uap_cpu_to_le32(pm_cfg.inact_param.inactivity_to); -+ inact_tlv->min_awake = -+ uap_cpu_to_le32(pm_cfg.inact_param.min_awake); -+ inact_tlv->max_awake = -+ uap_cpu_to_le32(pm_cfg.inact_param.max_awake); -+ CmdSize += sizeof(MrvlIEtypes_inact_sleep_param_t); -+ tlv += sizeof(MrvlIEtypes_inact_sleep_param_t); -+ } -+ } -+ cmd->Size = uap_cpu_to_le16(CmdSize); -+ skb_put(skb, CmdSize + INTF_HEADER_LEN); -+ if (UAP_STATUS_SUCCESS != -+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP)) { -+ PRINTM(ERROR, "Fail to process cmd POWER_MODE\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ if (!Adapter->CmdSize) { -+ PRINTM(ERROR, "Cmd Size is 0\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf; -+ cmd->Result = uap_le16_to_cpu(cmd->Result); -+ if (cmd->Result != UAP_STATUS_SUCCESS) { -+ PRINTM(ERROR, "HOST_CMD_APCMD_POWER_MODE fail=%x\n", cmd->Result); -+ ret = -EFAULT; -+ goto done; -+ } -+ if (pm_cfg.flags) { -+ Adapter->psmode = uap_le16_to_cpu(cmd->params.pm_cfg.power_mode); -+ } else { -+ pm_cfg.flags = PS_FLAG_PS_MODE; -+ pm_cfg.ps_mode = uap_le16_to_cpu(cmd->params.pm_cfg.power_mode); -+ tlv_buf_left = -+ cmd->Size - (sizeof(HostCmd_DS_POWER_MGMT_EXT) + S_DS_GEN); -+ tlvbuf = -+ (MrvlIEtypesHeader_t *) ((u8 *) & cmd->params.pm_cfg + -+ sizeof(HostCmd_DS_POWER_MGMT_EXT)); -+ while (tlv_buf_left >= sizeof(MrvlIEtypesHeader_t)) { -+ tlv_type = uap_le16_to_cpu(tlvbuf->Type); -+ tlv_len = uap_le16_to_cpu(tlvbuf->Len); -+ switch (tlv_type) { -+ case TLV_TYPE_AP_SLEEP_PARAM: -+ sleep_tlv = (MrvlIEtypes_sleep_param_t *) tlvbuf; -+ pm_cfg.flags |= PS_FLAG_SLEEP_PARAM; -+ pm_cfg.sleep_param.ctrl_bitmap = -+ uap_le32_to_cpu(sleep_tlv->ctrl_bitmap); -+ pm_cfg.sleep_param.min_sleep = -+ uap_le32_to_cpu(sleep_tlv->min_sleep); -+ pm_cfg.sleep_param.max_sleep = -+ uap_le32_to_cpu(sleep_tlv->max_sleep); -+ break; -+ case TLV_TYPE_AP_INACT_SLEEP_PARAM: -+ inact_tlv = (MrvlIEtypes_inact_sleep_param_t *) tlvbuf; -+ pm_cfg.flags |= PS_FLAG_INACT_SLEEP_PARAM; -+ pm_cfg.inact_param.inactivity_to = -+ uap_le32_to_cpu(inact_tlv->inactivity_to); -+ pm_cfg.inact_param.min_awake = -+ uap_le32_to_cpu(inact_tlv->min_awake); -+ pm_cfg.inact_param.max_awake = -+ uap_le32_to_cpu(inact_tlv->max_awake); -+ break; -+ } -+ tlv_buf_left -= tlv_len + sizeof(MrvlIEtypesHeader_t); -+ tlvbuf = -+ (MrvlIEtypesHeader_t *) ((u8 *) tlvbuf + tlv_len + -+ sizeof(MrvlIEtypesHeader_t)); -+ } -+ /* Copy to user */ -+ if (copy_to_user(req->ifr_data, &pm_cfg, sizeof(ps_mgmt))) { -+ PRINTM(ERROR, "Copy to user failed!\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ } -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function send bss_stop command to firmware -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS on success, otherwise failure code -+ */ -+static int -+uap_bss_stop(uap_private * priv) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ u32 CmdSize; -+ HostCmd_DS_GEN *cmd; -+ uap_adapter *Adapter = priv->adapter; -+ struct sk_buff *skb; -+ ENTER(); -+ if (Adapter->HardwareStatus != HWReady) { -+ PRINTM(ERROR, "uap_bss_stop:Hardware is not ready!\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); -+ if (!skb) { -+ PRINTM(ERROR, "No free skb\n"); -+ ret = -ENOMEM; -+ goto done; -+ } -+ CmdSize = sizeof(HostCmd_DS_GEN); -+ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN); -+ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_BSS_STOP); -+ cmd->Size = uap_cpu_to_le16(CmdSize); -+ skb_put(skb, CmdSize + INTF_HEADER_LEN); -+ PRINTM(CMND, "APCMD_BSS_STOP\n"); -+ if (UAP_STATUS_SUCCESS != -+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) { -+ PRINTM(ERROR, "Fail to process cmd BSS_STOP\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/******************************************************** -+ Global Functions -+********************************************************/ -+/** -+ * @brief This function send soft_reset command to firmware -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS on success, otherwise failure code -+ */ -+int -+uap_soft_reset(uap_private * priv) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ u32 CmdSize; -+ HostCmd_DS_GEN *cmd; -+ uap_adapter *Adapter = priv->adapter; -+ struct sk_buff *skb; -+ ENTER(); -+ ret = uap_bss_stop(priv); -+ if (ret != UAP_STATUS_SUCCESS) -+ goto done; -+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); -+ if (!skb) { -+ PRINTM(ERROR, "No free skb\n"); -+ ret = -ENOMEM; -+ goto done; -+ } -+ CmdSize = sizeof(HostCmd_DS_GEN); -+ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN); -+ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SOFT_RESET); -+ cmd->Size = uap_cpu_to_le16(CmdSize); -+ skb_put(skb, CmdSize + INTF_HEADER_LEN); -+ PRINTM(CMND, "APCMD_SOFT_RESET\n"); -+ if (UAP_STATUS_SUCCESS != -+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORSEND)) { -+ PRINTM(ERROR, "Fail to process cmd SOFT_RESET\n"); -+ ret = -EFAULT; -+ goto done; -+ } -+ Adapter->SurpriseRemoved = TRUE; -+ /* delay to allow hardware complete reset */ -+ os_sched_timeout(5); -+ if (priv->MediaConnected == TRUE) { -+ os_stop_queue(priv); -+ os_carrier_off(priv); -+ priv->MediaConnected = FALSE; -+ } -+ Adapter->CmdSize = 0; -+ Adapter->CmdWaitQWoken = TRUE; -+ wake_up_interruptible(&Adapter->cmdwait_q); -+ skb_queue_purge(&priv->adapter->tx_queue); -+ skb_queue_purge(&priv->adapter->cmd_queue); -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function processes received packet and forwards it -+ * to kernel/upper layer -+ * -+ * @param priv A pointer to uap_private -+ * @param skb A pointer to skb which includes the received packet -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+uap_process_rx_packet(uap_private * priv, struct sk_buff *skb) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ RxPD *pRxPD; -+ ENTER(); -+ priv->adapter->ps_state = PS_STATE_AWAKE; -+ pRxPD = (RxPD *) skb->data; -+ endian_convert_RxPD(pRxPD); -+ DBG_HEXDUMP(DAT_D, "Rx", skb->data, MIN(skb->len, DATA_DUMP_LEN)); -+ skb_pull(skb, pRxPD->RxPktOffset); -+ priv->stats.rx_packets++; -+ priv->stats.rx_bytes += skb->len; -+ os_upload_rx_packet(priv, skb); -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function opens the network device -+ * -+ * @param dev A pointer to net_device structure -+ * @return UAP_STATUS_SUCCESS -+ */ -+static int -+uap_open(struct net_device *dev) -+{ -+ uap_private *priv = (uap_private *) (uap_private *) netdev_priv(dev); -+ uap_adapter *Adapter = priv->adapter; -+ int i = 0; -+ -+ ENTER(); -+ -+ /* On some systems the device open handler will be called before HW ready. */ -+ /* Use the following flag check and wait function to work around the issue. */ -+ while ((Adapter->HardwareStatus != HWReady) && -+ (i < MAX_WAIT_DEVICE_READY_COUNT)) { -+ i++; -+ os_sched_timeout(100); -+ } -+ if (i >= MAX_WAIT_DEVICE_READY_COUNT) { -+ PRINTM(FATAL, "HW not ready, uap_open() return failure\n"); -+ LEAVE(); -+ return UAP_STATUS_FAILURE; -+ } -+ -+ if (MODULE_GET == 0) -+ return UAP_STATUS_FAILURE; -+ -+ priv->open = TRUE; -+ if (priv->MediaConnected == TRUE) { -+ os_carrier_on(priv); -+ os_start_queue(priv); -+ } else { -+ os_stop_queue(priv); -+ os_carrier_off(priv); -+ } -+ LEAVE(); -+ return UAP_STATUS_SUCCESS; -+} -+ -+/** -+ * @brief This function closes the network device -+ * -+ * @param dev A pointer to net_device structure -+ * @return UAP_STATUS_SUCCESS -+ */ -+static int -+uap_close(struct net_device *dev) -+{ -+ uap_private *priv = (uap_private *) netdev_priv(dev); -+ -+ ENTER(); -+ skb_queue_purge(&priv->adapter->tx_queue); -+ os_stop_queue(priv); -+ os_carrier_off(priv); -+ -+ MODULE_PUT; -+ priv->open = FALSE; -+ LEAVE(); -+ return UAP_STATUS_SUCCESS; -+} -+ -+/** -+ * @brief This function returns the network statistics -+ * -+ * @param dev A pointer to uap_private structure -+ * @return A pointer to net_device_stats structure -+ */ -+static struct net_device_stats * -+uap_get_stats(struct net_device *dev) -+{ -+ uap_private *priv = (uap_private *) netdev_priv(dev); -+ -+ return &priv->stats; -+} -+ -+/** -+ * @brief This function sets the MAC address to firmware. -+ * -+ * @param dev A pointer to uap_private structure -+ * @param addr MAC address to set -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+uap_set_mac_address(struct net_device *dev, void *addr) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ uap_private *priv = (uap_private *) netdev_priv(dev); -+ struct sockaddr *pHwAddr = (struct sockaddr *) addr; -+ u32 CmdSize; -+ HostCmd_DS_COMMAND *cmd; -+ MrvlIEtypes_MacAddr_t *pMacAddrTlv; -+ uap_adapter *Adapter = priv->adapter; -+ struct sk_buff *skb; -+ -+ ENTER(); -+ -+ /* Dump MAC address */ -+ DBG_HEXDUMP(CMD_D, "Original MAC addr", dev->dev_addr, ETH_ALEN); -+ DBG_HEXDUMP(CMD_D, "New MAC addr", pHwAddr->sa_data, ETH_ALEN); -+ if (priv->open && (priv->MediaConnected == TRUE)) { -+ os_carrier_on(priv); -+ os_start_queue(priv); -+ } -+ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); -+ if (!skb) { -+ PRINTM(ERROR, "No free skb\n"); -+ LEAVE(); -+ return -ENOMEM; -+ } -+ CmdSize = -+ S_DS_GEN + sizeof(HostCmd_SYS_CONFIG) + sizeof(MrvlIEtypes_MacAddr_t); -+ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN); -+ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SYS_CONFIGURE); -+ cmd->Size = uap_cpu_to_le16(CmdSize); -+ cmd->params.sys_config.Action = uap_cpu_to_le16(ACTION_SET); -+ pMacAddrTlv = -+ (MrvlIEtypes_MacAddr_t *) ((u8 *) cmd + S_DS_GEN + -+ sizeof(HostCmd_SYS_CONFIG)); -+ pMacAddrTlv->Header.Type = uap_cpu_to_le16(MRVL_AP_MAC_ADDRESS_TLV_ID); -+ pMacAddrTlv->Header.Len = uap_cpu_to_le16(ETH_ALEN); -+ memcpy(pMacAddrTlv->ApMacAddr, pHwAddr->sa_data, ETH_ALEN); -+ skb_put(skb, CmdSize + INTF_HEADER_LEN); -+ PRINTM(CMND, "set_mac_address\n"); -+ if (UAP_STATUS_SUCCESS != -+ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) { -+ PRINTM(ERROR, "Fail to set mac address\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ if (!Adapter->CmdSize) { -+ PRINTM(ERROR, "Cmd Size is 0\n"); -+ LEAVE(); -+ return -EFAULT; -+ } -+ cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf; -+ cmd->Result = uap_cpu_to_le16(cmd->Result); -+ if (cmd->Result != UAP_STATUS_SUCCESS) { -+ PRINTM(ERROR, "set mac addrress fail,cmd result=%x\n", cmd->Result); -+ ret = -EFAULT; -+ } else -+ memcpy(dev->dev_addr, pHwAddr->sa_data, ETH_ALEN); -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function sets multicast addresses to firmware -+ * -+ * @param dev A pointer to net_device structure -+ * @return n/a -+ */ -+static void -+uap_set_multicast_list(struct net_device *dev) -+{ -+ ENTER(); -+#warning uap_set_multicast_list not implemented. Expect problems with IPv6. -+ LEAVE(); -+} -+ -+/** -+ * @brief This function handles the timeout of packet -+ * transmission -+ * -+ * @param dev A pointer to net_device structure -+ * @return n/a -+ */ -+static void -+uap_tx_timeout(struct net_device *dev) -+{ -+ uap_private *priv = (uap_private *) netdev_priv(dev); -+ -+ ENTER(); -+ -+ PRINTM(DATA, "Tx timeout\n"); -+ UpdateTransStart(dev); -+ priv->num_tx_timeout++; -+ priv->adapter->IntCounter++; -+ wake_up_interruptible(&priv->MainThread.waitQ); -+ -+ LEAVE(); -+} -+ -+/** -+ * @brief This function handles packet transmission -+ * -+ * @param skb A pointer to sk_buff structure -+ * @param dev A pointer to net_device structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+uap_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) -+{ -+ uap_private *priv = (uap_private *) netdev_priv(dev); -+ int ret = UAP_STATUS_SUCCESS; -+ -+ ENTER(); -+ PRINTM(DATA, "Data <= kernel\n"); -+ DBG_HEXDUMP(DAT_D, "Tx", skb->data, MIN(skb->len, DATA_DUMP_LEN)); -+ /* skb sanity check */ -+ if (!skb->len || (skb->len > MRVDRV_MAXIMUM_ETH_PACKET_SIZE)) { -+ PRINTM(ERROR, "Tx Error: Bad skb length %d : %d\n", skb->len, -+ MRVDRV_MAXIMUM_ETH_PACKET_SIZE); -+ priv->stats.tx_dropped++; -+ kfree(skb); -+ goto done; -+ } -+ skb_queue_tail(&priv->adapter->tx_queue, skb); -+ wake_up_interruptible(&priv->MainThread.waitQ); -+ if (skb_queue_len(&priv->adapter->tx_queue) > TX_HIGH_WATERMARK) { -+ UpdateTransStart(dev); -+ os_stop_queue(priv); -+ } -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief ioctl function - entry point -+ * -+ * @param dev A pointer to net_device structure -+ * @param req A pointer to ifreq structure -+ * @param cmd command -+ * @return UAP_STATUS_SUCCESS--success, otherwise fail -+ */ -+static int -+uap_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ -+ ENTER(); -+ -+ PRINTM(CMND, "uap_do_ioctl: ioctl cmd = 0x%x\n", cmd); -+ -+ switch (cmd) { -+ case UAPHOSTCMD: -+ ret = uap_hostcmd_ioctl(dev, req); -+ break; -+ case UAP_POWER_MODE: -+ ret = uap_power_mode_ioctl(dev, req); -+ break; -+ default: -+ ret = -EINVAL; -+ break; -+ } -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function handles events generated by firmware -+ * -+ * @param priv A pointer to uap_private structure -+ * @param payload A pointer to payload buffer -+ * @param len Length of the payload -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+uap_process_event(uap_private * priv, u8 * payload, uint len) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ uap_adapter *Adapter = priv->adapter; -+ struct sk_buff *skb = NULL; -+ struct nlmsghdr *nlh = NULL; -+ struct sock *sk = Adapter->nl_sk; -+ AP_Event *pEvent; -+ -+ ENTER(); -+ Adapter->ps_state = PS_STATE_AWAKE; -+ if (len > NL_MAX_PAYLOAD) { -+ PRINTM(ERROR, "event size is too big!!! len=%d\n", len); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ pEvent = (AP_Event *) payload; -+ PRINTM(CMND, "Event: %d\n", pEvent->EventId); -+ switch (pEvent->EventId) { -+ case MICRO_AP_EV_ID_BSS_START: -+ memcpy(priv->uap_dev.netdev->dev_addr, pEvent->MacAddr, ETH_ALEN); -+ DBG_HEXDUMP(CMD_D, "BSS MAC addr", priv->uap_dev.netdev->dev_addr, -+ ETH_ALEN); -+ break; -+ case MICRO_AP_EV_BSS_ACTIVE: -+ // carrier on -+ priv->MediaConnected = TRUE; -+ os_carrier_on(priv); -+ os_start_queue(priv); -+ break; -+ case MICRO_AP_EV_BSS_IDLE: -+ os_stop_queue(priv); -+ os_carrier_off(priv); -+ priv->MediaConnected = FALSE; -+ break; -+ case EVENT_PS_AWAKE: -+ PRINTM(CMND, "UAP: PS_AWAKE\n"); -+ Adapter->ps_state = PS_STATE_AWAKE; -+ Adapter->WakeupTries = 0; -+ break; -+ case EVENT_PS_SLEEP: -+ PRINTM(CMND, "UAP: PS_SLEEP\n"); -+ Adapter->ps_state = PS_STATE_PRE_SLEEP; -+ break; -+ default: -+ break; -+ } -+ if ((pEvent->EventId == EVENT_PS_AWAKE) || -+ (pEvent->EventId == EVENT_PS_SLEEP)) -+ goto done; -+ if (sk) { -+ /* Allocate skb */ -+ if (!(skb = alloc_skb(NLMSG_SPACE(NL_MAX_PAYLOAD), GFP_ATOMIC))) { -+ PRINTM(ERROR, "Could not allocate skb for netlink.\n"); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ nlh = (struct nlmsghdr *) skb->data; -+ nlh->nlmsg_len = NLMSG_SPACE(len); -+ -+ /* From kernel */ -+ nlh->nlmsg_pid = 0; -+ nlh->nlmsg_flags = 0; -+ -+ /* Data */ -+ skb_put(skb, nlh->nlmsg_len); -+ memcpy(NLMSG_DATA(nlh), payload, len); -+ -+ /* From Kernel */ -+ NETLINK_CB(skb).pid = 0; -+ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) -+ /* Multicast message */ -+ NETLINK_CB(skb).dst_pid = 0; -+#endif -+ -+ /* Multicast group number */ -+ NETLINK_CB(skb).dst_group = NL_MULTICAST_GROUP; -+ -+ /* Send message */ -+ netlink_broadcast(sk, skb, 0, NL_MULTICAST_GROUP, GFP_KERNEL); -+ -+ ret = UAP_STATUS_SUCCESS; -+ } else { -+ PRINTM(ERROR, "Could not send event through NETLINK. Link down.\n"); -+ ret = UAP_STATUS_FAILURE; -+ } -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function handles the interrupt. it will change PS -+ * state if applicable. it will wake up main_thread to handle -+ * the interrupt event as well. -+ * -+ * @param priv A pointer to uap_private structure -+ * @return n/a -+ */ -+void -+uap_interrupt(uap_private * priv) -+{ -+ ENTER(); -+ priv->adapter->IntCounter++; -+ priv->adapter->WakeupTries = 0; -+ PRINTM(INFO, "*\n"); -+ wake_up_interruptible(&priv->MainThread.waitQ); -+ -+ LEAVE(); -+ -+} -+ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29) -+/** Network device handlers */ -+static const struct net_device_ops uap_netdev_ops = { -+ .ndo_open = uap_open, -+ .ndo_start_xmit = uap_hard_start_xmit, -+ .ndo_stop = uap_close, -+ .ndo_do_ioctl = uap_do_ioctl, -+ .ndo_set_mac_address = uap_set_mac_address, -+ .ndo_tx_timeout = uap_tx_timeout, -+ .ndo_get_stats = uap_get_stats, -+ .ndo_set_multicast_list = uap_set_multicast_list, -+}; -+#endif -+ -+/** -+ * @brief This function adds the card. it will probe the -+ * card, allocate the uap_priv and initialize the device. -+ * -+ * @param card A pointer to card -+ * @return A pointer to uap_private structure -+ */ -+uap_private * -+uap_add_card(void *card) -+{ -+ struct net_device *dev = NULL; -+ uap_private *priv = NULL; -+ -+ ENTER(); -+ -+ if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem)) -+ goto exit_sem_err; -+ -+ /* Allocate an Ethernet device */ -+ if (!(dev = alloc_etherdev(sizeof(uap_private)))) { -+ PRINTM(FATAL, "Init ethernet device failed!\n"); -+ goto error; -+ } -+ priv = (uap_private *) netdev_priv(dev); -+ -+ /* Allocate name */ -+ if (dev_alloc_name(dev, "uap%d") < 0) { -+ PRINTM(ERROR, "Could not allocate device name!\n"); -+ goto error; -+ } -+ -+ /* Allocate buffer for uap_adapter */ -+ if (!(priv->adapter = kmalloc(sizeof(uap_adapter), GFP_KERNEL))) { -+ PRINTM(FATAL, "Allocate buffer for uap_adapter failed!\n"); -+ goto error; -+ } -+ memset(priv->adapter, 0, sizeof(uap_adapter)); -+ -+ priv->uap_dev.netdev = dev; -+ priv->uap_dev.card = card; -+ priv->MediaConnected = FALSE; -+ uappriv = priv; -+ ((struct sdio_mmc_card *) card)->priv = priv; -+ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) -+ SET_MODULE_OWNER(dev); -+#endif -+ -+ /* Setup the OS Interface to our functions */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) -+ dev->open = uap_open; -+ dev->stop = uap_close; -+ dev->hard_start_xmit = uap_hard_start_xmit; -+ dev->tx_timeout = uap_tx_timeout; -+ dev->get_stats = uap_get_stats; -+ dev->do_ioctl = uap_do_ioctl; -+ dev->set_mac_address = uap_set_mac_address; -+ dev->set_multicast_list = uap_set_multicast_list; -+#else -+ dev->netdev_ops = &uap_netdev_ops; -+#endif -+ dev->watchdog_timeo = MRVDRV_DEFAULT_WATCHDOG_TIMEOUT; -+ dev->hard_header_len += sizeof(TxPD) + INTF_HEADER_LEN; -+ dev->hard_header_len += HEADER_ALIGNMENT; -+#define NETIF_F_DYNALLOC 16 -+ dev->features |= NETIF_F_DYNALLOC; -+ dev->flags |= IFF_BROADCAST | IFF_MULTICAST; -+ -+ /* Init SW */ -+ if (uap_init_sw(priv)) { -+ PRINTM(FATAL, "Software Init Failed\n"); -+ goto error; -+ } -+ -+ PRINTM(INFO, "Starting kthread...\n"); -+ priv->MainThread.priv = priv; -+ spin_lock_init(&priv->driver_lock); -+ uap_create_thread(uap_service_main_thread, &priv->MainThread, -+ "uap_main_service"); -+ while (priv->MainThread.pid == 0) { -+ os_sched_timeout(2); -+ } -+ -+ /* Register the device */ -+ if (sbi_register_dev(priv) < 0) { -+ PRINTM(FATAL, "Failed to register uap device!\n"); -+ goto err_registerdev; -+ } -+#ifdef FW_DNLD_NEEDED -+ SET_NETDEV_DEV(dev, priv->hotplug_device); -+#endif -+ -+ /* Init FW and HW */ -+ if (uap_init_fw(priv)) { -+ PRINTM(FATAL, "Firmware Init Failed\n"); -+ goto err_init_fw; -+ } -+ -+ priv->uap_dev.cmd_sent = FALSE; -+ priv->uap_dev.data_sent = FALSE; -+ -+ /* Get mac address from firmware */ -+ if (uap_get_mac_address(priv)) { -+ PRINTM(FATAL, "Fail to get mac address\n"); -+ goto err_init_fw; -+ } -+ /* Register network device */ -+ if (register_netdev(dev)) { -+ printk(KERN_ERR "Cannot register network device!\n"); -+ goto err_init_fw; -+ } -+#ifdef CONFIG_PROC_FS -+ uap_proc_entry(priv, dev); -+ uap_debug_entry(priv, dev); -+#endif /* CPNFIG_PROC_FS */ -+ OS_REL_SEMAPHORE(&AddRemoveCardSem); -+ -+ LEAVE(); -+ return priv; -+ err_init_fw: -+ sbi_unregister_dev(priv); -+ err_registerdev: -+ ((struct sdio_mmc_card *) card)->priv = NULL; -+ /* Stop the thread servicing the interrupts */ -+ priv->adapter->SurpriseRemoved = TRUE; -+ wake_up_interruptible(&priv->MainThread.waitQ); -+ while (priv->MainThread.pid) { -+ os_sched_timeout(1); -+ } -+ error: -+ if (dev) { -+ if (dev->reg_state == NETREG_REGISTERED) -+ unregister_netdev(dev); -+ if (priv->adapter) -+ uap_free_adapter(priv); -+ free_netdev(dev); -+ uappriv = NULL; -+ } -+ OS_REL_SEMAPHORE(&AddRemoveCardSem); -+ exit_sem_err: -+ LEAVE(); -+ return NULL; -+} -+ -+/** -+ * @brief This function removes the card. -+ * -+ * @param card A pointer to card -+ * @return UAP_STATUS_SUCCESS -+ */ -+int -+uap_remove_card(void *card) -+{ -+ uap_private *priv = uappriv; -+ uap_adapter *Adapter; -+ struct net_device *dev; -+ -+ ENTER(); -+ -+ if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem)) -+ goto exit_sem_err; -+ -+ if (!priv || !(Adapter = priv->adapter)) { -+ goto exit_remove; -+ } -+ Adapter->SurpriseRemoved = TRUE; -+ if (Adapter->cmd_pending == TRUE) { -+ /* Wake up cmd Q */ -+ Adapter->CmdWaitQWoken = TRUE; -+ wake_up_interruptible(&Adapter->cmdwait_q); -+ } -+ dev = priv->uap_dev.netdev; -+ if (priv->MediaConnected == TRUE) { -+ os_stop_queue(priv); -+ os_carrier_off(priv); -+ priv->MediaConnected = FALSE; -+ } -+ Adapter->CmdSize = 0; -+ Adapter->CmdWaitQWoken = TRUE; -+ wake_up_interruptible(&Adapter->cmdwait_q); -+ skb_queue_purge(&priv->adapter->tx_queue); -+ skb_queue_purge(&priv->adapter->cmd_queue); -+ -+ /* Disable interrupts on the card */ -+ sbi_disable_host_int(priv); -+ PRINTM(INFO, "netdev_finish_unregister: %s%s.\n", dev->name, -+ (dev->features & NETIF_F_DYNALLOC) ? "" : ", old style"); -+ unregister_netdev(dev); -+ PRINTM(INFO, "Unregister finish\n"); -+ wake_up_interruptible(&priv->MainThread.waitQ); -+ while (priv->MainThread.pid) { -+ os_sched_timeout(1); -+ } -+ -+ if ((Adapter->nl_sk) && ((Adapter->nl_sk)->sk_socket)) { -+ sock_release((Adapter->nl_sk)->sk_socket); -+ Adapter->nl_sk = NULL; -+ } -+#ifdef CONFIG_PROC_FS -+ uap_debug_remove(priv); -+ uap_proc_remove(priv); -+#endif -+ sbi_unregister_dev(priv); -+ PRINTM(INFO, "Free Adapter\n"); -+ uap_free_adapter(priv); -+ priv->uap_dev.netdev = NULL; -+ free_netdev(dev); -+ uappriv = NULL; -+ -+ exit_remove: -+ OS_REL_SEMAPHORE(&AddRemoveCardSem); -+ exit_sem_err: -+ LEAVE(); -+ return UAP_STATUS_SUCCESS; -+} -+ -+/** -+ * @brief This function initializes module. -+ * -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int __init -+uap_init_module(void) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ ENTER(); -+ -+ OS_INIT_SEMAPHORE(&AddRemoveCardSem); -+ ret = sbi_register(); -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function cleans module -+ * -+ * @return n/a -+ */ -+static void __exit -+uap_cleanup_module(void) -+{ -+ ENTER(); -+ -+ if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem)) -+ goto exit_sem_err; -+ -+ if ((uappriv) && (uappriv->adapter)) { -+ uap_func_shutdown(uappriv); -+ } -+ OS_REL_SEMAPHORE(&AddRemoveCardSem); -+ exit_sem_err: -+ sbi_unregister(); -+ LEAVE(); -+} -+ -+module_init(uap_init_module); -+module_exit(uap_cleanup_module); -+module_param(helper_name, charp, 0); -+MODULE_PARM_DESC(helper_name, "Helper name"); -+module_param(fw_name, charp, 0); -+MODULE_PARM_DESC(fw_name, "Firmware name"); -+ -+MODULE_DESCRIPTION("M-UAP Driver"); -+MODULE_AUTHOR("Marvell International Ltd."); -+MODULE_VERSION(DRIVER_VERSION); -+MODULE_LICENSE("GPL"); -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_proc.c ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.c 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_proc.c 2011-10-21 11:32:37.857111835 +0200 -@@ -0,0 +1,302 @@ -+/** @file uap_proc.c -+ * @brief This file contains functions for proc file. -+ * -+ * Copyright (C) 2008-2009, Marvell International Ltd. -+ * -+ * This software file (the "File") is distributed by Marvell International -+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 -+ * (the "License"). You may use, redistribute and/or modify this File in -+ * accordance with the terms and conditions of the License, a copy of which -+ * is available along with the File in the gpl.txt file or by writing to -+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. -+ * -+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE -+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about -+ * this warranty disclaimer. -+ * -+ */ -+#ifdef CONFIG_PROC_FS -+#include "uap_headers.h" -+ -+/** /proc directory root */ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) -+#define PROC_DIR NULL -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) -+#define PROC_DIR &proc_root -+#else -+#define PROC_DIR proc_net -+#endif -+ -+/******************************************************** -+ Local Variables -+********************************************************/ -+ -+/******************************************************** -+ Global Variables -+********************************************************/ -+ -+/******************************************************** -+ Local Functions -+********************************************************/ -+ -+/** -+ * @brief proc read function -+ * -+ * @param page pointer to buffer -+ * @param start read data starting position -+ * @param offset offset -+ * @param count counter -+ * @param eof end of file flag -+ * @param data data to output -+ * @return number of output data -+ */ -+static int -+uap_proc_read(char *page, char **start, off_t offset, -+ int count, int *eof, void *data) -+{ -+ int i; -+ char *p = page; -+ struct net_device *netdev = data; -+ struct netdev_hw_addr *ha; -+ char fmt[64]; -+ uap_private *priv = (uap_private *) netdev_priv(netdev); -+ -+ if (offset != 0) { -+ *eof = 1; -+ goto exit; -+ } -+ -+ strcpy(fmt, DRIVER_VERSION); -+ -+ p += sprintf(p, "driver_name = " ""uap"\n"); -+ p += sprintf(p, "driver_version = %s-(FP%s)", fmt, FPNUM); -+ p += sprintf(p, "\nInterfaceName="%s"\n", netdev->name); -+ p += sprintf(p, "State="%s"\n", -+ ((priv->MediaConnected == -+ FALSE) ? "Disconnected" : "Connected")); -+ p += sprintf(p, "MACAddress="%02x:%02x:%02x:%02x:%02x:%02x"\n", -+ netdev->dev_addr[0], netdev->dev_addr[1], netdev->dev_addr[2], -+ netdev->dev_addr[3], netdev->dev_addr[4], netdev->dev_addr[5]); -+ i = 0; -+ netdev_for_each_mc_addr(ha, netdev) { -+ ++i; -+ } -+ p += sprintf(p, "MCCount="%d"\n", i); -+ -+ /* -+ * Put out the multicast list -+ */ -+ i = 0; -+ netdev_for_each_mc_addr(ha, netdev) { -+ p += sprintf(p, -+ "MCAddr[%d]="%02x:%02x:%02x:%02x:%02x:%02x"\n", -+ i++, -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) -+ ha->addr[0], ha->addr[1], -+ ha->addr[2], ha->addr[3], -+ ha->addr[4], ha->addr[5]); -+#else -+ ha->dmi_addr[0], ha->dmi_addr[1], -+ ha->dmi_addr[2], ha->dmi_addr[3], -+ ha->dmi_addr[4], ha->dmi_addr[5]); -+#endif -+ } -+ -+ p += sprintf(p, "num_tx_bytes = %lu\n", priv->stats.tx_bytes); -+ p += sprintf(p, "num_rx_bytes = %lu\n", priv->stats.rx_bytes); -+ p += sprintf(p, "num_tx_pkts = %lu\n", priv->stats.tx_packets); -+ p += sprintf(p, "num_rx_pkts = %lu\n", priv->stats.rx_packets); -+ p += sprintf(p, "num_tx_pkts_dropped = %lu\n", priv->stats.tx_dropped); -+ p += sprintf(p, "num_rx_pkts_dropped = %lu\n", priv->stats.rx_dropped); -+ p += sprintf(p, "num_tx_pkts_err = %lu\n", priv->stats.tx_errors); -+ p += sprintf(p, "num_rx_pkts_err = %lu\n", priv->stats.rx_errors); -+ p += sprintf(p, "num_tx_timeout = %u\n", priv->num_tx_timeout); -+ p += sprintf(p, "carrier %s\n", -+ ((netif_carrier_ok(priv->uap_dev.netdev)) ? "on" : "off")); -+ p += sprintf(p, "tx queue %s\n", -+ ((netif_queue_stopped(priv->uap_dev.netdev)) ? "stopped" : -+ "started")); -+ -+ exit: -+ return (p - page); -+} -+ -+/** -+ * @brief hwstatus proc write function -+ * -+ * @param f file pointer -+ * @param buf pointer to data buffer -+ * @param cnt data number to write -+ * @param data data to write -+ * @return number of data -+ */ -+static int -+uap_hwstatus_write(struct file *f, const char *buf, unsigned long cnt, -+ void *data) -+{ -+ struct net_device *netdev = data; -+ uap_private *priv = (uap_private *) netdev_priv(netdev); -+ char databuf[10]; -+ int hwstatus; -+ MODULE_GET; -+ if (cnt > 10) { -+ MODULE_PUT; -+ return cnt; -+ } -+ if (copy_from_user(databuf, buf, cnt)) { -+ MODULE_PUT; -+ return 0; -+ } -+ hwstatus = string_to_number(databuf); -+ switch (hwstatus) { -+ case HWReset: -+ PRINTM(MSG, "reset hw\n"); -+ uap_soft_reset(priv); -+ priv->adapter->HardwareStatus = HWReset; -+ break; -+ default: -+ break; -+ } -+ MODULE_PUT; -+ return cnt; -+} -+ -+/** -+ * @brief hwstatus proc read function -+ * -+ * @param page pointer to buffer -+ * @param s read data starting position -+ * @param off offset -+ * @param cnt counter -+ * @param eof end of file flag -+ * @param data data to output -+ * @return number of output data -+ */ -+static int -+uap_hwstatus_read(char *page, char **s, off_t off, int cnt, int *eof, -+ void *data) -+{ -+ char *p = page; -+ struct net_device *netdev = data; -+ uap_private *priv = (uap_private *) netdev_priv(netdev); -+ MODULE_GET; -+ p += sprintf(p, "%d\n", priv->adapter->HardwareStatus); -+ MODULE_PUT; -+ return p - page; -+} -+ -+/******************************************************** -+ Global Functions -+********************************************************/ -+/** -+ * @brief create uap proc file -+ * -+ * @param priv pointer uap_private -+ * @param dev pointer net_device -+ * @return N/A -+ */ -+void -+uap_proc_entry(uap_private * priv, struct net_device *dev) -+{ -+ struct proc_dir_entry *r = PROC_DIR; -+ -+ PRINTM(INFO, "Creating Proc Interface\n"); -+ /* Check if uap directory already exists */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) -+ for (r = r->subdir; r; r = r->next) { -+ if (r->namelen && !strcmp("uap", r->name)) { -+ /* Directory exists */ -+ PRINTM(WARN, "proc directory already exists!\n"); -+ priv->proc_uap = r; -+ break; -+ } -+ } -+#endif -+ if (!priv->proc_uap) { -+ priv->proc_uap = proc_mkdir("uap", PROC_DIR); -+ if (!priv->proc_uap) -+ return; -+ else -+ atomic_set(&priv->proc_uap->count, 1); -+ } else { -+ atomic_inc(&priv->proc_uap->count); -+ } -+ priv->proc_entry = proc_mkdir(dev->name, priv->proc_uap); -+ -+ if (priv->proc_entry) { -+ r = create_proc_read_entry("info", 0, priv->proc_entry, uap_proc_read, -+ dev); -+ r = create_proc_entry("hwstatus", 0644, priv->proc_entry); -+ if (r) { -+ r->data = dev; -+ r->read_proc = uap_hwstatus_read; -+ r->write_proc = uap_hwstatus_write; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) -+ r->owner = THIS_MODULE; -+#endif -+ } else -+ PRINTM(MSG, "Fail to create proc hwstatus\n"); -+ } -+} -+ -+/** -+ * @brief remove proc file -+ * -+ * @param priv pointer uap_private -+ * @return N/A -+ */ -+void -+uap_proc_remove(uap_private * priv) -+{ -+ if (priv->proc_uap) { -+ if (priv->proc_entry) { -+ remove_proc_entry("info", priv->proc_entry); -+ remove_proc_entry("hwstatus", priv->proc_entry); -+ } -+ remove_proc_entry(priv->uap_dev.netdev->name, priv->proc_uap); -+ atomic_dec(&priv->proc_uap->count); -+ if (atomic_read(&(priv->proc_uap->count)) == 0) -+ remove_proc_entry("uap", PROC_DIR); -+ } -+} -+ -+/** -+ * @brief convert string to number -+ * -+ * @param s pointer to numbered string -+ * @return converted number from string s -+ */ -+int -+string_to_number(char *s) -+{ -+ int r = 0; -+ int base = 0; -+ int pn = 1; -+ -+ if (strncmp(s, "-", 1) == 0) { -+ pn = -1; -+ s++; -+ } -+ if ((strncmp(s, "0x", 2) == 0) || (strncmp(s, "0X", 2) == 0)) { -+ base = 16; -+ s += 2; -+ } else -+ base = 10; -+ -+ for (s = s; *s != 0; s++) { -+ if ((*s >= '0') && (*s <= '9')) -+ r = (r * base) + (*s - '0'); -+ else if ((*s >= 'A') && (*s <= 'F')) -+ r = (r * base) + (*s - 'A' + 10); -+ else if ((*s >= 'a') && (*s <= 'f')) -+ r = (r * base) + (*s - 'a' + 10); -+ else -+ break; -+ } -+ -+ return (r * pn); -+} -+ -+#endif -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c 2011-10-21 11:13:58.807113416 +0200 -@@ -0,0 +1,1428 @@ -+/** @file uap_sdio_mmc.c -+ * @brief This file contains SDIO IF (interface) module -+ * related functions. -+ * -+ * Copyright (C) 2007-2009, Marvell International Ltd. -+ * -+ * This software file (the "File") is distributed by Marvell International -+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 -+ * (the "License"). You may use, redistribute and/or modify this File in -+ * accordance with the terms and conditions of the License, a copy of which -+ * is available along with the File in the gpl.txt file or by writing to -+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. -+ * -+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE -+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about -+ * this warranty disclaimer. -+ * -+ */ -+/**************************************************** -+Change log: -+****************************************************/ -+ -+#include "uap_sdio_mmc.h" -+ -+#include <linux/firmware.h> -+ -+/** define SDIO block size */ -+/* We support up to 480-byte block size due to FW buffer limitation. */ -+#define SD_BLOCK_SIZE 256 -+ -+/** define allocated buffer size */ -+#define ALLOC_BUF_SIZE (((MAX(MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, \ -+ MRVDRV_SIZE_OF_CMD_BUFFER) + INTF_HEADER_LEN \ -+ + SD_BLOCK_SIZE - 1) / SD_BLOCK_SIZE) * SD_BLOCK_SIZE) -+ -+/** Max retry number of CMD53 write */ -+#define MAX_WRITE_IOMEM_RETRY 2 -+ -+/******************************************************** -+ Local Variables -+********************************************************/ -+ -+/** SDIO Rx unit */ -+static u8 sdio_rx_unit = 0; -+ -+/**Interrupt status */ -+static u8 sd_ireg = 0; -+/******************************************************** -+ Global Variables -+********************************************************/ -+extern u8 *helper_name; -+extern u8 *fw_name; -+/** Default helper name */ -+#define DEFAULT_HELPER_NAME "mrvl/helper_sd.bin" -+/** Default firmware name */ -+#define DEFAULT_FW_NAME "mrvl/sd8688_ap.bin" -+ -+/******************************************************** -+ Local Functions -+********************************************************/ -+/** -+ * @brief This function reads the IO register. -+ * -+ * @param priv A pointer to uap_private structure -+ * @param reg register to be read -+ * @param dat A pointer to variable that keeps returned value -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+sbi_read_ioreg(uap_private * priv, u32 reg, u8 * dat) -+{ -+ struct sdio_mmc_card *card; -+ int ret = UAP_STATUS_FAILURE; -+ -+ ENTER(); -+ -+ card = priv->uap_dev.card; -+ if (!card || !card->func) { -+ PRINTM(ERROR, "sbi_read_ioreg(): card or function is NULL!\n"); -+ goto done; -+ } -+ -+ *dat = sdio_readb(card->func, reg, &ret); -+ if (ret) { -+ PRINTM(ERROR, "sbi_read_ioreg(): sdio_readb failed! ret=%d\n", ret); -+ goto done; -+ } -+ -+ PRINTM(INFO, "sbi_read_ioreg() priv=%p func=%d reg=%#x dat=%#x\n", priv, -+ card->func->num, reg, *dat); -+ -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function writes the IO register. -+ * -+ * @param priv A pointer to uap_private structure -+ * @param reg register to be written -+ * @param dat the value to be written -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+sbi_write_ioreg(uap_private * priv, u32 reg, u8 dat) -+{ -+ struct sdio_mmc_card *card; -+ int ret = UAP_STATUS_FAILURE; -+ -+ ENTER(); -+ -+ card = priv->uap_dev.card; -+ if (!card || !card->func) { -+ PRINTM(ERROR, "sbi_write_ioreg(): card or function is NULL!\n"); -+ goto done; -+ } -+ -+ PRINTM(INFO, "sbi_write_ioreg() priv=%p func=%d reg=%#x dat=%#x\n", priv, -+ card->func->num, reg, dat); -+ -+ sdio_writeb(card->func, dat, reg, &ret); -+ if (ret) { -+ PRINTM(ERROR, "sbi_write_ioreg(): sdio_readb failed! ret=%d\n", ret); -+ goto done; -+ } -+ -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function get rx_unit value -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+sd_get_rx_unit(uap_private * priv) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ u8 reg; -+ -+ ENTER(); -+ -+ ret = sbi_read_ioreg(priv, CARD_RX_UNIT_REG, ®); -+ if (ret == UAP_STATUS_SUCCESS) -+ sdio_rx_unit = reg; -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function reads rx length -+ * -+ * @param priv A pointer to uap_private structure -+ * @param dat A pointer to keep returned data -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+sd_read_rx_len(uap_private * priv, u16 * dat) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ u8 reg; -+ -+ ENTER(); -+ -+ ret = sbi_read_ioreg(priv, CARD_RX_LEN_REG, ®); -+ if (ret == UAP_STATUS_SUCCESS) -+ *dat = (u16) reg << sdio_rx_unit; -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function reads fw status registers -+ * -+ * @param priv A pointer to uap_private structure -+ * @param dat A pointer to keep returned data -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+sd_read_firmware_status(uap_private * priv, u16 * dat) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ u8 fws0; -+ u8 fws1; -+ -+ ENTER(); -+ -+ ret = sbi_read_ioreg(priv, CARD_FW_STATUS0_REG, &fws0); -+ if (ret < 0) { -+ LEAVE(); -+ return UAP_STATUS_FAILURE; -+ } -+ -+ ret = sbi_read_ioreg(priv, CARD_FW_STATUS1_REG, &fws1); -+ if (ret < 0) { -+ LEAVE(); -+ return UAP_STATUS_FAILURE; -+ } -+ -+ *dat = (((u16) fws1) << 8) | fws0; -+ -+ LEAVE(); -+ return UAP_STATUS_SUCCESS; -+} -+ -+/** -+ * @brief This function polls the card status register. -+ * -+ * @param priv A pointer to uap_private structure -+ * @param bits the bit mask -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+mv_sdio_poll_card_status(uap_private * priv, u8 bits) -+{ -+ int tries; -+ u8 cs; -+ -+ ENTER(); -+ -+ for (tries = 0; tries < MAX_POLL_TRIES; tries++) { -+ if (sbi_read_ioreg(priv, CARD_STATUS_REG, &cs) < 0) -+ break; -+ else if ((cs & bits) == bits) { -+ LEAVE(); -+ return UAP_STATUS_SUCCESS; -+ } -+ udelay(10); -+ } -+ -+ PRINTM(WARN, "mv_sdio_poll_card_status failed, tries = %d\n", tries); -+ -+ LEAVE(); -+ return UAP_STATUS_FAILURE; -+} -+ -+/** -+ * @brief This function set the sdio bus width. -+ * -+ * @param priv A pointer to uap_private structure -+ * @param mode 1--1 bit mode, 4--4 bit mode -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+#if 0 -+static int -+sdio_set_bus_width(uap_private * priv, u8 mode) -+{ -+ ENTER(); -+ LEAVE(); -+ return UAP_STATUS_SUCCESS; -+} -+#endif -+ -+/** -+ * @brief This function reads data from the card. -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+sd_card_to_host(uap_private * priv) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ u16 buf_len = 0; -+ int buf_block_len; -+ int blksz; -+ struct sk_buff *skb = NULL; -+ u16 type; -+ u8 *payload = NULL; -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ -+ ENTER(); -+ -+ if (!card || !card->func) { -+ PRINTM(ERROR, "card or function is NULL!\n"); -+ ret = UAP_STATUS_FAILURE; -+ goto exit; -+ } -+ -+ /* Read the length of data to be transferred */ -+ ret = sd_read_rx_len(priv, &buf_len); -+ if (ret < 0) { -+ PRINTM(ERROR, "card_to_host, read scratch reg failed\n"); -+ ret = UAP_STATUS_FAILURE; -+ goto exit; -+ } -+ -+ /* Allocate buffer */ -+ blksz = SD_BLOCK_SIZE; -+ buf_block_len = (buf_len + blksz - 1) / blksz; -+ if (buf_len <= INTF_HEADER_LEN || (buf_block_len * blksz) > ALLOC_BUF_SIZE) { -+ PRINTM(ERROR, "card_to_host, invalid packet length: %d\n", buf_len); -+ ret = UAP_STATUS_FAILURE; -+ goto exit; -+ } -+#ifdef PXA3XX_DMA_ALIGN -+ skb = dev_alloc_skb(buf_block_len * blksz + PXA3XX_DMA_ALIGNMENT); -+#else -+ skb = dev_alloc_skb(buf_block_len * blksz); -+#endif -+ if (skb == NULL) { -+ PRINTM(WARN, "No free skb\n"); -+ goto exit; -+ } -+#ifdef PXA3XX_DMA_ALIGN -+ if ((u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1)) { -+ skb_put(skb, (u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1)); -+ skb_pull(skb, (u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1)); -+ } -+#endif /* PXA3XX_DMA_ALIGN */ -+ -+ payload = skb->tail; -+ ret = sdio_readsb(card->func, payload, priv->uap_dev.ioport, -+ buf_block_len * blksz); -+ if (ret < 0) { -+ PRINTM(ERROR, "card_to_host, read iomem failed: %d\n", ret); -+ ret = UAP_STATUS_FAILURE; -+ goto exit; -+ } -+ HEXDUMP("SDIO Blk Rd", payload, blksz * buf_block_len); -+ /* -+ * This is SDIO specific header -+ * u16 length, -+ * u16 type (MV_TYPE_DAT = 0, MV_TYPE_CMD = 1, MV_TYPE_EVENT = 3) -+ */ -+ buf_len = uap_le16_to_cpu(*(u16 *) & payload[0]); -+ type = uap_le16_to_cpu(*(u16 *) & payload[2]); -+ switch (type) { -+ case MV_TYPE_EVENT: -+ skb_put(skb, buf_len); -+ skb_pull(skb, INTF_HEADER_LEN); -+ uap_process_event(priv, skb->data, skb->len); -+ kfree_skb(skb); -+ skb = NULL; -+ break; -+ case MV_TYPE_CMD: -+ skb_put(skb, buf_len); -+ skb_pull(skb, INTF_HEADER_LEN); -+ priv->adapter->cmd_pending = FALSE; -+ if (priv->adapter->cmd_wait_option == -+ HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM) { -+ priv->adapter->cmd_wait_option = FALSE; -+ uap_process_sleep_confirm_resp(priv, skb->data, skb->len); -+ } else if (priv->adapter->cmd_wait_option) { -+ memcpy(priv->adapter->CmdBuf, skb->data, skb->len); -+ priv->adapter->CmdSize = skb->len; -+ priv->adapter->cmd_wait_option = FALSE; -+ priv->adapter->CmdWaitQWoken = TRUE; -+ wake_up_interruptible(&priv->adapter->cmdwait_q); -+ } -+ kfree_skb(skb); -+ skb = NULL; -+ break; -+ case MV_TYPE_DAT: -+ skb_put(skb, buf_len); -+ skb_pull(skb, INTF_HEADER_LEN); -+ uap_process_rx_packet(priv, skb); -+ break; -+ default: -+ priv->stats.rx_errors++; -+ priv->stats.rx_dropped++; -+ /* Driver specified event and command resp should be handle here */ -+ PRINTM(INFO, "Unknown PKT type:%d\n", type); -+ kfree_skb(skb); -+ skb = NULL; -+ break; -+ } -+ exit: -+ if (ret) { -+ if (skb) -+ kfree_skb(skb); -+ } -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function enables the host interrupts mask -+ * -+ * @param priv A pointer to uap_private structure -+ * @param mask the interrupt mask -+ * @return UAP_STATUS_SUCCESS -+ */ -+static int -+enable_host_int_mask(uap_private * priv, u8 mask) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ -+ ENTER(); -+ -+ /* Simply write the mask to the register */ -+ ret = sbi_write_ioreg(priv, HOST_INT_MASK_REG, mask); -+ -+ if (ret) { -+ PRINTM(WARN, "Unable to enable the host interrupt!\n"); -+ ret = UAP_STATUS_FAILURE; -+ } -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** @brief This function disables the host interrupts mask. -+ * -+ * @param priv A pointer to uap_private structure -+ * @param mask the interrupt mask -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+disable_host_int_mask(uap_private * priv, u8 mask) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ u8 host_int_mask; -+ -+ ENTER(); -+ -+ /* Read back the host_int_mask register */ -+ ret = sbi_read_ioreg(priv, HOST_INT_MASK_REG, &host_int_mask); -+ if (ret) { -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ -+ /* Update with the mask and write back to the register */ -+ host_int_mask &= ~mask; -+ ret = sbi_write_ioreg(priv, HOST_INT_MASK_REG, host_int_mask); -+ if (ret < 0) { -+ PRINTM(WARN, "Unable to diable the host interrupt!\n"); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/******************************************************** -+ Global Functions -+********************************************************/ -+ -+/** -+ * @brief This function handles the interrupt. -+ * -+ * @param func A pointer to sdio_func structure. -+ * @return n/a -+ */ -+static void -+sbi_interrupt(struct sdio_func *func) -+{ -+ struct sdio_mmc_card *card; -+ uap_private *priv; -+ u8 ireg = 0; -+ int ret = UAP_STATUS_SUCCESS; -+ -+ ENTER(); -+ -+ card = sdio_get_drvdata(func); -+ if (!card || !card->priv) { -+ PRINTM(MSG, "%s: sbi_interrupt(%p) card or priv is NULL, card=%p\n", -+ __FUNCTION__, func, card); -+ LEAVE(); -+ return; -+ } -+ priv = card->priv; -+#ifdef FW_WAKEUP_TIME -+ if ((priv->adapter->wt_pwrup_sending != 0L) && -+ (priv->adapter->wt_int == 0L)) -+ priv->adapter->wt_int = get_utimeofday(); -+#endif -+ -+ ireg = sdio_readb(card->func, HOST_INTSTATUS_REG, &ret); -+ if (ret) { -+ PRINTM(WARN, "sdio_read_ioreg: read int status register failed\n"); -+ goto done; -+ } -+ if (ireg != 0) { -+ /* -+ * DN_LD_HOST_INT_STATUS and/or UP_LD_HOST_INT_STATUS -+ * Clear the interrupt status register and re-enable the interrupt -+ */ -+ PRINTM(INFO, "sdio_ireg = 0x%x\n", ireg); -+ sdio_writeb(card->func, -+ ~(ireg) & (DN_LD_HOST_INT_STATUS | UP_LD_HOST_INT_STATUS), -+ HOST_INTSTATUS_REG, &ret); -+ if (ret) { -+ PRINTM(WARN, -+ "sdio_write_ioreg: clear int status register failed\n"); -+ goto done; -+ } -+ } -+ OS_INT_DISABLE; -+ sd_ireg |= ireg; -+ OS_INT_RESTORE; -+ -+ uap_interrupt(priv); -+ done: -+ LEAVE(); -+} -+ -+/** -+ * @brief This function probe the card -+ * -+ * @param func A pointer to sdio_func structure -+ * @param id A pointer to structure sd_device_id -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+static int -+uap_probe(struct sdio_func *func, const struct sdio_device_id *id) -+{ -+ int ret = UAP_STATUS_FAILURE; -+ struct sdio_mmc_card *card = NULL; -+ -+ ENTER(); -+ -+ PRINTM(MSG, "%s: vendor=0x%4.04X device=0x%4.04X class=%d function=%d\n", -+ __FUNCTION__, func->vendor, func->device, func->class, func->num); -+ -+ card = kzalloc(sizeof(struct sdio_mmc_card), GFP_KERNEL); -+ if (!card) { -+ ret = -ENOMEM; -+ goto done; -+ } -+ -+ card->func = func; -+ -+ if (!uap_add_card(card)) { -+ PRINTM(ERROR, "%s: uap_add_callback failed\n", __FUNCTION__); -+ kfree(card); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ -+ ret = UAP_STATUS_SUCCESS; -+ -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function removes the card -+ * -+ * @param func A pointer to sdio_func structure -+ * @return N/A -+ */ -+static void -+uap_remove(struct sdio_func *func) -+{ -+ struct sdio_mmc_card *card; -+ -+ ENTER(); -+ -+ if (func) { -+ card = sdio_get_drvdata(func); -+ if (card) { -+ uap_remove_card(card); -+ kfree(card); -+ } -+ } -+ -+ LEAVE(); -+} -+ -+#ifdef CONFIG_PM -+/** -+ * @brief This function handles client driver suspend -+ * -+ * @param func A pointer to sdio_func structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+uap_suspend(struct sdio_func *func) -+{ -+ ENTER(); -+ LEAVE(); -+ return 0; -+} -+ -+/** -+ * @brief This function handles client driver resume -+ * -+ * @param func A pointer to sdio_func structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+uap_resume(struct sdio_func *func) -+{ -+ ENTER(); -+ LEAVE(); -+ return 0; -+} -+#endif -+ -+/** Device ID for SD8688 */ -+#define SD_DEVICE_ID_8688_UAP 0x9104 -+/** UAP IDs */ -+static const struct sdio_device_id uap_ids[] = { -+ {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SD_DEVICE_ID_8688_UAP)}, -+ {}, -+}; -+ -+MODULE_DEVICE_TABLE(sdio, uap_ids); -+ -+static struct sdio_driver uap_sdio = { -+ .name = "uap_sdio", -+ .id_table = uap_ids, -+ .probe = uap_probe, -+ .remove = uap_remove, -+#ifdef CONFIG_PM -+/* .suspend = uap_suspend, */ -+/* .resume = uap_resume, */ -+#endif -+ -+}; -+ -+/** -+ * @brief This function registers the IF module in bus driver. -+ * -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int __init -+sbi_register() -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ -+ ENTER(); -+ -+ /* SDIO Driver Registration */ -+ if (sdio_register_driver(&uap_sdio) != 0) { -+ PRINTM(FATAL, "SDIO Driver Registration Failed \n"); -+ ret = UAP_STATUS_FAILURE; -+ } -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function de-registers the IF module in bus driver. -+ * -+ * @return n/a -+ */ -+void __exit -+sbi_unregister(void) -+{ -+ ENTER(); -+ -+ /* SDIO Driver Unregistration */ -+ sdio_unregister_driver(&uap_sdio); -+ -+ LEAVE(); -+} -+ -+/** -+ * @brief This function checks the interrupt status and handle it accordingly. -+ * -+ * @param priv A pointer to uap_private structure -+ * @param ireg A pointer to variable that keeps returned value -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+sbi_get_int_status(uap_private * priv, u8 * ireg) -+{ -+ int ret = UAP_STATUS_SUCCESS; -+ u8 sdio_ireg = 0; -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ -+ ENTER(); -+ -+ *ireg = 0; -+ OS_INT_DISABLE; -+ sdio_ireg = sd_ireg; -+ sd_ireg = 0; -+ OS_INT_RESTORE; -+ -+ sdio_claim_host(card->func); -+ -+ if (sdio_ireg & DN_LD_HOST_INT_STATUS) { /* tx_done INT */ -+ if (!priv->uap_dev.cmd_sent) { /* tx_done already received */ -+ PRINTM(INFO, -+ "warning: tx_done already received: tx_dnld_rdy=0x%x int status=0x%x\n", -+ priv->uap_dev.cmd_sent, sdio_ireg); -+ } else { -+ priv->uap_dev.cmd_sent = FALSE; -+ priv->uap_dev.data_sent = FALSE; -+ if ( (priv->uap_dev.netdev->reg_state == NETREG_REGISTERED) && (skb_queue_len(&priv->adapter->tx_queue) < TX_LOW_WATERMARK)) { -+ os_start_queue(priv); -+ } -+ } -+ } -+ if (sdio_ireg & UP_LD_HOST_INT_STATUS) { -+ sd_card_to_host(priv); -+ } -+ -+ *ireg = sdio_ireg; -+ ret = UAP_STATUS_SUCCESS; -+ sdio_release_host(card->func); -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function disables the host interrupts. -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+sbi_disable_host_int(uap_private * priv) -+{ -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ int ret; -+ -+ ENTER(); -+ -+ sdio_claim_host(card->func); -+ ret = disable_host_int_mask(priv, HIM_DISABLE); -+ sdio_release_host(card->func); -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function enables the host interrupts. -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS -+ */ -+int -+sbi_enable_host_int(uap_private * priv) -+{ -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ int ret; -+ -+ ENTER(); -+ -+ sdio_claim_host(card->func); -+ ret = enable_host_int_mask(priv, HIM_ENABLE); -+ sdio_release_host(card->func); -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function de-registers the device. -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS -+ */ -+int -+sbi_unregister_dev(uap_private * priv) -+{ -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ -+ ENTER(); -+ -+ if (!card || !card->func) { -+ PRINTM(ERROR, "Error: card or function is NULL!\n"); -+ goto done; -+ } -+ -+ sdio_claim_host(card->func); -+ sdio_release_irq(card->func); -+ sdio_disable_func(card->func); -+ sdio_release_host(card->func); -+ -+ sdio_set_drvdata(card->func, NULL); -+ -+ done: -+ LEAVE(); -+ return UAP_STATUS_SUCCESS; -+} -+ -+/** -+ * @brief This function registers the device. -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+sbi_register_dev(uap_private * priv) -+{ -+ int ret = UAP_STATUS_FAILURE; -+ u8 reg; -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ struct sdio_func *func; -+ -+ ENTER(); -+ -+ if (!card || !card->func) { -+ PRINTM(ERROR, "Error: card or function is NULL!\n"); -+ goto done; -+ } -+ -+ func = card->func; -+ -+ /* Initialize the private structure */ -+ priv->uap_dev.ioport = 0; -+ -+ sdio_claim_host(func); -+ -+ ret = sdio_enable_func(func); -+ if (ret) { -+ PRINTM(FATAL, "sdio_enable_func() failed: ret=%d\n", ret); -+ goto release_host; -+ } -+ -+ ret = sdio_claim_irq(func, sbi_interrupt); -+ if (ret) { -+ PRINTM(FATAL, "sdio_claim_irq failed: ret=%d\n", ret); -+ goto disable_func; -+ } -+ -+ /* Read the IO port */ -+ ret = sbi_read_ioreg(priv, IO_PORT_0_REG, ®); -+ if (ret) -+ goto release_irq; -+ else -+ priv->uap_dev.ioport |= reg; -+ -+ ret = sbi_read_ioreg(priv, IO_PORT_1_REG, ®); -+ if (ret) -+ goto release_irq; -+ else -+ priv->uap_dev.ioport |= (reg << 8); -+ -+ ret = sbi_read_ioreg(priv, IO_PORT_2_REG, ®); -+ if (ret) -+ goto release_irq; -+ else -+ priv->uap_dev.ioport |= (reg << 16); -+ -+ PRINTM(INFO, "SDIO FUNC #%d IO port: 0x%x\n", func->num, -+ priv->uap_dev.ioport); -+ -+ ret = sdio_set_block_size(card->func, SD_BLOCK_SIZE); -+ if (ret) { -+ PRINTM(ERROR, "%s: cannot set SDIO block size\n", __FUNCTION__); -+ ret = UAP_STATUS_FAILURE; -+ goto release_irq; -+ } -+ priv->hotplug_device = &func->dev; -+ -+ if (helper_name == NULL) { -+ helper_name = DEFAULT_HELPER_NAME; -+ } -+ if (fw_name == NULL) { -+ fw_name = DEFAULT_FW_NAME; -+ } -+ sdio_release_host(func); -+ -+ sdio_set_drvdata(func, card); -+ -+ ret = UAP_STATUS_SUCCESS; -+ goto done; -+ -+ release_irq: -+ sdio_release_irq(func); -+ disable_func: -+ sdio_disable_func(func); -+ release_host: -+ sdio_release_host(func); -+ -+ done: -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function sends data to the card. -+ * -+ * @param priv A pointer to uap_private structure -+ * @param payload A pointer to the data/cmd buffer -+ * @param nb the length of data/cmd -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+sbi_host_to_card(uap_private * priv, u8 * payload, u16 nb) -+{ -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ int ret = UAP_STATUS_SUCCESS; -+ int buf_block_len; -+ int blksz; -+ int i = 0; -+ u8 *buf = NULL; -+#ifdef PXA3XX_DMA_ALIGN -+ void *tmpbuf = NULL; -+ int tmpbufsz; -+#endif -+ -+ ENTER(); -+ -+ if (!card || !card->func) { -+ PRINTM(ERROR, "card or function is NULL!\n"); -+ LEAVE(); -+ return UAP_STATUS_FAILURE; -+ } -+ buf = payload; -+#ifdef PXA3XX_DMA_ALIGN -+ if ((u32) payload & (PXA3XX_DMA_ALIGNMENT - 1)) { -+ tmpbufsz = ALIGN_SZ(nb, PXA3XX_DMA_ALIGNMENT); -+ tmpbuf = kmalloc(tmpbufsz, GFP_KERNEL); -+ memset(tmpbuf, 0, tmpbufsz); -+ /* Ensure 8-byte aligned CMD buffer */ -+ buf = (u8 *) ALIGN_ADDR(tmpbuf, PXA3XX_DMA_ALIGNMENT); -+ memcpy(buf, payload, nb); -+ } -+#endif -+ /* Allocate buffer and copy payload */ -+ blksz = SD_BLOCK_SIZE; -+ buf_block_len = (nb + blksz - 1) / blksz; -+ sdio_claim_host(card->func); -+#define MAX_WRITE_IOMEM_RETRY 2 -+ priv->uap_dev.cmd_sent = TRUE; -+ priv->uap_dev.data_sent = TRUE; -+ do { -+ /* Transfer data to card */ -+ ret = sdio_writesb(card->func, priv->uap_dev.ioport, buf, -+ buf_block_len * blksz); -+ if (ret < 0) { -+ i++; -+ PRINTM(ERROR, "host_to_card, write iomem (%d) failed: %d\n", i, -+ ret); -+ ret = UAP_STATUS_FAILURE; -+ if (i > MAX_WRITE_IOMEM_RETRY) -+ goto exit; -+ } else { -+ HEXDUMP("SDIO Blk Wr", payload, nb); -+ } -+ } while (ret == UAP_STATUS_FAILURE); -+ exit: -+ sdio_release_host(card->func); -+#ifdef PXA3XX_DMA_ALIGN -+ if (tmpbuf) -+ kfree(tmpbuf); -+#endif -+ if (ret == UAP_STATUS_FAILURE) { -+ priv->uap_dev.cmd_sent = FALSE; -+ priv->uap_dev.data_sent = FALSE; -+ } -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function reads CIS information. -+ * -+ * @param priv A pointer to uap_private structure -+ * @param cisinfo A pointer to CIS information output buffer -+ * @param cislen A pointer to length of CIS info output buffer -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+#if 0 -+static int -+sbi_get_cis_info(uap_private * priv, void *cisinfo, int *cislen) -+{ -+#define CIS_PTR (0x8000) -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ unsigned int i, cis_ptr = CIS_PTR; -+ int ret = UAP_STATUS_FAILURE; -+ -+ ENTER(); -+ -+ if (!card || !card->func) { -+ PRINTM(ERROR, "sbi_get_cis_info(): card or function is NULL!\n"); -+ goto exit; -+ } -+#define MAX_SDIO_CIS_INFO_LEN (256) -+ if (!cisinfo || (*cislen < MAX_SDIO_CIS_INFO_LEN)) { -+ PRINTM(WARN, "ERROR! get_cis_info: insufficient buffer passed\n"); -+ goto exit; -+ } -+ -+ *cislen = MAX_SDIO_CIS_INFO_LEN; -+ -+ sdio_claim_host(card->func); -+ -+ PRINTM(INFO, "cis_ptr=%#x\n", cis_ptr); -+ -+ /* Read the Tuple Data */ -+ for (i = 0; i < *cislen; i++) { -+ ((unsigned char *) cisinfo)[i] = -+ sdio_readb(card->func, cis_ptr + i, &ret); -+ if (ret) { -+ PRINTM(WARN, "get_cis_info error: ret=%d\n", ret); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ PRINTM(INFO, "cisinfo[%d]=%#x\n", i, ((unsigned char *) cisinfo)[i]); -+ } -+ -+ done: -+ sdio_release_host(card->func); -+ exit: -+ LEAVE(); -+ return ret; -+} -+#endif -+/** -+ * @brief This function downloads helper image to the card. -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+sbi_prog_helper(uap_private * priv) -+{ -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ u8 *helper = NULL; -+ int helperlen; -+ int ret = UAP_STATUS_SUCCESS; -+ void *tmphlprbuf = NULL; -+ int tmphlprbufsz; -+ u8 *hlprbuf; -+ int hlprblknow; -+ u32 tx_len; -+#ifdef FW_DOWNLOAD_SPEED -+ u32 tv1, tv2; -+#endif -+ -+ ENTER(); -+ -+ if (!card || !card->func) { -+ PRINTM(ERROR, "sbi_prog_helper(): card or function is NULL!\n"); -+ goto done; -+ } -+ -+ if (priv->fw_helper) { -+ helper = (u8 *) priv->fw_helper->data; -+ helperlen = priv->fw_helper->size; -+ } else { -+ PRINTM(MSG, "No helper image found! Terminating download.\n"); -+ LEAVE(); -+ return UAP_STATUS_FAILURE; -+ } -+ -+ PRINTM(INFO, "Downloading helper image (%d bytes), block size %d bytes\n", -+ helperlen, SD_BLOCK_SIZE); -+ -+#ifdef FW_DOWNLOAD_SPEED -+ tv1 = get_utimeofday(); -+#endif -+ -+#ifdef PXA3XX_DMA_ALIGN -+ tmphlprbufsz = ALIGN_SZ(UAP_UPLD_SIZE, PXA3XX_DMA_ALIGNMENT); -+#else /* !PXA3XX_DMA_ALIGN */ -+ tmphlprbufsz = UAP_UPLD_SIZE; -+#endif /* !PXA3XX_DMA_ALIGN */ -+ tmphlprbuf = kmalloc(tmphlprbufsz, GFP_KERNEL); -+ if (!tmphlprbuf) { -+ PRINTM(ERROR, -+ "Unable to allocate buffer for helper. Terminating download\n"); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ memset(tmphlprbuf, 0, tmphlprbufsz); -+#ifdef PXA3XX_DMA_ALIGN -+ hlprbuf = (u8 *) ALIGN_ADDR(tmphlprbuf, PXA3XX_DMA_ALIGNMENT); -+#else /* !PXA3XX_DMA_ALIGN */ -+ hlprbuf = (u8 *) tmphlprbuf; -+#endif /* !PXA3XX_DMA_ALIGN */ -+ -+ sdio_claim_host(card->func); -+ -+ /* Perform helper data transfer */ -+ tx_len = (FIRMWARE_TRANSFER_NBLOCK * SD_BLOCK_SIZE) - INTF_HEADER_LEN; -+ hlprblknow = 0; -+ do { -+ /* The host polls for the DN_LD_CARD_RDY and CARD_IO_READY bits */ -+ ret = mv_sdio_poll_card_status(priv, CARD_IO_READY | DN_LD_CARD_RDY); -+ if (ret < 0) { -+ PRINTM(FATAL, "Helper download poll status timeout @ %d\n", -+ hlprblknow); -+ goto done; -+ } -+ -+ /* More data? */ -+ if (hlprblknow >= helperlen) -+ break; -+ -+ /* Set blocksize to transfer - checking for last block */ -+ if (helperlen - hlprblknow < tx_len) -+ tx_len = helperlen - hlprblknow; -+ -+ /* Set length to the 4-byte header */ -+ *(u32 *) hlprbuf = uap_cpu_to_le32(tx_len); -+ -+ /* Copy payload to buffer */ -+ memcpy(&hlprbuf[INTF_HEADER_LEN], &helper[hlprblknow], tx_len); -+ -+ PRINTM(INFO, "."); -+ -+ /* Send data */ -+ ret = sdio_writesb(card->func, priv->uap_dev.ioport, -+ hlprbuf, FIRMWARE_TRANSFER_NBLOCK * SD_BLOCK_SIZE); -+ -+ if (ret < 0) { -+ PRINTM(FATAL, "IO error during helper download @ %d\n", hlprblknow); -+ goto done; -+ } -+ -+ hlprblknow += tx_len; -+ } while (TRUE); -+ -+#ifdef FW_DOWNLOAD_SPEED -+ tv2 = get_utimeofday(); -+ PRINTM(INFO, "helper: %ld.%03ld.%03ld ", tv1 / 1000000, -+ (tv1 % 1000000) / 1000, tv1 % 1000); -+ PRINTM(INFO, " -> %ld.%03ld.%03ld ", tv2 / 1000000, (tv2 % 1000000) / 1000, -+ tv2 % 1000); -+ tv2 -= tv1; -+ PRINTM(INFO, " == %ld.%03ld.%03ld\n", tv2 / 1000000, (tv2 % 1000000) / 1000, -+ tv2 % 1000); -+#endif -+ -+ /* Write last EOF data */ -+ PRINTM(INFO, "\nTransferring helper image EOF block\n"); -+ memset(hlprbuf, 0x0, SD_BLOCK_SIZE); -+ ret = sdio_writesb(card->func, priv->uap_dev.ioport, -+ hlprbuf, SD_BLOCK_SIZE); -+ -+ if (ret < 0) { -+ PRINTM(FATAL, "IO error in writing helper image EOF block\n"); -+ goto done; -+ } -+ -+ ret = UAP_STATUS_SUCCESS; -+ -+ done: -+ sdio_release_host(card->func); -+ if (tmphlprbuf) -+ kfree(tmphlprbuf); -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function downloads firmware image to the card. -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+sbi_prog_fw_w_helper(uap_private * priv) -+{ -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ u8 *firmware = NULL; -+ int firmwarelen; -+ u8 base0; -+ u8 base1; -+ int ret = UAP_STATUS_SUCCESS; -+ int offset; -+ void *tmpfwbuf = NULL; -+ int tmpfwbufsz; -+ u8 *fwbuf; -+ u16 len; -+ int txlen = 0; -+ int tx_blocks = 0; -+ int i = 0; -+ int tries = 0; -+#ifdef FW_DOWNLOAD_SPEED -+ u32 tv1, tv2; -+#endif -+ -+ ENTER(); -+ -+ if (!card || !card->func) { -+ PRINTM(ERROR, "sbi_prog_fw_w_helper(): card or function is NULL!\n"); -+ goto done; -+ } -+ -+ if (priv->firmware) { -+ firmware = (u8 *) priv->firmware->data; -+ firmwarelen = priv->firmware->size; -+ } else { -+ PRINTM(MSG, "No firmware image found! Terminating download.\n"); -+ LEAVE(); -+ return UAP_STATUS_FAILURE; -+ } -+ -+ PRINTM(INFO, "Downloading FW image (%d bytes)\n", firmwarelen); -+ -+#ifdef FW_DOWNLOAD_SPEED -+ tv1 = get_utimeofday(); -+#endif -+ -+#ifdef PXA3XX_DMA_ALIGN -+ tmpfwbufsz = ALIGN_SZ(UAP_UPLD_SIZE, PXA3XX_DMA_ALIGNMENT); -+#else /* PXA3XX_DMA_ALIGN */ -+ tmpfwbufsz = UAP_UPLD_SIZE; -+#endif /* PXA3XX_DMA_ALIGN */ -+ tmpfwbuf = kmalloc(tmpfwbufsz, GFP_KERNEL); -+ if (!tmpfwbuf) { -+ PRINTM(ERROR, -+ "Unable to allocate buffer for firmware. Terminating download.\n"); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ memset(tmpfwbuf, 0, tmpfwbufsz); -+#ifdef PXA3XX_DMA_ALIGN -+ /* Ensure 8-byte aligned firmware buffer */ -+ fwbuf = (u8 *) ALIGN_ADDR(tmpfwbuf, PXA3XX_DMA_ALIGNMENT); -+#else /* PXA3XX_DMA_ALIGN */ -+ fwbuf = (u8 *) tmpfwbuf; -+#endif /* PXA3XX_DMA_ALIGN */ -+ -+ sdio_claim_host(card->func); -+ -+ /* Perform firmware data transfer */ -+ offset = 0; -+ do { -+ /* The host polls for the DN_LD_CARD_RDY and CARD_IO_READY bits */ -+ ret = mv_sdio_poll_card_status(priv, CARD_IO_READY | DN_LD_CARD_RDY); -+ if (ret < 0) { -+ PRINTM(FATAL, "FW download with helper poll status timeout @ %d\n", -+ offset); -+ goto done; -+ } -+ -+ /* More data? */ -+ if (offset >= firmwarelen) -+ break; -+ -+ for (tries = 0; tries < MAX_POLL_TRIES; tries++) { -+ if ((ret = sbi_read_ioreg(priv, HOST_F1_RD_BASE_0, &base0)) < 0) { -+ PRINTM(WARN, "Dev BASE0 register read failed:" -+ " base0=0x%04X(%d). Terminating download.\n", base0, -+ base0); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ if ((ret = sbi_read_ioreg(priv, HOST_F1_RD_BASE_1, &base1)) < 0) { -+ PRINTM(WARN, "Dev BASE1 register read failed:" -+ " base1=0x%04X(%d). Terminating download.\n", base1, -+ base1); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ len = (((u16) base1) << 8) | base0; -+ -+ /* For SD8688 wait until the length is not 0, 1 or 2 before -+ downloading the first FW block, since BOOT code writes the -+ register to indicate the helper/FW download winner, the value -+ could be 1 or 2 (Func1 or Func2). */ -+ if ((len && offset) || (len > 2)) -+ break; -+ udelay(10); -+ } -+ -+ if (len == 0) -+ break; -+ else if (len > UAP_UPLD_SIZE) { -+ PRINTM(FATAL, "FW download failure @ %d, invalid length %d\n", -+ offset, len); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ -+ txlen = len; -+ -+ if (len & BIT(0)) { -+ i++; -+ if (i > MAX_WRITE_IOMEM_RETRY) { -+ PRINTM(FATAL, -+ "FW download failure @ %d, over max retry count\n", -+ offset); -+ ret = UAP_STATUS_FAILURE; -+ goto done; -+ } -+ PRINTM(ERROR, "FW CRC error indicated by the helper:" -+ " len = 0x%04X, txlen = %d\n", len, txlen); -+ len &= ~BIT(0); -+ /* Setting this to 0 to resend from same offset */ -+ txlen = 0; -+ } else { -+ i = 0; -+ -+ /* Set blocksize to transfer - checking for last block */ -+ if (firmwarelen - offset < txlen) { -+ txlen = firmwarelen - offset; -+ } -+ PRINTM(INFO, "."); -+ -+ tx_blocks = (txlen + SD_BLOCK_SIZE - 1) / SD_BLOCK_SIZE; -+ -+ /* Copy payload to buffer */ -+ memcpy(fwbuf, &firmware[offset], txlen); -+ } -+ -+ /* Send data */ -+ ret = sdio_writesb(card->func, priv->uap_dev.ioport, -+ fwbuf, tx_blocks * SD_BLOCK_SIZE); -+ -+ if (ret < 0) { -+ PRINTM(ERROR, "FW download, write iomem (%d) failed @ %d\n", i, -+ offset); -+ if (sbi_write_ioreg(priv, CONFIGURATION_REG, 0x04) < 0) { -+ PRINTM(ERROR, "write ioreg failed (CFG)\n"); -+ } -+ } -+ -+ offset += txlen; -+ } while (TRUE); -+ -+ PRINTM(INFO, "\nFW download over, size %d bytes\n", offset); -+ -+ ret = UAP_STATUS_SUCCESS; -+ done: -+#ifdef FW_DOWNLOAD_SPEED -+ tv2 = get_utimeofday(); -+ PRINTM(INFO, "FW: %ld.%03ld.%03ld ", tv1 / 1000000, -+ (tv1 % 1000000) / 1000, tv1 % 1000); -+ PRINTM(INFO, " -> %ld.%03ld.%03ld ", tv2 / 1000000, -+ (tv2 % 1000000) / 1000, tv2 % 1000); -+ tv2 -= tv1; -+ PRINTM(INFO, " == %ld.%03ld.%03ld\n", tv2 / 1000000, -+ (tv2 % 1000000) / 1000, tv2 % 1000); -+#endif -+ sdio_release_host(card->func); -+ if (tmpfwbuf) -+ kfree(tmpfwbuf); -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function checks if the firmware is ready to accept -+ * command or not. -+ * -+ * @param priv A pointer to uap_private structure -+ * @param pollnum Poll number -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+sbi_check_fw_status(uap_private * priv, int pollnum) -+{ -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ int ret = UAP_STATUS_SUCCESS; -+ u16 firmwarestat; -+ int tries; -+ -+ ENTER(); -+ -+ sdio_claim_host(card->func); -+ -+ /* Wait for firmware initialization event */ -+ for (tries = 0; tries < pollnum; tries++) { -+ if ((ret = sd_read_firmware_status(priv, &firmwarestat)) < 0) -+ continue; -+ if (firmwarestat == FIRMWARE_READY) { -+ ret = UAP_STATUS_SUCCESS; -+ break; -+ } else { -+ mdelay(10); -+ ret = UAP_STATUS_FAILURE; -+ } -+ } -+ -+ if (ret < 0) -+ goto done; -+ -+ ret = UAP_STATUS_SUCCESS; -+ sd_get_rx_unit(priv); -+ -+ done: -+ sdio_release_host(card->func); -+ -+ LEAVE(); -+ return ret; -+} -+ -+/** -+ * @brief This function set bus clock on/off -+ * -+ * @param priv A pointer to uap_private structure -+ * @param option TRUE--on , FALSE--off -+ * @return UAP_STATUS_SUCCESS -+ */ -+#if 0 -+static int -+sbi_set_bus_clock(uap_private * priv, u8 option) -+{ -+ ENTER(); -+ LEAVE(); -+ return UAP_STATUS_SUCCESS; -+} -+#endif -+ -+/** -+ * @brief This function wakeup firmware -+ * -+ * @param priv A pointer to uap_private structure -+ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE -+ */ -+int -+sbi_wakeup_firmware(uap_private * priv) -+{ -+ struct sdio_mmc_card *card = priv->uap_dev.card; -+ int ret = UAP_STATUS_SUCCESS; -+ -+ ENTER(); -+ -+ if (!card || !card->func) { -+ PRINTM(ERROR, "card or function is NULL!\n"); -+ LEAVE(); -+ return UAP_STATUS_FAILURE; -+ } -+ sdio_claim_host(card->func); -+ sdio_writeb(card->func, HOST_POWER_UP, CONFIGURATION_REG, &ret); -+ sdio_release_host(card->func); -+ LEAVE(); -+ return ret; -+} -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h 2011-10-21 11:13:58.807113416 +0200 -@@ -0,0 +1,136 @@ -+/** @file uap_sdio_mmc.h -+ * @brief This file contains SDIO IF (interface) module -+ * related macros, enum, and structure. -+ * -+ * Copyright (C) 2007-2009, Marvell International Ltd. -+ * -+ * This software file (the "File") is distributed by Marvell International -+ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 -+ * (the "License"). You may use, redistribute and/or modify this File in -+ * accordance with the terms and conditions of the License, a copy of which -+ * is available along with the File in the gpl.txt file or by writing to -+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. -+ * -+ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE -+ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about -+ * this warranty disclaimer. -+ * -+ */ -+/**************************************************** -+Change log: -+ 10/10/07: initial version -+****************************************************/ -+ -+#ifndef _UAP_SDIO_MMC_H -+#define _UAP_SDIO_MMC_H -+ -+#include <linux/mmc/sdio.h> -+#include <linux/mmc/sdio_ids.h> -+#include <linux/mmc/sdio_func.h> -+#include <linux/mmc/card.h> -+ -+#include "uap_headers.h" -+ -+/** The number of times to try when waiting for downloaded firmware to -+ become active. (polling the scratch register). */ -+#define MAX_FIRMWARE_POLL_TRIES 100 -+ -+/** Firmware ready */ -+#define FIRMWARE_READY 0xfedc -+ -+/** Number of firmware blocks to transfer */ -+#define FIRMWARE_TRANSFER_NBLOCK 2 -+ -+/* Host Control Registers */ -+/** Host Control Registers : I/O port 0 */ -+#define IO_PORT_0_REG 0x00 -+/** Host Control Registers : I/O port 1 */ -+#define IO_PORT_1_REG 0x01 -+/** Host Control Registers : I/O port 2 */ -+#define IO_PORT_2_REG 0x02 -+ -+/** Host Control Registers : Configuration */ -+#define CONFIGURATION_REG 0x03 -+/** Host Control Registers : Host without Command 53 finish host */ -+#define HOST_WO_CMD53_FINISH_HOST (0x1U << 2) -+/** Host Control Registers : Host power up */ -+#define HOST_POWER_UP (0x1U << 1) -+/** Host Control Registers : Host power down */ -+#define HOST_POWER_DOWN (0x1U << 0) -+ -+/** Host Control Registers : Host interrupt mask */ -+#define HOST_INT_MASK_REG 0x04 -+/** Host Control Registers : Upload host interrupt mask */ -+#define UP_LD_HOST_INT_MASK (0x1U) -+/** Host Control Registers : Download host interrupt mask */ -+#define DN_LD_HOST_INT_MASK (0x2U) -+/** Enable Host interrupt mask */ -+#define HIM_ENABLE (UP_LD_HOST_INT_MASK | DN_LD_HOST_INT_MASK) -+/** Disable Host interrupt mask */ -+#define HIM_DISABLE 0xff -+ -+/** Host Control Registers : Host interrupt status */ -+#define HOST_INTSTATUS_REG 0x05 -+/** Host Control Registers : Upload host interrupt status */ -+#define UP_LD_HOST_INT_STATUS (0x1U) -+/** Host Control Registers : Download host interrupt status */ -+#define DN_LD_HOST_INT_STATUS (0x2U) -+ -+/** Host F1 read base 0 */ -+#define HOST_F1_RD_BASE_0 0x10 -+/** Host F1 read base 1 */ -+#define HOST_F1_RD_BASE_1 0x11 -+ -+/** Card Control Registers : Card status register */ -+#define CARD_STATUS_REG 0x20 -+/** Card Control Registers : Card I/O ready */ -+#define CARD_IO_READY (0x1U << 3) -+/** Card Control Registers : CIS card ready */ -+#define CIS_CARD_RDY (0x1U << 2) -+/** Card Control Registers : Upload card ready */ -+#define UP_LD_CARD_RDY (0x1U << 1) -+/** Card Control Registers : Download card ready */ -+#define DN_LD_CARD_RDY (0x1U << 0) -+ -+/** Card Control Registers : Card OCR 0 register */ -+#define CARD_OCR_0_REG 0x34 -+/** Card Control Registers : Card OCR 1 register */ -+#define CARD_OCR_1_REG 0x35 -+ -+/** Firmware status 0 register */ -+#define CARD_FW_STATUS0_REG 0x40 -+/** Firmware status 1 register */ -+#define CARD_FW_STATUS1_REG 0x41 -+/** Rx length register */ -+#define CARD_RX_LEN_REG 0x42 -+/** Rx unit register */ -+#define CARD_RX_UNIT_REG 0x43 -+ -+/** Chip Id Register 0 */ -+#define CARD_CHIP_ID_0_REG 0x801c -+/** Chip Id Register 1 */ -+#define CARD_CHIP_ID_1_REG 0x801d -+ -+#ifdef PXA3XX_DMA_ALIGN -+/** DMA alignment value for PXA3XX platforms */ -+#define PXA3XX_DMA_ALIGNMENT 8 -+/** Macros for Data Alignment : size */ -+#define ALIGN_SZ(p, a) \ -+ (((p) + ((a) - 1)) & ~((a) - 1)) -+ -+/** Macros for Data Alignment : address */ -+#define ALIGN_ADDR(p, a) \ -+ ((((u32)(p)) + (((u32)(a)) - 1)) & ~(((u32)(a)) - 1)) -+#endif /* PXA3XX_DMA_ALIGN */ -+ -+struct sdio_mmc_card -+{ -+ /** sdio_func structure pointer */ -+ struct sdio_func *func; -+ /** uap_private structure pointer */ -+ uap_private *priv; -+}; -+ -+#endif /* _UAP_SDIO_MMC_H */ -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/Makefile compat-wireless-3.0-2/drivers/net/wireless/Makefile ---- compat-wireless-3.0-2.org/drivers/net/wireless/Makefile 2011-07-28 00:47:28.000000000 +0200 -+++ compat-wireless-3.0-2/drivers/net/wireless/Makefile 2011-10-21 11:13:58.697110085 +0200 -@@ -22,6 +22,8 @@ - - obj-$(CONFIG_LIBERTAS_THINFIRM) += libertas_tf/ - -+obj-$(CONFIG_LIBERTAS_UAP) += libertas_uap/ -+ - obj-$(CONFIG_ADM8211) += adm8211.o - - obj-$(CONFIG_MWL8K) += mwl8k.o diff --git a/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch b/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch new file mode 100644 index 0000000..2e82157 --- /dev/null +++ b/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch @@ -0,0 +1,16 @@ +diff -Naur compat-wireless-3.5-1-snpc.org/config.mk compat-wireless-3.5/config.mk +--- compat-wireless-3.5-1-snpc.org/config.mk 2012-07-31 17:22:29.000000000 -0400 ++++ compat-wireless-3.5/config.mk 2012-08-13 13:09:55.913234600 -0400 +@@ -246,10 +246,12 @@ + # mac80211 test driver + export CONFIG_MAC80211_HWSIM=m + ++ifdef CONFIG_PCI + export CONFIG_ATH5K=m + # export CONFIG_ATH5K_DEBUG=y + # export CONFIG_ATH5K_TRACER=y + # export CONFIG_ATH5K_AHB=y ++endif #CONFIG_PCI + + export CONFIG_ATH9K=m + export CONFIG_ATH9K_HW=m diff --git a/src/patches/compat-wireless-3.5-libertas_uap.patch b/src/patches/compat-wireless-3.5-libertas_uap.patch new file mode 100644 index 0000000..633bb67 --- /dev/null +++ b/src/patches/compat-wireless-3.5-libertas_uap.patch @@ -0,0 +1,5080 @@ +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/Makefile compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/Makefile +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/Makefile 2012-07-31 14:23:04.000000000 +0200 +@@ -0,0 +1,6 @@ ++obj-$(CONFIG_LIBERTAS_UAP) += uap8xxx.o ++ ++uap8xxx-y += uap_main.o uap_sdio_mmc.o ++uap8xxx-$(CONFIG_PROC_FS) += uap_proc.o uap_debug.o ++ ++EXTRA_CFLAGS += -DFPNUM='"52"' -DPXA3XX_DMA_ALIGN -DDEBUG_LEVEL1 +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_debug.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_debug.c +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_debug.c 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_debug.c 2012-07-31 14:23:04.000000000 +0200 +@@ -0,0 +1,261 @@ ++/** @file uap_debug.c ++ * @brief This file contains functions for debug proc file. ++ * ++ * Copyright (C) 2008-2009, Marvell International Ltd. ++ * ++ * This software file (the "File") is distributed by Marvell International ++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 ++ * (the "License"). You may use, redistribute and/or modify this File in ++ * accordance with the terms and conditions of the License, a copy of which ++ * is available along with the File in the gpl.txt file or by writing to ++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. ++ * ++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ++ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about ++ * this warranty disclaimer. ++ * ++ */ ++#ifdef CONFIG_PROC_FS ++#include "uap_headers.h" ++ ++/******************************************************** ++ Local Variables ++********************************************************/ ++ ++#define item_size(n) (sizeof ((uap_adapter *)0)->n) ++#define item_addr(n) ((u32) &((uap_adapter *)0)->n) ++ ++#define item_dbg_size(n) (sizeof (((uap_adapter *)0)->dbg.n)) ++#define item_dbg_addr(n) ((u32) &(((uap_adapter *)0)->dbg.n)) ++ ++#define item_dev_size(n) (sizeof ((uap_dev_t *)0)->n) ++#define item_dev_addr(n) ((u32) &((uap_dev_t *)0)->n) ++ ++/** MicroAp device offset */ ++#define OFFSET_UAP_DEV 0x01 ++/** Bluetooth adapter offset */ ++#define OFFSET_UAP_ADAPTER 0x02 ++ ++struct debug_data ++{ ++ /** Name */ ++ char name[32]; ++ /** Size */ ++ u32 size; ++ /** Address */ ++ u32 addr; ++ /** Offset */ ++ u32 offset; ++ /** Flag */ ++ u32 flag; ++}; ++ ++/* To debug any member of uap_adapter, simply add one line here. ++ */ ++static struct debug_data items[] = { ++ {"cmd_sent", item_dev_size(cmd_sent), 0, item_dev_addr(cmd_sent), ++ OFFSET_UAP_DEV}, ++ {"data_sent", item_dev_size(data_sent), 0, item_dev_addr(data_sent), ++ OFFSET_UAP_DEV}, ++ {"IntCounter", item_size(IntCounter), 0, item_addr(IntCounter), ++ OFFSET_UAP_ADAPTER}, ++ {"cmd_pending", item_size(cmd_pending), 0, item_addr(cmd_pending), ++ OFFSET_UAP_ADAPTER}, ++ {"num_cmd_h2c_fail", item_dbg_size(num_cmd_host_to_card_failure), 0, ++ item_dbg_addr(num_cmd_host_to_card_failure), OFFSET_UAP_ADAPTER}, ++ {"num_tx_h2c_fail", item_dbg_size(num_tx_host_to_card_failure), 0, ++ item_dbg_addr(num_tx_host_to_card_failure), OFFSET_UAP_ADAPTER}, ++ {"psmode", item_size(psmode), 0, item_addr(psmode), OFFSET_UAP_ADAPTER}, ++ {"ps_state", item_size(ps_state), 0, item_addr(ps_state), ++ OFFSET_UAP_ADAPTER}, ++#ifdef DEBUG_LEVEL1 ++ {"drvdbg", sizeof(drvdbg), (u32) & drvdbg, 0, 0} ++#endif ++}; ++ ++static int num_of_items = sizeof(items) / sizeof(items[0]); ++ ++/******************************************************** ++ Global Variables ++********************************************************/ ++ ++/******************************************************** ++ Local Functions ++********************************************************/ ++/** ++ * @brief proc read function ++ * ++ * @param page pointer to buffer ++ * @param s read data starting position ++ * @param off offset ++ * @param cnt counter ++ * @param eof end of file flag ++ * @param data data to output ++ * @return number of output data ++ */ ++static int ++uap_debug_read(char *page, char **s, off_t off, int cnt, int *eof, void *data) ++{ ++ int val = 0; ++ char *p = page; ++ int i; ++ ++ struct debug_data *d = (struct debug_data *) data; ++ ++ if (MODULE_GET == 0) ++ return UAP_STATUS_FAILURE; ++ ++ for (i = 0; i < num_of_items; i++) { ++ if (d[i].size == 1) ++ val = *((u8 *) d[i].addr); ++ else if (d[i].size == 2) ++ val = *((u16 *) d[i].addr); ++ else if (d[i].size == 4) ++ val = *((u32 *) d[i].addr); ++ ++ p += sprintf(p, "%s=%d\n", d[i].name, val); ++ } ++ MODULE_PUT; ++ return p - page; ++} ++ ++/** ++ * @brief proc write function ++ * ++ * @param f file pointer ++ * @param buf pointer to data buffer ++ * @param cnt data number to write ++ * @param data data to write ++ * @return number of data ++ */ ++static int ++uap_debug_write(struct file *f, const char *buf, unsigned long cnt, void *data) ++{ ++ int r, i; ++ char *pdata; ++ char *p; ++ char *p0; ++ char *p1; ++ char *p2; ++ struct debug_data *d = (struct debug_data *) data; ++ ++ if (MODULE_GET == 0) ++ return UAP_STATUS_FAILURE; ++ ++ pdata = (char *) kmalloc(cnt, GFP_KERNEL); ++ if (pdata == NULL) { ++ MODULE_PUT; ++ return 0; ++ } ++ ++ if (copy_from_user(pdata, buf, cnt)) { ++ PRINTM(INFO, "Copy from user failed\n"); ++ kfree(pdata); ++ MODULE_PUT; ++ return 0; ++ } ++ ++ p0 = pdata; ++ for (i = 0; i < num_of_items; i++) { ++ do { ++ p = strstr(p0, d[i].name); ++ if (p == NULL) ++ break; ++ p1 = strchr(p, '\n'); ++ if (p1 == NULL) ++ break; ++ p0 = p1++; ++ p2 = strchr(p, '='); ++ if (!p2) ++ break; ++ p2++; ++ r = string_to_number(p2); ++ if (d[i].size == 1) ++ *((u8 *) d[i].addr) = (u8) r; ++ else if (d[i].size == 2) ++ *((u16 *) d[i].addr) = (u16) r; ++ else if (d[i].size == 4) ++ *((u32 *) d[i].addr) = (u32) r; ++ break; ++ } while (TRUE); ++ } ++ kfree(pdata); ++#ifdef DEBUG_LEVEL1 ++ printk(KERN_ALERT "drvdbg = 0x%x\n", drvdbg); ++ printk(KERN_ALERT "INFO (%08lx) %s\n", DBG_INFO, ++ (drvdbg & DBG_INFO) ? "X" : ""); ++ printk(KERN_ALERT "WARN (%08lx) %s\n", DBG_WARN, ++ (drvdbg & DBG_WARN) ? "X" : ""); ++ printk(KERN_ALERT "ENTRY (%08lx) %s\n", DBG_ENTRY, ++ (drvdbg & DBG_ENTRY) ? "X" : ""); ++ printk(KERN_ALERT "CMD_D (%08lx) %s\n", DBG_CMD_D, ++ (drvdbg & DBG_CMD_D) ? "X" : ""); ++ printk(KERN_ALERT "DAT_D (%08lx) %s\n", DBG_DAT_D, ++ (drvdbg & DBG_DAT_D) ? "X" : ""); ++ printk(KERN_ALERT "CMND (%08lx) %s\n", DBG_CMND, ++ (drvdbg & DBG_CMND) ? "X" : ""); ++ printk(KERN_ALERT "DATA (%08lx) %s\n", DBG_DATA, ++ (drvdbg & DBG_DATA) ? "X" : ""); ++ printk(KERN_ALERT "ERROR (%08lx) %s\n", DBG_ERROR, ++ (drvdbg & DBG_ERROR) ? "X" : ""); ++ printk(KERN_ALERT "FATAL (%08lx) %s\n", DBG_FATAL, ++ (drvdbg & DBG_FATAL) ? "X" : ""); ++ printk(KERN_ALERT "MSG (%08lx) %s\n", DBG_MSG, ++ (drvdbg & DBG_MSG) ? "X" : ""); ++#endif ++ MODULE_PUT; ++ return cnt; ++} ++ ++/******************************************************** ++ Global Functions ++********************************************************/ ++/** ++ * @brief create debug proc file ++ * ++ * @param priv pointer uap_private ++ * @param dev pointer net_device ++ * @return N/A ++ */ ++void ++uap_debug_entry(uap_private * priv, struct net_device *dev) ++{ ++ int i; ++ struct proc_dir_entry *r; ++ ++ if (priv->proc_entry == NULL) ++ return; ++ ++ for (i = 0; i < num_of_items; i++) { ++ if (items[i].flag & OFFSET_UAP_ADAPTER) ++ items[i].addr = items[i].offset + (u32) priv->adapter; ++ if (items[i].flag & OFFSET_UAP_DEV) ++ items[i].addr = items[i].offset + (u32) & priv->uap_dev; ++ } ++ r = create_proc_entry("debug", 0644, priv->proc_entry); ++ if (r == NULL) ++ return; ++ ++ r->data = &items[0]; ++ r->read_proc = uap_debug_read; ++ r->write_proc = uap_debug_write; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) ++ r->owner = THIS_MODULE; ++#endif ++} ++ ++/** ++ * @brief remove proc file ++ * ++ * @param priv pointer uap_private ++ * @return N/A ++ */ ++void ++uap_debug_remove(uap_private * priv) ++{ ++ remove_proc_entry("debug", priv->proc_entry); ++} ++ ++#endif +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_drv.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_drv.h +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_drv.h 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_drv.h 2012-07-31 14:23:04.000000000 +0200 +@@ -0,0 +1,667 @@ ++/** @file uap_drv.h ++ * @brief This file contains Linux OS related definitions and ++ * declarations, uAP driver ++ * ++ * Copyright (C) 2008-2009, Marvell International Ltd. ++ * ++ * This software file (the "File") is distributed by Marvell International ++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 ++ * (the "License"). You may use, redistribute and/or modify this File in ++ * accordance with the terms and conditions of the License, a copy of which ++ * is available along with the File in the gpl.txt file or by writing to ++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. ++ * ++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ++ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about ++ * this warranty disclaimer. ++ * ++ */ ++ ++#ifndef _UAP_DRV_H ++#define _UAP_DRV_H ++ ++/** Driver release version */ ++#define DRIVER_VERSION "26146" ++ ++/** True */ ++#ifndef TRUE ++#define TRUE 1 ++#endif ++/** False */ ++#ifndef FALSE ++#define FALSE 0 ++#endif ++ ++/** Bit definitions */ ++#ifndef BIT ++#define BIT(x) (1UL << (x)) ++#endif ++ ++/** Dma addresses are 32-bits wide. */ ++#ifndef __ATTRIB_ALIGN__ ++#define __ATTRIB_ALIGN__ __attribute__((aligned(4))) ++#endif ++ ++/** attribute pack */ ++#ifndef __ATTRIB_PACK__ ++#define __ATTRIB_PACK__ __attribute__ ((packed)) ++#endif ++ ++/** Debug Macro definition*/ ++#ifdef DEBUG_LEVEL1 ++ ++extern u32 drvdbg; ++ ++/** Debug message control bit definition for drvdbg */ ++/** Debug message */ ++#define DBG_MSG BIT(0) ++/** Debug fatal message */ ++#define DBG_FATAL BIT(1) ++/** Debug error message */ ++#define DBG_ERROR BIT(2) ++/** Debug data message */ ++#define DBG_DATA BIT(3) ++/** Debug command message */ ++#define DBG_CMND BIT(4) ++ ++/** Debug data */ ++#define DBG_DAT_D BIT(16) ++/** Debug command */ ++#define DBG_CMD_D BIT(17) ++ ++/** Debug entry */ ++#define DBG_ENTRY BIT(28) ++/** Debug warning */ ++#define DBG_WARN BIT(29) ++/** Debug info */ ++#define DBG_INFO BIT(30) ++ ++/** Print info */ ++#define PRINTM_INFO(msg...) {if (drvdbg & DBG_INFO) printk(KERN_DEBUG msg);} ++/** Print warn message */ ++#define PRINTM_WARN(msg...) {if (drvdbg & DBG_WARN) printk(KERN_DEBUG msg);} ++/** Print entry */ ++#define PRINTM_ENTRY(msg...) {if (drvdbg & DBG_ENTRY) printk(KERN_DEBUG msg);} ++/** Print cmd_d */ ++#define PRINTM_CMD_D(msg...) {if (drvdbg & DBG_CMD_D) printk(KERN_DEBUG msg);} ++/** Print data_d */ ++#define PRINTM_DAT_D(msg...) {if (drvdbg & DBG_DAT_D) printk(KERN_DEBUG msg);} ++/** Print command */ ++#define PRINTM_CMND(msg...) {if (drvdbg & DBG_CMND) printk(KERN_DEBUG msg);} ++/** Print data */ ++#define PRINTM_DATA(msg...) {if (drvdbg & DBG_DATA) printk(KERN_DEBUG msg);} ++/** Print error message */ ++#define PRINTM_ERROR(msg...) {if (drvdbg & DBG_ERROR) printk(KERN_DEBUG msg);} ++/** Print fatal message */ ++#define PRINTM_FATAL(msg...) {if (drvdbg & DBG_FATAL) printk(KERN_DEBUG msg);} ++/** Print message */ ++#define PRINTM_MSG(msg...) {if (drvdbg & DBG_MSG) printk(KERN_ALERT msg);} ++/** Print level */ ++#define PRINTM(level,msg...) PRINTM_##level(msg) ++ ++#else ++ ++#define PRINTM(level,msg...) do {} while (0) ++ ++#endif /* DEBUG_LEVEL1 */ ++ ++/** Wait until a condition becomes true */ ++#define ASSERT(cond) \ ++do { \ ++ if (!(cond)) \ ++ PRINTM(INFO, "ASSERT: %s, %s:%i\n", \ ++ __FUNCTION__, __FILE__, __LINE__); \ ++} while(0) ++ ++/** Log enrty point for debugging */ ++#define ENTER() PRINTM(ENTRY, "Enter: %s, %s:%i\n", __FUNCTION__, \ ++ __FILE__, __LINE__) ++/** Log exit point for debugging */ ++#define LEAVE() PRINTM(ENTRY, "Leave: %s, %s:%i\n", __FUNCTION__, \ ++ __FILE__, __LINE__) ++ ++#ifdef DEBUG_LEVEL1 ++/** Dump buffer length */ ++#define DBG_DUMP_BUF_LEN 64 ++/** Maximum dump per line */ ++#define MAX_DUMP_PER_LINE 16 ++/** Data dump length */ ++#define DATA_DUMP_LEN 32 ++ ++static inline void ++hexdump(char *prompt, u8 * buf, int len) ++{ ++ int i; ++ char dbgdumpbuf[DBG_DUMP_BUF_LEN]; ++ char *ptr = dbgdumpbuf; ++ ++ printk(KERN_DEBUG "%s:\n", prompt); ++ for (i = 1; i <= len; i++) { ++ ptr += sprintf(ptr, "%02x ", *buf); ++ buf++; ++ if (i % MAX_DUMP_PER_LINE == 0) { ++ *ptr = 0; ++ printk(KERN_DEBUG "%s\n", dbgdumpbuf); ++ ptr = dbgdumpbuf; ++ } ++ } ++ if (len % MAX_DUMP_PER_LINE) { ++ *ptr = 0; ++ printk(KERN_DEBUG "%s\n", dbgdumpbuf); ++ } ++} ++ ++/** Debug command */ ++#define DBG_HEXDUMP_CMD_D(x,y,z) {if (drvdbg & DBG_CMD_D) hexdump(x,y,z);} ++/** Debug data */ ++#define DBG_HEXDUMP_DAT_D(x,y,z) {if (drvdbg & DBG_DAT_D) hexdump(x,y,z);} ++/** Debug hexdump */ ++#define DBG_HEXDUMP(level,x,y,z) DBG_HEXDUMP_##level(x,y,z) ++/** hexdump */ ++#define HEXDUMP(x,y,z) {if (drvdbg & DBG_INFO) hexdump(x,y,z);} ++#else ++/** Do nothing since debugging is not turned on */ ++#define DBG_HEXDUMP(level,x,y,z) do {} while (0) ++/** Do nothing since debugging is not turned on */ ++#define HEXDUMP(x,y,z) do {} while (0) ++#endif ++ ++/** ++ * Typedefs ++ */ ++/** Unsigned char */ ++typedef u8 BOOLEAN; ++ ++/* ++ * OS macro definitions ++ */ ++/** OS macro to get time */ ++#define os_time_get() jiffies ++ ++/** OS macro to update transfer start time */ ++#define UpdateTransStart(dev) { \ ++ dev->trans_start = jiffies; \ ++} ++ ++/** Try to get a reference to the module */ ++#define MODULE_GET try_module_get(THIS_MODULE) ++/** Decrease module reference count */ ++#define MODULE_PUT module_put(THIS_MODULE) ++ ++/** OS macro to initialize semaphore */ ++#define OS_INIT_SEMAPHORE(x) sema_init(x,1) ++/** OS macro to acquire blocking semaphore */ ++#define OS_ACQ_SEMAPHORE_BLOCK(x) down_interruptible(x) ++/** OS macro to acquire non-blocking semaphore */ ++#define OS_ACQ_SEMAPHORE_NOBLOCK(x) down_trylock(x) ++/** OS macro to release semaphore */ ++#define OS_REL_SEMAPHORE(x) up(x) ++ ++static inline void ++os_sched_timeout(u32 millisec) ++{ ++ set_current_state(TASK_INTERRUPTIBLE); ++ schedule_timeout((millisec * HZ) / 1000); ++} ++ ++/** Maximum size of ethernet packet */ ++#define MRVDRV_MAXIMUM_ETH_PACKET_SIZE 1514 ++ ++/** Maximum size of multicast list */ ++#define MRVDRV_MAX_MULTICAST_LIST_SIZE 32 ++ ++/** Find minimum */ ++#ifndef MIN ++#define MIN(a,b) ((a) < (b) ? (a) : (b)) ++#endif ++ ++/** Find maximum */ ++#ifndef MAX ++#define MAX(a,b) ((a) > (b) ? (a) : (b)) ++#endif ++ ++/** Find number of elements */ ++#ifndef NELEMENTS ++#define NELEMENTS(x) (sizeof(x)/sizeof(x[0])) ++#endif ++ ++/** Buffer Constants */ ++ ++/** Size of command buffer */ ++#define MRVDRV_SIZE_OF_CMD_BUFFER (2 * 1024) ++ ++/** Length of device length */ ++#define DEV_NAME_LEN 32 ++ ++/** Length of ethernet address */ ++#ifndef ETH_ALEN ++#define ETH_ALEN 6 ++#endif ++ ++/** Default watchdog timeout */ ++#define MRVDRV_DEFAULT_WATCHDOG_TIMEOUT (2 * HZ) ++ ++/** Success */ ++#define UAP_STATUS_SUCCESS (0) ++/** Failure */ ++#define UAP_STATUS_FAILURE (-1) ++/** Not accepted */ ++#define UAP_STATUS_NOT_ACCEPTED (-2) ++ ++/** Max loop count (* 100ms) for waiting device ready at init time */ ++#define MAX_WAIT_DEVICE_READY_COUNT 50 ++ ++/** Tx high watermark. Stop Tx queue after this is crossed */ ++#define TX_HIGH_WATERMARK 4 ++/** Tx low watermark. Restart Tx queue after this is crossed */ ++#define TX_LOW_WATERMARK 2 ++ ++/** Netlink protocol number */ ++#define NETLINK_MARVELL (MAX_LINKS - 1) ++/** Netlink maximum payload size */ ++#define NL_MAX_PAYLOAD 1024 ++/** Netlink multicast group number */ ++#define NL_MULTICAST_GROUP 1 ++ ++/** 20 seconds */ ++#define MRVDRV_TIMER_20S 20000 ++ ++/** Host Command option for wait till Send */ ++#define HostCmd_OPTION_WAITFORSEND 0x0001 ++/** Host Command option for wait for RSP */ ++#define HostCmd_OPTION_WAITFORRSP 0x0002 ++/** Host Command option for wait for RSP or Timeout */ ++#define HostCmd_OPTION_WAITFORRSP_TIMEOUT 0x0003 ++/** Host Command option for wait for RSP of sleep confirm */ ++#define HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM 0x0004 ++ ++/** Sleep until a condition gets true or a timeout elapses */ ++#define os_wait_interruptible_timeout(waitq, cond, timeout) \ ++ wait_event_interruptible_timeout(waitq, cond, ((timeout) * HZ / 1000)) ++ ++/** Private command ID to Host command */ ++#define UAPHOSTCMD (SIOCDEVPRIVATE + 1) ++ ++/** Private command ID to Power Mode */ ++#define UAP_POWER_MODE (SIOCDEVPRIVATE + 3) ++/** sleep_param */ ++typedef struct _ps_sleep_param ++{ ++ /** control bitmap */ ++ u32 ctrl_bitmap; ++ /** minimum sleep period (micro second) */ ++ u32 min_sleep; ++ /** maximum sleep period (micro second) */ ++ u32 max_sleep; ++} ps_sleep_param; ++ ++/** inactivity sleep_param */ ++typedef struct _inact_sleep_param ++{ ++ /** inactivity timeout (micro second) */ ++ u32 inactivity_to; ++ /** miniumu awake period (micro second) */ ++ u32 min_awake; ++ /** maximum awake period (micro second) */ ++ u32 max_awake; ++} inact_sleep_param; ++ ++/** flag for ps mode */ ++#define PS_FLAG_PS_MODE 1 ++/** flag for sleep param */ ++#define PS_FLAG_SLEEP_PARAM 2 ++/** flag for inactivity sleep param */ ++#define PS_FLAG_INACT_SLEEP_PARAM 4 ++ ++/** Disable power mode */ ++#define PS_MODE_DISABLE 0 ++/** Enable periodic dtim ps */ ++#define PS_MODE_PERIODIC_DTIM 1 ++/** Enable inactivity ps */ ++#define PS_MODE_INACTIVITY 2 ++ ++/** sleep parameter */ ++#define SLEEP_PARAMETER 1 ++/** inactivity sleep parameter */ ++#define INACTIVITY_SLEEP_PARAMETER 2 ++/** ps_mgmt */ ++typedef struct _ps_mgmt ++{ ++ /** flags for valid field */ ++ u16 flags; ++ /** power mode */ ++ u16 ps_mode; ++ /** sleep param */ ++ ps_sleep_param sleep_param; ++ /** inactivity sleep param */ ++ inact_sleep_param inact_param; ++} ps_mgmt; ++ ++/** Semaphore structure */ ++typedef struct semaphore SEMAPHORE; ++ ++/** Global Varibale Declaration */ ++/** Private data structure of the device */ ++typedef struct _uap_private uap_private; ++/** Adapter data structure of the device */ ++typedef struct _uap_adapter uap_adapter; ++/** private structure */ ++extern uap_private *uappriv; ++ ++/** ENUM definition*/ ++ ++/** Hardware status codes */ ++typedef enum _HARDWARE_STATUS ++{ ++ HWReady, ++ HWInitializing, ++ HWReset, ++ HWClosing, ++ HWNotReady ++} HARDWARE_STATUS; ++ ++/** info for debug purpose */ ++typedef struct _uap_dbg ++{ ++ /** Number of host to card command failures */ ++ u32 num_cmd_host_to_card_failure; ++ /** Number of host to card Tx failures */ ++ u32 num_tx_host_to_card_failure; ++} uap_dbg; ++ ++/** Set thread state */ ++#define OS_SET_THREAD_STATE(x) set_current_state(x) ++ ++typedef struct ++{ ++ /** Task */ ++ struct task_struct *task; ++ /** Queue */ ++ wait_queue_head_t waitQ; ++ /** PID */ ++ pid_t pid; ++ /** Private structure */ ++ void *priv; ++} uap_thread; ++ ++static inline void ++uap_activate_thread(uap_thread * thr) ++{ ++ /** Record the thread pid */ ++ thr->pid = current->pid; ++ ++ /** Initialize the wait queue */ ++ init_waitqueue_head(&thr->waitQ); ++} ++ ++static inline void ++uap_deactivate_thread(uap_thread * thr) ++{ ++ thr->pid = 0; ++ return; ++} ++ ++static inline void ++uap_create_thread(int (*uapfunc) (void *), uap_thread * thr, char *name) ++{ ++ thr->task = kthread_run(uapfunc, thr, "%s", name); ++} ++ ++static inline int ++uap_terminate_thread(uap_thread * thr) ++{ ++ /* Check if the thread is active or not */ ++ if (!thr->pid) ++ return -1; ++ kthread_stop(thr->task); ++ return 0; ++} ++ ++/** Data structure for the Marvell uAP device */ ++typedef struct _uap_dev ++{ ++ /** device name */ ++ char name[DEV_NAME_LEN]; ++ /** card pointer */ ++ void *card; ++ /** IO port */ ++ u32 ioport; ++ /** Rx unit */ ++ u8 rx_unit; ++ /** Data sent: ++ TRUE - Data is sent to fw, no Tx Done received ++ FALSE - Tx done received for previous Tx */ ++ BOOLEAN data_sent; ++ /** CMD sent: ++ TRUE - CMD is sent to fw, no CMD Done received ++ FALSE - CMD done received for previous CMD */ ++ BOOLEAN cmd_sent; ++ /** netdev pointer */ ++ struct net_device *netdev; ++} uap_dev_t, *puap_dev_t; ++ ++/** Private structure for the MV device */ ++struct _uap_private ++{ ++ /** Device open */ ++ int open; ++ ++ /** Device adapter structure */ ++ uap_adapter *adapter; ++ /** Device structure */ ++ uap_dev_t uap_dev; ++ ++ /** Net device statistics structure */ ++ struct net_device_stats stats; ++ ++ /** Number of Tx timeouts */ ++ u32 num_tx_timeout; ++ ++ /** Media connection status */ ++ BOOLEAN MediaConnected; ++ ++#ifdef CONFIG_PROC_FS ++ struct proc_dir_entry *proc_uap; ++ struct proc_dir_entry *proc_entry; ++#endif /* CONFIG_PROC_FS */ ++ ++ /** Firmware helper */ ++ const struct firmware *fw_helper; ++ /** Firmware */ ++ const struct firmware *firmware; ++ /** Hotplug device */ ++ struct device *hotplug_device; ++ /** thread to service interrupts */ ++ uap_thread MainThread; ++ /** Driver lock */ ++ spinlock_t driver_lock; ++ /** Driver lock flags */ ++ ulong driver_flags; ++ ++}; ++ ++/** PS_CMD_ConfirmSleep */ ++typedef struct _PS_CMD_ConfirmSleep ++{ ++ /** SDIO Length */ ++ u16 SDLen; ++ /** SDIO Type */ ++ u16 SDType; ++ /** Command */ ++ u16 Command; ++ /** Size */ ++ u16 Size; ++ /** Sequence number */ ++ u16 SeqNum; ++ /** Result */ ++ u16 Result; ++} __ATTRIB_PACK__ PS_CMD_ConfirmSleep, *PPS_CMD_ConfirmSleep; ++ ++/** Wlan Adapter data structure*/ ++struct _uap_adapter ++{ ++ /** Power save confirm sleep command */ ++ PS_CMD_ConfirmSleep PSConfirmSleep; ++ /** Device status */ ++ HARDWARE_STATUS HardwareStatus; ++ /** Interrupt counter */ ++ u32 IntCounter; ++ /** Tx packet queue */ ++ struct sk_buff_head tx_queue; ++ /** Cmd packet queue */ ++ struct sk_buff_head cmd_queue; ++ /** Command sequence number */ ++ u16 SeqNum; ++ /** Command buffer */ ++ u8 *CmdBuf; ++ /** cmd pending flag */ ++ u8 cmd_pending; ++ /** cmd wait option */ ++ u8 cmd_wait_option; ++ /** Command buffer length */ ++ u32 CmdSize; ++ /** Command wait queue */ ++ wait_queue_head_t cmdwait_q __ATTRIB_ALIGN__; ++ /** Command wait queue state flag */ ++ u8 CmdWaitQWoken; ++ /** PnP support */ ++ BOOLEAN SurpriseRemoved; ++ /** Debug */ ++ uap_dbg dbg; ++ /** Netlink kernel socket */ ++ struct sock *nl_sk; ++ /** Semaphore for CMD */ ++ SEMAPHORE CmdSem; ++ /** Power Save mode */ ++ u8 psmode; ++ /** Power Save state */ ++ u8 ps_state; ++ /** Number of wakeup tries */ ++ u32 WakeupTries; ++}; ++ ++static inline int ++os_upload_rx_packet(uap_private * priv, struct sk_buff *skb) ++{ ++ skb->dev = priv->uap_dev.netdev; ++ skb->protocol = eth_type_trans(skb, priv->uap_dev.netdev); ++ skb->ip_summed = CHECKSUM_UNNECESSARY; ++ if (in_interrupt()) ++ netif_rx(skb); ++ else ++ netif_rx_ni(skb); ++ return 0; ++} ++ ++/* ++ * netif carrier_on/off and start(wake)/stop_queue handling ++ */ ++static inline void ++os_carrier_on(uap_private * priv) ++{ ++ if (!netif_carrier_ok(priv->uap_dev.netdev) && ++ (priv->MediaConnected == TRUE)) { ++ netif_carrier_on(priv->uap_dev.netdev); ++ } ++} ++ ++static inline void ++os_carrier_off(uap_private * priv) ++{ ++ if (netif_carrier_ok(priv->uap_dev.netdev)) { ++ netif_carrier_off(priv->uap_dev.netdev); ++ } ++} ++ ++static inline void ++os_start_queue(uap_private * priv) ++{ ++ if (netif_queue_stopped(priv->uap_dev.netdev) && ++ (priv->MediaConnected == TRUE)) { ++ netif_wake_queue(priv->uap_dev.netdev); ++ } ++} ++ ++static inline void ++os_stop_queue(uap_private * priv) ++{ ++ if (!netif_queue_stopped(priv->uap_dev.netdev)) { ++ netif_stop_queue(priv->uap_dev.netdev); ++ } ++} ++ ++/** Interface specific header */ ++#define INTF_HEADER_LEN 4 ++ ++/** headroom alignment for tx packet */ ++#define HEADER_ALIGNMENT 8 ++ ++/** The number of times to try when polling for status bits */ ++#define MAX_POLL_TRIES 100 ++ ++/** Length of SNAP header */ ++#define MRVDRV_SNAP_HEADER_LEN 8 ++ ++/** Extra length of Tx packet buffer */ ++#define EXTRA_LEN 36 ++ ++/** Buffer size for ethernet Tx packets */ ++#define MRVDRV_ETH_TX_PACKET_BUFFER_SIZE \ ++ (ETH_FRAME_LEN + sizeof(TxPD) + EXTRA_LEN) ++ ++/** Buffer size for ethernet Rx packets */ ++#define MRVDRV_ETH_RX_PACKET_BUFFER_SIZE \ ++ (ETH_FRAME_LEN + sizeof(RxPD) \ ++ + MRVDRV_SNAP_HEADER_LEN + EXTRA_LEN) ++ ++/** Packet type: data, command & event */ ++typedef enum _mv_type ++{ ++ MV_TYPE_DAT = 0, ++ MV_TYPE_CMD = 1, ++ MV_TYPE_EVENT = 3 ++} mv_type; ++ ++/** Disable interrupt */ ++#define OS_INT_DISABLE spin_lock_irqsave(&priv->driver_lock, priv->driver_flags) ++/** Enable interrupt */ ++#define OS_INT_RESTORE spin_unlock_irqrestore(&priv->driver_lock, priv->driver_flags) ++ ++int uap_process_rx_packet(uap_private * priv, struct sk_buff *skb); ++void uap_interrupt(uap_private * priv); ++uap_private *uap_add_card(void *card); ++int uap_remove_card(void *card); ++int uap_process_event(uap_private * priv, u8 * payload, uint len); ++int uap_soft_reset(uap_private * priv); ++int uap_process_sleep_confirm_resp(uap_private * priv, u8 * resp, int resp_len); ++ ++#ifdef CONFIG_PROC_FS ++/** The proc fs interface */ ++void uap_proc_entry(uap_private * priv, struct net_device *dev); ++void uap_proc_remove(uap_private * priv); ++int string_to_number(char *s); ++void uap_debug_entry(uap_private * priv, struct net_device *dev); ++void uap_debug_remove(uap_private * priv); ++#endif /* CONFIG_PROC_FS */ ++ ++int sbi_register(void); ++ ++void sbi_unregister(void); ++int sbi_register_dev(uap_private * priv); ++int sbi_unregister_dev(uap_private * priv); ++int sbi_prog_fw_w_helper(uap_private *); ++ ++int sbi_host_to_card(uap_private * priv, u8 * payload, u16 nb); ++int sbi_enable_host_int(uap_private * priv); ++int sbi_disable_host_int(uap_private * priv); ++ ++int sbi_get_int_status(uap_private * priv, u8 * ireg); ++/** Check firmware status */ ++int sbi_check_fw_status(uap_private *, int); ++int sbi_prog_helper(uap_private *); ++ ++int sbi_wakeup_firmware(uap_private * priv); ++ ++#endif /* _UAP_DRV_H */ +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_fw.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_fw.h +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_fw.h 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_fw.h 2012-07-31 14:23:04.000000000 +0200 +@@ -0,0 +1,359 @@ ++/** @file uap_fw.h ++ * ++ * @brief This file contains firmware specific defines. ++ * ++ * Copyright (C) 2008-2009, Marvell International Ltd. ++ * ++ * This software file (the "File") is distributed by Marvell International ++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 ++ * (the "License"). You may use, redistribute and/or modify this File in ++ * accordance with the terms and conditions of the License, a copy of which ++ * is available along with the File in the gpl.txt file or by writing to ++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. ++ * ++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ++ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about ++ * this warranty disclaimer. ++ * ++ */ ++/******************************************************** ++Change log: ++ 02/26/08: Initial creation ++********************************************************/ ++ ++#ifndef _UAP_FW_H ++#define _UAP_FW_H ++ ++/** uap upload size */ ++#define UAP_UPLD_SIZE 2312 ++/** Packet type Micro AP */ ++#define PKT_TYPE_MICROAP 1 ++/** Packet type client */ ++#define PKT_TYPE_CLIENT 0 ++ ++/** TxPD descriptor */ ++typedef struct _TxPD ++{ ++ /** Bss Type */ ++ u8 BssType; ++ /** Bss num */ ++ u8 BssNum; ++ /** Tx packet length */ ++ u16 TxPktLength; ++ /** Tx packet offset */ ++ u16 TxPktOffset; ++ /** Tx packet type */ ++ u16 TxPktType; ++ /** Tx Control */ ++ u32 TxControl; ++ /** reserved */ ++ u32 reserved[2]; ++} __ATTRIB_PACK__ TxPD, *PTxPD; ++ ++/** RxPD Descriptor */ ++typedef struct _RxPD ++{ ++ /** Bss Type */ ++ u8 BssType; ++ /** Bss Num */ ++ u8 BssNum; ++ /** Tx packet length */ ++ u16 RxPktLength; ++ /** Tx packet offset */ ++ u16 RxPktOffset; ++} __ATTRIB_PACK__ RxPD, *PRxPD; ++ ++#ifdef BIG_ENDIAN ++/** Convert from 16 bit little endian format to CPU format */ ++#define uap_le16_to_cpu(x) le16_to_cpu(x) ++/** Convert from 32 bit little endian format to CPU format */ ++#define uap_le32_to_cpu(x) le32_to_cpu(x) ++/** Convert from 64 bit little endian format to CPU format */ ++#define uap_le64_to_cpu(x) le64_to_cpu(x) ++/** Convert to 16 bit little endian format from CPU format */ ++#define uap_cpu_to_le16(x) cpu_to_le16(x) ++/** Convert to 32 bit little endian format from CPU format */ ++#define uap_cpu_to_le32(x) cpu_to_le32(x) ++/** Convert to 64 bit little endian format from CPU format */ ++#define uap_cpu_to_le64(x) cpu_to_le64(x) ++ ++/** Convert TxPD to little endian format from CPU format */ ++#define endian_convert_TxPD(x); \ ++ { \ ++ (x)->TxPktLength = uap_cpu_to_le16((x)->TxPktLength); \ ++ (x)->TxPktOffset = uap_cpu_to_le32((x)->TxPktOffset); \ ++ (x)->TxControl = uap_cpu_to_le32((x)->TxControl); \ ++ (x)->TxPktType = uap_cpu_to_le32((x)->TxPktType); \ ++ } ++ ++/** Convert RxPD from little endian format to CPU format */ ++#define endian_convert_RxPD(x); \ ++ { \ ++ (x)->RxPktLength = uap_le16_to_cpu((x)->RxPktLength); \ ++ (x)->RxPktOffset = uap_le32_to_cpu((x)->RxPktOffset); \ ++ } ++#else /* BIG_ENDIAN */ ++/** Do nothing */ ++#define uap_le16_to_cpu(x) x ++/** Do nothing */ ++#define uap_le32_to_cpu(x) x ++/** Do nothing */ ++#define uap_le64_to_cpu(x) x ++/** Do nothing */ ++#define uap_cpu_to_le16(x) x ++/** Do nothing */ ++#define uap_cpu_to_le32(x) x ++/** Do nothing */ ++#define uap_cpu_to_le64(x) x ++ ++/** Do nothing */ ++#define endian_convert_TxPD(x) ++/** Do nothing */ ++#define endian_convert_RxPD(x) ++#endif /* BIG_ENDIAN */ ++ ++/** Host Command ID : Function initialization */ ++#define HostCmd_CMD_FUNC_INIT 0x00a9 ++/** Host Command ID : Function shutdown */ ++#define HostCmd_CMD_FUNC_SHUTDOWN 0x00aa ++ ++/** Host Command id: SYS_INFO */ ++#define HOST_CMD_APCMD_SYS_INFO 0x00ae ++/** Host Command id: SYS_RESET */ ++#define HOST_CMD_APCMD_SYS_RESET 0x00af ++/** Host Command id: SYS_CONFIGURE */ ++#define HOST_CMD_APCMD_SYS_CONFIGURE 0x00b0 ++/** Host Command id: BSS_START */ ++#define HOST_CMD_APCMD_BSS_START 0x00b1 ++/** Host Command id: SYS_STOP */ ++#define HOST_CMD_APCMD_BSS_STOP 0x00b2 ++/** Host Command id: STA_LIST */ ++#define HOST_CMD_APCMD_STA_LIST 0x00b3 ++/** Host Command id: STA_FILTER_TABLE */ ++#define HOST_CMD_APCMD_STA_FILTER_TABLE 0x00b4 ++/** Host Command id: STA_DEAUTH */ ++#define HOST_CMD_APCMD_STA_DEAUTH 0x00b5 ++/** Host Command id: SOFT_RESET */ ++#define HOST_CMD_APCMD_SOFT_RESET 0x00d5 ++/** Host Command id: POWER_MGMT_EXT */ ++#define HOST_CMD_POWER_MGMT_EXT 0x00ef ++/** Host Command id: SLEEP_CONFIRM*/ ++#define HOST_CMD_SLEEP_CONFIRM 0x00d8 ++ ++/** TLV type : SSID */ ++#define TLV_TYPE_SSID 0x0000 ++/** TLV type : Rates */ ++#define TLV_TYPE_RATES 0x0001 ++/** TLV type : PHY DS */ ++#define TLV_TYPE_PHY_DS 0x0003 ++ ++/** TLV Id : Base id */ ++#define PROPRIETARY_TLV_BASE_ID 0x0100 ++/** TLV Id : AP_MAC_ADDRESS */ ++#define MRVL_AP_MAC_ADDRESS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 43) ++/** TLV Id : Beacon period */ ++#define MRVL_BEACON_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 44) ++/** TLV Id : Dtim period */ ++#define MRVL_DTIM_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 45) ++/** TLV Id : Basic rates */ ++#define MRVL_BASIC_RATES_TLV_ID (PROPRIETARY_TLV_BASE_ID + 46) ++/** TLV Id : Tx Power */ ++#define MRVL_TX_POWER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 47) ++/** TLV Id : Broadcast SSID control */ ++#define MRVL_BCAST_SSID_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 48) ++/** TLV Id : Preamble control */ ++#define MRVL_PREAMBLE_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 49) ++/** TLV Id : Antenna control */ ++#define MRVL_ANTENNA_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 50) ++/** TLV Id : RTS threshold */ ++#define MRVL_RTS_THRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 51) ++/** TLV Id : Radio control */ ++#define MRVL_RADIO_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 52) ++/** TLV Id : TX data rate */ ++#define MRVL_TX_DATA_RATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 53) ++/** TLV Id : Packet forward control */ ++#define MRVL_PKT_FWD_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 54) ++/** TLV Id : STA info */ ++#define MRVL_STA_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 55) ++/** TLV Id : STA MAC address filter */ ++#define MRVL_STA_MAC_ADDR_FILTER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 56) ++/** TLV Id : STA ageout timer */ ++#define MRVL_STA_AGEOUT_TIMER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 57) ++/** TLV Id : Security config */ ++#define MRVL_SECURITY_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 58) ++/** TLV Id : WEP KEY */ ++#define MRVL_WEP_KEY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 59) ++/** TLV Id : WPA Passphrase */ ++#define MRVL_WPA_PASSPHRASE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 60) ++ ++/** Action get */ ++#define ACTION_GET 0 ++/** Action set */ ++#define ACTION_SET 1 ++/** Length of ethernet address */ ++#ifndef ETH_ALEN ++#define ETH_ALEN 6 ++#endif ++ ++/** HostCmd_DS_GEN */ ++typedef struct ++{ ++ /** Command */ ++ u16 Command; ++ /** Size */ ++ u16 Size; ++ /** Sequence number */ ++ u16 SeqNum; ++ /** Result */ ++ u16 Result; ++} __ATTRIB_PACK__ HostCmd_DS_GEN; ++ ++/** Size of HostCmd_DS_GEN */ ++#define S_DS_GEN sizeof(HostCmd_DS_GEN) ++ ++/** _HostCmd_HEADER*/ ++typedef struct ++{ ++ /** Command Header : Command */ ++ u16 Command; ++ /** Command Header : Size */ ++ u16 Size; ++} __ATTRIB_PACK__ HostCmd_HEADER; ++ ++/** HostCmd_SYS_CONFIG */ ++typedef struct _HostCmd_SYS_CONFIG ++{ ++ /** CMD Action GET/SET*/ ++ u16 Action; ++ /** Tlv buffer */ ++ u8 TlvBuffer[0]; ++} __ATTRIB_PACK__ HostCmd_SYS_CONFIG; ++ ++/** HostCmd_DS_POWER_MGMT_EXT */ ++typedef struct _HostCmd_DS_POWER_MGMT_EXT ++{ ++ /** CMD Action Get/Set*/ ++ u16 action; ++ /** power mode */ ++ u16 power_mode; ++} __ATTRIB_PACK__ HostCmd_DS_POWER_MGMT_EXT; ++ ++/** _HostCmd_DS_COMMAND*/ ++typedef struct _HostCmd_DS_COMMAND ++{ ++ ++ /** Command Header : Command */ ++ u16 Command; ++ /** Command Header : Size */ ++ u16 Size; ++ /** Command Header : Sequence number */ ++ u16 SeqNum; ++ /** Command Header : Result */ ++ u16 Result; ++ /** Command Body */ ++ union ++ { ++ HostCmd_SYS_CONFIG sys_config; ++ HostCmd_DS_POWER_MGMT_EXT pm_cfg; ++ ++ } params; ++} __ATTRIB_PACK__ HostCmd_DS_COMMAND; ++ ++/** MrvlIEtypesHeader_*/ ++typedef struct _MrvlIEtypesHeader ++{ ++ /** Header type */ ++ u16 Type; ++ /** Header length */ ++ u16 Len; ++} __ATTRIB_PACK__ MrvlIEtypesHeader_t; ++ ++/** MrvlIEtypes_Data_t */ ++typedef struct _MrvlIEtypes_Data_t ++{ ++ /** Header */ ++ MrvlIEtypesHeader_t Header; ++ /** Data */ ++ u8 Data[1]; ++} __ATTRIB_PACK__ MrvlIEtypes_Data_t; ++ ++/** MrvlIEtypes_ChanListParamSet_t */ ++typedef struct _MrvlIEtypes_MacAddr_t ++{ ++ /** Header */ ++ MrvlIEtypesHeader_t Header; ++ /** AP MAC address */ ++ u8 ApMacAddr[ETH_ALEN]; ++} __ATTRIB_PACK__ MrvlIEtypes_MacAddr_t; ++ ++/** Event ID: BSS started */ ++#define MICRO_AP_EV_ID_BSS_START 46 ++ ++/** Event ID: BSS idle event */ ++#define MICRO_AP_EV_BSS_IDLE 67 ++ ++/** Event ID: BSS active event */ ++#define MICRO_AP_EV_BSS_ACTIVE 68 ++ ++/** Event ID: PS_AWAKE */ ++#define EVENT_PS_AWAKE 0x0a ++ ++/** Event ID: PS_SLEEP */ ++#define EVENT_PS_SLEEP 0x0b ++ ++/** PS_STATE */ ++typedef enum _PS_STATE ++{ ++ PS_STATE_AWAKE, ++ PS_STATE_PRE_SLEEP, ++ PS_STATE_SLEEP ++} PS_STATE; ++ ++/** TLV type: AP Sleep param */ ++#define TLV_TYPE_AP_SLEEP_PARAM (PROPRIETARY_TLV_BASE_ID + 106) ++/** TLV type: AP Inactivity Sleep param */ ++#define TLV_TYPE_AP_INACT_SLEEP_PARAM (PROPRIETARY_TLV_BASE_ID + 107) ++ ++/** MrvlIEtypes_sleep_param_t */ ++typedef struct _MrvlIEtypes_sleep_param_t ++{ ++ /** Header */ ++ MrvlIEtypesHeader_t header; ++ /** control bitmap */ ++ u32 ctrl_bitmap; ++ /** min_sleep */ ++ u32 min_sleep; ++ /** max_sleep */ ++ u32 max_sleep; ++} __ATTRIB_PACK__ MrvlIEtypes_sleep_param_t; ++ ++/** MrvlIEtypes_inact_sleep_param_t */ ++typedef struct _MrvlIEtypes_inact_sleep_param_t ++{ ++ /** Header */ ++ MrvlIEtypesHeader_t header; ++ /** inactivity timeout */ ++ u32 inactivity_to; ++ /** min_awake */ ++ u32 min_awake; ++ /** max_awake */ ++ u32 max_awake; ++} __ATTRIB_PACK__ MrvlIEtypes_inact_sleep_param_t; ++ ++/** AP_Event */ ++typedef struct _AP_Event ++{ ++ /** Event ID */ ++ u32 EventId; ++ /* ++ * Reserved for STA_ASSOCIATED event and contains ++ * status information for the MIC_COUNTERMEASURES event. ++ */ ++ /** Reserved/status */ ++ u16 status; ++ /** AP MAC address */ ++ u8 MacAddr[ETH_ALEN]; ++} __ATTRIB_PACK__ AP_Event; ++#endif /* _UAP_FW_H */ +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_headers.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_headers.h +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_headers.h 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_headers.h 2012-07-31 14:23:04.000000000 +0200 +@@ -0,0 +1,64 @@ ++/** @file uap_headers.h ++ * ++ * @brief This file contains all the necessary include file. ++ * ++ * Copyright (C) 2008-2009, Marvell International Ltd. ++ * ++ * This software file (the "File") is distributed by Marvell International ++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 ++ * (the "License"). You may use, redistribute and/or modify this File in ++ * accordance with the terms and conditions of the License, a copy of which ++ * is available along with the File in the gpl.txt file or by writing to ++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. ++ * ++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ++ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about ++ * this warranty disclaimer. ++ * ++ */ ++#ifndef _UAP_HEADERS_H ++#define _UAP_HEADERS_H ++ ++/* Linux header files */ ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/init.h> ++#include <linux/version.h> ++#include <linux/param.h> ++#include <linux/types.h> ++#include <linux/interrupt.h> ++#include <linux/proc_fs.h> ++#include <linux/kthread.h> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) ++#include <linux/semaphore.h> ++#else ++#include <asm/semaphore.h> ++#endif ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) ++#include <linux/config.h> ++#endif ++ ++/* Net header files */ ++#include <linux/netdevice.h> ++#include <linux/net.h> ++#include <linux/skbuff.h> ++#include <linux/if_ether.h> ++#include <linux/etherdevice.h> ++#include <net/sock.h> ++#include <linux/netlink.h> ++#include <linux/firmware.h> ++#include <linux/delay.h> ++ ++#include "uap_drv.h" ++#include "uap_fw.h" ++ ++#include <linux/mmc/sdio.h> ++#include <linux/mmc/sdio_ids.h> ++#include <linux/mmc/sdio_func.h> ++#include <linux/mmc/card.h> ++#include "uap_sdio_mmc.h" ++ ++#endif /* _UAP_HEADERS_H */ +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_main.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_main.c +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_main.c 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_main.c 2012-07-31 14:25:28.473230753 +0200 +@@ -0,0 +1,1815 @@ ++/** @file uap_main.c ++ * @brief This file contains the major functions in uAP ++ * driver. It includes init, exit etc.. ++ * This file also contains the initialization for SW, ++ * FW and HW ++ * ++ * Copyright (C) 2008-2009, Marvell International Ltd. ++ * ++ * This software file (the "File") is distributed by Marvell International ++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 ++ * (the "License"). You may use, redistribute and/or modify this File in ++ * accordance with the terms and conditions of the License, a copy of which ++ * is available along with the File in the gpl.txt file or by writing to ++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. ++ * ++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ++ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about ++ * this warranty disclaimer. ++ * ++ */ ++/** ++ * @mainpage uAP Linux Driver ++ * ++ * @section overview_sec Overview ++ * ++ * This is Linux reference driver for Marvell uAP. ++ * ++ * @section copyright_sec Copyright ++ * ++ * Copyright (C) 2008, Marvell International Ltd. ++ * ++ */ ++ ++#include "uap_headers.h" ++ ++/** ++ * the global variable of a pointer to uap_private ++ * structure variable ++ */ ++uap_private *uappriv = NULL; ++#ifdef DEBUG_LEVEL1 ++#define DEFAULT_DEBUG_MASK (DBG_MSG | DBG_FATAL | DBG_ERROR) ++u32 drvdbg = DEFAULT_DEBUG_MASK; ++#endif ++/** Helper name */ ++char *helper_name = NULL; ++/** Firmware name */ ++char *fw_name = NULL; ++ ++/** Semaphore for add/remove card */ ++SEMAPHORE AddRemoveCardSem; ++ ++/******************************************************** ++ Local Functions ++********************************************************/ ++/** ++ * @brief This function send sleep confirm command to firmware ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE ++ */ ++static int ++uap_dnld_sleep_confirm_cmd(uap_private * priv) ++{ ++ uap_adapter *Adapter = priv->adapter; ++ int ret = UAP_STATUS_SUCCESS; ++ ENTER(); ++ PRINTM(CMND, "Sleep confirm\n"); ++ Adapter->cmd_pending = TRUE; ++ Adapter->cmd_wait_option = HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM; ++ ret = ++ sbi_host_to_card(priv, (u8 *) & Adapter->PSConfirmSleep, ++ sizeof(PS_CMD_ConfirmSleep)); ++ if (ret != UAP_STATUS_SUCCESS) { ++ Adapter->ps_state = PS_STATE_AWAKE; ++ Adapter->cmd_pending = FALSE; ++ Adapter->cmd_wait_option = FALSE; ++ } ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function process sleep confirm resp from firmware ++ * ++ * @param priv A pointer to uap_private structure ++ * @param resp A pointer to resp buf ++ * @param resp_len resp buf len ++ * @return UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE ++ */ ++int ++uap_process_sleep_confirm_resp(uap_private * priv, u8 * resp, int resp_len) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ HostCmd_DS_COMMAND *cmd; ++ uap_adapter *Adapter = priv->adapter; ++ ENTER(); ++ PRINTM(CMND, "Sleep confirm resp\n"); ++ if (!resp_len) { ++ PRINTM(ERROR, "Cmd Size is 0\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ cmd = (HostCmd_DS_COMMAND *) resp; ++ cmd->Result = uap_le16_to_cpu(cmd->Result); ++ if (cmd->Result != UAP_STATUS_SUCCESS) { ++ PRINTM(ERROR, "HOST_CMD_APCMD_PS_SLEEP_CONFIRM fail=%x\n", cmd->Result); ++ ret = -EFAULT; ++ } ++ done: ++ if (ret == UAP_STATUS_SUCCESS) ++ Adapter->ps_state = PS_STATE_SLEEP; ++ else ++ Adapter->ps_state = PS_STATE_AWAKE; ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function checks condition and prepares to ++ * send sleep confirm command to firmware if OK. ++ * ++ * @param priv A pointer to uap_private structure ++ * @return n/a ++ */ ++static void ++uap_ps_cond_check(uap_private * priv) ++{ ++ uap_adapter *Adapter = priv->adapter; ++ ++ ENTER(); ++ if (!priv->uap_dev.cmd_sent && ++ !Adapter->cmd_pending && !Adapter->IntCounter) { ++ uap_dnld_sleep_confirm_cmd(priv); ++ } else { ++ PRINTM(INFO, "Delay Sleep Confirm (%s%s%s)\n", ++ (priv->uap_dev.cmd_sent) ? "D" : "", ++ (Adapter->cmd_pending) ? "C" : "", ++ (Adapter->IntCounter) ? "I" : ""); ++ } ++ LEAVE(); ++} ++ ++/** ++ * @brief This function add cmd to cmdQ and waiting for response ++ * ++ * @param priv A pointer to uap_private structure ++ * @param skb A pointer to the skb for process ++ * @param wait_option Wait option ++ * @return UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE ++ */ ++static int ++uap_process_cmd(uap_private * priv, struct sk_buff *skb, u8 wait_option) ++{ ++ uap_adapter *Adapter = priv->adapter; ++ int ret = UAP_STATUS_SUCCESS; ++ HostCmd_DS_COMMAND *cmd; ++ u8 *headptr; ++ ENTER(); ++ if (Adapter->HardwareStatus != HWReady) { ++ PRINTM(ERROR, "Hw not ready, uap_process_cmd\n"); ++ kfree(skb); ++ LEAVE(); ++ return -EFAULT; ++ } ++ skb->cb[0] = wait_option; ++ headptr = skb->data; ++ *(u16 *) & headptr[0] = uap_cpu_to_le16(skb->len); ++ *(u16 *) & headptr[2] = uap_cpu_to_le16(MV_TYPE_CMD); ++ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN); ++ Adapter->SeqNum++; ++ cmd->SeqNum = uap_cpu_to_le16(Adapter->SeqNum); ++ PRINTM(CMND, "process_cmd: %x\n", cmd->Command); ++ DBG_HEXDUMP(CMD_D, "process_cmd", (u8 *) cmd, cmd->Size); ++ if (!wait_option) { ++ skb_queue_tail(&priv->adapter->cmd_queue, skb); ++ wake_up_interruptible(&priv->MainThread.waitQ); ++ LEAVE(); ++ return ret; ++ } ++ if (OS_ACQ_SEMAPHORE_BLOCK(&Adapter->CmdSem)) { ++ PRINTM(ERROR, "Acquire semaphore error, uap_prepare_cmd\n"); ++ kfree(skb); ++ LEAVE(); ++ return -EBUSY; ++ } ++ skb_queue_tail(&priv->adapter->cmd_queue, skb); ++ Adapter->CmdWaitQWoken = FALSE; ++ wake_up_interruptible(&priv->MainThread.waitQ); ++ /* Sleep until response is generated by FW */ ++ if (wait_option == HostCmd_OPTION_WAITFORRSP_TIMEOUT) { ++ if (!os_wait_interruptible_timeout ++ (Adapter->cmdwait_q, Adapter->CmdWaitQWoken, MRVDRV_TIMER_20S)) { ++ PRINTM(ERROR, "Cmd timeout\n"); ++ Adapter->cmd_pending = FALSE; ++ ret = -EFAULT; ++ } ++ } else ++ wait_event_interruptible(Adapter->cmdwait_q, Adapter->CmdWaitQWoken); ++ OS_REL_SEMAPHORE(&Adapter->CmdSem); ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief Inspect the response buffer for pointers to expected TLVs ++ * ++ * ++ * @param pTlv Pointer to the start of the TLV buffer to parse ++ * @param tlvBufSize Size of the TLV buffer ++ * @param reqTlvType request tlv's tlvtype ++ * @param ppTlv Output parameter: Pointer to the request TLV if found ++ * ++ * @return void ++ */ ++static void ++uap_get_tlv_ptrs(MrvlIEtypes_Data_t * pTlv, int tlvBufSize, ++ u16 reqTlvType, MrvlIEtypes_Data_t ** ppTlv) ++{ ++ MrvlIEtypes_Data_t *pCurrentTlv; ++ int tlvBufLeft; ++ u16 tlvType; ++ u16 tlvLen; ++ ++ ENTER(); ++ pCurrentTlv = pTlv; ++ tlvBufLeft = tlvBufSize; ++ *ppTlv = NULL; ++ PRINTM(INFO, "uap_get_tlv: tlvBufSize = %d, reqTlvType=%x\n", tlvBufSize, ++ reqTlvType); ++ while (tlvBufLeft >= sizeof(MrvlIEtypesHeader_t)) { ++ tlvType = uap_le16_to_cpu(pCurrentTlv->Header.Type); ++ tlvLen = uap_le16_to_cpu(pCurrentTlv->Header.Len); ++ if (reqTlvType == tlvType) ++ *ppTlv = (MrvlIEtypes_Data_t *) pCurrentTlv; ++ if (*ppTlv) { ++ HEXDUMP("TLV Buf", (u8 *) * ppTlv, tlvLen); ++ break; ++ } ++ tlvBufLeft -= (sizeof(pTlv->Header) + tlvLen); ++ pCurrentTlv = (MrvlIEtypes_Data_t *) (pCurrentTlv->Data + tlvLen); ++ } /* while */ ++ LEAVE(); ++} ++ ++/** ++ * @brief This function get mac ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS on success, otherwise failure code ++ */ ++static int ++uap_get_mac_address(uap_private * priv) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ u32 CmdSize; ++ HostCmd_DS_COMMAND *cmd; ++ uap_adapter *Adapter = priv->adapter; ++ struct sk_buff *skb; ++ MrvlIEtypes_MacAddr_t *pMacAddrTlv; ++ MrvlIEtypes_Data_t *pTlv; ++ u16 tlvBufSize; ++ ENTER(); ++ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); ++ if (!skb) { ++ PRINTM(ERROR, "No free skb\n"); ++ ret = -ENOMEM; ++ goto done; ++ } ++ CmdSize = ++ S_DS_GEN + sizeof(HostCmd_SYS_CONFIG) + sizeof(MrvlIEtypes_MacAddr_t); ++ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN); ++ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SYS_CONFIGURE); ++ cmd->Size = uap_cpu_to_le16(CmdSize); ++ cmd->params.sys_config.Action = uap_cpu_to_le16(ACTION_GET); ++ pMacAddrTlv = ++ (MrvlIEtypes_MacAddr_t *) (skb->data + INTF_HEADER_LEN + S_DS_GEN + ++ sizeof(HostCmd_SYS_CONFIG)); ++ pMacAddrTlv->Header.Type = uap_cpu_to_le16(MRVL_AP_MAC_ADDRESS_TLV_ID); ++ pMacAddrTlv->Header.Len = uap_cpu_to_le16(ETH_ALEN); ++ skb_put(skb, CmdSize + INTF_HEADER_LEN); ++ if (UAP_STATUS_SUCCESS != ++ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) { ++ PRINTM(ERROR, "Fail to process cmd SYS_CONFIGURE Query\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ if (!Adapter->CmdSize) { ++ PRINTM(ERROR, "Cmd Size is 0\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf; ++ cmd->Result = uap_le16_to_cpu(cmd->Result); ++ if (cmd->Result != UAP_STATUS_SUCCESS) { ++ PRINTM(ERROR, "uap_get_mac_address fail=%x\n", cmd->Result); ++ ret = -EFAULT; ++ goto done; ++ } ++ pTlv = ++ (MrvlIEtypes_Data_t *) (Adapter->CmdBuf + S_DS_GEN + ++ sizeof(HostCmd_SYS_CONFIG)); ++ tlvBufSize = Adapter->CmdSize - S_DS_GEN - sizeof(HostCmd_SYS_CONFIG); ++ uap_get_tlv_ptrs(pTlv, tlvBufSize, MRVL_AP_MAC_ADDRESS_TLV_ID, ++ (MrvlIEtypes_Data_t **) & pMacAddrTlv); ++ if (pMacAddrTlv) { ++ memcpy(priv->uap_dev.netdev->dev_addr, pMacAddrTlv->ApMacAddr, ++ ETH_ALEN); ++ HEXDUMP("Original MAC addr", priv->uap_dev.netdev->dev_addr, ETH_ALEN); ++ } ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function checks the conditions and sends packet to device ++ * ++ * @param priv A pointer to uap_private structure ++ * @param skb A pointer to the skb for process ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++uap_process_tx(uap_private * priv, struct sk_buff *skb) ++{ ++ uap_adapter *Adapter = priv->adapter; ++ int ret = UAP_STATUS_SUCCESS; ++ TxPD *pLocalTxPD; ++ u8 *headptr; ++ struct sk_buff *newskb; ++ int newheadlen; ++ ENTER(); ++ ASSERT(skb); ++ if (!skb) { ++ LEAVE(); ++ return UAP_STATUS_FAILURE; ++ } ++ if (skb_headroom(skb) < (sizeof(TxPD) + INTF_HEADER_LEN + HEADER_ALIGNMENT)) { ++ newheadlen = sizeof(TxPD) + INTF_HEADER_LEN + HEADER_ALIGNMENT; ++ PRINTM(WARN, "Tx: Insufficient skb headroom %d\n", skb_headroom(skb)); ++ /* Insufficient skb headroom - allocate a new skb */ ++ newskb = skb_realloc_headroom(skb, newheadlen); ++ if (unlikely(newskb == NULL)) { ++ PRINTM(ERROR, "Tx: Cannot allocate skb\n"); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ kfree_skb(skb); ++ skb = newskb; ++ PRINTM(INFO, "new skb headroom %d\n", skb_headroom(skb)); ++ } ++ /* headptr should be aligned */ ++ headptr = skb->data - sizeof(TxPD) - INTF_HEADER_LEN; ++ headptr = (u8 *) ((u32) headptr & ~((u32) (HEADER_ALIGNMENT - 1))); ++ ++ pLocalTxPD = (TxPD *) (headptr + INTF_HEADER_LEN); ++ memset(pLocalTxPD, 0, sizeof(TxPD)); ++ pLocalTxPD->BssType = PKT_TYPE_MICROAP; ++ pLocalTxPD->TxPktLength = skb->len; ++ /* offset of actual data */ ++ pLocalTxPD->TxPktOffset = (long) skb->data - (long) pLocalTxPD; ++ endian_convert_TxPD(pLocalTxPD); ++ *(u16 *) & headptr[0] = ++ uap_cpu_to_le16(skb->len + ((long) skb->data - (long) headptr)); ++ *(u16 *) & headptr[2] = uap_cpu_to_le16(MV_TYPE_DAT); ++ ret = ++ sbi_host_to_card(priv, headptr, ++ skb->len + ((long) skb->data - (long) headptr)); ++ if (ret) { ++ PRINTM(ERROR, "uap_process_tx Error: sbi_host_to_card failed: 0x%X\n", ++ ret); ++ Adapter->dbg.num_tx_host_to_card_failure++; ++ goto done; ++ } ++ PRINTM(DATA, "Data => FW\n"); ++ DBG_HEXDUMP(DAT_D, "Tx", headptr, ++ MIN(skb->len + sizeof(TxPD), DATA_DUMP_LEN)); ++ done: ++ /* Freed skb */ ++ kfree_skb(skb); ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function initializes the adapter structure ++ * and set default value to the member of adapter. ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++uap_init_sw(uap_private * priv) ++{ ++ uap_adapter *Adapter = priv->adapter; ++ ++ ENTER(); ++ ++ if (!(Adapter->CmdBuf = kmalloc(MRVDRV_SIZE_OF_CMD_BUFFER, GFP_KERNEL))) { ++ PRINTM(INFO, "Failed to allocate command buffer!\n"); ++ LEAVE(); ++ return UAP_STATUS_FAILURE; ++ } ++ ++ Adapter->cmd_pending = FALSE; ++ Adapter->CmdWaitQWoken = FALSE; ++ Adapter->ps_state = PS_STATE_AWAKE; ++ Adapter->WakeupTries = 0; ++ ++ memset(&Adapter->PSConfirmSleep, 0, sizeof(PS_CMD_ConfirmSleep)); ++ /** SDIO header */ ++ Adapter->PSConfirmSleep.SDLen = ++ uap_cpu_to_le16(sizeof(PS_CMD_ConfirmSleep)); ++ Adapter->PSConfirmSleep.SDType = uap_cpu_to_le16(MV_TYPE_CMD); ++ Adapter->PSConfirmSleep.SeqNum = 0; ++ Adapter->PSConfirmSleep.Command = uap_cpu_to_le16(HOST_CMD_SLEEP_CONFIRM); ++ Adapter->PSConfirmSleep.Size = uap_cpu_to_le16(sizeof(HostCmd_DS_GEN)); ++ Adapter->PSConfirmSleep.Result = 0; ++ ++ init_waitqueue_head(&Adapter->cmdwait_q); ++ OS_INIT_SEMAPHORE(&Adapter->CmdSem); ++ ++ skb_queue_head_init(&Adapter->tx_queue); ++ skb_queue_head_init(&Adapter->cmd_queue); ++ ++ /* Status variable */ ++ Adapter->HardwareStatus = HWInitializing; ++ ++ /* PnP support */ ++ Adapter->SurpriseRemoved = FALSE; ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) ++ Adapter->nl_sk = netlink_kernel_create(NETLINK_MARVELL, ++ NL_MULTICAST_GROUP, NULL, ++ THIS_MODULE); ++#else ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) ++ Adapter->nl_sk = netlink_kernel_create(NETLINK_MARVELL, ++ NL_MULTICAST_GROUP, NULL, NULL, ++ THIS_MODULE); ++#else ++ Adapter->nl_sk = netlink_kernel_create(&init_net, NETLINK_MARVELL, ++ NL_MULTICAST_GROUP, NULL, NULL, ++ THIS_MODULE); ++#endif ++#endif ++ if (!Adapter->nl_sk) { ++ PRINTM(ERROR, ++ "Could not initialize netlink event passing mechanism!\n"); ++ } ++ LEAVE(); ++ return UAP_STATUS_SUCCESS; ++} ++ ++/** ++ * @brief This function sends FUNC_INIT command to firmware ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS on success, otherwise failure code ++ */ ++static int ++uap_func_init(uap_private * priv) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ u32 CmdSize; ++ HostCmd_DS_GEN *cmd; ++ uap_adapter *Adapter = priv->adapter; ++ struct sk_buff *skb; ++ ENTER(); ++ if (Adapter->HardwareStatus != HWReady) { ++ PRINTM(ERROR, "uap_func_init:Hardware is not ready!\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); ++ if (!skb) { ++ PRINTM(ERROR, "No free skb\n"); ++ ret = -ENOMEM; ++ goto done; ++ } ++ CmdSize = sizeof(HostCmd_DS_GEN); ++ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN); ++ cmd->Command = uap_cpu_to_le16(HostCmd_CMD_FUNC_INIT); ++ cmd->Size = uap_cpu_to_le16(CmdSize); ++ skb_put(skb, CmdSize + INTF_HEADER_LEN); ++ PRINTM(CMND, "HostCmd_CMD_FUNC_INIT\n"); ++ if (UAP_STATUS_SUCCESS != ++ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) { ++ PRINTM(ERROR, "Fail to process cmd HostCmd_CMD_FUNC_INIT\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function sends FUNC_SHUTDOWN command to firmware ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS on success, otherwise failure code ++ */ ++static int __exit ++uap_func_shutdown(uap_private * priv) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ u32 CmdSize; ++ HostCmd_DS_GEN *cmd; ++ uap_adapter *Adapter = priv->adapter; ++ struct sk_buff *skb; ++ ENTER(); ++ if (Adapter->HardwareStatus != HWReady) { ++ PRINTM(ERROR, "uap_func_shutdown:Hardware is not ready!\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); ++ if (!skb) { ++ PRINTM(ERROR, "No free skb\n"); ++ ret = -ENOMEM; ++ goto done; ++ } ++ CmdSize = sizeof(HostCmd_DS_GEN); ++ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN); ++ cmd->Command = uap_cpu_to_le16(HostCmd_CMD_FUNC_SHUTDOWN); ++ cmd->Size = uap_cpu_to_le16(CmdSize); ++ skb_put(skb, CmdSize + INTF_HEADER_LEN); ++ PRINTM(CMND, "HostCmd_CMD_FUNC_SHUTDOWN\n"); ++ if (UAP_STATUS_SUCCESS != ++ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) { ++ PRINTM(ERROR, "Fail to process cmd HostCmd_CMD_FUNC_SHUTDOWN\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function initializes firmware ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++uap_init_fw(uap_private * priv) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ ENTER(); ++ sbi_disable_host_int(priv); ++ /* Check if firmware is already running */ ++ if (sbi_check_fw_status(priv, 1) == UAP_STATUS_SUCCESS) { ++ PRINTM(MSG, "UAP FW already running! Skip FW download\n"); ++ } else { ++ if ((ret = request_firmware(&priv->fw_helper, helper_name, ++ priv->hotplug_device)) < 0) { ++ PRINTM(FATAL, ++ "request_firmware() failed (helper), error code = %#x\n", ++ ret); ++ goto done; ++ } ++ ++ /* Download the helper */ ++ ret = sbi_prog_helper(priv); ++ ++ if (ret) { ++ PRINTM(FATAL, ++ "Bootloader in invalid state! Helper download failed!\n"); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ if ((ret = request_firmware(&priv->firmware, fw_name, ++ priv->hotplug_device)) < 0) { ++ PRINTM(FATAL, "request_firmware() failed, error code = %#x\n", ret); ++ goto done; ++ } ++ ++ /* Download the main firmware via the helper firmware */ ++ if (sbi_prog_fw_w_helper(priv)) { ++ PRINTM(FATAL, "UAP FW download failed!\n"); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ /* Check if the firmware is downloaded successfully or not */ ++ if (sbi_check_fw_status(priv, MAX_FIRMWARE_POLL_TRIES) == ++ UAP_STATUS_FAILURE) { ++ PRINTM(FATAL, "FW failed to be active in time!\n"); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ PRINTM(MSG, "UAP FW is active\n"); ++ } ++ sbi_enable_host_int(priv); ++ priv->adapter->HardwareStatus = HWReady; ++ if (uap_func_init(priv) != UAP_STATUS_SUCCESS) { ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ done: ++ if (priv->fw_helper) ++ release_firmware(priv->fw_helper); ++ if (priv->firmware) ++ release_firmware(priv->firmware); ++ LEAVE(); ++ return ret; ++ ++} ++ ++/** ++ * @brief This function frees the structure of adapter ++ * ++ * @param priv A pointer to uap_private structure ++ * @return n/a ++ */ ++static void ++uap_free_adapter(uap_private * priv) ++{ ++ uap_adapter *Adapter = priv->adapter; ++ ++ ENTER(); ++ ++ if (Adapter) { ++ if ((Adapter->nl_sk) && ((Adapter->nl_sk)->sk_socket)) { ++ sock_release((Adapter->nl_sk)->sk_socket); ++ Adapter->nl_sk = NULL; ++ } ++ if (Adapter->CmdBuf) ++ kfree(Adapter->CmdBuf); ++ skb_queue_purge(&priv->adapter->tx_queue); ++ skb_queue_purge(&priv->adapter->cmd_queue); ++ /* Free the adapter object itself */ ++ kfree(Adapter); ++ priv->adapter = NULL; ++ } ++ ++ LEAVE(); ++} ++ ++/** ++ * @brief This function handles the major job in uap driver. ++ * it handles the event generated by firmware, rx data received ++ * from firmware and tx data sent from kernel. ++ * ++ * @param data A pointer to uap_thread structure ++ * @return BT_STATUS_SUCCESS ++ */ ++static int ++uap_service_main_thread(void *data) ++{ ++ uap_thread *thread = data; ++ uap_private *priv = thread->priv; ++ uap_adapter *Adapter = priv->adapter; ++ wait_queue_t wait; ++ u8 ireg = 0; ++ struct sk_buff *skb; ++ ENTER(); ++ uap_activate_thread(thread); ++ init_waitqueue_entry(&wait, current); ++ current->flags |= PF_NOFREEZE; ++ ++ for (;;) { ++ add_wait_queue(&thread->waitQ, &wait); ++ OS_SET_THREAD_STATE(TASK_INTERRUPTIBLE); ++ if ((Adapter->WakeupTries) || ++ (!Adapter->IntCounter && Adapter->ps_state == PS_STATE_PRE_SLEEP) || ++ (!priv->adapter->IntCounter ++ && (priv->uap_dev.data_sent || ++ skb_queue_empty(&priv->adapter->tx_queue)) ++ && (priv->uap_dev.cmd_sent || Adapter->cmd_pending || ++ skb_queue_empty(&priv->adapter->cmd_queue)) ++ )) { ++ PRINTM(INFO, "Main: Thread sleeping...\n"); ++ schedule(); ++ } ++ OS_SET_THREAD_STATE(TASK_RUNNING); ++ remove_wait_queue(&thread->waitQ, &wait); ++ if (kthread_should_stop() || Adapter->SurpriseRemoved) { ++ PRINTM(INFO, "main-thread: break from main thread: " ++ "SurpriseRemoved=0x%x\n", Adapter->SurpriseRemoved); ++ /* Cancel pending command */ ++ if (Adapter->cmd_pending == TRUE) { ++ /* Wake up cmd Q */ ++ Adapter->CmdWaitQWoken = TRUE; ++ wake_up_interruptible(&Adapter->cmdwait_q); ++ } ++ break; ++ } ++ ++ PRINTM(INFO, "Main: Thread waking up...\n"); ++ if (priv->adapter->IntCounter) { ++ OS_INT_DISABLE; ++ Adapter->IntCounter = 0; ++ OS_INT_RESTORE; ++ sbi_get_int_status(priv, &ireg); ++ } else if ((priv->adapter->ps_state == PS_STATE_SLEEP) && ++ (!skb_queue_empty(&priv->adapter->cmd_queue) || ++ !skb_queue_empty(&priv->adapter->tx_queue))) { ++ priv->adapter->WakeupTries++; ++ PRINTM(CMND, "%lu : Wakeup device...\n", os_time_get()); ++ sbi_wakeup_firmware(priv); ++ continue; ++ } ++ if (Adapter->ps_state == PS_STATE_PRE_SLEEP) ++ uap_ps_cond_check(priv); ++ ++ /* The PS state is changed during processing of Sleep Request event ++ above */ ++ if ((Adapter->ps_state == PS_STATE_SLEEP) || ++ (Adapter->ps_state == PS_STATE_PRE_SLEEP)) ++ continue; ++ /* Execute the next command */ ++ if (!priv->uap_dev.cmd_sent && !Adapter->cmd_pending && ++ (Adapter->HardwareStatus == HWReady)) { ++ if (!skb_queue_empty(&priv->adapter->cmd_queue)) { ++ skb = skb_dequeue(&priv->adapter->cmd_queue); ++ if (skb) { ++ Adapter->CmdSize = 0; ++ Adapter->cmd_pending = TRUE; ++ Adapter->cmd_wait_option = skb->cb[0]; ++ if (sbi_host_to_card(priv, skb->data, skb->len)) { ++ PRINTM(ERROR, "Cmd:sbi_host_to_card failed!\n"); ++ Adapter->cmd_pending = FALSE; ++ Adapter->dbg.num_cmd_host_to_card_failure++; ++ /* Wake up cmd Q */ ++ Adapter->CmdWaitQWoken = TRUE; ++ wake_up_interruptible(&Adapter->cmdwait_q); ++ } else { ++ if (Adapter->cmd_wait_option == ++ HostCmd_OPTION_WAITFORSEND) { ++ /* Wake up cmd Q */ ++ Adapter->CmdWaitQWoken = TRUE; ++ wake_up_interruptible(&Adapter->cmdwait_q); ++ Adapter->cmd_wait_option = FALSE; ++ } ++ } ++ kfree_skb(skb); ++ } ++ } ++ } ++ if (!priv->uap_dev.data_sent && (Adapter->HardwareStatus == HWReady)) { ++ if (!skb_queue_empty(&priv->adapter->tx_queue)) { ++ skb = skb_dequeue(&priv->adapter->tx_queue); ++ if (skb) { ++ if (uap_process_tx(priv, skb)) { ++ priv->stats.tx_dropped++; ++ priv->stats.tx_errors++; ++ os_start_queue(priv); ++ } else { ++ priv->stats.tx_packets++; ++ priv->stats.tx_bytes += skb->len; ++ } ++ ++ } ++ } ++ } ++ } ++ uap_deactivate_thread(thread); ++ LEAVE(); ++ return UAP_STATUS_SUCCESS; ++} ++ ++/** ++ * @brief uap hostcmd ioctl handler ++ * ++ * @param dev A pointer to net_device structure ++ * @param req A pointer to ifreq structure ++ * @return UAP_STATUS_SUCCESS --success, otherwise fail ++ */ ++/********* format of ifr_data *************/ ++/* buf_len + Hostcmd_body */ ++/* buf_len: 4 bytes */ ++/* the length of the buf which */ ++/* can be used to return data */ ++/* to application */ ++/* Hostcmd_body */ ++/*******************************************/ ++static int ++uap_hostcmd_ioctl(struct net_device *dev, struct ifreq *req) ++{ ++ u32 buf_len; ++ HostCmd_HEADER head; ++ uap_private *priv = (uap_private *) netdev_priv(dev); ++ uap_adapter *Adapter = priv->adapter; ++ int ret = UAP_STATUS_SUCCESS; ++ struct sk_buff *skb; ++ ++ ENTER(); ++ ++ /* Sanity check */ ++ if (req->ifr_data == NULL) { ++ PRINTM(ERROR, "uap_hostcmd_ioctl() corrupt data\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ if (copy_from_user(&buf_len, req->ifr_data, sizeof(buf_len))) { ++ PRINTM(ERROR, "Copy from user failed\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ memset(&head, 0, sizeof(HostCmd_HEADER)); ++ /* Get the command size from user space */ ++ if (copy_from_user ++ (&head, req->ifr_data + sizeof(buf_len), sizeof(HostCmd_HEADER))) { ++ PRINTM(ERROR, "Copy from user failed\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ head.Size = uap_le16_to_cpu(head.Size); ++ if (head.Size > MRVDRV_SIZE_OF_CMD_BUFFER) { ++ PRINTM(ERROR, "CmdSize too big=%d\n", head.Size); ++ LEAVE(); ++ return -EFAULT; ++ } ++ PRINTM(CMND, "ioctl: hostcmd=%x, size=%d,buf_len=%d\n", head.Command, ++ head.Size, buf_len); ++ skb = dev_alloc_skb(head.Size + INTF_HEADER_LEN); ++ if (!skb) { ++ PRINTM(ERROR, "No free skb\n"); ++ LEAVE(); ++ return -ENOMEM; ++ } ++ ++ /* Get the command from user space */ ++ if (copy_from_user ++ (skb->data + INTF_HEADER_LEN, req->ifr_data + sizeof(buf_len), ++ head.Size)) { ++ PRINTM(ERROR, "Copy from user failed\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ skb_put(skb, head.Size + INTF_HEADER_LEN); ++ if (UAP_STATUS_SUCCESS != ++ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP)) { ++ PRINTM(ERROR, "Fail to process cmd\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ if (!Adapter->CmdSize) { ++ PRINTM(ERROR, "Cmd Size is 0\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ if (Adapter->CmdSize > buf_len) { ++ PRINTM(ERROR, "buf_len is too small\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ /* Copy to user */ ++ if (copy_to_user ++ (req->ifr_data + sizeof(buf_len), Adapter->CmdBuf, Adapter->CmdSize)) { ++ PRINTM(ERROR, "Copy to user failed!\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief uap power mode ioctl handler ++ * ++ * @param dev A pointer to net_device structure ++ * @param req A pointer to ifreq structure ++ * @return UAP_STATUS_SUCCESS --success, otherwise fail ++ */ ++static int ++uap_power_mode_ioctl(struct net_device *dev, struct ifreq *req) ++{ ++ ps_mgmt pm_cfg; ++ int ret = UAP_STATUS_SUCCESS; ++ uap_private *priv = (uap_private *) netdev_priv(dev); ++ uap_adapter *Adapter = priv->adapter; ++ struct sk_buff *skb = NULL; ++ HostCmd_DS_COMMAND *cmd; ++ u32 CmdSize; ++ u8 *tlv = NULL; ++ MrvlIEtypes_sleep_param_t *sleep_tlv = NULL; ++ MrvlIEtypes_inact_sleep_param_t *inact_tlv = NULL; ++ u16 tlv_buf_left = 0; ++ MrvlIEtypesHeader_t *tlvbuf = NULL; ++ u16 tlv_type = 0; ++ u16 tlv_len = 0; ++ ++ ENTER(); ++ ++ /* Sanity check */ ++ if (req->ifr_data == NULL) { ++ PRINTM(ERROR, "uap_power_mode_ioctl() corrupt data\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ ++ memset(&pm_cfg, 0, sizeof(ps_mgmt)); ++ if (copy_from_user(&pm_cfg, req->ifr_data, sizeof(ps_mgmt))) { ++ PRINTM(ERROR, "Copy from user failed\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ PRINTM(CMND, ++ "ioctl power: flag=0x%x ps_mode=%d ctrl_bitmap=%d min_sleep=%d max_sleep=%d " ++ "inact_to=%d min_awake=%d max_awake=%d\n", pm_cfg.flags, ++ (int) pm_cfg.ps_mode, (int) pm_cfg.sleep_param.ctrl_bitmap, ++ (int) pm_cfg.sleep_param.min_sleep, ++ (int) pm_cfg.sleep_param.max_sleep, ++ (int) pm_cfg.inact_param.inactivity_to, ++ (int) pm_cfg.inact_param.min_awake, ++ (int) pm_cfg.inact_param.max_awake); ++ ++ if (pm_cfg. ++ flags & ~(PS_FLAG_PS_MODE | PS_FLAG_SLEEP_PARAM | ++ PS_FLAG_INACT_SLEEP_PARAM)) { ++ PRINTM(ERROR, "Invalid parameter: flags = 0x%x\n", pm_cfg.flags); ++ ret = -EINVAL; ++ goto done; ++ } ++ if (pm_cfg.ps_mode > PS_MODE_INACTIVITY) { ++ PRINTM(ERROR, "Invalid parameter: ps_mode = %d\n", (int) pm_cfg.flags); ++ ret = -EINVAL; ++ goto done; ++ } ++ ++ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); ++ if (!skb) { ++ PRINTM(INFO, "No free skb\n"); ++ ret = -ENOMEM; ++ goto done; ++ } ++ ++ CmdSize = S_DS_GEN + sizeof(HostCmd_DS_POWER_MGMT_EXT); ++ ++ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN); ++ cmd->Command = uap_cpu_to_le16(HOST_CMD_POWER_MGMT_EXT); ++ if (!pm_cfg.flags) { ++ cmd->params.pm_cfg.action = uap_cpu_to_le16(ACTION_GET); ++ } else { ++ cmd->params.pm_cfg.action = uap_cpu_to_le16(ACTION_SET); ++ cmd->params.pm_cfg.power_mode = uap_cpu_to_le16(pm_cfg.ps_mode); ++ tlv = (u8 *) & cmd->params.pm_cfg + sizeof(HostCmd_DS_POWER_MGMT_EXT); ++ ++ if ((pm_cfg.ps_mode) && (pm_cfg.flags & PS_FLAG_SLEEP_PARAM)) { ++ sleep_tlv = (MrvlIEtypes_sleep_param_t *) tlv; ++ sleep_tlv->header.Type = uap_cpu_to_le16(TLV_TYPE_AP_SLEEP_PARAM); ++ sleep_tlv->header.Len = ++ uap_cpu_to_le16(sizeof(MrvlIEtypes_sleep_param_t) - ++ sizeof(MrvlIEtypesHeader_t)); ++ sleep_tlv->ctrl_bitmap = ++ uap_cpu_to_le32(pm_cfg.sleep_param.ctrl_bitmap); ++ sleep_tlv->min_sleep = ++ uap_cpu_to_le32(pm_cfg.sleep_param.min_sleep); ++ sleep_tlv->max_sleep = ++ uap_cpu_to_le32(pm_cfg.sleep_param.max_sleep); ++ CmdSize += sizeof(MrvlIEtypes_sleep_param_t); ++ tlv += sizeof(MrvlIEtypes_sleep_param_t); ++ } ++ if ((pm_cfg.ps_mode == PS_MODE_INACTIVITY) && ++ (pm_cfg.flags & PS_FLAG_INACT_SLEEP_PARAM)) { ++ inact_tlv = (MrvlIEtypes_inact_sleep_param_t *) tlv; ++ inact_tlv->header.Type = ++ uap_cpu_to_le16(TLV_TYPE_AP_INACT_SLEEP_PARAM); ++ inact_tlv->header.Len = ++ uap_cpu_to_le16(sizeof(MrvlIEtypes_inact_sleep_param_t) - ++ sizeof(MrvlIEtypesHeader_t)); ++ inact_tlv->inactivity_to = ++ uap_cpu_to_le32(pm_cfg.inact_param.inactivity_to); ++ inact_tlv->min_awake = ++ uap_cpu_to_le32(pm_cfg.inact_param.min_awake); ++ inact_tlv->max_awake = ++ uap_cpu_to_le32(pm_cfg.inact_param.max_awake); ++ CmdSize += sizeof(MrvlIEtypes_inact_sleep_param_t); ++ tlv += sizeof(MrvlIEtypes_inact_sleep_param_t); ++ } ++ } ++ cmd->Size = uap_cpu_to_le16(CmdSize); ++ skb_put(skb, CmdSize + INTF_HEADER_LEN); ++ if (UAP_STATUS_SUCCESS != ++ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP)) { ++ PRINTM(ERROR, "Fail to process cmd POWER_MODE\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ if (!Adapter->CmdSize) { ++ PRINTM(ERROR, "Cmd Size is 0\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf; ++ cmd->Result = uap_le16_to_cpu(cmd->Result); ++ if (cmd->Result != UAP_STATUS_SUCCESS) { ++ PRINTM(ERROR, "HOST_CMD_APCMD_POWER_MODE fail=%x\n", cmd->Result); ++ ret = -EFAULT; ++ goto done; ++ } ++ if (pm_cfg.flags) { ++ Adapter->psmode = uap_le16_to_cpu(cmd->params.pm_cfg.power_mode); ++ } else { ++ pm_cfg.flags = PS_FLAG_PS_MODE; ++ pm_cfg.ps_mode = uap_le16_to_cpu(cmd->params.pm_cfg.power_mode); ++ tlv_buf_left = ++ cmd->Size - (sizeof(HostCmd_DS_POWER_MGMT_EXT) + S_DS_GEN); ++ tlvbuf = ++ (MrvlIEtypesHeader_t *) ((u8 *) & cmd->params.pm_cfg + ++ sizeof(HostCmd_DS_POWER_MGMT_EXT)); ++ while (tlv_buf_left >= sizeof(MrvlIEtypesHeader_t)) { ++ tlv_type = uap_le16_to_cpu(tlvbuf->Type); ++ tlv_len = uap_le16_to_cpu(tlvbuf->Len); ++ switch (tlv_type) { ++ case TLV_TYPE_AP_SLEEP_PARAM: ++ sleep_tlv = (MrvlIEtypes_sleep_param_t *) tlvbuf; ++ pm_cfg.flags |= PS_FLAG_SLEEP_PARAM; ++ pm_cfg.sleep_param.ctrl_bitmap = ++ uap_le32_to_cpu(sleep_tlv->ctrl_bitmap); ++ pm_cfg.sleep_param.min_sleep = ++ uap_le32_to_cpu(sleep_tlv->min_sleep); ++ pm_cfg.sleep_param.max_sleep = ++ uap_le32_to_cpu(sleep_tlv->max_sleep); ++ break; ++ case TLV_TYPE_AP_INACT_SLEEP_PARAM: ++ inact_tlv = (MrvlIEtypes_inact_sleep_param_t *) tlvbuf; ++ pm_cfg.flags |= PS_FLAG_INACT_SLEEP_PARAM; ++ pm_cfg.inact_param.inactivity_to = ++ uap_le32_to_cpu(inact_tlv->inactivity_to); ++ pm_cfg.inact_param.min_awake = ++ uap_le32_to_cpu(inact_tlv->min_awake); ++ pm_cfg.inact_param.max_awake = ++ uap_le32_to_cpu(inact_tlv->max_awake); ++ break; ++ } ++ tlv_buf_left -= tlv_len + sizeof(MrvlIEtypesHeader_t); ++ tlvbuf = ++ (MrvlIEtypesHeader_t *) ((u8 *) tlvbuf + tlv_len + ++ sizeof(MrvlIEtypesHeader_t)); ++ } ++ /* Copy to user */ ++ if (copy_to_user(req->ifr_data, &pm_cfg, sizeof(ps_mgmt))) { ++ PRINTM(ERROR, "Copy to user failed!\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ } ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function send bss_stop command to firmware ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS on success, otherwise failure code ++ */ ++static int ++uap_bss_stop(uap_private * priv) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ u32 CmdSize; ++ HostCmd_DS_GEN *cmd; ++ uap_adapter *Adapter = priv->adapter; ++ struct sk_buff *skb; ++ ENTER(); ++ if (Adapter->HardwareStatus != HWReady) { ++ PRINTM(ERROR, "uap_bss_stop:Hardware is not ready!\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); ++ if (!skb) { ++ PRINTM(ERROR, "No free skb\n"); ++ ret = -ENOMEM; ++ goto done; ++ } ++ CmdSize = sizeof(HostCmd_DS_GEN); ++ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN); ++ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_BSS_STOP); ++ cmd->Size = uap_cpu_to_le16(CmdSize); ++ skb_put(skb, CmdSize + INTF_HEADER_LEN); ++ PRINTM(CMND, "APCMD_BSS_STOP\n"); ++ if (UAP_STATUS_SUCCESS != ++ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) { ++ PRINTM(ERROR, "Fail to process cmd BSS_STOP\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/******************************************************** ++ Global Functions ++********************************************************/ ++/** ++ * @brief This function send soft_reset command to firmware ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS on success, otherwise failure code ++ */ ++int ++uap_soft_reset(uap_private * priv) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ u32 CmdSize; ++ HostCmd_DS_GEN *cmd; ++ uap_adapter *Adapter = priv->adapter; ++ struct sk_buff *skb; ++ ENTER(); ++ ret = uap_bss_stop(priv); ++ if (ret != UAP_STATUS_SUCCESS) ++ goto done; ++ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); ++ if (!skb) { ++ PRINTM(ERROR, "No free skb\n"); ++ ret = -ENOMEM; ++ goto done; ++ } ++ CmdSize = sizeof(HostCmd_DS_GEN); ++ cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN); ++ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SOFT_RESET); ++ cmd->Size = uap_cpu_to_le16(CmdSize); ++ skb_put(skb, CmdSize + INTF_HEADER_LEN); ++ PRINTM(CMND, "APCMD_SOFT_RESET\n"); ++ if (UAP_STATUS_SUCCESS != ++ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORSEND)) { ++ PRINTM(ERROR, "Fail to process cmd SOFT_RESET\n"); ++ ret = -EFAULT; ++ goto done; ++ } ++ Adapter->SurpriseRemoved = TRUE; ++ /* delay to allow hardware complete reset */ ++ os_sched_timeout(5); ++ if (priv->MediaConnected == TRUE) { ++ os_stop_queue(priv); ++ os_carrier_off(priv); ++ priv->MediaConnected = FALSE; ++ } ++ Adapter->CmdSize = 0; ++ Adapter->CmdWaitQWoken = TRUE; ++ wake_up_interruptible(&Adapter->cmdwait_q); ++ skb_queue_purge(&priv->adapter->tx_queue); ++ skb_queue_purge(&priv->adapter->cmd_queue); ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function processes received packet and forwards it ++ * to kernel/upper layer ++ * ++ * @param priv A pointer to uap_private ++ * @param skb A pointer to skb which includes the received packet ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++uap_process_rx_packet(uap_private * priv, struct sk_buff *skb) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ RxPD *pRxPD; ++ ENTER(); ++ priv->adapter->ps_state = PS_STATE_AWAKE; ++ pRxPD = (RxPD *) skb->data; ++ endian_convert_RxPD(pRxPD); ++ DBG_HEXDUMP(DAT_D, "Rx", skb->data, MIN(skb->len, DATA_DUMP_LEN)); ++ skb_pull(skb, pRxPD->RxPktOffset); ++ priv->stats.rx_packets++; ++ priv->stats.rx_bytes += skb->len; ++ os_upload_rx_packet(priv, skb); ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function opens the network device ++ * ++ * @param dev A pointer to net_device structure ++ * @return UAP_STATUS_SUCCESS ++ */ ++static int ++uap_open(struct net_device *dev) ++{ ++ uap_private *priv = (uap_private *) (uap_private *) netdev_priv(dev); ++ uap_adapter *Adapter = priv->adapter; ++ int i = 0; ++ ++ ENTER(); ++ ++ /* On some systems the device open handler will be called before HW ready. */ ++ /* Use the following flag check and wait function to work around the issue. */ ++ while ((Adapter->HardwareStatus != HWReady) && ++ (i < MAX_WAIT_DEVICE_READY_COUNT)) { ++ i++; ++ os_sched_timeout(100); ++ } ++ if (i >= MAX_WAIT_DEVICE_READY_COUNT) { ++ PRINTM(FATAL, "HW not ready, uap_open() return failure\n"); ++ LEAVE(); ++ return UAP_STATUS_FAILURE; ++ } ++ ++ if (MODULE_GET == 0) ++ return UAP_STATUS_FAILURE; ++ ++ priv->open = TRUE; ++ if (priv->MediaConnected == TRUE) { ++ os_carrier_on(priv); ++ os_start_queue(priv); ++ } else { ++ os_stop_queue(priv); ++ os_carrier_off(priv); ++ } ++ LEAVE(); ++ return UAP_STATUS_SUCCESS; ++} ++ ++/** ++ * @brief This function closes the network device ++ * ++ * @param dev A pointer to net_device structure ++ * @return UAP_STATUS_SUCCESS ++ */ ++static int ++uap_close(struct net_device *dev) ++{ ++ uap_private *priv = (uap_private *) netdev_priv(dev); ++ ++ ENTER(); ++ skb_queue_purge(&priv->adapter->tx_queue); ++ os_stop_queue(priv); ++ os_carrier_off(priv); ++ ++ MODULE_PUT; ++ priv->open = FALSE; ++ LEAVE(); ++ return UAP_STATUS_SUCCESS; ++} ++ ++/** ++ * @brief This function returns the network statistics ++ * ++ * @param dev A pointer to uap_private structure ++ * @return A pointer to net_device_stats structure ++ */ ++static struct net_device_stats * ++uap_get_stats(struct net_device *dev) ++{ ++ uap_private *priv = (uap_private *) netdev_priv(dev); ++ ++ return &priv->stats; ++} ++ ++/** ++ * @brief This function sets the MAC address to firmware. ++ * ++ * @param dev A pointer to uap_private structure ++ * @param addr MAC address to set ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++uap_set_mac_address(struct net_device *dev, void *addr) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ uap_private *priv = (uap_private *) netdev_priv(dev); ++ struct sockaddr *pHwAddr = (struct sockaddr *) addr; ++ u32 CmdSize; ++ HostCmd_DS_COMMAND *cmd; ++ MrvlIEtypes_MacAddr_t *pMacAddrTlv; ++ uap_adapter *Adapter = priv->adapter; ++ struct sk_buff *skb; ++ ++ ENTER(); ++ ++ /* Dump MAC address */ ++ DBG_HEXDUMP(CMD_D, "Original MAC addr", dev->dev_addr, ETH_ALEN); ++ DBG_HEXDUMP(CMD_D, "New MAC addr", pHwAddr->sa_data, ETH_ALEN); ++ if (priv->open && (priv->MediaConnected == TRUE)) { ++ os_carrier_on(priv); ++ os_start_queue(priv); ++ } ++ skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER); ++ if (!skb) { ++ PRINTM(ERROR, "No free skb\n"); ++ LEAVE(); ++ return -ENOMEM; ++ } ++ CmdSize = ++ S_DS_GEN + sizeof(HostCmd_SYS_CONFIG) + sizeof(MrvlIEtypes_MacAddr_t); ++ cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN); ++ cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SYS_CONFIGURE); ++ cmd->Size = uap_cpu_to_le16(CmdSize); ++ cmd->params.sys_config.Action = uap_cpu_to_le16(ACTION_SET); ++ pMacAddrTlv = ++ (MrvlIEtypes_MacAddr_t *) ((u8 *) cmd + S_DS_GEN + ++ sizeof(HostCmd_SYS_CONFIG)); ++ pMacAddrTlv->Header.Type = uap_cpu_to_le16(MRVL_AP_MAC_ADDRESS_TLV_ID); ++ pMacAddrTlv->Header.Len = uap_cpu_to_le16(ETH_ALEN); ++ memcpy(pMacAddrTlv->ApMacAddr, pHwAddr->sa_data, ETH_ALEN); ++ skb_put(skb, CmdSize + INTF_HEADER_LEN); ++ PRINTM(CMND, "set_mac_address\n"); ++ if (UAP_STATUS_SUCCESS != ++ uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) { ++ PRINTM(ERROR, "Fail to set mac address\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ if (!Adapter->CmdSize) { ++ PRINTM(ERROR, "Cmd Size is 0\n"); ++ LEAVE(); ++ return -EFAULT; ++ } ++ cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf; ++ cmd->Result = uap_cpu_to_le16(cmd->Result); ++ if (cmd->Result != UAP_STATUS_SUCCESS) { ++ PRINTM(ERROR, "set mac addrress fail,cmd result=%x\n", cmd->Result); ++ ret = -EFAULT; ++ } else ++ memcpy(dev->dev_addr, pHwAddr->sa_data, ETH_ALEN); ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function handles the timeout of packet ++ * transmission ++ * ++ * @param dev A pointer to net_device structure ++ * @return n/a ++ */ ++static void ++uap_tx_timeout(struct net_device *dev) ++{ ++ uap_private *priv = (uap_private *) netdev_priv(dev); ++ ++ ENTER(); ++ ++ PRINTM(DATA, "Tx timeout\n"); ++ UpdateTransStart(dev); ++ priv->num_tx_timeout++; ++ priv->adapter->IntCounter++; ++ wake_up_interruptible(&priv->MainThread.waitQ); ++ ++ LEAVE(); ++} ++ ++/** ++ * @brief This function handles packet transmission ++ * ++ * @param skb A pointer to sk_buff structure ++ * @param dev A pointer to net_device structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++uap_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) ++{ ++ uap_private *priv = (uap_private *) netdev_priv(dev); ++ int ret = UAP_STATUS_SUCCESS; ++ ++ ENTER(); ++ PRINTM(DATA, "Data <= kernel\n"); ++ DBG_HEXDUMP(DAT_D, "Tx", skb->data, MIN(skb->len, DATA_DUMP_LEN)); ++ /* skb sanity check */ ++ if (!skb->len || (skb->len > MRVDRV_MAXIMUM_ETH_PACKET_SIZE)) { ++ PRINTM(ERROR, "Tx Error: Bad skb length %d : %d\n", skb->len, ++ MRVDRV_MAXIMUM_ETH_PACKET_SIZE); ++ priv->stats.tx_dropped++; ++ kfree(skb); ++ goto done; ++ } ++ skb_queue_tail(&priv->adapter->tx_queue, skb); ++ wake_up_interruptible(&priv->MainThread.waitQ); ++ if (skb_queue_len(&priv->adapter->tx_queue) > TX_HIGH_WATERMARK) { ++ UpdateTransStart(dev); ++ os_stop_queue(priv); ++ } ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief ioctl function - entry point ++ * ++ * @param dev A pointer to net_device structure ++ * @param req A pointer to ifreq structure ++ * @param cmd command ++ * @return UAP_STATUS_SUCCESS--success, otherwise fail ++ */ ++static int ++uap_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ ++ ENTER(); ++ ++ PRINTM(CMND, "uap_do_ioctl: ioctl cmd = 0x%x\n", cmd); ++ ++ switch (cmd) { ++ case UAPHOSTCMD: ++ ret = uap_hostcmd_ioctl(dev, req); ++ break; ++ case UAP_POWER_MODE: ++ ret = uap_power_mode_ioctl(dev, req); ++ break; ++ default: ++ ret = -EINVAL; ++ break; ++ } ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function handles events generated by firmware ++ * ++ * @param priv A pointer to uap_private structure ++ * @param payload A pointer to payload buffer ++ * @param len Length of the payload ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++uap_process_event(uap_private * priv, u8 * payload, uint len) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ uap_adapter *Adapter = priv->adapter; ++ struct sk_buff *skb = NULL; ++ struct nlmsghdr *nlh = NULL; ++ struct sock *sk = Adapter->nl_sk; ++ AP_Event *pEvent; ++ ++ ENTER(); ++ Adapter->ps_state = PS_STATE_AWAKE; ++ if (len > NL_MAX_PAYLOAD) { ++ PRINTM(ERROR, "event size is too big!!! len=%d\n", len); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ pEvent = (AP_Event *) payload; ++ PRINTM(CMND, "Event: %d\n", pEvent->EventId); ++ switch (pEvent->EventId) { ++ case MICRO_AP_EV_ID_BSS_START: ++ memcpy(priv->uap_dev.netdev->dev_addr, pEvent->MacAddr, ETH_ALEN); ++ DBG_HEXDUMP(CMD_D, "BSS MAC addr", priv->uap_dev.netdev->dev_addr, ++ ETH_ALEN); ++ break; ++ case MICRO_AP_EV_BSS_ACTIVE: ++ // carrier on ++ priv->MediaConnected = TRUE; ++ os_carrier_on(priv); ++ os_start_queue(priv); ++ break; ++ case MICRO_AP_EV_BSS_IDLE: ++ os_stop_queue(priv); ++ os_carrier_off(priv); ++ priv->MediaConnected = FALSE; ++ break; ++ case EVENT_PS_AWAKE: ++ PRINTM(CMND, "UAP: PS_AWAKE\n"); ++ Adapter->ps_state = PS_STATE_AWAKE; ++ Adapter->WakeupTries = 0; ++ break; ++ case EVENT_PS_SLEEP: ++ PRINTM(CMND, "UAP: PS_SLEEP\n"); ++ Adapter->ps_state = PS_STATE_PRE_SLEEP; ++ break; ++ default: ++ break; ++ } ++ if ((pEvent->EventId == EVENT_PS_AWAKE) || ++ (pEvent->EventId == EVENT_PS_SLEEP)) ++ goto done; ++ if (sk) { ++ /* Allocate skb */ ++ if (!(skb = alloc_skb(NLMSG_SPACE(NL_MAX_PAYLOAD), GFP_ATOMIC))) { ++ PRINTM(ERROR, "Could not allocate skb for netlink.\n"); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ nlh = (struct nlmsghdr *) skb->data; ++ nlh->nlmsg_len = NLMSG_SPACE(len); ++ ++ /* From kernel */ ++ nlh->nlmsg_pid = 0; ++ nlh->nlmsg_flags = 0; ++ ++ /* Data */ ++ skb_put(skb, nlh->nlmsg_len); ++ memcpy(NLMSG_DATA(nlh), payload, len); ++ ++ /* From Kernel */ ++ NETLINK_CB(skb).pid = 0; ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) ++ /* Multicast message */ ++ NETLINK_CB(skb).dst_pid = 0; ++#endif ++ ++ /* Multicast group number */ ++ NETLINK_CB(skb).dst_group = NL_MULTICAST_GROUP; ++ ++ /* Send message */ ++ netlink_broadcast(sk, skb, 0, NL_MULTICAST_GROUP, GFP_KERNEL); ++ ++ ret = UAP_STATUS_SUCCESS; ++ } else { ++ PRINTM(ERROR, "Could not send event through NETLINK. Link down.\n"); ++ ret = UAP_STATUS_FAILURE; ++ } ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function handles the interrupt. it will change PS ++ * state if applicable. it will wake up main_thread to handle ++ * the interrupt event as well. ++ * ++ * @param priv A pointer to uap_private structure ++ * @return n/a ++ */ ++void ++uap_interrupt(uap_private * priv) ++{ ++ ENTER(); ++ priv->adapter->IntCounter++; ++ priv->adapter->WakeupTries = 0; ++ PRINTM(INFO, "*\n"); ++ wake_up_interruptible(&priv->MainThread.waitQ); ++ ++ LEAVE(); ++ ++} ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29) ++/** Network device handlers */ ++static const struct net_device_ops uap_netdev_ops = { ++ .ndo_open = uap_open, ++ .ndo_start_xmit = uap_hard_start_xmit, ++ .ndo_stop = uap_close, ++ .ndo_do_ioctl = uap_do_ioctl, ++ .ndo_set_mac_address = uap_set_mac_address, ++ .ndo_tx_timeout = uap_tx_timeout, ++ .ndo_get_stats = uap_get_stats, ++}; ++#endif ++ ++/** ++ * @brief This function adds the card. it will probe the ++ * card, allocate the uap_priv and initialize the device. ++ * ++ * @param card A pointer to card ++ * @return A pointer to uap_private structure ++ */ ++uap_private * ++uap_add_card(void *card) ++{ ++ struct net_device *dev = NULL; ++ uap_private *priv = NULL; ++ ++ ENTER(); ++ ++ if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem)) ++ goto exit_sem_err; ++ ++ /* Allocate an Ethernet device */ ++ if (!(dev = alloc_etherdev(sizeof(uap_private)))) { ++ PRINTM(FATAL, "Init ethernet device failed!\n"); ++ goto error; ++ } ++ priv = (uap_private *) netdev_priv(dev); ++ ++ /* Allocate name */ ++ if (dev_alloc_name(dev, "uap%d") < 0) { ++ PRINTM(ERROR, "Could not allocate device name!\n"); ++ goto error; ++ } ++ ++ /* Allocate buffer for uap_adapter */ ++ if (!(priv->adapter = kmalloc(sizeof(uap_adapter), GFP_KERNEL))) { ++ PRINTM(FATAL, "Allocate buffer for uap_adapter failed!\n"); ++ goto error; ++ } ++ memset(priv->adapter, 0, sizeof(uap_adapter)); ++ ++ priv->uap_dev.netdev = dev; ++ priv->uap_dev.card = card; ++ priv->MediaConnected = FALSE; ++ uappriv = priv; ++ ((struct sdio_mmc_card *) card)->priv = priv; ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) ++ SET_MODULE_OWNER(dev); ++#endif ++ ++ /* Setup the OS Interface to our functions */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) ++ dev->open = uap_open; ++ dev->stop = uap_close; ++ dev->hard_start_xmit = uap_hard_start_xmit; ++ dev->tx_timeout = uap_tx_timeout; ++ dev->get_stats = uap_get_stats; ++ dev->do_ioctl = uap_do_ioctl; ++ dev->set_mac_address = uap_set_mac_address; ++ dev->set_multicast_list = uap_set_multicast_list; ++#else ++ dev->netdev_ops = &uap_netdev_ops; ++#endif ++ dev->watchdog_timeo = MRVDRV_DEFAULT_WATCHDOG_TIMEOUT; ++ dev->hard_header_len += sizeof(TxPD) + INTF_HEADER_LEN; ++ dev->hard_header_len += HEADER_ALIGNMENT; ++#define NETIF_F_DYNALLOC 16 ++ dev->features |= NETIF_F_DYNALLOC; ++ dev->flags |= IFF_BROADCAST | IFF_MULTICAST; ++ ++ /* Init SW */ ++ if (uap_init_sw(priv)) { ++ PRINTM(FATAL, "Software Init Failed\n"); ++ goto error; ++ } ++ ++ PRINTM(INFO, "Starting kthread...\n"); ++ priv->MainThread.priv = priv; ++ spin_lock_init(&priv->driver_lock); ++ uap_create_thread(uap_service_main_thread, &priv->MainThread, ++ "uap_main_service"); ++ while (priv->MainThread.pid == 0) { ++ os_sched_timeout(2); ++ } ++ ++ /* Register the device */ ++ if (sbi_register_dev(priv) < 0) { ++ PRINTM(FATAL, "Failed to register uap device!\n"); ++ goto err_registerdev; ++ } ++#ifdef FW_DNLD_NEEDED ++ SET_NETDEV_DEV(dev, priv->hotplug_device); ++#endif ++ ++ /* Init FW and HW */ ++ if (uap_init_fw(priv)) { ++ PRINTM(FATAL, "Firmware Init Failed\n"); ++ goto err_init_fw; ++ } ++ ++ priv->uap_dev.cmd_sent = FALSE; ++ priv->uap_dev.data_sent = FALSE; ++ ++ /* Get mac address from firmware */ ++ if (uap_get_mac_address(priv)) { ++ PRINTM(FATAL, "Fail to get mac address\n"); ++ goto err_init_fw; ++ } ++ /* Register network device */ ++ if (register_netdev(dev)) { ++ printk(KERN_ERR "Cannot register network device!\n"); ++ goto err_init_fw; ++ } ++#ifdef CONFIG_PROC_FS ++ uap_proc_entry(priv, dev); ++ uap_debug_entry(priv, dev); ++#endif /* CPNFIG_PROC_FS */ ++ OS_REL_SEMAPHORE(&AddRemoveCardSem); ++ ++ LEAVE(); ++ return priv; ++ err_init_fw: ++ sbi_unregister_dev(priv); ++ err_registerdev: ++ ((struct sdio_mmc_card *) card)->priv = NULL; ++ /* Stop the thread servicing the interrupts */ ++ priv->adapter->SurpriseRemoved = TRUE; ++ wake_up_interruptible(&priv->MainThread.waitQ); ++ while (priv->MainThread.pid) { ++ os_sched_timeout(1); ++ } ++ error: ++ if (dev) { ++ if (dev->reg_state == NETREG_REGISTERED) ++ unregister_netdev(dev); ++ if (priv->adapter) ++ uap_free_adapter(priv); ++ free_netdev(dev); ++ uappriv = NULL; ++ } ++ OS_REL_SEMAPHORE(&AddRemoveCardSem); ++ exit_sem_err: ++ LEAVE(); ++ return NULL; ++} ++ ++/** ++ * @brief This function removes the card. ++ * ++ * @param card A pointer to card ++ * @return UAP_STATUS_SUCCESS ++ */ ++int ++uap_remove_card(void *card) ++{ ++ uap_private *priv = uappriv; ++ uap_adapter *Adapter; ++ struct net_device *dev; ++ ++ ENTER(); ++ ++ if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem)) ++ goto exit_sem_err; ++ ++ if (!priv || !(Adapter = priv->adapter)) { ++ goto exit_remove; ++ } ++ Adapter->SurpriseRemoved = TRUE; ++ if (Adapter->cmd_pending == TRUE) { ++ /* Wake up cmd Q */ ++ Adapter->CmdWaitQWoken = TRUE; ++ wake_up_interruptible(&Adapter->cmdwait_q); ++ } ++ dev = priv->uap_dev.netdev; ++ if (priv->MediaConnected == TRUE) { ++ os_stop_queue(priv); ++ os_carrier_off(priv); ++ priv->MediaConnected = FALSE; ++ } ++ Adapter->CmdSize = 0; ++ Adapter->CmdWaitQWoken = TRUE; ++ wake_up_interruptible(&Adapter->cmdwait_q); ++ skb_queue_purge(&priv->adapter->tx_queue); ++ skb_queue_purge(&priv->adapter->cmd_queue); ++ ++ /* Disable interrupts on the card */ ++ sbi_disable_host_int(priv); ++ PRINTM(INFO, "netdev_finish_unregister: %s%s.\n", dev->name, ++ (dev->features & NETIF_F_DYNALLOC) ? "" : ", old style"); ++ unregister_netdev(dev); ++ PRINTM(INFO, "Unregister finish\n"); ++ wake_up_interruptible(&priv->MainThread.waitQ); ++ while (priv->MainThread.pid) { ++ os_sched_timeout(1); ++ } ++ ++ if ((Adapter->nl_sk) && ((Adapter->nl_sk)->sk_socket)) { ++ sock_release((Adapter->nl_sk)->sk_socket); ++ Adapter->nl_sk = NULL; ++ } ++#ifdef CONFIG_PROC_FS ++ uap_debug_remove(priv); ++ uap_proc_remove(priv); ++#endif ++ sbi_unregister_dev(priv); ++ PRINTM(INFO, "Free Adapter\n"); ++ uap_free_adapter(priv); ++ priv->uap_dev.netdev = NULL; ++ free_netdev(dev); ++ uappriv = NULL; ++ ++ exit_remove: ++ OS_REL_SEMAPHORE(&AddRemoveCardSem); ++ exit_sem_err: ++ LEAVE(); ++ return UAP_STATUS_SUCCESS; ++} ++ ++/** ++ * @brief This function initializes module. ++ * ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int __init ++uap_init_module(void) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ ENTER(); ++ ++ OS_INIT_SEMAPHORE(&AddRemoveCardSem); ++ ret = sbi_register(); ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function cleans module ++ * ++ * @return n/a ++ */ ++static void __exit ++uap_cleanup_module(void) ++{ ++ ENTER(); ++ ++ if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem)) ++ goto exit_sem_err; ++ ++ if ((uappriv) && (uappriv->adapter)) { ++ uap_func_shutdown(uappriv); ++ } ++ OS_REL_SEMAPHORE(&AddRemoveCardSem); ++ exit_sem_err: ++ sbi_unregister(); ++ LEAVE(); ++} ++ ++module_init(uap_init_module); ++module_exit(uap_cleanup_module); ++module_param(helper_name, charp, 0); ++MODULE_PARM_DESC(helper_name, "Helper name"); ++module_param(fw_name, charp, 0); ++MODULE_PARM_DESC(fw_name, "Firmware name"); ++ ++MODULE_DESCRIPTION("M-UAP Driver"); ++MODULE_AUTHOR("Marvell International Ltd."); ++MODULE_VERSION(DRIVER_VERSION); ++MODULE_LICENSE("GPL"); +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_proc.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_proc.c +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_proc.c 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_proc.c 2012-07-31 14:23:04.000000000 +0200 +@@ -0,0 +1,296 @@ ++/** @file uap_proc.c ++ * @brief This file contains functions for proc file. ++ * ++ * Copyright (C) 2008-2009, Marvell International Ltd. ++ * ++ * This software file (the "File") is distributed by Marvell International ++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 ++ * (the "License"). You may use, redistribute and/or modify this File in ++ * accordance with the terms and conditions of the License, a copy of which ++ * is available along with the File in the gpl.txt file or by writing to ++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. ++ * ++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ++ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about ++ * this warranty disclaimer. ++ * ++ */ ++#ifdef CONFIG_PROC_FS ++#include "uap_headers.h" ++ ++/** /proc directory root */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ++#define PROC_DIR NULL ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) ++#define PROC_DIR &proc_root ++#else ++#define PROC_DIR proc_net ++#endif ++ ++/******************************************************** ++ Local Variables ++********************************************************/ ++ ++/******************************************************** ++ Global Variables ++********************************************************/ ++ ++/******************************************************** ++ Local Functions ++********************************************************/ ++ ++/** ++ * @brief proc read function ++ * ++ * @param page pointer to buffer ++ * @param start read data starting position ++ * @param offset offset ++ * @param count counter ++ * @param eof end of file flag ++ * @param data data to output ++ * @return number of output data ++ */ ++static int ++uap_proc_read(char *page, char **start, off_t offset, ++ int count, int *eof, void *data) ++{ ++ int i; ++ char *p = page; ++ struct net_device *netdev = data; ++ struct netdev_hw_addr *ha; ++ char fmt[64]; ++ uap_private *priv = (uap_private *) netdev_priv(netdev); ++ ++ if (offset != 0) { ++ *eof = 1; ++ goto exit; ++ } ++ ++ strcpy(fmt, DRIVER_VERSION); ++ ++ p += sprintf(p, "driver_name = " ""uap"\n"); ++ p += sprintf(p, "driver_version = %s-(FP%s)", fmt, FPNUM); ++ p += sprintf(p, "\nInterfaceName="%s"\n", netdev->name); ++ p += sprintf(p, "State="%s"\n", ++ ((priv->MediaConnected == ++ FALSE) ? "Disconnected" : "Connected")); ++ p += sprintf(p, "MACAddress="%02x:%02x:%02x:%02x:%02x:%02x"\n", ++ netdev->dev_addr[0], netdev->dev_addr[1], netdev->dev_addr[2], ++ netdev->dev_addr[3], netdev->dev_addr[4], netdev->dev_addr[5]); ++ i = 0; ++ netdev_for_each_mc_addr(ha, netdev) { ++ ++i; ++ } ++ p += sprintf(p, "MCCount="%d"\n", i); ++ ++ /* ++ * Put out the multicast list ++ */ ++ i = 0; ++ netdev_for_each_mc_addr(ha, netdev) { ++ p += sprintf(p, ++ "MCAddr[%d]="%02x:%02x:%02x:%02x:%02x:%02x"\n", ++ i++, ++ ha->addr[0], ha->addr[1], ++ ha->addr[2], ha->addr[3], ++ ha->addr[4], ha->addr[5]); ++ } ++ ++ p += sprintf(p, "num_tx_bytes = %lu\n", priv->stats.tx_bytes); ++ p += sprintf(p, "num_rx_bytes = %lu\n", priv->stats.rx_bytes); ++ p += sprintf(p, "num_tx_pkts = %lu\n", priv->stats.tx_packets); ++ p += sprintf(p, "num_rx_pkts = %lu\n", priv->stats.rx_packets); ++ p += sprintf(p, "num_tx_pkts_dropped = %lu\n", priv->stats.tx_dropped); ++ p += sprintf(p, "num_rx_pkts_dropped = %lu\n", priv->stats.rx_dropped); ++ p += sprintf(p, "num_tx_pkts_err = %lu\n", priv->stats.tx_errors); ++ p += sprintf(p, "num_rx_pkts_err = %lu\n", priv->stats.rx_errors); ++ p += sprintf(p, "num_tx_timeout = %u\n", priv->num_tx_timeout); ++ p += sprintf(p, "carrier %s\n", ++ ((netif_carrier_ok(priv->uap_dev.netdev)) ? "on" : "off")); ++ p += sprintf(p, "tx queue %s\n", ++ ((netif_queue_stopped(priv->uap_dev.netdev)) ? "stopped" : ++ "started")); ++ ++ exit: ++ return (p - page); ++} ++ ++/** ++ * @brief hwstatus proc write function ++ * ++ * @param f file pointer ++ * @param buf pointer to data buffer ++ * @param cnt data number to write ++ * @param data data to write ++ * @return number of data ++ */ ++static int ++uap_hwstatus_write(struct file *f, const char *buf, unsigned long cnt, ++ void *data) ++{ ++ struct net_device *netdev = data; ++ uap_private *priv = (uap_private *) netdev_priv(netdev); ++ char databuf[10]; ++ int hwstatus; ++ MODULE_GET; ++ if (cnt > 10) { ++ MODULE_PUT; ++ return cnt; ++ } ++ if (copy_from_user(databuf, buf, cnt)) { ++ MODULE_PUT; ++ return 0; ++ } ++ hwstatus = string_to_number(databuf); ++ switch (hwstatus) { ++ case HWReset: ++ PRINTM(MSG, "reset hw\n"); ++ uap_soft_reset(priv); ++ priv->adapter->HardwareStatus = HWReset; ++ break; ++ default: ++ break; ++ } ++ MODULE_PUT; ++ return cnt; ++} ++ ++/** ++ * @brief hwstatus proc read function ++ * ++ * @param page pointer to buffer ++ * @param s read data starting position ++ * @param off offset ++ * @param cnt counter ++ * @param eof end of file flag ++ * @param data data to output ++ * @return number of output data ++ */ ++static int ++uap_hwstatus_read(char *page, char **s, off_t off, int cnt, int *eof, ++ void *data) ++{ ++ char *p = page; ++ struct net_device *netdev = data; ++ uap_private *priv = (uap_private *) netdev_priv(netdev); ++ MODULE_GET; ++ p += sprintf(p, "%d\n", priv->adapter->HardwareStatus); ++ MODULE_PUT; ++ return p - page; ++} ++ ++/******************************************************** ++ Global Functions ++********************************************************/ ++/** ++ * @brief create uap proc file ++ * ++ * @param priv pointer uap_private ++ * @param dev pointer net_device ++ * @return N/A ++ */ ++void ++uap_proc_entry(uap_private * priv, struct net_device *dev) ++{ ++ struct proc_dir_entry *r = PROC_DIR; ++ ++ PRINTM(INFO, "Creating Proc Interface\n"); ++ /* Check if uap directory already exists */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) ++ for (r = r->subdir; r; r = r->next) { ++ if (r->namelen && !strcmp("uap", r->name)) { ++ /* Directory exists */ ++ PRINTM(WARN, "proc directory already exists!\n"); ++ priv->proc_uap = r; ++ break; ++ } ++ } ++#endif ++ if (!priv->proc_uap) { ++ priv->proc_uap = proc_mkdir("uap", PROC_DIR); ++ if (!priv->proc_uap) ++ return; ++ else ++ atomic_set(&priv->proc_uap->count, 1); ++ } else { ++ atomic_inc(&priv->proc_uap->count); ++ } ++ priv->proc_entry = proc_mkdir(dev->name, priv->proc_uap); ++ ++ if (priv->proc_entry) { ++ r = create_proc_read_entry("info", 0, priv->proc_entry, uap_proc_read, ++ dev); ++ r = create_proc_entry("hwstatus", 0644, priv->proc_entry); ++ if (r) { ++ r->data = dev; ++ r->read_proc = uap_hwstatus_read; ++ r->write_proc = uap_hwstatus_write; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) ++ r->owner = THIS_MODULE; ++#endif ++ } else ++ PRINTM(MSG, "Fail to create proc hwstatus\n"); ++ } ++} ++ ++/** ++ * @brief remove proc file ++ * ++ * @param priv pointer uap_private ++ * @return N/A ++ */ ++void ++uap_proc_remove(uap_private * priv) ++{ ++ if (priv->proc_uap) { ++ if (priv->proc_entry) { ++ remove_proc_entry("info", priv->proc_entry); ++ remove_proc_entry("hwstatus", priv->proc_entry); ++ } ++ remove_proc_entry(priv->uap_dev.netdev->name, priv->proc_uap); ++ atomic_dec(&priv->proc_uap->count); ++ if (atomic_read(&(priv->proc_uap->count)) == 0) ++ remove_proc_entry("uap", PROC_DIR); ++ } ++} ++ ++/** ++ * @brief convert string to number ++ * ++ * @param s pointer to numbered string ++ * @return converted number from string s ++ */ ++int ++string_to_number(char *s) ++{ ++ int r = 0; ++ int base = 0; ++ int pn = 1; ++ ++ if (strncmp(s, "-", 1) == 0) { ++ pn = -1; ++ s++; ++ } ++ if ((strncmp(s, "0x", 2) == 0) || (strncmp(s, "0X", 2) == 0)) { ++ base = 16; ++ s += 2; ++ } else ++ base = 10; ++ ++ for (s = s; *s != 0; s++) { ++ if ((*s >= '0') && (*s <= '9')) ++ r = (r * base) + (*s - '0'); ++ else if ((*s >= 'A') && (*s <= 'F')) ++ r = (r * base) + (*s - 'A' + 10); ++ else if ((*s >= 'a') && (*s <= 'f')) ++ r = (r * base) + (*s - 'a' + 10); ++ else ++ break; ++ } ++ ++ return (r * pn); ++} ++ ++#endif +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c 2012-07-31 14:23:04.000000000 +0200 +@@ -0,0 +1,1428 @@ ++/** @file uap_sdio_mmc.c ++ * @brief This file contains SDIO IF (interface) module ++ * related functions. ++ * ++ * Copyright (C) 2007-2009, Marvell International Ltd. ++ * ++ * This software file (the "File") is distributed by Marvell International ++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 ++ * (the "License"). You may use, redistribute and/or modify this File in ++ * accordance with the terms and conditions of the License, a copy of which ++ * is available along with the File in the gpl.txt file or by writing to ++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. ++ * ++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ++ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about ++ * this warranty disclaimer. ++ * ++ */ ++/**************************************************** ++Change log: ++****************************************************/ ++ ++#include "uap_sdio_mmc.h" ++ ++#include <linux/firmware.h> ++ ++/** define SDIO block size */ ++/* We support up to 480-byte block size due to FW buffer limitation. */ ++#define SD_BLOCK_SIZE 256 ++ ++/** define allocated buffer size */ ++#define ALLOC_BUF_SIZE (((MAX(MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, \ ++ MRVDRV_SIZE_OF_CMD_BUFFER) + INTF_HEADER_LEN \ ++ + SD_BLOCK_SIZE - 1) / SD_BLOCK_SIZE) * SD_BLOCK_SIZE) ++ ++/** Max retry number of CMD53 write */ ++#define MAX_WRITE_IOMEM_RETRY 2 ++ ++/******************************************************** ++ Local Variables ++********************************************************/ ++ ++/** SDIO Rx unit */ ++static u8 sdio_rx_unit = 0; ++ ++/**Interrupt status */ ++static u8 sd_ireg = 0; ++/******************************************************** ++ Global Variables ++********************************************************/ ++extern u8 *helper_name; ++extern u8 *fw_name; ++/** Default helper name */ ++#define DEFAULT_HELPER_NAME "mrvl/helper_sd.bin" ++/** Default firmware name */ ++#define DEFAULT_FW_NAME "mrvl/sd8688_ap.bin" ++ ++/******************************************************** ++ Local Functions ++********************************************************/ ++/** ++ * @brief This function reads the IO register. ++ * ++ * @param priv A pointer to uap_private structure ++ * @param reg register to be read ++ * @param dat A pointer to variable that keeps returned value ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++sbi_read_ioreg(uap_private * priv, u32 reg, u8 * dat) ++{ ++ struct sdio_mmc_card *card; ++ int ret = UAP_STATUS_FAILURE; ++ ++ ENTER(); ++ ++ card = priv->uap_dev.card; ++ if (!card || !card->func) { ++ PRINTM(ERROR, "sbi_read_ioreg(): card or function is NULL!\n"); ++ goto done; ++ } ++ ++ *dat = sdio_readb(card->func, reg, &ret); ++ if (ret) { ++ PRINTM(ERROR, "sbi_read_ioreg(): sdio_readb failed! ret=%d\n", ret); ++ goto done; ++ } ++ ++ PRINTM(INFO, "sbi_read_ioreg() priv=%p func=%d reg=%#x dat=%#x\n", priv, ++ card->func->num, reg, *dat); ++ ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function writes the IO register. ++ * ++ * @param priv A pointer to uap_private structure ++ * @param reg register to be written ++ * @param dat the value to be written ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++sbi_write_ioreg(uap_private * priv, u32 reg, u8 dat) ++{ ++ struct sdio_mmc_card *card; ++ int ret = UAP_STATUS_FAILURE; ++ ++ ENTER(); ++ ++ card = priv->uap_dev.card; ++ if (!card || !card->func) { ++ PRINTM(ERROR, "sbi_write_ioreg(): card or function is NULL!\n"); ++ goto done; ++ } ++ ++ PRINTM(INFO, "sbi_write_ioreg() priv=%p func=%d reg=%#x dat=%#x\n", priv, ++ card->func->num, reg, dat); ++ ++ sdio_writeb(card->func, dat, reg, &ret); ++ if (ret) { ++ PRINTM(ERROR, "sbi_write_ioreg(): sdio_readb failed! ret=%d\n", ret); ++ goto done; ++ } ++ ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function get rx_unit value ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++sd_get_rx_unit(uap_private * priv) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ u8 reg; ++ ++ ENTER(); ++ ++ ret = sbi_read_ioreg(priv, CARD_RX_UNIT_REG, ®); ++ if (ret == UAP_STATUS_SUCCESS) ++ sdio_rx_unit = reg; ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function reads rx length ++ * ++ * @param priv A pointer to uap_private structure ++ * @param dat A pointer to keep returned data ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++sd_read_rx_len(uap_private * priv, u16 * dat) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ u8 reg; ++ ++ ENTER(); ++ ++ ret = sbi_read_ioreg(priv, CARD_RX_LEN_REG, ®); ++ if (ret == UAP_STATUS_SUCCESS) ++ *dat = (u16) reg << sdio_rx_unit; ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function reads fw status registers ++ * ++ * @param priv A pointer to uap_private structure ++ * @param dat A pointer to keep returned data ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++sd_read_firmware_status(uap_private * priv, u16 * dat) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ u8 fws0; ++ u8 fws1; ++ ++ ENTER(); ++ ++ ret = sbi_read_ioreg(priv, CARD_FW_STATUS0_REG, &fws0); ++ if (ret < 0) { ++ LEAVE(); ++ return UAP_STATUS_FAILURE; ++ } ++ ++ ret = sbi_read_ioreg(priv, CARD_FW_STATUS1_REG, &fws1); ++ if (ret < 0) { ++ LEAVE(); ++ return UAP_STATUS_FAILURE; ++ } ++ ++ *dat = (((u16) fws1) << 8) | fws0; ++ ++ LEAVE(); ++ return UAP_STATUS_SUCCESS; ++} ++ ++/** ++ * @brief This function polls the card status register. ++ * ++ * @param priv A pointer to uap_private structure ++ * @param bits the bit mask ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++mv_sdio_poll_card_status(uap_private * priv, u8 bits) ++{ ++ int tries; ++ u8 cs; ++ ++ ENTER(); ++ ++ for (tries = 0; tries < MAX_POLL_TRIES; tries++) { ++ if (sbi_read_ioreg(priv, CARD_STATUS_REG, &cs) < 0) ++ break; ++ else if ((cs & bits) == bits) { ++ LEAVE(); ++ return UAP_STATUS_SUCCESS; ++ } ++ udelay(10); ++ } ++ ++ PRINTM(WARN, "mv_sdio_poll_card_status failed, tries = %d\n", tries); ++ ++ LEAVE(); ++ return UAP_STATUS_FAILURE; ++} ++ ++/** ++ * @brief This function set the sdio bus width. ++ * ++ * @param priv A pointer to uap_private structure ++ * @param mode 1--1 bit mode, 4--4 bit mode ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++#if 0 ++static int ++sdio_set_bus_width(uap_private * priv, u8 mode) ++{ ++ ENTER(); ++ LEAVE(); ++ return UAP_STATUS_SUCCESS; ++} ++#endif ++ ++/** ++ * @brief This function reads data from the card. ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++sd_card_to_host(uap_private * priv) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ u16 buf_len = 0; ++ int buf_block_len; ++ int blksz; ++ struct sk_buff *skb = NULL; ++ u16 type; ++ u8 *payload = NULL; ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ ++ ENTER(); ++ ++ if (!card || !card->func) { ++ PRINTM(ERROR, "card or function is NULL!\n"); ++ ret = UAP_STATUS_FAILURE; ++ goto exit; ++ } ++ ++ /* Read the length of data to be transferred */ ++ ret = sd_read_rx_len(priv, &buf_len); ++ if (ret < 0) { ++ PRINTM(ERROR, "card_to_host, read scratch reg failed\n"); ++ ret = UAP_STATUS_FAILURE; ++ goto exit; ++ } ++ ++ /* Allocate buffer */ ++ blksz = SD_BLOCK_SIZE; ++ buf_block_len = (buf_len + blksz - 1) / blksz; ++ if (buf_len <= INTF_HEADER_LEN || (buf_block_len * blksz) > ALLOC_BUF_SIZE) { ++ PRINTM(ERROR, "card_to_host, invalid packet length: %d\n", buf_len); ++ ret = UAP_STATUS_FAILURE; ++ goto exit; ++ } ++#ifdef PXA3XX_DMA_ALIGN ++ skb = dev_alloc_skb(buf_block_len * blksz + PXA3XX_DMA_ALIGNMENT); ++#else ++ skb = dev_alloc_skb(buf_block_len * blksz); ++#endif ++ if (skb == NULL) { ++ PRINTM(WARN, "No free skb\n"); ++ goto exit; ++ } ++#ifdef PXA3XX_DMA_ALIGN ++ if ((u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1)) { ++ skb_put(skb, (u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1)); ++ skb_pull(skb, (u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1)); ++ } ++#endif /* PXA3XX_DMA_ALIGN */ ++ ++ payload = skb->tail; ++ ret = sdio_readsb(card->func, payload, priv->uap_dev.ioport, ++ buf_block_len * blksz); ++ if (ret < 0) { ++ PRINTM(ERROR, "card_to_host, read iomem failed: %d\n", ret); ++ ret = UAP_STATUS_FAILURE; ++ goto exit; ++ } ++ HEXDUMP("SDIO Blk Rd", payload, blksz * buf_block_len); ++ /* ++ * This is SDIO specific header ++ * u16 length, ++ * u16 type (MV_TYPE_DAT = 0, MV_TYPE_CMD = 1, MV_TYPE_EVENT = 3) ++ */ ++ buf_len = uap_le16_to_cpu(*(u16 *) & payload[0]); ++ type = uap_le16_to_cpu(*(u16 *) & payload[2]); ++ switch (type) { ++ case MV_TYPE_EVENT: ++ skb_put(skb, buf_len); ++ skb_pull(skb, INTF_HEADER_LEN); ++ uap_process_event(priv, skb->data, skb->len); ++ kfree_skb(skb); ++ skb = NULL; ++ break; ++ case MV_TYPE_CMD: ++ skb_put(skb, buf_len); ++ skb_pull(skb, INTF_HEADER_LEN); ++ priv->adapter->cmd_pending = FALSE; ++ if (priv->adapter->cmd_wait_option == ++ HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM) { ++ priv->adapter->cmd_wait_option = FALSE; ++ uap_process_sleep_confirm_resp(priv, skb->data, skb->len); ++ } else if (priv->adapter->cmd_wait_option) { ++ memcpy(priv->adapter->CmdBuf, skb->data, skb->len); ++ priv->adapter->CmdSize = skb->len; ++ priv->adapter->cmd_wait_option = FALSE; ++ priv->adapter->CmdWaitQWoken = TRUE; ++ wake_up_interruptible(&priv->adapter->cmdwait_q); ++ } ++ kfree_skb(skb); ++ skb = NULL; ++ break; ++ case MV_TYPE_DAT: ++ skb_put(skb, buf_len); ++ skb_pull(skb, INTF_HEADER_LEN); ++ uap_process_rx_packet(priv, skb); ++ break; ++ default: ++ priv->stats.rx_errors++; ++ priv->stats.rx_dropped++; ++ /* Driver specified event and command resp should be handle here */ ++ PRINTM(INFO, "Unknown PKT type:%d\n", type); ++ kfree_skb(skb); ++ skb = NULL; ++ break; ++ } ++ exit: ++ if (ret) { ++ if (skb) ++ kfree_skb(skb); ++ } ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function enables the host interrupts mask ++ * ++ * @param priv A pointer to uap_private structure ++ * @param mask the interrupt mask ++ * @return UAP_STATUS_SUCCESS ++ */ ++static int ++enable_host_int_mask(uap_private * priv, u8 mask) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ ++ ENTER(); ++ ++ /* Simply write the mask to the register */ ++ ret = sbi_write_ioreg(priv, HOST_INT_MASK_REG, mask); ++ ++ if (ret) { ++ PRINTM(WARN, "Unable to enable the host interrupt!\n"); ++ ret = UAP_STATUS_FAILURE; ++ } ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** @brief This function disables the host interrupts mask. ++ * ++ * @param priv A pointer to uap_private structure ++ * @param mask the interrupt mask ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++disable_host_int_mask(uap_private * priv, u8 mask) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ u8 host_int_mask; ++ ++ ENTER(); ++ ++ /* Read back the host_int_mask register */ ++ ret = sbi_read_ioreg(priv, HOST_INT_MASK_REG, &host_int_mask); ++ if (ret) { ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ ++ /* Update with the mask and write back to the register */ ++ host_int_mask &= ~mask; ++ ret = sbi_write_ioreg(priv, HOST_INT_MASK_REG, host_int_mask); ++ if (ret < 0) { ++ PRINTM(WARN, "Unable to diable the host interrupt!\n"); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/******************************************************** ++ Global Functions ++********************************************************/ ++ ++/** ++ * @brief This function handles the interrupt. ++ * ++ * @param func A pointer to sdio_func structure. ++ * @return n/a ++ */ ++static void ++sbi_interrupt(struct sdio_func *func) ++{ ++ struct sdio_mmc_card *card; ++ uap_private *priv; ++ u8 ireg = 0; ++ int ret = UAP_STATUS_SUCCESS; ++ ++ ENTER(); ++ ++ card = sdio_get_drvdata(func); ++ if (!card || !card->priv) { ++ PRINTM(MSG, "%s: sbi_interrupt(%p) card or priv is NULL, card=%p\n", ++ __FUNCTION__, func, card); ++ LEAVE(); ++ return; ++ } ++ priv = card->priv; ++#ifdef FW_WAKEUP_TIME ++ if ((priv->adapter->wt_pwrup_sending != 0L) && ++ (priv->adapter->wt_int == 0L)) ++ priv->adapter->wt_int = get_utimeofday(); ++#endif ++ ++ ireg = sdio_readb(card->func, HOST_INTSTATUS_REG, &ret); ++ if (ret) { ++ PRINTM(WARN, "sdio_read_ioreg: read int status register failed\n"); ++ goto done; ++ } ++ if (ireg != 0) { ++ /* ++ * DN_LD_HOST_INT_STATUS and/or UP_LD_HOST_INT_STATUS ++ * Clear the interrupt status register and re-enable the interrupt ++ */ ++ PRINTM(INFO, "sdio_ireg = 0x%x\n", ireg); ++ sdio_writeb(card->func, ++ ~(ireg) & (DN_LD_HOST_INT_STATUS | UP_LD_HOST_INT_STATUS), ++ HOST_INTSTATUS_REG, &ret); ++ if (ret) { ++ PRINTM(WARN, ++ "sdio_write_ioreg: clear int status register failed\n"); ++ goto done; ++ } ++ } ++ OS_INT_DISABLE; ++ sd_ireg |= ireg; ++ OS_INT_RESTORE; ++ ++ uap_interrupt(priv); ++ done: ++ LEAVE(); ++} ++ ++/** ++ * @brief This function probe the card ++ * ++ * @param func A pointer to sdio_func structure ++ * @param id A pointer to structure sd_device_id ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++static int ++uap_probe(struct sdio_func *func, const struct sdio_device_id *id) ++{ ++ int ret = UAP_STATUS_FAILURE; ++ struct sdio_mmc_card *card = NULL; ++ ++ ENTER(); ++ ++ PRINTM(MSG, "%s: vendor=0x%4.04X device=0x%4.04X class=%d function=%d\n", ++ __FUNCTION__, func->vendor, func->device, func->class, func->num); ++ ++ card = kzalloc(sizeof(struct sdio_mmc_card), GFP_KERNEL); ++ if (!card) { ++ ret = -ENOMEM; ++ goto done; ++ } ++ ++ card->func = func; ++ ++ if (!uap_add_card(card)) { ++ PRINTM(ERROR, "%s: uap_add_callback failed\n", __FUNCTION__); ++ kfree(card); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ ++ ret = UAP_STATUS_SUCCESS; ++ ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function removes the card ++ * ++ * @param func A pointer to sdio_func structure ++ * @return N/A ++ */ ++static void ++uap_remove(struct sdio_func *func) ++{ ++ struct sdio_mmc_card *card; ++ ++ ENTER(); ++ ++ if (func) { ++ card = sdio_get_drvdata(func); ++ if (card) { ++ uap_remove_card(card); ++ kfree(card); ++ } ++ } ++ ++ LEAVE(); ++} ++ ++#ifdef CONFIG_PM ++/** ++ * @brief This function handles client driver suspend ++ * ++ * @param func A pointer to sdio_func structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++uap_suspend(struct sdio_func *func) ++{ ++ ENTER(); ++ LEAVE(); ++ return 0; ++} ++ ++/** ++ * @brief This function handles client driver resume ++ * ++ * @param func A pointer to sdio_func structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++uap_resume(struct sdio_func *func) ++{ ++ ENTER(); ++ LEAVE(); ++ return 0; ++} ++#endif ++ ++/** Device ID for SD8688 */ ++#define SD_DEVICE_ID_8688_UAP 0x9104 ++/** UAP IDs */ ++static const struct sdio_device_id uap_ids[] = { ++ {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SD_DEVICE_ID_8688_UAP)}, ++ {}, ++}; ++ ++MODULE_DEVICE_TABLE(sdio, uap_ids); ++ ++static struct sdio_driver uap_sdio = { ++ .name = "uap_sdio", ++ .id_table = uap_ids, ++ .probe = uap_probe, ++ .remove = uap_remove, ++#ifdef CONFIG_PM ++/* .suspend = uap_suspend, */ ++/* .resume = uap_resume, */ ++#endif ++ ++}; ++ ++/** ++ * @brief This function registers the IF module in bus driver. ++ * ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int __init ++sbi_register() ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ ++ ENTER(); ++ ++ /* SDIO Driver Registration */ ++ if (sdio_register_driver(&uap_sdio) != 0) { ++ PRINTM(FATAL, "SDIO Driver Registration Failed \n"); ++ ret = UAP_STATUS_FAILURE; ++ } ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function de-registers the IF module in bus driver. ++ * ++ * @return n/a ++ */ ++void __exit ++sbi_unregister(void) ++{ ++ ENTER(); ++ ++ /* SDIO Driver Unregistration */ ++ sdio_unregister_driver(&uap_sdio); ++ ++ LEAVE(); ++} ++ ++/** ++ * @brief This function checks the interrupt status and handle it accordingly. ++ * ++ * @param priv A pointer to uap_private structure ++ * @param ireg A pointer to variable that keeps returned value ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++sbi_get_int_status(uap_private * priv, u8 * ireg) ++{ ++ int ret = UAP_STATUS_SUCCESS; ++ u8 sdio_ireg = 0; ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ ++ ENTER(); ++ ++ *ireg = 0; ++ OS_INT_DISABLE; ++ sdio_ireg = sd_ireg; ++ sd_ireg = 0; ++ OS_INT_RESTORE; ++ ++ sdio_claim_host(card->func); ++ ++ if (sdio_ireg & DN_LD_HOST_INT_STATUS) { /* tx_done INT */ ++ if (!priv->uap_dev.cmd_sent) { /* tx_done already received */ ++ PRINTM(INFO, ++ "warning: tx_done already received: tx_dnld_rdy=0x%x int status=0x%x\n", ++ priv->uap_dev.cmd_sent, sdio_ireg); ++ } else { ++ priv->uap_dev.cmd_sent = FALSE; ++ priv->uap_dev.data_sent = FALSE; ++ if ( (priv->uap_dev.netdev->reg_state == NETREG_REGISTERED) && (skb_queue_len(&priv->adapter->tx_queue) < TX_LOW_WATERMARK)) { ++ os_start_queue(priv); ++ } ++ } ++ } ++ if (sdio_ireg & UP_LD_HOST_INT_STATUS) { ++ sd_card_to_host(priv); ++ } ++ ++ *ireg = sdio_ireg; ++ ret = UAP_STATUS_SUCCESS; ++ sdio_release_host(card->func); ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function disables the host interrupts. ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++sbi_disable_host_int(uap_private * priv) ++{ ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ int ret; ++ ++ ENTER(); ++ ++ sdio_claim_host(card->func); ++ ret = disable_host_int_mask(priv, HIM_DISABLE); ++ sdio_release_host(card->func); ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function enables the host interrupts. ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS ++ */ ++int ++sbi_enable_host_int(uap_private * priv) ++{ ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ int ret; ++ ++ ENTER(); ++ ++ sdio_claim_host(card->func); ++ ret = enable_host_int_mask(priv, HIM_ENABLE); ++ sdio_release_host(card->func); ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function de-registers the device. ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS ++ */ ++int ++sbi_unregister_dev(uap_private * priv) ++{ ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ ++ ENTER(); ++ ++ if (!card || !card->func) { ++ PRINTM(ERROR, "Error: card or function is NULL!\n"); ++ goto done; ++ } ++ ++ sdio_claim_host(card->func); ++ sdio_release_irq(card->func); ++ sdio_disable_func(card->func); ++ sdio_release_host(card->func); ++ ++ sdio_set_drvdata(card->func, NULL); ++ ++ done: ++ LEAVE(); ++ return UAP_STATUS_SUCCESS; ++} ++ ++/** ++ * @brief This function registers the device. ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++sbi_register_dev(uap_private * priv) ++{ ++ int ret = UAP_STATUS_FAILURE; ++ u8 reg; ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ struct sdio_func *func; ++ ++ ENTER(); ++ ++ if (!card || !card->func) { ++ PRINTM(ERROR, "Error: card or function is NULL!\n"); ++ goto done; ++ } ++ ++ func = card->func; ++ ++ /* Initialize the private structure */ ++ priv->uap_dev.ioport = 0; ++ ++ sdio_claim_host(func); ++ ++ ret = sdio_enable_func(func); ++ if (ret) { ++ PRINTM(FATAL, "sdio_enable_func() failed: ret=%d\n", ret); ++ goto release_host; ++ } ++ ++ ret = sdio_claim_irq(func, sbi_interrupt); ++ if (ret) { ++ PRINTM(FATAL, "sdio_claim_irq failed: ret=%d\n", ret); ++ goto disable_func; ++ } ++ ++ /* Read the IO port */ ++ ret = sbi_read_ioreg(priv, IO_PORT_0_REG, ®); ++ if (ret) ++ goto release_irq; ++ else ++ priv->uap_dev.ioport |= reg; ++ ++ ret = sbi_read_ioreg(priv, IO_PORT_1_REG, ®); ++ if (ret) ++ goto release_irq; ++ else ++ priv->uap_dev.ioport |= (reg << 8); ++ ++ ret = sbi_read_ioreg(priv, IO_PORT_2_REG, ®); ++ if (ret) ++ goto release_irq; ++ else ++ priv->uap_dev.ioport |= (reg << 16); ++ ++ PRINTM(INFO, "SDIO FUNC #%d IO port: 0x%x\n", func->num, ++ priv->uap_dev.ioport); ++ ++ ret = sdio_set_block_size(card->func, SD_BLOCK_SIZE); ++ if (ret) { ++ PRINTM(ERROR, "%s: cannot set SDIO block size\n", __FUNCTION__); ++ ret = UAP_STATUS_FAILURE; ++ goto release_irq; ++ } ++ priv->hotplug_device = &func->dev; ++ ++ if (helper_name == NULL) { ++ helper_name = DEFAULT_HELPER_NAME; ++ } ++ if (fw_name == NULL) { ++ fw_name = DEFAULT_FW_NAME; ++ } ++ sdio_release_host(func); ++ ++ sdio_set_drvdata(func, card); ++ ++ ret = UAP_STATUS_SUCCESS; ++ goto done; ++ ++ release_irq: ++ sdio_release_irq(func); ++ disable_func: ++ sdio_disable_func(func); ++ release_host: ++ sdio_release_host(func); ++ ++ done: ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function sends data to the card. ++ * ++ * @param priv A pointer to uap_private structure ++ * @param payload A pointer to the data/cmd buffer ++ * @param nb the length of data/cmd ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++sbi_host_to_card(uap_private * priv, u8 * payload, u16 nb) ++{ ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ int ret = UAP_STATUS_SUCCESS; ++ int buf_block_len; ++ int blksz; ++ int i = 0; ++ u8 *buf = NULL; ++#ifdef PXA3XX_DMA_ALIGN ++ void *tmpbuf = NULL; ++ int tmpbufsz; ++#endif ++ ++ ENTER(); ++ ++ if (!card || !card->func) { ++ PRINTM(ERROR, "card or function is NULL!\n"); ++ LEAVE(); ++ return UAP_STATUS_FAILURE; ++ } ++ buf = payload; ++#ifdef PXA3XX_DMA_ALIGN ++ if ((u32) payload & (PXA3XX_DMA_ALIGNMENT - 1)) { ++ tmpbufsz = ALIGN_SZ(nb, PXA3XX_DMA_ALIGNMENT); ++ tmpbuf = kmalloc(tmpbufsz, GFP_KERNEL); ++ memset(tmpbuf, 0, tmpbufsz); ++ /* Ensure 8-byte aligned CMD buffer */ ++ buf = (u8 *) ALIGN_ADDR(tmpbuf, PXA3XX_DMA_ALIGNMENT); ++ memcpy(buf, payload, nb); ++ } ++#endif ++ /* Allocate buffer and copy payload */ ++ blksz = SD_BLOCK_SIZE; ++ buf_block_len = (nb + blksz - 1) / blksz; ++ sdio_claim_host(card->func); ++#define MAX_WRITE_IOMEM_RETRY 2 ++ priv->uap_dev.cmd_sent = TRUE; ++ priv->uap_dev.data_sent = TRUE; ++ do { ++ /* Transfer data to card */ ++ ret = sdio_writesb(card->func, priv->uap_dev.ioport, buf, ++ buf_block_len * blksz); ++ if (ret < 0) { ++ i++; ++ PRINTM(ERROR, "host_to_card, write iomem (%d) failed: %d\n", i, ++ ret); ++ ret = UAP_STATUS_FAILURE; ++ if (i > MAX_WRITE_IOMEM_RETRY) ++ goto exit; ++ } else { ++ HEXDUMP("SDIO Blk Wr", payload, nb); ++ } ++ } while (ret == UAP_STATUS_FAILURE); ++ exit: ++ sdio_release_host(card->func); ++#ifdef PXA3XX_DMA_ALIGN ++ if (tmpbuf) ++ kfree(tmpbuf); ++#endif ++ if (ret == UAP_STATUS_FAILURE) { ++ priv->uap_dev.cmd_sent = FALSE; ++ priv->uap_dev.data_sent = FALSE; ++ } ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function reads CIS information. ++ * ++ * @param priv A pointer to uap_private structure ++ * @param cisinfo A pointer to CIS information output buffer ++ * @param cislen A pointer to length of CIS info output buffer ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++#if 0 ++static int ++sbi_get_cis_info(uap_private * priv, void *cisinfo, int *cislen) ++{ ++#define CIS_PTR (0x8000) ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ unsigned int i, cis_ptr = CIS_PTR; ++ int ret = UAP_STATUS_FAILURE; ++ ++ ENTER(); ++ ++ if (!card || !card->func) { ++ PRINTM(ERROR, "sbi_get_cis_info(): card or function is NULL!\n"); ++ goto exit; ++ } ++#define MAX_SDIO_CIS_INFO_LEN (256) ++ if (!cisinfo || (*cislen < MAX_SDIO_CIS_INFO_LEN)) { ++ PRINTM(WARN, "ERROR! get_cis_info: insufficient buffer passed\n"); ++ goto exit; ++ } ++ ++ *cislen = MAX_SDIO_CIS_INFO_LEN; ++ ++ sdio_claim_host(card->func); ++ ++ PRINTM(INFO, "cis_ptr=%#x\n", cis_ptr); ++ ++ /* Read the Tuple Data */ ++ for (i = 0; i < *cislen; i++) { ++ ((unsigned char *) cisinfo)[i] = ++ sdio_readb(card->func, cis_ptr + i, &ret); ++ if (ret) { ++ PRINTM(WARN, "get_cis_info error: ret=%d\n", ret); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ PRINTM(INFO, "cisinfo[%d]=%#x\n", i, ((unsigned char *) cisinfo)[i]); ++ } ++ ++ done: ++ sdio_release_host(card->func); ++ exit: ++ LEAVE(); ++ return ret; ++} ++#endif ++/** ++ * @brief This function downloads helper image to the card. ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++sbi_prog_helper(uap_private * priv) ++{ ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ u8 *helper = NULL; ++ int helperlen; ++ int ret = UAP_STATUS_SUCCESS; ++ void *tmphlprbuf = NULL; ++ int tmphlprbufsz; ++ u8 *hlprbuf; ++ int hlprblknow; ++ u32 tx_len; ++#ifdef FW_DOWNLOAD_SPEED ++ u32 tv1, tv2; ++#endif ++ ++ ENTER(); ++ ++ if (!card || !card->func) { ++ PRINTM(ERROR, "sbi_prog_helper(): card or function is NULL!\n"); ++ goto done; ++ } ++ ++ if (priv->fw_helper) { ++ helper = (u8 *) priv->fw_helper->data; ++ helperlen = priv->fw_helper->size; ++ } else { ++ PRINTM(MSG, "No helper image found! Terminating download.\n"); ++ LEAVE(); ++ return UAP_STATUS_FAILURE; ++ } ++ ++ PRINTM(INFO, "Downloading helper image (%d bytes), block size %d bytes\n", ++ helperlen, SD_BLOCK_SIZE); ++ ++#ifdef FW_DOWNLOAD_SPEED ++ tv1 = get_utimeofday(); ++#endif ++ ++#ifdef PXA3XX_DMA_ALIGN ++ tmphlprbufsz = ALIGN_SZ(UAP_UPLD_SIZE, PXA3XX_DMA_ALIGNMENT); ++#else /* !PXA3XX_DMA_ALIGN */ ++ tmphlprbufsz = UAP_UPLD_SIZE; ++#endif /* !PXA3XX_DMA_ALIGN */ ++ tmphlprbuf = kmalloc(tmphlprbufsz, GFP_KERNEL); ++ if (!tmphlprbuf) { ++ PRINTM(ERROR, ++ "Unable to allocate buffer for helper. Terminating download\n"); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ memset(tmphlprbuf, 0, tmphlprbufsz); ++#ifdef PXA3XX_DMA_ALIGN ++ hlprbuf = (u8 *) ALIGN_ADDR(tmphlprbuf, PXA3XX_DMA_ALIGNMENT); ++#else /* !PXA3XX_DMA_ALIGN */ ++ hlprbuf = (u8 *) tmphlprbuf; ++#endif /* !PXA3XX_DMA_ALIGN */ ++ ++ sdio_claim_host(card->func); ++ ++ /* Perform helper data transfer */ ++ tx_len = (FIRMWARE_TRANSFER_NBLOCK * SD_BLOCK_SIZE) - INTF_HEADER_LEN; ++ hlprblknow = 0; ++ do { ++ /* The host polls for the DN_LD_CARD_RDY and CARD_IO_READY bits */ ++ ret = mv_sdio_poll_card_status(priv, CARD_IO_READY | DN_LD_CARD_RDY); ++ if (ret < 0) { ++ PRINTM(FATAL, "Helper download poll status timeout @ %d\n", ++ hlprblknow); ++ goto done; ++ } ++ ++ /* More data? */ ++ if (hlprblknow >= helperlen) ++ break; ++ ++ /* Set blocksize to transfer - checking for last block */ ++ if (helperlen - hlprblknow < tx_len) ++ tx_len = helperlen - hlprblknow; ++ ++ /* Set length to the 4-byte header */ ++ *(u32 *) hlprbuf = uap_cpu_to_le32(tx_len); ++ ++ /* Copy payload to buffer */ ++ memcpy(&hlprbuf[INTF_HEADER_LEN], &helper[hlprblknow], tx_len); ++ ++ PRINTM(INFO, "."); ++ ++ /* Send data */ ++ ret = sdio_writesb(card->func, priv->uap_dev.ioport, ++ hlprbuf, FIRMWARE_TRANSFER_NBLOCK * SD_BLOCK_SIZE); ++ ++ if (ret < 0) { ++ PRINTM(FATAL, "IO error during helper download @ %d\n", hlprblknow); ++ goto done; ++ } ++ ++ hlprblknow += tx_len; ++ } while (TRUE); ++ ++#ifdef FW_DOWNLOAD_SPEED ++ tv2 = get_utimeofday(); ++ PRINTM(INFO, "helper: %ld.%03ld.%03ld ", tv1 / 1000000, ++ (tv1 % 1000000) / 1000, tv1 % 1000); ++ PRINTM(INFO, " -> %ld.%03ld.%03ld ", tv2 / 1000000, (tv2 % 1000000) / 1000, ++ tv2 % 1000); ++ tv2 -= tv1; ++ PRINTM(INFO, " == %ld.%03ld.%03ld\n", tv2 / 1000000, (tv2 % 1000000) / 1000, ++ tv2 % 1000); ++#endif ++ ++ /* Write last EOF data */ ++ PRINTM(INFO, "\nTransferring helper image EOF block\n"); ++ memset(hlprbuf, 0x0, SD_BLOCK_SIZE); ++ ret = sdio_writesb(card->func, priv->uap_dev.ioport, ++ hlprbuf, SD_BLOCK_SIZE); ++ ++ if (ret < 0) { ++ PRINTM(FATAL, "IO error in writing helper image EOF block\n"); ++ goto done; ++ } ++ ++ ret = UAP_STATUS_SUCCESS; ++ ++ done: ++ sdio_release_host(card->func); ++ if (tmphlprbuf) ++ kfree(tmphlprbuf); ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function downloads firmware image to the card. ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++sbi_prog_fw_w_helper(uap_private * priv) ++{ ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ u8 *firmware = NULL; ++ int firmwarelen; ++ u8 base0; ++ u8 base1; ++ int ret = UAP_STATUS_SUCCESS; ++ int offset; ++ void *tmpfwbuf = NULL; ++ int tmpfwbufsz; ++ u8 *fwbuf; ++ u16 len; ++ int txlen = 0; ++ int tx_blocks = 0; ++ int i = 0; ++ int tries = 0; ++#ifdef FW_DOWNLOAD_SPEED ++ u32 tv1, tv2; ++#endif ++ ++ ENTER(); ++ ++ if (!card || !card->func) { ++ PRINTM(ERROR, "sbi_prog_fw_w_helper(): card or function is NULL!\n"); ++ goto done; ++ } ++ ++ if (priv->firmware) { ++ firmware = (u8 *) priv->firmware->data; ++ firmwarelen = priv->firmware->size; ++ } else { ++ PRINTM(MSG, "No firmware image found! Terminating download.\n"); ++ LEAVE(); ++ return UAP_STATUS_FAILURE; ++ } ++ ++ PRINTM(INFO, "Downloading FW image (%d bytes)\n", firmwarelen); ++ ++#ifdef FW_DOWNLOAD_SPEED ++ tv1 = get_utimeofday(); ++#endif ++ ++#ifdef PXA3XX_DMA_ALIGN ++ tmpfwbufsz = ALIGN_SZ(UAP_UPLD_SIZE, PXA3XX_DMA_ALIGNMENT); ++#else /* PXA3XX_DMA_ALIGN */ ++ tmpfwbufsz = UAP_UPLD_SIZE; ++#endif /* PXA3XX_DMA_ALIGN */ ++ tmpfwbuf = kmalloc(tmpfwbufsz, GFP_KERNEL); ++ if (!tmpfwbuf) { ++ PRINTM(ERROR, ++ "Unable to allocate buffer for firmware. Terminating download.\n"); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ memset(tmpfwbuf, 0, tmpfwbufsz); ++#ifdef PXA3XX_DMA_ALIGN ++ /* Ensure 8-byte aligned firmware buffer */ ++ fwbuf = (u8 *) ALIGN_ADDR(tmpfwbuf, PXA3XX_DMA_ALIGNMENT); ++#else /* PXA3XX_DMA_ALIGN */ ++ fwbuf = (u8 *) tmpfwbuf; ++#endif /* PXA3XX_DMA_ALIGN */ ++ ++ sdio_claim_host(card->func); ++ ++ /* Perform firmware data transfer */ ++ offset = 0; ++ do { ++ /* The host polls for the DN_LD_CARD_RDY and CARD_IO_READY bits */ ++ ret = mv_sdio_poll_card_status(priv, CARD_IO_READY | DN_LD_CARD_RDY); ++ if (ret < 0) { ++ PRINTM(FATAL, "FW download with helper poll status timeout @ %d\n", ++ offset); ++ goto done; ++ } ++ ++ /* More data? */ ++ if (offset >= firmwarelen) ++ break; ++ ++ for (tries = 0; tries < MAX_POLL_TRIES; tries++) { ++ if ((ret = sbi_read_ioreg(priv, HOST_F1_RD_BASE_0, &base0)) < 0) { ++ PRINTM(WARN, "Dev BASE0 register read failed:" ++ " base0=0x%04X(%d). Terminating download.\n", base0, ++ base0); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ if ((ret = sbi_read_ioreg(priv, HOST_F1_RD_BASE_1, &base1)) < 0) { ++ PRINTM(WARN, "Dev BASE1 register read failed:" ++ " base1=0x%04X(%d). Terminating download.\n", base1, ++ base1); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ len = (((u16) base1) << 8) | base0; ++ ++ /* For SD8688 wait until the length is not 0, 1 or 2 before ++ downloading the first FW block, since BOOT code writes the ++ register to indicate the helper/FW download winner, the value ++ could be 1 or 2 (Func1 or Func2). */ ++ if ((len && offset) || (len > 2)) ++ break; ++ udelay(10); ++ } ++ ++ if (len == 0) ++ break; ++ else if (len > UAP_UPLD_SIZE) { ++ PRINTM(FATAL, "FW download failure @ %d, invalid length %d\n", ++ offset, len); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ ++ txlen = len; ++ ++ if (len & BIT(0)) { ++ i++; ++ if (i > MAX_WRITE_IOMEM_RETRY) { ++ PRINTM(FATAL, ++ "FW download failure @ %d, over max retry count\n", ++ offset); ++ ret = UAP_STATUS_FAILURE; ++ goto done; ++ } ++ PRINTM(ERROR, "FW CRC error indicated by the helper:" ++ " len = 0x%04X, txlen = %d\n", len, txlen); ++ len &= ~BIT(0); ++ /* Setting this to 0 to resend from same offset */ ++ txlen = 0; ++ } else { ++ i = 0; ++ ++ /* Set blocksize to transfer - checking for last block */ ++ if (firmwarelen - offset < txlen) { ++ txlen = firmwarelen - offset; ++ } ++ PRINTM(INFO, "."); ++ ++ tx_blocks = (txlen + SD_BLOCK_SIZE - 1) / SD_BLOCK_SIZE; ++ ++ /* Copy payload to buffer */ ++ memcpy(fwbuf, &firmware[offset], txlen); ++ } ++ ++ /* Send data */ ++ ret = sdio_writesb(card->func, priv->uap_dev.ioport, ++ fwbuf, tx_blocks * SD_BLOCK_SIZE); ++ ++ if (ret < 0) { ++ PRINTM(ERROR, "FW download, write iomem (%d) failed @ %d\n", i, ++ offset); ++ if (sbi_write_ioreg(priv, CONFIGURATION_REG, 0x04) < 0) { ++ PRINTM(ERROR, "write ioreg failed (CFG)\n"); ++ } ++ } ++ ++ offset += txlen; ++ } while (TRUE); ++ ++ PRINTM(INFO, "\nFW download over, size %d bytes\n", offset); ++ ++ ret = UAP_STATUS_SUCCESS; ++ done: ++#ifdef FW_DOWNLOAD_SPEED ++ tv2 = get_utimeofday(); ++ PRINTM(INFO, "FW: %ld.%03ld.%03ld ", tv1 / 1000000, ++ (tv1 % 1000000) / 1000, tv1 % 1000); ++ PRINTM(INFO, " -> %ld.%03ld.%03ld ", tv2 / 1000000, ++ (tv2 % 1000000) / 1000, tv2 % 1000); ++ tv2 -= tv1; ++ PRINTM(INFO, " == %ld.%03ld.%03ld\n", tv2 / 1000000, ++ (tv2 % 1000000) / 1000, tv2 % 1000); ++#endif ++ sdio_release_host(card->func); ++ if (tmpfwbuf) ++ kfree(tmpfwbuf); ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function checks if the firmware is ready to accept ++ * command or not. ++ * ++ * @param priv A pointer to uap_private structure ++ * @param pollnum Poll number ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++sbi_check_fw_status(uap_private * priv, int pollnum) ++{ ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ int ret = UAP_STATUS_SUCCESS; ++ u16 firmwarestat; ++ int tries; ++ ++ ENTER(); ++ ++ sdio_claim_host(card->func); ++ ++ /* Wait for firmware initialization event */ ++ for (tries = 0; tries < pollnum; tries++) { ++ if ((ret = sd_read_firmware_status(priv, &firmwarestat)) < 0) ++ continue; ++ if (firmwarestat == FIRMWARE_READY) { ++ ret = UAP_STATUS_SUCCESS; ++ break; ++ } else { ++ mdelay(10); ++ ret = UAP_STATUS_FAILURE; ++ } ++ } ++ ++ if (ret < 0) ++ goto done; ++ ++ ret = UAP_STATUS_SUCCESS; ++ sd_get_rx_unit(priv); ++ ++ done: ++ sdio_release_host(card->func); ++ ++ LEAVE(); ++ return ret; ++} ++ ++/** ++ * @brief This function set bus clock on/off ++ * ++ * @param priv A pointer to uap_private structure ++ * @param option TRUE--on , FALSE--off ++ * @return UAP_STATUS_SUCCESS ++ */ ++#if 0 ++static int ++sbi_set_bus_clock(uap_private * priv, u8 option) ++{ ++ ENTER(); ++ LEAVE(); ++ return UAP_STATUS_SUCCESS; ++} ++#endif ++ ++/** ++ * @brief This function wakeup firmware ++ * ++ * @param priv A pointer to uap_private structure ++ * @return UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE ++ */ ++int ++sbi_wakeup_firmware(uap_private * priv) ++{ ++ struct sdio_mmc_card *card = priv->uap_dev.card; ++ int ret = UAP_STATUS_SUCCESS; ++ ++ ENTER(); ++ ++ if (!card || !card->func) { ++ PRINTM(ERROR, "card or function is NULL!\n"); ++ LEAVE(); ++ return UAP_STATUS_FAILURE; ++ } ++ sdio_claim_host(card->func); ++ sdio_writeb(card->func, HOST_POWER_UP, CONFIGURATION_REG, &ret); ++ sdio_release_host(card->func); ++ LEAVE(); ++ return ret; ++} +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h 2012-07-31 14:23:04.000000000 +0200 +@@ -0,0 +1,136 @@ ++/** @file uap_sdio_mmc.h ++ * @brief This file contains SDIO IF (interface) module ++ * related macros, enum, and structure. ++ * ++ * Copyright (C) 2007-2009, Marvell International Ltd. ++ * ++ * This software file (the "File") is distributed by Marvell International ++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991 ++ * (the "License"). You may use, redistribute and/or modify this File in ++ * accordance with the terms and conditions of the License, a copy of which ++ * is available along with the File in the gpl.txt file or by writing to ++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. ++ * ++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ++ * ARE EXPRESSLY DISCLAIMED. The License provides additional details about ++ * this warranty disclaimer. ++ * ++ */ ++/**************************************************** ++Change log: ++ 10/10/07: initial version ++****************************************************/ ++ ++#ifndef _UAP_SDIO_MMC_H ++#define _UAP_SDIO_MMC_H ++ ++#include <linux/mmc/sdio.h> ++#include <linux/mmc/sdio_ids.h> ++#include <linux/mmc/sdio_func.h> ++#include <linux/mmc/card.h> ++ ++#include "uap_headers.h" ++ ++/** The number of times to try when waiting for downloaded firmware to ++ become active. (polling the scratch register). */ ++#define MAX_FIRMWARE_POLL_TRIES 100 ++ ++/** Firmware ready */ ++#define FIRMWARE_READY 0xfedc ++ ++/** Number of firmware blocks to transfer */ ++#define FIRMWARE_TRANSFER_NBLOCK 2 ++ ++/* Host Control Registers */ ++/** Host Control Registers : I/O port 0 */ ++#define IO_PORT_0_REG 0x00 ++/** Host Control Registers : I/O port 1 */ ++#define IO_PORT_1_REG 0x01 ++/** Host Control Registers : I/O port 2 */ ++#define IO_PORT_2_REG 0x02 ++ ++/** Host Control Registers : Configuration */ ++#define CONFIGURATION_REG 0x03 ++/** Host Control Registers : Host without Command 53 finish host */ ++#define HOST_WO_CMD53_FINISH_HOST (0x1U << 2) ++/** Host Control Registers : Host power up */ ++#define HOST_POWER_UP (0x1U << 1) ++/** Host Control Registers : Host power down */ ++#define HOST_POWER_DOWN (0x1U << 0) ++ ++/** Host Control Registers : Host interrupt mask */ ++#define HOST_INT_MASK_REG 0x04 ++/** Host Control Registers : Upload host interrupt mask */ ++#define UP_LD_HOST_INT_MASK (0x1U) ++/** Host Control Registers : Download host interrupt mask */ ++#define DN_LD_HOST_INT_MASK (0x2U) ++/** Enable Host interrupt mask */ ++#define HIM_ENABLE (UP_LD_HOST_INT_MASK | DN_LD_HOST_INT_MASK) ++/** Disable Host interrupt mask */ ++#define HIM_DISABLE 0xff ++ ++/** Host Control Registers : Host interrupt status */ ++#define HOST_INTSTATUS_REG 0x05 ++/** Host Control Registers : Upload host interrupt status */ ++#define UP_LD_HOST_INT_STATUS (0x1U) ++/** Host Control Registers : Download host interrupt status */ ++#define DN_LD_HOST_INT_STATUS (0x2U) ++ ++/** Host F1 read base 0 */ ++#define HOST_F1_RD_BASE_0 0x10 ++/** Host F1 read base 1 */ ++#define HOST_F1_RD_BASE_1 0x11 ++ ++/** Card Control Registers : Card status register */ ++#define CARD_STATUS_REG 0x20 ++/** Card Control Registers : Card I/O ready */ ++#define CARD_IO_READY (0x1U << 3) ++/** Card Control Registers : CIS card ready */ ++#define CIS_CARD_RDY (0x1U << 2) ++/** Card Control Registers : Upload card ready */ ++#define UP_LD_CARD_RDY (0x1U << 1) ++/** Card Control Registers : Download card ready */ ++#define DN_LD_CARD_RDY (0x1U << 0) ++ ++/** Card Control Registers : Card OCR 0 register */ ++#define CARD_OCR_0_REG 0x34 ++/** Card Control Registers : Card OCR 1 register */ ++#define CARD_OCR_1_REG 0x35 ++ ++/** Firmware status 0 register */ ++#define CARD_FW_STATUS0_REG 0x40 ++/** Firmware status 1 register */ ++#define CARD_FW_STATUS1_REG 0x41 ++/** Rx length register */ ++#define CARD_RX_LEN_REG 0x42 ++/** Rx unit register */ ++#define CARD_RX_UNIT_REG 0x43 ++ ++/** Chip Id Register 0 */ ++#define CARD_CHIP_ID_0_REG 0x801c ++/** Chip Id Register 1 */ ++#define CARD_CHIP_ID_1_REG 0x801d ++ ++#ifdef PXA3XX_DMA_ALIGN ++/** DMA alignment value for PXA3XX platforms */ ++#define PXA3XX_DMA_ALIGNMENT 8 ++/** Macros for Data Alignment : size */ ++#define ALIGN_SZ(p, a) \ ++ (((p) + ((a) - 1)) & ~((a) - 1)) ++ ++/** Macros for Data Alignment : address */ ++#define ALIGN_ADDR(p, a) \ ++ ((((u32)(p)) + (((u32)(a)) - 1)) & ~(((u32)(a)) - 1)) ++#endif /* PXA3XX_DMA_ALIGN */ ++ ++struct sdio_mmc_card ++{ ++ /** sdio_func structure pointer */ ++ struct sdio_func *func; ++ /** uap_private structure pointer */ ++ uap_private *priv; ++}; ++ ++#endif /* _UAP_SDIO_MMC_H */ +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/Makefile compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/Makefile +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/Makefile 2012-07-05 03:48:01.000000000 +0200 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/Makefile 2012-07-31 14:20:01.343608619 +0200 +@@ -22,6 +22,8 @@ + + obj-$(CONFIG_LIBERTAS_THINFIRM) += libertas_tf/ + ++obj-$(CONFIG_LIBERTAS_UAP) += libertas_uap/ ++ + obj-$(CONFIG_ADM8211) += adm8211.o + + obj-$(CONFIG_MWL8K) += mwl8k.o diff --git a/src/patches/compat-wireless-3.6.8-remove_3.1_cpufreq_backport.patch b/src/patches/compat-wireless-3.6.8-remove_3.1_cpufreq_backport.patch new file mode 100644 index 0000000..602c153 --- /dev/null +++ b/src/patches/compat-wireless-3.6.8-remove_3.1_cpufreq_backport.patch @@ -0,0 +1,48 @@ +diff -Naur compat-wireless-3.6.8-1-snp.org/compat/compat-3.1.c compat-wireless-3.6.8-1-snp/compat/compat-3.1.c +--- compat-wireless-3.6.8-1-snp.org/compat/compat-3.1.c 2012-11-29 06:03:45.000000000 +0100 ++++ compat-wireless-3.6.8-1-snp/compat/compat-3.1.c 2013-01-18 16:50:08.799491784 +0100 +@@ -9,30 +9,6 @@ + */ + + #include <linux/idr.h> +-#include <linux/cpufreq.h> +- +-/* This backports: +- * commit 3d73710880afa3d61cf57b5d4eb192e812eb7e4f +- * Author: Jesse Barnes jbarnes@virtuousgeek.org +- * Date: Tue Jun 28 10:59:12 2011 -0700 +- * +- * cpufreq: expose a cpufreq_quick_get_max routine +- */ +- +-unsigned int compat_cpufreq_quick_get_max(unsigned int cpu) +-{ +- struct cpufreq_policy *policy = cpufreq_cpu_get(cpu); +- unsigned int ret_freq = 0; +- +- if (policy) { +- ret_freq = policy->max; +- cpufreq_cpu_put(policy); +- } +- +- return ret_freq; +-} +-EXPORT_SYMBOL(compat_cpufreq_quick_get_max); +- + + static DEFINE_SPINLOCK(compat_simple_ida_lock); + +diff -Naur compat-wireless-3.6.8-1-snp.org/include/linux/compat-3.1.h compat-wireless-3.6.8-1-snp/include/linux/compat-3.1.h +--- compat-wireless-3.6.8-1-snp.org/include/linux/compat-3.1.h 2012-10-24 15:22:50.000000000 +0200 ++++ compat-wireless-3.6.8-1-snp/include/linux/compat-3.1.h 2013-01-18 16:52:04.106154741 +0100 +@@ -111,10 +111,6 @@ + + void ida_simple_remove(struct ida *ida, unsigned int id); + +-/* mask cpufreq_quick_get_max as RHEL6 backports this */ +-#define cpufreq_quick_get_max(a) compat_cpufreq_quick_get_max(a) +- +-unsigned int cpufreq_quick_get_max(unsigned int cpu); + #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) */ + + #endif /* LINUX_3_1_COMPAT_H */ diff --git a/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch b/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch new file mode 100644 index 0000000..210a58c --- /dev/null +++ b/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch @@ -0,0 +1,68 @@ +From patchwork Mon Jul 30 06:52:21 2012 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: codel: refine one condition to avoid a nul rec_inv_sqrt +Date: Sun, 29 Jul 2012 20:52:21 -0000 +From: Eric Dumazet eric.dumazet@gmail.com +X-Patchwork-Id: 173968 +Message-Id: 1343631141.2626.13293.camel@edumazet-glaptop +To: David Miller davem@davemloft.net +Cc: netdev netdev@vger.kernel.org, Anton Mich lp2s1h@gmail.com + +From: Eric Dumazet edumazet@google.com + +One condition before codel_Newton_step() was not good if +we never left the dropping state for a flow. As a result +rec_inv_sqrt was 0, instead of the ~0 initial value. + +codel control law was then set to a very aggressive mode, dropping +many packets before reaching 'target' and recovering from this problem. + +To keep codel_vars_init() as efficient as possible, refine +the condition to make sure rec_inv_sqrt initial value is correct + +Many thanks to Anton Mich for discovering the issue and suggesting +a fix. + +Reported-by: Anton Mich lp2s1h@gmail.com +Signed-off-by: Eric Dumazet edumazet@google.com + +--- +include/net/codel.h | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + + + +-- +To unsubscribe from this list: send the line "unsubscribe netdev" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html + +diff --git a/include/net/codel.h b/include/net/codel.h +index 550debf..389cf62 100644 +--- a/include/net/codel.h ++++ b/include/net/codel.h +@@ -305,6 +305,8 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch, + } + } + } else if (drop) { ++ u32 delta; ++ + if (params->ecn && INET_ECN_set_ce(skb)) { + stats->ecn_mark++; + } else { +@@ -320,9 +322,11 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch, + * assume that the drop rate that controlled the queue on the + * last cycle is a good starting point to control it now. + */ +- if (codel_time_before(now - vars->drop_next, ++ delta = vars->count - vars->lastcount; ++ if (delta > 1 && ++ codel_time_before(now - vars->drop_next, + 16 * params->interval)) { +- vars->count = (vars->count - vars->lastcount) | 1; ++ vars->count = delta; + /* we dont care if rec_inv_sqrt approximation + * is not very precise : + * Next Newton steps will correct it quadratically. diff --git a/src/patches/coreutils-5.96-futimes.patch b/src/patches/coreutils-5.96-futimes.patch new file mode 100644 index 0000000..e91f1df --- /dev/null +++ b/src/patches/coreutils-5.96-futimes.patch @@ -0,0 +1,56 @@ +--- coreutils-6.0.orig/lib/utimens.c 2006-06-11 09:14:31.000000000 +0200 ++++ coreutils-6.0/lib/utimens.c 2007-07-17 00:41:08.000000000 +0200 +@@ -75,7 +75,7 @@ + Return 0 on success, -1 (setting errno) on failure. */ + + int +-futimens (int fd ATTRIBUTE_UNUSED, ++cu_futimens (int fd ATTRIBUTE_UNUSED, + char const *file, struct timespec const timespec[2]) + { + /* There's currently no interface to set file timestamps with +@@ -168,5 +168,5 @@ + int + utimens (char const *file, struct timespec const timespec[2]) + { +- return futimens (-1, file, timespec); ++ return cu_futimens (-1, file, timespec); + } +--- coreutils-6.0.orig/lib/utimens.h 2004-11-23 21:41:51.000000000 +0100 ++++ coreutils-6.0/lib/utimens.h 2007-07-17 00:41:31.000000000 +0200 +@@ -1,3 +1,3 @@ + #include "timespec.h" +-int futimens (int, char const *, struct timespec const [2]); ++int cu_futimens (int, char const *, struct timespec const [2]); + int utimens (char const *, struct timespec const [2]); +--- coreutils-6.0.orig/src/copy.c 2007-07-16 23:18:42.000000000 +0200 ++++ coreutils-6.0/src/copy.c 2007-07-17 00:43:10.000000000 +0200 +@@ -648,7 +648,7 @@ + timespec[0] = get_stat_atime (src_sb); + timespec[1] = get_stat_mtime (src_sb); + +- if (futimens (dest_desc, dst_name, timespec) != 0) ++ if (cu_futimens (dest_desc, dst_name, timespec) != 0) + { + error (0, errno, _("preserving times for %s"), quote (dst_name)); + if (x->require_preserve) +--- coreutils-6.0.orig/src/touch.c 2005-11-02 11:01:07.000000000 +0100 ++++ coreutils-6.0/src/touch.c 2007-07-17 00:43:51.000000000 +0200 +@@ -167,7 +167,7 @@ + + if (amtime_now) + { +- /* Pass NULL to futimens so it will not fail if we have ++ /* Pass NULL to cu_futimens so it will not fail if we have + write access to the file, but don't own it. */ + t = NULL; + } +@@ -182,7 +182,7 @@ + t = timespec; + } + +- ok = (futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0); ++ ok = (cu_futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0); + + if (fd == STDIN_FILENO) + { diff --git a/src/patches/cyrus-sasl-2.1.22-bad-elif.patch b/src/patches/cyrus-sasl-2.1.22-bad-elif.patch new file mode 100644 index 0000000..33550c4 --- /dev/null +++ b/src/patches/cyrus-sasl-2.1.22-bad-elif.patch @@ -0,0 +1,21 @@ +diff -up cyrus-sasl-2.1.22/plugins/digestmd5.c.elif cyrus-sasl-2.1.22/plugins/digestmd5.c +--- cyrus-sasl-2.1.22/plugins/digestmd5.c.elif 2009-01-23 09:40:31.000000000 +0100 ++++ cyrus-sasl-2.1.22/plugins/digestmd5.c 2009-02-06 15:20:15.000000000 +0100 +@@ -2743,7 +2743,7 @@ static sasl_server_plug_t digestmd5_serv + "DIGEST-MD5", /* mech_name */ + #ifdef WITH_RC4 + 128, /* max_ssf */ +-#elif WITH_DES ++#elif defined(WITH_DES) + 112, + #else + 1, +@@ -4071,7 +4071,7 @@ static sasl_client_plug_t digestmd5_clie + "DIGEST-MD5", + #ifdef WITH_RC4 /* mech_name */ + 128, /* max ssf */ +-#elif WITH_DES ++#elif defined(WITH_DES) + 112, + #else + 1, diff --git a/src/patches/dbus-1.0.3-compile-fix-1.patch b/src/patches/dbus-1.0.3-compile-fix-1.patch new file mode 100644 index 0000000..86fd2b3 --- /dev/null +++ b/src/patches/dbus-1.0.3-compile-fix-1.patch @@ -0,0 +1,11 @@ +--- dbus-1.0.1.orig/dbus/dbus-sysdeps-unix.c 2009-01-01 03:50:33.000000000 +0200 ++++ dbus-1.0.1.orig/dbus/dbus-sysdeps-unix.c 2009-01-01 04:09:24.000000000 +0200 +@@ -992,7 +992,7 @@ + _dbus_verbose ("read credentials byte\n"); + + { +-#ifdef SO_PEERCRED ++#if defined(SO_PEERCRED) && defined(HAVE_GETPEERUCRED) + struct ucred cr; + int cr_len = sizeof (cr); + diff --git a/src/patches/dhcp-3.1_linux3.patch b/src/patches/dhcp-3.1_linux3.patch new file mode 100644 index 0000000..44edb41 --- /dev/null +++ b/src/patches/dhcp-3.1_linux3.patch @@ -0,0 +1,11 @@ +diff -Naur dhcp-3.1-ESV-R3.org/configure dhcp-3.1-ESV-R3/configure +--- dhcp-3.1-ESV-R3.org/configure 2005-03-17 21:14:55.000000000 +0100 ++++ dhcp-3.1-ESV-R3/configure 2012-06-17 12:19:29.000000000 +0200 +@@ -104,6 +104,7 @@ + 2) sysname=linux-2.2 ;; + *) sysname=linux-2.2 ;; + esac;; ++ 3) sysname=linux-2.2 ;; + esac;; + SunOS) + release=`uname -r` diff --git a/src/patches/directfb-1.1.1-fix-mknod.patch b/src/patches/directfb-1.1.1-fix-mknod.patch new file mode 100644 index 0000000..97633e2 --- /dev/null +++ b/src/patches/directfb-1.1.1-fix-mknod.patch @@ -0,0 +1,26 @@ +Description: directfb ftbfs on armel. Implicit declaration error + Fix for ARM builds failing on: + ../../../gfxdrivers/davinci/davinci_c64x.c: In function 'davinci_c64x_open': + ../../../gfxdrivers/davinci/davinci_c64x.c:1900:6: error: implicit declaration of function 'mknod' [-Werror=implicit-function-declaration] + cc1: some warnings being treated as errors + . + directfb (1.2.10.0-4.3) unstable; urgency=low + . + * Non-maintainer upload. + * Fix "directfb ftbfs on armel. Implicit declaration error" + - Thanks Peter Green for bug report and patch (Closes: #644782) + * Remove m4 macros when calling clean target +Author: Hector Oron zumbi@debian.org +Bug-Debian: http://bugs.debian.org/644782 + +--- directfb-1.2.10.0.orig/gfxdrivers/davinci/davinci_c64x.c ++++ directfb-1.2.10.0/gfxdrivers/davinci/davinci_c64x.c +@@ -37,6 +37,8 @@ + #include <sys/ioctl.h> + #include <sys/mman.h> + #include <sys/types.h> ++#include <sys/stat.h> ++ + #include <unistd.h> + + #include <directfb_util.h> diff --git a/src/patches/gcc-4.0.4-specs-1.patch b/src/patches/gcc-4.0.4-specs-1.patch deleted file mode 100644 index 46521e1..0000000 --- a/src/patches/gcc-4.0.4-specs-1.patch +++ /dev/null @@ -1,336 +0,0 @@ -Submitted By: Robert Connolly <robert at linuxfromscratch dot org> (ashes) -Date: 2006-01-16 -Initial Package Version: 4.0.0 -Upstream Status: Not Sent - LFS Specfic -Origin: Idea originally developed by Ryan Oliver and Greg Schafer for - the Pure LFS project. - More architectures added by Zack Winkles. - Further fine tunings by Greg Schafer. - Modified for gcc 3.3.2 by Oliver Brakmann. -Rediffed against gcc 3.4.0 by Zack Winkles. - Rediffed against gcc 3.4.3 by Jim Gifford. - Rediffed against gcc 4.0.0 by Robert Connolly. -Description: This patch modifies the location of the dynamic linker for - the GCC Pass 2 build in LFS Chapter 5. - -diff -Naur gcc-20050116.orig/gcc/config/alpha/linux-elf.h gcc-20050116/gcc/config/alpha/linux-elf.h ---- gcc-20050116.orig/gcc/config/alpha/linux-elf.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/alpha/linux-elf.h 2005-01-17 00:46:14.560651027 +0000 -@@ -27,7 +27,7 @@ - #define SUBTARGET_EXTRA_SPECS \ - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, - --#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define ELF_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2" - - #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{O*:-O3} %{!O*:-O1} \ -diff -Naur gcc-20050116.orig/gcc/config/arm/linux-elf.h gcc-20050116/gcc/config/arm/linux-elf.h ---- gcc-20050116.orig/gcc/config/arm/linux-elf.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/arm/linux-elf.h 2005-01-17 00:46:50.538578614 +0000 -@@ -87,7 +87,7 @@ - %{shared:-shared} \ - %{symbolic:-Bsymbolic} \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2} \ - -X \ - %{mbig-endian:-EB}" \ - SUBTARGET_EXTRA_LINK_SPEC -diff -Naur gcc-20050116.orig/gcc/config/frv/linux.h gcc-20050116/gcc/config/frv/linux.h ---- gcc-20050116.orig/gcc/config/frv/linux.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/frv/linux.h 2005-01-17 01:33:50.600805260 +0000 -@@ -41,7 +41,7 @@ - %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \ - %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static}}" - - /* Support for compile-time default CPU. */ -diff -Naur gcc-20050116.orig/gcc/config/i386/gnu.h gcc-20050116/gcc/config/i386/gnu.h ---- gcc-20050116.orig/gcc/config/i386/gnu.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/i386/gnu.h 2005-01-17 01:34:11.142021939 +0000 -@@ -27,7 +27,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so}} \ - %{static:-static}}" - - #undef STARTFILE_SPEC -diff -Naur gcc-20050116.orig/gcc/config/i386/linux.h gcc-20050116/gcc/config/i386/linux.h ---- gcc-20050116.orig/gcc/config/i386/linux.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/i386/linux.h 2005-01-17 00:49:27.412667132 +0000 -@@ -105,7 +105,7 @@ - /* If ELF is the default format, we should not use /lib/elf. */ - - #define LINK_EMULATION "elf_i386" --#define DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2" - - #undef SUBTARGET_EXTRA_SPECS - #define SUBTARGET_EXTRA_SPECS \ -diff -Naur gcc-20050116.orig/gcc/config/i386/linux64.h gcc-20050116/gcc/config/i386/linux64.h ---- gcc-20050116.orig/gcc/config/i386/linux64.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/i386/linux64.h 2005-01-17 00:50:23.055094690 +0000 -@@ -60,8 +60,8 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ -+ %{m32:%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ -+ %{!m32:%{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux-x86-64.so.2}}} \ - %{static:-static}}" - - #define MULTILIB_DEFAULTS { "m64" } -diff -Naur gcc-20050116.orig/gcc/config/ia64/linux.h gcc-20050116/gcc/config/ia64/linux.h ---- gcc-20050116.orig/gcc/config/ia64/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/ia64/linux.h 2005-01-17 00:50:43.146472133 +0000 -@@ -43,7 +43,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \ - %{static:-static}}" - - -diff -Naur gcc-20050116.orig/gcc/config/linux.h gcc-20050116/gcc/config/linux.h ---- gcc-20050116.orig/gcc/config/linux.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/linux.h 2005-01-17 00:51:14.101809663 +0000 -@@ -104,3 +104,7 @@ - #define TARGET_C99_FUNCTIONS 1 - - #define TARGET_HAS_F_SETLKW -+ -+/* Remove /usr/include from the end of the include search path. */ -+#undef STANDARD_INCLUDE_DIR -+#define STANDARD_INCLUDE_DIR 0 -diff -Naur gcc-20050116.orig/gcc/config/m32r/linux.h gcc-20050116/gcc/config/m32r/linux.h ---- gcc-20050116.orig/gcc/config/m32r/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/m32r/linux.h 2005-01-17 00:51:39.720640870 +0000 -@@ -66,7 +66,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - #else - #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \ -@@ -74,7 +74,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - #endif - -diff -Naur gcc-20050116.orig/gcc/config/m68k/linux.h gcc-20050116/gcc/config/m68k/linux.h ---- gcc-20050116.orig/gcc/config/m68k/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/m68k/linux.h 2005-01-17 00:52:07.633830392 +0000 -@@ -132,7 +132,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker*:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static}}" - - /* For compatibility with linux/a.out */ -diff -Naur gcc-20050116.orig/gcc/config/mips/linux.h gcc-20050116/gcc/config/mips/linux.h ---- gcc-20050116.orig/gcc/config/mips/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/mips/linux.h 2005-01-17 00:52:28.348034505 +0000 -@@ -115,7 +115,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}}" - - #undef SUBTARGET_ASM_SPEC -diff -Naur gcc-20050116.orig/gcc/config/mips/linux64.h gcc-20050116/gcc/config/mips/linux64.h ---- gcc-20050116.orig/gcc/config/mips/linux64.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/mips/linux64.h 2005-01-17 00:53:04.645878728 +0000 -@@ -60,9 +60,9 @@ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker: \ -- %{mabi=n32: -dynamic-linker /lib32/ld.so.1} \ -- %{mabi=64: -dynamic-linker /lib64/ld.so.1} \ -- %{mabi=32: -dynamic-linker /lib/ld.so.1}}} \ -+ %{mabi=n32: -dynamic-linker /tools/lib32/ld.so.1} \ -+ %{mabi=64: -dynamic-linker /tools/lib64/ld.so.1} \ -+ %{mabi=32: -dynamic-linker /tools/lib/ld.so.1}}} \ - %{static:-static}}} \ - %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \ - %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \ -diff -Naur gcc-20050116.orig/gcc/config/mn10300/linux.h gcc-20050116/gcc/config/mn10300/linux.h ---- gcc-20050116.orig/gcc/config/mn10300/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/mn10300/linux.h 2005-01-17 00:53:23.477610026 +0000 -@@ -37,7 +37,7 @@ - #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}" - - #undef LIB_SPEC -diff -Naur gcc-20050116.orig/gcc/config/pa/pa-linux.h gcc-20050116/gcc/config/pa/pa-linux.h ---- gcc-20050116.orig/gcc/config/pa/pa-linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/pa/pa-linux.h 2005-01-17 00:53:45.334495141 +0000 -@@ -88,7 +88,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}" - - /* glibc's profiling functions don't need gcc to allocate counters. */ -diff -Naur gcc-20050116.orig/gcc/config/rs6000/linux64.h gcc-20050116/gcc/config/rs6000/linux64.h ---- gcc-20050116.orig/gcc/config/rs6000/linux64.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/rs6000/linux64.h 2005-01-17 00:54:28.524412534 +0000 -@@ -351,11 +351,11 @@ - - #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld64.so.1}}}" - - #undef TOC_SECTION_ASM_OP - #define TOC_SECTION_ASM_OP \ -diff -Naur gcc-20050116.orig/gcc/config/rs6000/sysv4.h gcc-20050116/gcc/config/rs6000/sysv4.h ---- gcc-20050116.orig/gcc/config/rs6000/sysv4.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/rs6000/sysv4.h 2005-01-17 01:26:39.126999460 +0000 -@@ -1131,7 +1131,7 @@ - - #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #if defined(HAVE_LD_EH_FRAME_HDR) - # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -@@ -1162,7 +1162,7 @@ - - #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__ \ - %{!undef: \ -diff -Naur gcc-20050116.orig/gcc/config/s390/linux.h gcc-20050116/gcc/config/s390/linux.h ---- gcc-20050116.orig/gcc/config/s390/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/s390/linux.h 2005-01-17 01:26:58.672523211 +0000 -@@ -86,8 +86,8 @@ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker: \ -- %{m31:-dynamic-linker /lib/ld.so.1} \ -- %{m64:-dynamic-linker /lib/ld64.so.1}}}}" -+ %{m31:-dynamic-linker /tools/lib/ld.so.1} \ -+ %{m64:-dynamic-linker /tools/lib/ld64.so.1}}}}" - - - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack -diff -Naur gcc-20050116.orig/gcc/config/sh/linux.h gcc-20050116/gcc/config/sh/linux.h ---- gcc-20050116.orig/gcc/config/sh/linux.h 2005-01-17 00:45:18.000000000 +0000 -+++ gcc-20050116/gcc/config/sh/linux.h 2005-01-17 01:27:19.588663163 +0000 -@@ -70,7 +70,7 @@ - "%{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}" - - #undef LIB_SPEC -diff -Naur gcc-20050116.orig/gcc/config/sparc/linux.h gcc-20050116/gcc/config/sparc/linux.h ---- gcc-20050116.orig/gcc/config/sparc/linux.h 2005-01-17 00:45:18.000000000 +0000 -+++ gcc-20050116/gcc/config/sparc/linux.h 2005-01-17 01:30:07.282688639 +0000 -@@ -131,13 +131,13 @@ - /* If ELF is the default format, we should not use /lib/elf. */ - - #undef LINK_SPEC --#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ -+#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \ - %{!mno-relax:%{!r:-relax}} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - - /* The sun bundled assembler doesn't accept -Yd, (and neither does gas). -diff -Naur gcc-20050116.orig/gcc/config/sparc/linux64.h gcc-20050116/gcc/config/sparc/linux64.h ---- gcc-20050116.orig/gcc/config/sparc/linux64.h 2005-01-17 00:45:18.000000000 +0000 -+++ gcc-20050116/gcc/config/sparc/linux64.h 2005-01-17 01:31:18.242712476 +0000 -@@ -167,21 +167,21 @@ - { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ - { "link_arch", LINK_ARCH_SPEC }, - --#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ -+#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}} \ - " - --#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ -+#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \ - %{static:-static}}} \ - " - -@@ -257,12 +257,12 @@ - #else /* !SPARC_BI_ARCH */ - - #undef LINK_SPEC --#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ -+#define LINK_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \ - %{static:-static}}} \ - %{mlittle-endian:-EL} \ - %{!mno-relax:%{!r:-relax}} \ -diff -Naur gcc-20050116.orig/gcc/config/xtensa/linux.h gcc-20050116/gcc/config/xtensa/linux.h ---- gcc-20050116.orig/gcc/config/xtensa/linux.h 2005-01-17 00:45:18.000000000 +0000 -+++ gcc-20050116/gcc/config/xtensa/linux.h 2005-01-17 01:32:08.951429623 +0000 -@@ -50,7 +50,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}}" - - #undef LOCAL_LABEL_PREFIX diff --git a/src/patches/gcc-4.1.2-arm-linux-soft-float.patch b/src/patches/gcc-4.1.2-arm-linux-soft-float.patch deleted file mode 100644 index c22bc38..0000000 --- a/src/patches/gcc-4.1.2-arm-linux-soft-float.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -u -r gcc-4.0.2/gcc/config/arm/t-linux gcc-4.0.2/gcc/config/arm.new/t-linux ---- gcc-4.0.2/gcc/config/arm/t-linux 2005-10-18 22:04:44.000000000 +1000 -+++ gcc-4.0.2/gcc/config/arm.new/t-linux 2005-10-18 22:05:03.000000000 +1000 -@@ -4,7 +4,12 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi - LIBGCC2_DEBUG_CFLAGS = -g0 - - LIB1ASMSRC = arm/lib1funcs.asm --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ -+ _fixsfsi _fixunssfsi _floatdidf _floatdisf \ -+ _bb_init_func _call_via_rX _interwork_call_via_rX \ -+ _lshrdi3 _ashrdi3 _ashldi3 - - # MULTILIB_OPTIONS = mhard-float/msoft-float - # MULTILIB_DIRNAMES = hard-float soft-float - - ---- gcc-4.1.1/gcc/config/arm/linux-elf.h 2007-01-06 11:17:51.000000000 +0000 -+++ gcc-4.1.1/gcc/config/arm/linux-elf-soft.h 2007-01-06 11:22:01.000000000 +0000 -@@ -49,7 +49,7 @@ - %{shared:-lc} \ - %{!shared:%{profile:-lc_p}%{!profile:-lc}}" - --#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" -+/* #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" */ - - #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2" - diff --git a/src/patches/gcc-4.1.2-fix_linker_version_detection.patch b/src/patches/gcc-4.1.2-fix_linker_version_detection.patch deleted file mode 100644 index 36a756c..0000000 --- a/src/patches/gcc-4.1.2-fix_linker_version_detection.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur gcc-4.1.2.org/libstdc++-v3/configure gcc-4.1.2/libstdc++-v3/configure ---- gcc-4.1.2.org/libstdc++-v3/configure 2007-01-29 11:51:01.000000000 +0100 -+++ gcc-4.1.2/libstdc++-v3/configure 2011-08-29 19:25:22.973430586 +0200 -@@ -8281,7 +8281,7 @@ - if test x"$with_gnu_ld" = x"yes"; then - - ldver=`$LD --version 2>/dev/null | head -1 | \ -- sed -e 's/GNU ld version ([0-9.][0-9.]*).*/\1/'` -+ sed -e 's/GNU ld .*) ([0-9.][0-9.]*).*/\1/'` - - glibcxx_gnu_ld_version=`echo $ldver | \ - $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` diff --git a/src/patches/gcc-4.1.2-gcc_eh.patch b/src/patches/gcc-4.1.2-gcc_eh.patch deleted file mode 100644 index 9a2589a..0000000 --- a/src/patches/gcc-4.1.2-gcc_eh.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -ur gcc-4.1.2/gcc/cp/g++spec.c gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c ---- gcc-4.1.2/gcc/cp/g++spec.c 2005-06-25 02:59:41.000000000 +0200 -+++ gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c 2007-08-03 14:46:03.000000000 +0200 -@@ -251,7 +251,7 @@ - #endif - - /* Make sure to have room for the trailing NULL argument. */ -- num_args = argc + added + need_math + shared_libgcc + (library > 0) + 1; -+ num_args = argc + added + need_math + shared_libgcc + 2 * (library > 0) + 1; - arglist = xmalloc (num_args * sizeof (char *)); - - i = 0; -@@ -311,7 +311,10 @@ - { - arglist[j] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX; - if (arglist[j][0] != '-' || arglist[j][1] == 'l') -- added_libraries++; -+ { -+ arglist[++j] = "-lgcc_eh"; -+ added_libraries += 2; -+ } - j++; - } - if (saw_math) diff --git a/src/patches/gcc-4.1.2-specs-1.patch b/src/patches/gcc-4.1.2-specs-1.patch deleted file mode 100644 index 28ebb43..0000000 --- a/src/patches/gcc-4.1.2-specs-1.patch +++ /dev/null @@ -1,507 +0,0 @@ -diff -Naur gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h gcc-4.1.2/gcc/config/alpha/linux-elf.h ---- gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/alpha/linux-elf.h 2011-09-01 17:11:11.000000000 +0000 -@@ -27,7 +27,7 @@ - #define SUBTARGET_EXTRA_SPECS \ - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, - --#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define ELF_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2" - - #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{O*:-O3} %{!O*:-O1} \ -diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h gcc-4.1.2/gcc/config/arm/linux-eabi.h ---- gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h 2005-11-15 14:32:13.000000000 +0000 -+++ gcc-4.1.2/gcc/config/arm/linux-eabi.h 2011-09-01 17:11:47.000000000 +0000 -@@ -53,7 +53,7 @@ - /* Use ld-linux.so.3 so that it will be possible to run "classic" - GNU/Linux binaries on an EABI system. */ - #undef LINUX_TARGET_INTERPRETER --#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3" -+#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.3" - - /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to - use the GNU/Linux version, not the generic BPABI version. */ -diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-elf.h gcc-4.1.2/gcc/config/arm/linux-elf.h ---- gcc-4.1.2.orig/gcc/config/arm/linux-elf.h 2005-10-10 01:04:31.000000000 +0000 -+++ gcc-4.1.2/gcc/config/arm/linux-elf.h 2011-09-01 17:11:11.000000000 +0000 -@@ -51,7 +51,7 @@ - - #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" - --#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2" -+#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.2" - - #define LINUX_TARGET_LINK_SPEC "%{h*} %{version:-v} \ - %{b} \ -diff -Naur gcc-4.1.2.orig/gcc/config/frv/linux.h gcc-4.1.2/gcc/config/frv/linux.h ---- gcc-4.1.2.orig/gcc/config/frv/linux.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/frv/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -41,7 +41,7 @@ - %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \ - %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static}}" - - /* Support for compile-time default CPU. */ -diff -Naur gcc-4.1.2.orig/gcc/config/i386/gnu.h gcc-4.1.2/gcc/config/i386/gnu.h ---- gcc-4.1.2.orig/gcc/config/i386/gnu.h 2004-09-08 00:17:19.000000000 +0000 -+++ gcc-4.1.2/gcc/config/i386/gnu.h 2011-09-01 17:11:11.000000000 +0000 -@@ -27,7 +27,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so}} \ - %{static:-static}}" - - #undef STARTFILE_SPEC -diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux64.h gcc-4.1.2/gcc/config/i386/linux64.h ---- gcc-4.1.2.orig/gcc/config/i386/linux64.h 2005-08-10 17:53:01.000000000 +0000 -+++ gcc-4.1.2/gcc/config/i386/linux64.h 2011-09-01 17:11:11.000000000 +0000 -@@ -60,8 +60,8 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ -+ %{m32:%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ -+ %{!m32:%{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux-x86-64.so.2}}} \ - %{static:-static}}" - - /* Similar to standard Linux, but adding -ffast-math support. */ -diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux.h gcc-4.1.2/gcc/config/i386/linux.h ---- gcc-4.1.2.orig/gcc/config/i386/linux.h 2005-08-10 17:53:01.000000000 +0000 -+++ gcc-4.1.2/gcc/config/i386/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -105,7 +105,7 @@ - /* If ELF is the default format, we should not use /lib/elf. */ - - #define LINK_EMULATION "elf_i386" --#define DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2" - - #undef SUBTARGET_EXTRA_SPECS - #define SUBTARGET_EXTRA_SPECS \ -diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h gcc-4.1.2/gcc/config/ia64/linux.h ---- gcc-4.1.2.orig/gcc/config/ia64/linux.h 2006-12-12 15:24:07.000000000 +0000 -+++ gcc-4.1.2/gcc/config/ia64/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -43,7 +43,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \ - %{static:-static}}" - - #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" -diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig gcc-4.1.2/gcc/config/ia64/linux.h.orig ---- gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig 1970-01-01 00:00:00.000000000 +0000 -+++ gcc-4.1.2/gcc/config/ia64/linux.h.orig 2006-12-12 15:24:07.000000000 +0000 -@@ -0,0 +1,59 @@ -+/* Definitions for ia64-linux target. */ -+ -+/* This macro is a C statement to print on `stderr' a string describing the -+ particular machine description choice. */ -+ -+#define TARGET_VERSION fprintf (stderr, " (IA-64) Linux"); -+ -+/* This is for -profile to use -lc_p instead of -lc. */ -+#undef CC1_SPEC -+#define CC1_SPEC "%{profile:-p} %{G*}" -+ -+/* Target OS builtins. */ -+#define TARGET_OS_CPP_BUILTINS() \ -+do { \ -+ LINUX_TARGET_OS_CPP_BUILTINS(); \ -+ builtin_define("_LONGLONG"); \ -+} while (0) -+ -+/* Need to override linux.h STARTFILE_SPEC, since it has crtbeginT.o in. */ -+#undef STARTFILE_SPEC -+#ifdef HAVE_LD_PIE -+#define STARTFILE_SPEC \ -+ "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}\ -+ crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}" -+#else -+#define STARTFILE_SPEC \ -+ "%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}}\ -+ crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}" -+#endif -+ -+/* Similar to standard Linux, but adding -ffast-math support. */ -+#undef ENDFILE_SPEC -+#define ENDFILE_SPEC \ -+ "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ -+ %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s" -+ -+/* Define this for shared library support because it isn't in the main -+ linux.h file. */ -+ -+#undef LINK_SPEC -+#define LINK_SPEC "\ -+ %{shared:-shared} \ -+ %{!shared: \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ -+ %{static:-static}}" -+ -+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" -+ -+#define JMP_BUF_SIZE 76 -+ -+/* Override linux.h LINK_EH_SPEC definition. -+ Signalize that because we have fde-glibc, we don't need all C shared libs -+ linked against -lgcc_s. */ -+#undef LINK_EH_SPEC -+#define LINK_EH_SPEC "" -+ -+#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h" -diff -Naur gcc-4.1.2.orig/gcc/config/linux.h gcc-4.1.2/gcc/config/linux.h ---- gcc-4.1.2.orig/gcc/config/linux.h 2005-08-06 13:26:35.000000000 +0000 -+++ gcc-4.1.2/gcc/config/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -104,3 +104,7 @@ - #define TARGET_C99_FUNCTIONS 1 - - #define TARGET_POSIX_IO -+ -+/* Remove /usr/include from the end of the include search path. */ -+#undef STANDARD_INCLUDE_DIR -+#define STANDARD_INCLUDE_DIR 0 -diff -Naur gcc-4.1.2.orig/gcc/config/m32r/linux.h gcc-4.1.2/gcc/config/m32r/linux.h ---- gcc-4.1.2.orig/gcc/config/m32r/linux.h 2005-07-08 10:00:15.000000000 +0000 -+++ gcc-4.1.2/gcc/config/m32r/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -66,7 +66,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - #else - #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \ -@@ -74,7 +74,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - #endif - -diff -Naur gcc-4.1.2.orig/gcc/config/m68k/linux.h gcc-4.1.2/gcc/config/m68k/linux.h ---- gcc-4.1.2.orig/gcc/config/m68k/linux.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/m68k/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -128,7 +128,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker*:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static}}" - - /* For compatibility with linux/a.out */ -diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux64.h gcc-4.1.2/gcc/config/mips/linux64.h ---- gcc-4.1.2.orig/gcc/config/mips/linux64.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/mips/linux64.h 2011-09-01 17:11:11.000000000 +0000 -@@ -47,9 +47,9 @@ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker: \ -- %{mabi=n32: -dynamic-linker /lib32/ld.so.1} \ -- %{mabi=64: -dynamic-linker /lib64/ld.so.1} \ -- %{mabi=32: -dynamic-linker /lib/ld.so.1}}} \ -+ %{mabi=n32: -dynamic-linker /tools/lib32/ld.so.1} \ -+ %{mabi=64: -dynamic-linker /tools/lib64/ld.so.1} \ -+ %{mabi=32: -dynamic-linker /tools/lib/ld.so.1}}} \ - %{static:-static}}} \ - %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \ - %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \ -diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux.h gcc-4.1.2/gcc/config/mips/linux.h ---- gcc-4.1.2.orig/gcc/config/mips/linux.h 2006-12-17 13:57:31.000000000 +0000 -+++ gcc-4.1.2/gcc/config/mips/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -112,7 +112,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}}" - - #undef SUBTARGET_ASM_SPEC -diff -Naur gcc-4.1.2.orig/gcc/config/mn10300/linux.h gcc-4.1.2/gcc/config/mn10300/linux.h ---- gcc-4.1.2.orig/gcc/config/mn10300/linux.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/mn10300/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -37,7 +37,7 @@ - #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}" - - #undef PROCESSOR_DEFAULT -diff -Naur gcc-4.1.2.orig/gcc/config/pa/pa-linux.h gcc-4.1.2/gcc/config/pa/pa-linux.h ---- gcc-4.1.2.orig/gcc/config/pa/pa-linux.h 2007-01-12 02:23:38.000000000 +0000 -+++ gcc-4.1.2/gcc/config/pa/pa-linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -55,7 +55,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}" - - /* glibc's profiling functions don't need gcc to allocate counters. */ -diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/linux64.h gcc-4.1.2/gcc/config/rs6000/linux64.h ---- gcc-4.1.2.orig/gcc/config/rs6000/linux64.h 2006-02-10 20:58:33.000000000 +0000 -+++ gcc-4.1.2/gcc/config/rs6000/linux64.h 2011-09-01 17:11:11.000000000 +0000 -@@ -339,11 +339,11 @@ - - #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld64.so.1}}}" - - #undef TOC_SECTION_ASM_OP - #define TOC_SECTION_ASM_OP \ -diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h gcc-4.1.2/gcc/config/rs6000/sysv4.h ---- gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h 2006-02-10 20:58:33.000000000 +0000 -+++ gcc-4.1.2/gcc/config/rs6000/sysv4.h 2011-09-01 17:11:11.000000000 +0000 -@@ -1041,7 +1041,7 @@ - - #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #if defined(HAVE_LD_EH_FRAME_HDR) - # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -@@ -1072,7 +1072,7 @@ - - #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__ \ - %{!undef: \ -diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h gcc-4.1.2/gcc/config/s390/linux.h ---- gcc-4.1.2.orig/gcc/config/s390/linux.h 2006-12-12 15:24:07.000000000 +0000 -+++ gcc-4.1.2/gcc/config/s390/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -86,8 +86,8 @@ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker: \ -- %{m31:-dynamic-linker /lib/ld.so.1} \ -- %{m64:-dynamic-linker /lib/ld64.so.1}}}}" -+ %{m31:-dynamic-linker /tools/lib/ld.so.1} \ -+ %{m64:-dynamic-linker /tools/lib/ld64.so.1}}}}" - - #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" - -diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h.orig gcc-4.1.2/gcc/config/s390/linux.h.orig ---- gcc-4.1.2.orig/gcc/config/s390/linux.h.orig 1970-01-01 00:00:00.000000000 +0000 -+++ gcc-4.1.2/gcc/config/s390/linux.h.orig 2006-12-12 15:24:07.000000000 +0000 -@@ -0,0 +1,107 @@ -+/* Definitions for Linux for S/390. -+ Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. -+ Contributed by Hartmut Penner (hpenner@de.ibm.com) and -+ Ulrich Weigand (uweigand@de.ibm.com). -+ -+This file is part of GCC. -+ -+GCC is free software; you can redistribute it and/or modify it under -+the terms of the GNU General Public License as published by the Free -+Software Foundation; either version 2, or (at your option) any later -+version. -+ -+GCC is distributed in the hope that it will be useful, but WITHOUT ANY -+WARRANTY; without even the implied warranty of MERCHANTABILITY or -+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+for more details. -+ -+You should have received a copy of the GNU General Public License -+along with GCC; see the file COPYING. If not, write to the Free -+Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA -+02110-1301, USA. */ -+ -+#ifndef _LINUX_H -+#define _LINUX_H -+ -+/* Target specific version string. */ -+ -+#ifdef DEFAULT_TARGET_64BIT -+#undef TARGET_VERSION -+#define TARGET_VERSION fprintf (stderr, " (Linux for zSeries)"); -+#else -+#undef TARGET_VERSION -+#define TARGET_VERSION fprintf (stderr, " (Linux for S/390)"); -+#endif -+ -+ -+/* Target specific type definitions. */ -+ -+/* ??? Do we really want long as size_t on 31-bit? */ -+#undef SIZE_TYPE -+#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "long unsigned int") -+#undef PTRDIFF_TYPE -+#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int") -+ -+#undef WCHAR_TYPE -+#define WCHAR_TYPE "int" -+#undef WCHAR_TYPE_SIZE -+#define WCHAR_TYPE_SIZE 32 -+ -+ -+/* Target specific preprocessor settings. */ -+ -+#define TARGET_OS_CPP_BUILTINS() \ -+ do \ -+ { \ -+ LINUX_TARGET_OS_CPP_BUILTINS(); \ -+ if (flag_pic) \ -+ { \ -+ builtin_define ("__PIC__"); \ -+ builtin_define ("__pic__"); \ -+ } \ -+ } \ -+ while (0) -+ -+ -+/* Target specific assembler settings. */ -+ -+#undef ASM_SPEC -+#define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}" -+ -+ -+/* Target specific linker settings. */ -+ -+#ifdef DEFAULT_TARGET_64BIT -+#define MULTILIB_DEFAULTS { "m64" } -+#else -+#define MULTILIB_DEFAULTS { "m31" } -+#endif -+ -+#undef LINK_SPEC -+#define LINK_SPEC \ -+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ -+ %{shared:-shared} \ -+ %{!shared: \ -+ %{static:-static} \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker: \ -+ %{m31:-dynamic-linker /lib/ld.so.1} \ -+ %{m64:-dynamic-linker /lib/ld64.so.1}}}}" -+ -+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" -+ -+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack -+ -+#define MD_UNWIND_SUPPORT "config/s390/linux-unwind.h" -+ -+#ifdef TARGET_LIBC_PROVIDES_SSP -+/* s390 glibc provides __stack_chk_guard in 0x14(tp), -+ s390x glibc provides it at 0x28(tp). */ -+#define TARGET_THREAD_SSP_OFFSET (TARGET_64BIT ? 0x28 : 0x14) -+#endif -+ -+/* Define if long doubles should be mangled as 'g'. */ -+#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING -+ -+#endif -diff -Naur gcc-4.1.2.orig/gcc/config/sh/linux.h gcc-4.1.2/gcc/config/sh/linux.h ---- gcc-4.1.2.orig/gcc/config/sh/linux.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/sh/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -60,7 +60,7 @@ - "%{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}" - - /* Output assembler code to STREAM to call the profiler. */ -diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux64.h gcc-4.1.2/gcc/config/sparc/linux64.h ---- gcc-4.1.2.orig/gcc/config/sparc/linux64.h 2006-02-11 08:38:51.000000000 +0000 -+++ gcc-4.1.2/gcc/config/sparc/linux64.h 2011-09-01 17:11:11.000000000 +0000 -@@ -162,21 +162,21 @@ - { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ - { "link_arch", LINK_ARCH_SPEC }, - --#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ -+#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}} \ - " - --#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ -+#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \ - %{static:-static}}} \ - " - -@@ -252,12 +252,12 @@ - #else /* !SPARC_BI_ARCH */ - - #undef LINK_SPEC --#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ -+#define LINK_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \ - %{static:-static}}} \ - %{mlittle-endian:-EL} \ - %{!mno-relax:%{!r:-relax}} \ -diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux.h gcc-4.1.2/gcc/config/sparc/linux.h ---- gcc-4.1.2.orig/gcc/config/sparc/linux.h 2006-02-11 08:38:51.000000000 +0000 -+++ gcc-4.1.2/gcc/config/sparc/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -126,13 +126,13 @@ - /* If ELF is the default format, we should not use /lib/elf. */ - - #undef LINK_SPEC --#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ -+#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \ - %{!mno-relax:%{!r:-relax}} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - - /* The sun bundled assembler doesn't accept -Yd, (and neither does gas). -diff -Naur gcc-4.1.2.orig/gcc/config/xtensa/linux.h gcc-4.1.2/gcc/config/xtensa/linux.h ---- gcc-4.1.2.orig/gcc/config/xtensa/linux.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/xtensa/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -50,7 +50,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}}" - - #undef LOCAL_LABEL_PREFIX diff --git a/src/patches/gcc-4.4.3-startfiles_fix-1.patch b/src/patches/gcc-4.4.3-startfiles_fix-1.patch new file mode 100644 index 0000000..a2eac9e --- /dev/null +++ b/src/patches/gcc-4.4.3-startfiles_fix-1.patch @@ -0,0 +1,33 @@ +Submitted By: Jeremy Huntwork (jhuntwork AT linuxfromscratch DOT org) +Date: 2008-12-05 +Initial Package Version: 4.3.2 +Upstream Status: See below. +Origin: DIY Linux, See below. +Description: Original patch follows: + +# DIY Linux Patch +Date: 2008-09-09 +Author: Refer Origin. +Origin: Partial revert of http://gcc.gnu.org/ml/gcc-cvs/2006-11/msg00416.html +Maker: Greg Schafer gschafer@zip.com.au +Upstream Status: Not applicable. Tweak only for Temptools phase GCC-Pass2. +Description: Partially revert GCC driver to pre-GCC-4.3 state to allow startfiles to be + found in $prefix when GCC is configured for a non-standard prefix eg: /temptools. Full + background info in thread starting here: http://gcc.gnu.org/ml/gcc/2008-03/msg00095.html + and GCC bugzilla here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35532 + +diff -Naur gcc-4.3.0-RC-20080222.orig/gcc/gcc.c gcc-4.3.0-RC-20080222/gcc/gcc.c +--- gcc-4.3.0-RC-20080222.orig/gcc/gcc.c 2008-01-24 18:57:12.000000000 +0000 ++++ gcc-4.3.0-RC-20080222/gcc/gcc.c 2008-03-02 06:07:36.000000000 +0000 +@@ -6370,6 +6370,11 @@ + machine_suffix, + standard_startfile_prefix, NULL), + NULL, PREFIX_PRIORITY_LAST, 0, 1); ++ add_prefix (&startfile_prefixes, ++ concat (standard_exec_prefix, ++ machine_suffix, ++ standard_startfile_prefix, NULL), ++ NULL, PREFIX_PRIORITY_LAST, 0, 1); + } + + /* Sysrooted prefixes are relocated because target_system_root is diff --git a/src/patches/gcc-libstdc++-pic.patch b/src/patches/gcc-libstdc++-pic.patch deleted file mode 100644 index a9d6e71..0000000 --- a/src/patches/gcc-libstdc++-pic.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- gcc-4.0.0/libstdc++-v3/src/Makefile.am -+++ gcc-4.0.0/libstdc++-v3/src/Makefile.am -@@ -214,6 +214,10 @@ - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@ - - -+install-exec-local: -+ $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) -+ - # Added bits to build debug library. - if GLIBCXX_BUILD_DEBUG - all-local: build_debug ---- gcc-4.0.0/libstdc++-v3/src/Makefile.in -+++ gcc-4.0.0/libstdc++-v3/src/Makefile.in -@@ -625,7 +625,7 @@ - - install-data-am: install-data-local - --install-exec-am: install-toolexeclibLTLIBRARIES -+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local - - install-info: install-info-am - -@@ -664,7 +664,7 @@ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-info-am \ -- uninstall-toolexeclibLTLIBRARIES -+ uninstall-toolexeclibLTLIBRARIES install-exec-local - - @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver: ${glibcxx_srcdir}/$(SYMVER_MAP) - @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver -@@ -743,6 +743,11 @@ - install_debug: - (cd ${debugdir} && $(MAKE) \ - toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) -+ -+install-exec-local: -+ $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: diff --git a/src/patches/gcc-sdk-libstdc++-includes.patch b/src/patches/gcc-sdk-libstdc++-includes.patch deleted file mode 100644 index c7676ae..0000000 --- a/src/patches/gcc-sdk-libstdc++-includes.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -urN gcc-4.0.0-100/libstdc++-v3/fragment.am gcc-4.0.0/libstdc++-v3/fragment.am ---- gcc-4.0.0-100/libstdc++-v3/fragment.am 2004-10-25 15:32:40.000000000 -0500 -+++ gcc-4.0.0/libstdc++-v3/fragment.am 2005-04-28 21:48:43.000000000 -0500 -@@ -18,5 +18,5 @@ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once - - # -I/-D flags to pass when compiling. --AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include - -diff -urN gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am gcc-4.0.0/libstdc++-v3/libmath/Makefile.am ---- gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am 2003-08-27 16:29:42.000000000 -0500 -+++ gcc-4.0.0/libstdc++-v3/libmath/Makefile.am 2005-04-28 21:48:43.000000000 -0500 -@@ -32,7 +32,7 @@ - - libmath_la_SOURCES = stubs.c - --AM_CPPFLAGS = $(CANADIAN_INCLUDES) -+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include - - # Only compiling "C" sources in this directory. - LIBTOOL = @LIBTOOL@ --tag CC diff --git a/src/patches/gcc-uclibc-conf.patch b/src/patches/gcc-uclibc-conf.patch deleted file mode 100644 index 3be7d09..0000000 --- a/src/patches/gcc-uclibc-conf.patch +++ /dev/null @@ -1,553 +0,0 @@ ---- gcc-4.0.2/gcc/config/t-linux-uclibc -+++ gcc-4.0.2/gcc/config/t-linux-uclibc -@@ -0,0 +1,5 @@ -+# Remove glibc specific files added in t-linux -+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES)) -+ -+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc -+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH)) ---- gcc-4.0.2/gcc/config.gcc -+++ gcc-4.0.2/gcc/config.gcc -@@ -1778,7 +1778,7 @@ - ;; - sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \ - sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ -- sh-*-linux* | sh[346lbe]*-*-linux* | \ -+ sh*-*-linux* | sh[346lbe]*-*-linux* | \ - sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ - sh64-*-netbsd* | sh64l*-*-netbsd*) - tmake_file="${tmake_file} sh/t-sh sh/t-elf" -@@ -2234,10 +2234,16 @@ - *) - echo "*** Configuration ${target} not supported" 1>&2 - exit 1 - ;; - esac -+ -+# Rather than hook into each target, just do it after all the linux -+# targets have been processed -+case ${target} in -+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc" -+esac - - case ${target} in - i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1) - tmake_file="${tmake_file} i386/t-gmm_malloc" - ;; ---- gcc-4.0.2/gcc/config/alpha/linux-elf.h -+++ gcc-4.0.2/gcc/config/alpha/linux-elf.h -@@ -27,7 +27,11 @@ - #define SUBTARGET_EXTRA_SPECS \ - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else - #define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - - #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{O*:-O3} %{!O*:-O1} \ ---- gcc-4.0.2/gcc/config/arm/linux-elf.h -+++ gcc-4.0.2/gcc/config/arm/linux-elf.h -@@ -81,14 +81,19 @@ - #define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "%{h*} %{version:-v} \ - %{b} %{Wl,*:%*} \ - %{static:-Bstatic} \ - %{shared:-shared} \ - %{symbolic:-Bsymbolic} \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \ - -X \ - %{mbig-endian:-EB}" \ - SUBTARGET_EXTRA_LINK_SPEC ---- gcc-4.0.2/gcc/config/cris/linux.h -+++ gcc-4.0.2/gcc/config/cris/linux.h -@@ -79,6 +79,25 @@ - #undef CRIS_DEFAULT_CPU_VERSION - #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG - -+#ifdef USE_UCLIBC -+ -+#undef CRIS_SUBTARGET_VERSION -+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc" -+ -+#undef CRIS_LINK_SUBTARGET_SPEC -+#define CRIS_LINK_SUBTARGET_SPEC \ -+ "-mcrislinux\ -+ -rpath-link include/asm/../..%s\ -+ %{shared} %{static}\ -+ %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\ -+ %{!shared: \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \ -+ %{!r:%{O2|O3: --gc-sections}}" -+ -+#else /* USE_UCLIBC */ -+ - #undef CRIS_SUBTARGET_VERSION - #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu" - -@@ -93,6 +112,8 @@ - %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\ - %{!r:%{O2|O3: --gc-sections}}" - -+#endif /* USE_UCLIBC */ -+ - - /* Node: Run-time Target */ - ---- gcc-4.0.2/gcc/config/i386/linux.h -+++ gcc-4.0.2/gcc/config/i386/linux.h -@@ -107,6 +107,11 @@ - #define LINK_EMULATION "elf_i386" - #define DYNAMIC_LINKER "/lib/ld-linux.so.2" - -+#ifdef USE_UCLIBC -+#undef DYNAMIC_LINKER -+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#endif -+ - #undef SUBTARGET_EXTRA_SPECS - #define SUBTARGET_EXTRA_SPECS \ - { "link_emulation", LINK_EMULATION },\ ---- gcc-4.0.2/gcc/config/i386/linux64.h -+++ gcc-4.0.2/gcc/config/i386/linux64.h -@@ -54,14 +54,21 @@ - When the -shared link option is used a final link is not being - done. */ - -+#ifdef USE_UCLIBC -+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0" -+#else -+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ -+ %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \ -+ %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \ - %{static:-static}}" - - #define MULTILIB_DEFAULTS { "m64" } ---- gcc-4.0.2/gcc/config/ia64/linux.h -+++ gcc-4.0.2/gcc/config/ia64/linux.h -@@ -37,13 +37,18 @@ - /* Define this for shared library support because it isn't in the main - linux.h file. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "\ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}" - - ---- gcc-4.0.2/gcc/config/m68k/linux.h -+++ gcc-4.0.2/gcc/config/m68k/linux.h -@@ -127,12 +127,17 @@ - - /* If ELF is the default format, we should not use /lib/elf. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "-m m68kelf %{shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static}}" - - /* For compatibility with linux/a.out */ ---- gcc-4.0.2/gcc/config/mips/linux.h -+++ gcc-4.0.2/gcc/config/mips/linux.h -@@ -108,14 +108,19 @@ - - /* Borrowed from sparc/linux.h */ - #undef LINK_SPEC -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" -+#endif - #define LINK_SPEC \ - "%(endian_spec) \ - %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}}" - - #undef SUBTARGET_ASM_SPEC ---- gcc-4.0.2/gcc/config/pa/pa-linux.h -+++ gcc-4.0.2/gcc/config/pa/pa-linux.h -@@ -82,13 +82,18 @@ - /* Define this for shared library support because it isn't in the main - linux.h file. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "\ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}" - - /* glibc's profiling functions don't need gcc to allocate counters. */ ---- gcc-4.0.2/gcc/config/rs6000/linux.h -+++ gcc-4.0.2/gcc/config/rs6000/linux.h -@@ -69,7 +69,11 @@ - #define LINK_START_DEFAULT_SPEC "%(link_start_linux)" - - #undef LINK_OS_DEFAULT_SPEC -+#ifdef USE_UCLIBC -+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)" -+#else - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" -+#endif - - #define LINK_GCC_C_SEQUENCE_SPEC \ - "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" ---- gcc-4.0.2/gcc/config/rs6000/sysv4.h -+++ gcc-4.0.2/gcc/config/rs6000/sysv4.h -@@ -949,6 +949,7 @@ - mcall-linux : %(link_os_linux) ; \ - mcall-gnu : %(link_os_gnu) ; \ - mcall-netbsd : %(link_os_netbsd) ; \ -+ mcall-linux-uclibc : %(link_os_linux_uclibc); \ - mcall-openbsd: %(link_os_openbsd) ; \ - : %(link_os_default) }" - -@@ -1127,6 +1128,10 @@ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" - -+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}" -+ - #if defined(HAVE_LD_EH_FRAME_HDR) - # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " - #endif -@@ -1293,6 +1298,7 @@ - { "link_os_sim", LINK_OS_SIM_SPEC }, \ - { "link_os_freebsd", LINK_OS_FREEBSD_SPEC }, \ - { "link_os_linux", LINK_OS_LINUX_SPEC }, \ -+ { "link_os_linux_uclibc", LINK_OS_LINUX_UCLIBC_SPEC }, \ - { "link_os_gnu", LINK_OS_GNU_SPEC }, \ - { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \ - { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \ ---- gcc-4.0.2/gcc/config/s390/linux.h -+++ gcc-4.0.2/gcc/config/s390/linux.h -@@ -77,6 +77,13 @@ - #define MULTILIB_DEFAULTS { "m31" } - #endif - -+#ifdef USE_UCLIBC -+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0" -+#else -+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1" -+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1" -+#endif - #undef LINK_SPEC - #define LINK_SPEC \ - "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ -@@ -86,8 +93,8 @@ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker: \ -- %{m31:-dynamic-linker /lib/ld.so.1} \ -- %{m64:-dynamic-linker /lib/ld64.so.1}}}}" -+ %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \ -+ %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}" - - - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack ---- gcc-4.0.2/gcc/config/sh/linux.h -+++ gcc-4.0.2/gcc/config/sh/linux.h -@@ -67,11 +67,16 @@ - #undef SUBTARGET_LINK_EMUL_SUFFIX - #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" - #undef SUBTARGET_LINK_SPEC -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #define SUBTARGET_LINK_SPEC \ - "%{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}" - - #undef LIB_SPEC ---- gcc-4.0.2/gcc/config/sparc/linux.h -+++ gcc-4.0.2/gcc/config/sparc/linux.h -@@ -130,14 +130,19 @@ - - /* If ELF is the default format, we should not use /lib/elf. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ - %{!mno-relax:%{!r:-relax}} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}}" - - /* The sun bundled assembler doesn't accept -Yd, (and neither does gas). ---- gcc-4.0.2/gcc/config/sparc/linux64.h -+++ gcc-4.0.2/gcc/config/sparc/linux64.h -@@ -167,12 +166,17 @@ - { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ - { "link_arch", LINK_ARCH_SPEC }, - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}} \ - " - ---- gcc-4.0.2/libtool.m4 -+++ gcc-4.0.2/libtool.m4 -@@ -682,6 +682,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - [lt_cv_deplibs_check_method='match_pattern /lib[^/.]+.so.[0-9]+.[0-9]+$'] ---- gcc-4.0.2/ltconfig -+++ gcc-4.0.2/ltconfig -@@ -603,6 +603,7 @@ - - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in -+linux-uclibc*) ;; - linux-gnu*) ;; - linux*) host=`echo $host | sed 's/^(.*-.*-linux)(.*)$/\1-gnu\2/'` - esac -@@ -1274,6 +1275,23 @@ - dynamic_linker='GNU/Linux ld.so' - ;; - -+linux-uclibc*) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' -+ soname_spec='${libname}${release}.so$major' -+ finish_cmds='PATH="$PATH:/sbin" ldconfig -n $libdir' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=no -+ # This implies no fast_install, which is unacceptable. -+ # Some rework will be needed to allow for fast_install -+ # before this can be enabled. -+ hardcode_into_libs=yes -+ # Assume using the uClibc dynamic linker. -+ dynamic_linker="uClibc ld.so" -+ ;; -+ - netbsd*) - need_lib_prefix=no - need_version=no ---- gcc-4.0.2/libffi/configure -+++ gcc-4.0.2/libffi/configure -@@ -3457,6 +3457,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/.]+.so.[0-9]+.[0-9]+$' ---- gcc-4.0.2/libgfortran/configure -+++ gcc-4.0.2/libgfortran/configure -@@ -3681,6 +3681,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/.]+.so.[0-9]+.[0-9]+$' ---- gcc-4.0.2/libjava/configure -+++ gcc-4.0.2/libjava/configure -@@ -4351,6 +4351,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/.]+.so.[0-9]+.[0-9]+$' ---- gcc-4.0.2/libmudflap/configure -+++ gcc-4.0.2/libmudflap/configure -@@ -5380,6 +5380,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/.]+.so.[0-9]+.[0-9]+$' ---- gcc-4.0.2/libobjc/configure -+++ gcc-4.0.2/libobjc/configure -@@ -3283,6 +3283,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/.]+.so.[0-9]+.[0-9]+$' ---- gcc-4.0.2/boehm-gc/configure -+++ gcc-4.0.2/boehm-gc/configure -@@ -4320,6 +4320,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/.]+.so.[0-9]+.[0-9]+$' ---- gcc-4.0.2/configure -+++ gcc-4.0.2/configure -@@ -1141,7 +1141,7 @@ - ;; - "") - case "${target}" in -- *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) -+ *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) - # Enable libmudflap by default in GNU and friends. - ;; - *-*-freebsd*) ---- gcc-4.0.2/configure.in -+++ gcc-4.0.2/configure.in -@@ -350,7 +350,7 @@ - ;; - "") - case "${target}" in -- *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) -+ *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) - # Enable libmudflap by default in GNU and friends. - ;; - *-*-freebsd*) ---- gcc-4.0.2/contrib/regression/objs-gcc.sh -+++ gcc-4.0.2/contrib/regression/objs-gcc.sh -@@ -105,6 +105,10 @@ - then - make all-gdb all-dejagnu all-ld || exit 1 - make install-gdb install-dejagnu install-ld || exit 1 -+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ] -+ then -+ make all-gdb all-dejagnu all-ld || exit 1 -+ make install-gdb install-dejagnu install-ld || exit 1 - elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then - make bootstrap || exit 1 - make install || exit 1 ---- gcc-4.0.2/zlib/configure -+++ gcc-4.0.2/zlib/configure -@@ -3426,6 +3426,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/.]+.so.[0-9]+.[0-9]+$' diff --git a/src/patches/gcc-uclibc-locale.patch b/src/patches/gcc-uclibc-locale.patch deleted file mode 100644 index ac4cf97..0000000 --- a/src/patches/gcc-uclibc-locale.patch +++ /dev/null @@ -1,3237 +0,0 @@ -diff -urN gcc-4.0.0-100/libstdc++-v3/acinclude.m4 gcc-4.0.0/libstdc++-v3/acinclude.m4 ---- gcc-4.0.0-100/libstdc++-v3/acinclude.m4 2005-04-30 13:06:53.000000000 -0500 -+++ gcc-4.0.0/libstdc++-v3/acinclude.m4 2005-04-28 20:19:01.000000000 -0500 -@@ -1104,7 +1104,7 @@ - AC_MSG_CHECKING([for C locale to use]) - GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@], - [use MODEL for target locale package], -- [permit generic|gnu|ieee_1003.1-2001|yes|no|auto]) -+ [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto]) - - # If they didn't use this option switch, or if they specified --enable - # with no specific model, we'll have to look for one. If they -@@ -1120,6 +1120,9 @@ - # Default to "generic". - if test $enable_clocale_flag = auto; then - case ${target_os} in -+ *-uclibc*) -+ enable_clocale_flag=uclibc -+ ;; - linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) - AC_EGREP_CPP([_GLIBCXX_ok], [ - #include <features.h> -@@ -1263,6 +1266,40 @@ - CTIME_CC=config/locale/generic/time_members.cc - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h - ;; -+ uclibc) -+ AC_MSG_RESULT(uclibc) -+ -+ # Declare intention to use gettext, and add support for specific -+ # languages. -+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT -+ ALL_LINGUAS="de fr" -+ -+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. -+ AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) -+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then -+ USE_NLS=yes -+ fi -+ # Export the build objects. -+ for ling in $ALL_LINGUAS; do \ -+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \ -+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \ -+ done -+ AC_SUBST(glibcxx_MOFILES) -+ AC_SUBST(glibcxx_POFILES) -+ -+ CLOCALE_H=config/locale/uclibc/c_locale.h -+ CLOCALE_CC=config/locale/uclibc/c_locale.cc -+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc -+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc -+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc -+ CMESSAGES_H=config/locale/uclibc/messages_members.h -+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc -+ CMONEY_CC=config/locale/uclibc/monetary_members.cc -+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc -+ CTIME_H=config/locale/uclibc/time_members.h -+ CTIME_CC=config/locale/uclibc/time_members.cc -+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h -+ ;; - esac - - # This is where the testsuite looks for locale catalogs, using the -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,59 @@ -+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*- -+ -+// Copyright (C) 2002, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// Written by Jakub Jelinek jakub@redhat.com -+ -+#include <clocale> -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning clean this up -+#endif -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ -+extern "C" __typeof(iswctype_l) __iswctype_l; -+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l; -+extern "C" __typeof(strcoll_l) __strcoll_l; -+extern "C" __typeof(strftime_l) __strftime_l; -+extern "C" __typeof(strtod_l) __strtod_l; -+extern "C" __typeof(strtof_l) __strtof_l; -+extern "C" __typeof(strtold_l) __strtold_l; -+extern "C" __typeof(strxfrm_l) __strxfrm_l; -+extern "C" __typeof(towlower_l) __towlower_l; -+extern "C" __typeof(towupper_l) __towupper_l; -+extern "C" __typeof(wcscoll_l) __wcscoll_l; -+extern "C" __typeof(wcsftime_l) __wcsftime_l; -+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l; -+extern "C" __typeof(wctype_l) __wctype_l; -+extern "C" __typeof(newlocale) __newlocale; -+extern "C" __typeof(freelocale) __freelocale; -+extern "C" __typeof(duplocale) __duplocale; -+extern "C" __typeof(uselocale) __uselocale; -+ -+#endif // GLIBC 2.3 and later -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,160 @@ -+// Wrapper for underlying C-language localization -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.8 Standard locale categories. -+// -+ -+// Written by Benjamin Kosnik bkoz@redhat.com -+ -+#include <cerrno> // For errno -+#include <locale> -+#include <stdexcept> -+#include <langinfo.h> -+#include <bits/c++locale_internal.h> -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __strtol_l(S, E, B, L) strtol((S), (E), (B)) -+#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B)) -+#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B)) -+#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B)) -+#define __strtof_l(S, E, L) strtof((S), (E)) -+#define __strtod_l(S, E, L) strtod((S), (E)) -+#define __strtold_l(S, E, L) strtold((S), (E)) -+#warning should dummy __newlocale check for C|POSIX ? -+#define __newlocale(a, b, c) NULL -+#define __freelocale(a) ((void)0) -+#define __duplocale(a) __c_locale() -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ float __f = __strtof_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __f; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ template<> -+ void -+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ double __d = __strtod_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __d; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ template<> -+ void -+ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ long double __ld = __strtold_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __ld; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ void -+ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, -+ __c_locale __old) -+ { -+ __cloc = __newlocale(1 << LC_ALL, __s, __old); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ if (!__cloc) -+ { -+ // This named locale is not supported by the underlying OS. -+ __throw_runtime_error(__N("locale::facet::_S_create_c_locale " -+ "name not valid")); -+ } -+#endif -+ } -+ -+ void -+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc) -+ { -+ if (_S_get_c_locale() != __cloc) -+ __freelocale(__cloc); -+ } -+ -+ __c_locale -+ locale::facet::_S_clone_c_locale(__c_locale& __cloc) -+ { return __duplocale(__cloc); } -+} // namespace std -+ -+namespace __gnu_cxx -+{ -+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] = -+ { -+ "LC_CTYPE", -+ "LC_NUMERIC", -+ "LC_TIME", -+ "LC_COLLATE", -+ "LC_MONETARY", -+ "LC_MESSAGES", -+#if _GLIBCXX_NUM_CATEGORIES != 0 -+ "LC_PAPER", -+ "LC_NAME", -+ "LC_ADDRESS", -+ "LC_TELEPHONE", -+ "LC_MEASUREMENT", -+ "LC_IDENTIFICATION" -+#endif -+ }; -+} -+ -+namespace std -+{ -+ const char* const* const locale::_S_categories = __gnu_cxx::category_names; -+} // namespace std -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,115 @@ -+// Wrapper for underlying C-language localization -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.8 Standard locale categories. -+// -+ -+// Written by Benjamin Kosnik bkoz@redhat.com -+ -+#ifndef _C_LOCALE_H -+#define _C_LOCALE_H 1 -+ -+#pragma GCC system_header -+ -+#include <cstring> // get std::strlen -+#include <cstdio> // get std::snprintf or std::sprintf -+#include <clocale> -+#include <langinfo.h> // For codecvt -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this -+#endif -+#ifdef __UCLIBC_HAS_LOCALE__ -+#include <iconv.h> // For codecvt using iconv, iconv_t -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+#include <libintl.h> // For messages -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning what is _GLIBCXX_C_LOCALE_GNU for -+#endif -+#define _GLIBCXX_C_LOCALE_GNU 1 -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix categories -+#endif -+// #define _GLIBCXX_NUM_CATEGORIES 6 -+#define _GLIBCXX_NUM_CATEGORIES 0 -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+namespace __gnu_cxx -+{ -+ extern "C" __typeof(uselocale) __uselocale; -+} -+#endif -+ -+namespace std -+{ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ typedef __locale_t __c_locale; -+#else -+ typedef int* __c_locale; -+#endif -+ -+ // Convert numeric value of type _Tv to string and return length of -+ // string. If snprintf is available use it, otherwise fall back to -+ // the unsafe sprintf which, in general, can be dangerous and should -+ // be avoided. -+ template<typename _Tv> -+ int -+ __convert_from_v(char* __out, const int __size, const char* __fmt, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ _Tv __v, const __c_locale& __cloc, int __prec) -+ { -+ __c_locale __old = __gnu_cxx::__uselocale(__cloc); -+#else -+ _Tv __v, const __c_locale&, int __prec) -+ { -+# ifdef __UCLIBC_HAS_LOCALE__ -+ char* __old = std::setlocale(LC_ALL, NULL); -+ char* __sav = new char[std::strlen(__old) + 1]; -+ std::strcpy(__sav, __old); -+ std::setlocale(LC_ALL, "C"); -+# endif -+#endif -+ -+ const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __gnu_cxx::__uselocale(__old); -+#elif defined __UCLIBC_HAS_LOCALE__ -+ std::setlocale(LC_ALL, __sav); -+ delete [] __sav; -+#endif -+ return __ret; -+ } -+} -+ -+#endif -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,306 @@ -+// std::codecvt implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2002, 2003 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.1.5 - Template class codecvt -+// -+ -+// Written by Benjamin Kosnik bkoz@redhat.com -+ -+#include <locale> -+#include <bits/c++locale_internal.h> -+ -+namespace std -+{ -+ // Specializations. -+#ifdef _GLIBCXX_USE_WCHAR_T -+ codecvt_base::result -+ codecvt<wchar_t, char, mbstate_t>:: -+ do_out(state_type& __state, const intern_type* __from, -+ const intern_type* __from_end, const intern_type*& __from_next, -+ extern_type* __to, extern_type* __to_end, -+ extern_type*& __to_next) const -+ { -+ result __ret = ok; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // wcsnrtombs is *very* fast but stops if encounters NUL characters: -+ // in case we fall back to wcrtomb and then continue, in a loop. -+ // NB: wcsnrtombs is a GNU extension -+ for (__from_next = __from, __to_next = __to; -+ __from_next < __from_end && __to_next < __to_end -+ && __ret == ok;) -+ { -+ const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0', -+ __from_end - __from_next); -+ if (!__from_chunk_end) -+ __from_chunk_end = __from_end; -+ -+ __from = __from_next; -+ const size_t __conv = wcsnrtombs(__to_next, &__from_next, -+ __from_chunk_end - __from_next, -+ __to_end - __to_next, &__state); -+ if (__conv == static_cast<size_t>(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // wcrtomb. -+ for (; __from < __from_next; ++__from) -+ __to_next += wcrtomb(__to_next, *__from, &__tmp_state); -+ __state = __tmp_state; -+ __ret = error; -+ } -+ else if (__from_next && __from_next < __from_chunk_end) -+ { -+ __to_next += __conv; -+ __ret = partial; -+ } -+ else -+ { -+ __from_next = __from_chunk_end; -+ __to_next += __conv; -+ } -+ -+ if (__from_next < __from_end && __ret == ok) -+ { -+ extern_type __buf[MB_LEN_MAX]; -+ __tmp_state = __state; -+ const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state); -+ if (__conv > static_cast<size_t>(__to_end - __to_next)) -+ __ret = partial; -+ else -+ { -+ memcpy(__to_next, __buf, __conv); -+ __state = __tmp_state; -+ __to_next += __conv; -+ ++__from_next; -+ } -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+ -+ codecvt_base::result -+ codecvt<wchar_t, char, mbstate_t>:: -+ do_in(state_type& __state, const extern_type* __from, -+ const extern_type* __from_end, const extern_type*& __from_next, -+ intern_type* __to, intern_type* __to_end, -+ intern_type*& __to_next) const -+ { -+ result __ret = ok; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters: -+ // in case we store a L'\0' and then continue, in a loop. -+ // NB: mbsnrtowcs is a GNU extension -+ for (__from_next = __from, __to_next = __to; -+ __from_next < __from_end && __to_next < __to_end -+ && __ret == ok;) -+ { -+ const extern_type* __from_chunk_end; -+ __from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0', -+ __from_end -+ - __from_next)); -+ if (!__from_chunk_end) -+ __from_chunk_end = __from_end; -+ -+ __from = __from_next; -+ size_t __conv = mbsnrtowcs(__to_next, &__from_next, -+ __from_chunk_end - __from_next, -+ __to_end - __to_next, &__state); -+ if (__conv == static_cast<size_t>(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // mbrtowc. -+ for (;; ++__to_next, __from += __conv) -+ { -+ __conv = mbrtowc(__to_next, __from, __from_end - __from, -+ &__tmp_state); -+ if (__conv == static_cast<size_t>(-1) -+ || __conv == static_cast<size_t>(-2)) -+ break; -+ } -+ __from_next = __from; -+ __state = __tmp_state; -+ __ret = error; -+ } -+ else if (__from_next && __from_next < __from_chunk_end) -+ { -+ // It is unclear what to return in this case (see DR 382). -+ __to_next += __conv; -+ __ret = partial; -+ } -+ else -+ { -+ __from_next = __from_chunk_end; -+ __to_next += __conv; -+ } -+ -+ if (__from_next < __from_end && __ret == ok) -+ { -+ if (__to_next < __to_end) -+ { -+ // XXX Probably wrong for stateful encodings -+ __tmp_state = __state; -+ ++__from_next; -+ *__to_next++ = L'\0'; -+ } -+ else -+ __ret = partial; -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+ -+ int -+ codecvt<wchar_t, char, mbstate_t>:: -+ do_encoding() const throw() -+ { -+ // XXX This implementation assumes that the encoding is -+ // stateless and is either single-byte or variable-width. -+ int __ret = 0; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ if (MB_CUR_MAX == 1) -+ __ret = 1; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __ret; -+ } -+ -+ int -+ codecvt<wchar_t, char, mbstate_t>:: -+ do_max_length() const throw() -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ // XXX Probably wrong for stateful encodings. -+ int __ret = MB_CUR_MAX; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __ret; -+ } -+ -+ int -+ codecvt<wchar_t, char, mbstate_t>:: -+ do_length(state_type& __state, const extern_type* __from, -+ const extern_type* __end, size_t __max) const -+ { -+ int __ret = 0; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters: -+ // in case we advance past it and then continue, in a loop. -+ // NB: mbsnrtowcs is a GNU extension -+ -+ // A dummy internal buffer is needed in order for mbsnrtocws to consider -+ // its fourth parameter (it wouldn't with NULL as first parameter). -+ wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t) -+ * __max)); -+ while (__from < __end && __max) -+ { -+ const extern_type* __from_chunk_end; -+ __from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0', -+ __end -+ - __from)); -+ if (!__from_chunk_end) -+ __from_chunk_end = __end; -+ -+ const extern_type* __tmp_from = __from; -+ size_t __conv = mbsnrtowcs(__to, &__from, -+ __from_chunk_end - __from, -+ __max, &__state); -+ if (__conv == static_cast<size_t>(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // mbrtowc. -+ for (__from = __tmp_from;; __from += __conv) -+ { -+ __conv = mbrtowc(NULL, __from, __end - __from, -+ &__tmp_state); -+ if (__conv == static_cast<size_t>(-1) -+ || __conv == static_cast<size_t>(-2)) -+ break; -+ } -+ __state = __tmp_state; -+ __ret += __from - __tmp_from; -+ break; -+ } -+ if (!__from) -+ __from = __from_chunk_end; -+ -+ __ret += __from - __tmp_from; -+ __max -= __conv; -+ -+ if (__from < __end && __max) -+ { -+ // XXX Probably wrong for stateful encodings -+ __tmp_state = __state; -+ ++__from; -+ ++__ret; -+ --__max; -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,80 @@ -+// std::collate implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.4.1.2 collate virtual functions -+// -+ -+// Written by Benjamin Kosnik bkoz@redhat.com -+ -+#include <locale> -+#include <bits/c++locale_internal.h> -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __strcoll_l(S1, S2, L) strcoll((S1), (S2)) -+#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N)) -+#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2)) -+#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N)) -+#endif -+ -+namespace std -+{ -+ // These are basically extensions to char_traits, and perhaps should -+ // be put there instead of here. -+ template<> -+ int -+ collate<char>::_M_compare(const char* __one, const char* __two) const -+ { -+ int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate); -+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); -+ } -+ -+ template<> -+ size_t -+ collate<char>::_M_transform(char* __to, const char* __from, -+ size_t __n) const -+ { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ int -+ collate<wchar_t>::_M_compare(const wchar_t* __one, -+ const wchar_t* __two) const -+ { -+ int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate); -+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); -+ } -+ -+ template<> -+ size_t -+ collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from, -+ size_t __n) const -+ { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,300 @@ -+// std::ctype implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions. -+// -+ -+// Written by Benjamin Kosnik bkoz@redhat.com -+ -+#define _LIBC -+#include <locale> -+#undef _LIBC -+#include <bits/c++locale_internal.h> -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __wctype_l(S, L) wctype((S)) -+#define __towupper_l(C, L) towupper((C)) -+#define __towlower_l(C, L) towlower((C)) -+#define __iswctype_l(C, M, L) iswctype((C), (M)) -+#endif -+ -+namespace std -+{ -+ // NB: The other ctype<char> specializations are in src/locale.cc and -+ // various /config/os/* files. -+ template<> -+ ctype_byname<char>::ctype_byname(const char* __s, size_t __refs) -+ : ctype<char>(0, false, __refs) -+ { -+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) -+ { -+ this->_S_destroy_c_locale(this->_M_c_locale_ctype); -+ this->_S_create_c_locale(this->_M_c_locale_ctype, __s); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper; -+ this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower; -+ this->_M_table = this->_M_c_locale_ctype->__ctype_b; -+#endif -+ } -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ ctype<wchar_t>::__wmask_type -+ ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const -+ { -+ __wmask_type __ret; -+ switch (__m) -+ { -+ case space: -+ __ret = __wctype_l("space", _M_c_locale_ctype); -+ break; -+ case print: -+ __ret = __wctype_l("print", _M_c_locale_ctype); -+ break; -+ case cntrl: -+ __ret = __wctype_l("cntrl", _M_c_locale_ctype); -+ break; -+ case upper: -+ __ret = __wctype_l("upper", _M_c_locale_ctype); -+ break; -+ case lower: -+ __ret = __wctype_l("lower", _M_c_locale_ctype); -+ break; -+ case alpha: -+ __ret = __wctype_l("alpha", _M_c_locale_ctype); -+ break; -+ case digit: -+ __ret = __wctype_l("digit", _M_c_locale_ctype); -+ break; -+ case punct: -+ __ret = __wctype_l("punct", _M_c_locale_ctype); -+ break; -+ case xdigit: -+ __ret = __wctype_l("xdigit", _M_c_locale_ctype); -+ break; -+ case alnum: -+ __ret = __wctype_l("alnum", _M_c_locale_ctype); -+ break; -+ case graph: -+ __ret = __wctype_l("graph", _M_c_locale_ctype); -+ break; -+ default: -+ __ret = __wmask_type(); -+ } -+ return __ret; -+ } -+ -+ wchar_t -+ ctype<wchar_t>::do_toupper(wchar_t __c) const -+ { return __towupper_l(__c, _M_c_locale_ctype); } -+ -+ const wchar_t* -+ ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi) -+ { -+ *__lo = __towupper_l(*__lo, _M_c_locale_ctype); -+ ++__lo; -+ } -+ return __hi; -+ } -+ -+ wchar_t -+ ctype<wchar_t>::do_tolower(wchar_t __c) const -+ { return __towlower_l(__c, _M_c_locale_ctype); } -+ -+ const wchar_t* -+ ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi) -+ { -+ *__lo = __towlower_l(*__lo, _M_c_locale_ctype); -+ ++__lo; -+ } -+ return __hi; -+ } -+ -+ bool -+ ctype<wchar_t>:: -+ do_is(mask __m, wchar_t __c) const -+ { -+ // Highest bitmask in ctype_base == 10, but extra in "C" -+ // library for blank. -+ bool __ret = false; -+ const size_t __bitmasksize = 11; -+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) -+ if (__m & _M_bit[__bitcur] -+ && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype)) -+ { -+ __ret = true; -+ break; -+ } -+ return __ret; -+ } -+ -+ const wchar_t* -+ ctype<wchar_t>:: -+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const -+ { -+ for (; __lo < __hi; ++__vec, ++__lo) -+ { -+ // Highest bitmask in ctype_base == 10, but extra in "C" -+ // library for blank. -+ const size_t __bitmasksize = 11; -+ mask __m = 0; -+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) -+ if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype)) -+ __m |= _M_bit[__bitcur]; -+ *__vec = __m; -+ } -+ return __hi; -+ } -+ -+ const wchar_t* -+ ctype<wchar_t>:: -+ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi && !this->do_is(__m, *__lo)) -+ ++__lo; -+ return __lo; -+ } -+ -+ const wchar_t* -+ ctype<wchar_t>:: -+ do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const -+ { -+ while (__lo < __hi && this->do_is(__m, *__lo) != 0) -+ ++__lo; -+ return __lo; -+ } -+ -+ wchar_t -+ ctype<wchar_t>:: -+ do_widen(char __c) const -+ { return _M_widen[static_cast<unsigned char>(__c)]; } -+ -+ const char* -+ ctype<wchar_t>:: -+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const -+ { -+ while (__lo < __hi) -+ { -+ *__dest = _M_widen[static_cast<unsigned char>(*__lo)]; -+ ++__lo; -+ ++__dest; -+ } -+ return __hi; -+ } -+ -+ char -+ ctype<wchar_t>:: -+ do_narrow(wchar_t __wc, char __dfault) const -+ { -+ if (__wc >= 0 && __wc < 128 && _M_narrow_ok) -+ return _M_narrow[__wc]; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ const int __c = wctob(__wc); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return (__c == EOF ? __dfault : static_cast<char>(__c)); -+ } -+ -+ const wchar_t* -+ ctype<wchar_t>:: -+ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, -+ char* __dest) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ if (_M_narrow_ok) -+ while (__lo < __hi) -+ { -+ if (*__lo >= 0 && *__lo < 128) -+ *__dest = _M_narrow[*__lo]; -+ else -+ { -+ const int __c = wctob(*__lo); -+ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c)); -+ } -+ ++__lo; -+ ++__dest; -+ } -+ else -+ while (__lo < __hi) -+ { -+ const int __c = wctob(*__lo); -+ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c)); -+ ++__lo; -+ ++__dest; -+ } -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __hi; -+ } -+ -+ void -+ ctype<wchar_t>::_M_initialize_ctype() -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ wint_t __i; -+ for (__i = 0; __i < 128; ++__i) -+ { -+ const int __c = wctob(__i); -+ if (__c == EOF) -+ break; -+ else -+ _M_narrow[__i] = static_cast<char>(__c); -+ } -+ if (__i == 128) -+ _M_narrow_ok = true; -+ else -+ _M_narrow_ok = false; -+ for (size_t __j = 0; -+ __j < sizeof(_M_widen) / sizeof(wint_t); ++__j) -+ _M_widen[__j] = btowc(__j); -+ -+ for (size_t __k = 0; __k <= 11; ++__k) -+ { -+ _M_bit[__k] = static_cast<mask>(_ISbit(__k)); -+ _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]); -+ } -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ } -+#endif // _GLIBCXX_USE_WCHAR_T -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,100 @@ -+// std::messages implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.7.1.2 messages virtual functions -+// -+ -+// Written by Benjamin Kosnik bkoz@redhat.com -+ -+#include <locale> -+#include <bits/c++locale_internal.h> -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix gettext stuff -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+extern "C" char *__dcgettext(const char *domainname, -+ const char *msgid, int category); -+#undef gettext -+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES) -+#else -+#undef gettext -+#define gettext(msgid) (msgid) -+#endif -+ -+namespace std -+{ -+ // Specializations. -+ template<> -+ string -+ messages<char>::do_get(catalog, int, int, const string& __dfault) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_messages); -+ const char* __msg = const_cast<const char*>(gettext(__dfault.c_str())); -+ __uselocale(__old); -+ return string(__msg); -+#elif defined __UCLIBC_HAS_LOCALE__ -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_messages); -+ const char* __msg = gettext(__dfault.c_str()); -+ setlocale(LC_ALL, __old); -+ free(__old); -+ return string(__msg); -+#else -+ const char* __msg = gettext(__dfault.c_str()); -+ return string(__msg); -+#endif -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ wstring -+ messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const -+ { -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_messages); -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ __uselocale(__old); -+ return _M_convert_from_char(__msg); -+# elif defined __UCLIBC_HAS_LOCALE__ -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_messages); -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ setlocale(LC_ALL, __old); -+ free(__old); -+ return _M_convert_from_char(__msg); -+# else -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ return _M_convert_from_char(__msg); -+# endif -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,118 @@ -+// std::messages implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.7.1.2 messages functions -+// -+ -+// Written by Benjamin Kosnik bkoz@redhat.com -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix prototypes for *textdomain funcs -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+extern "C" char *__textdomain(const char *domainname); -+extern "C" char *__bindtextdomain(const char *domainname, -+ const char *dirname); -+#else -+#undef __textdomain -+#undef __bindtextdomain -+#define __textdomain(D) ((void)0) -+#define __bindtextdomain(D,P) ((void)0) -+#endif -+ -+ // Non-virtual member functions. -+ template<typename _CharT> -+ messages<_CharT>::messages(size_t __refs) -+ : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), -+ _M_name_messages(_S_get_c_name()) -+ { } -+ -+ template<typename _CharT> -+ messages<_CharT>::messages(__c_locale __cloc, const char* __s, -+ size_t __refs) -+ : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)), -+ _M_name_messages(__s) -+ { -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ _M_name_messages = __tmp; -+ } -+ -+ template<typename _CharT> -+ typename messages<_CharT>::catalog -+ messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, -+ const char* __dir) const -+ { -+ __bindtextdomain(__s.c_str(), __dir); -+ return this->do_open(__s, __loc); -+ } -+ -+ // Virtual member functions. -+ template<typename _CharT> -+ messages<_CharT>::~messages() -+ { -+ if (_M_name_messages != _S_get_c_name()) -+ delete [] _M_name_messages; -+ _S_destroy_c_locale(_M_c_locale_messages); -+ } -+ -+ template<typename _CharT> -+ typename messages<_CharT>::catalog -+ messages<_CharT>::do_open(const basic_string<char>& __s, -+ const locale&) const -+ { -+ // No error checking is done, assume the catalog exists and can -+ // be used. -+ __textdomain(__s.c_str()); -+ return 0; -+ } -+ -+ template<typename _CharT> -+ void -+ messages<_CharT>::do_close(catalog) const -+ { } -+ -+ // messages_byname -+ template<typename _CharT> -+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) -+ : messages<_CharT>(__refs) -+ { -+ if (this->_M_name_messages != locale::facet::_S_get_c_name()) -+ delete [] this->_M_name_messages; -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ this->_M_name_messages = __tmp; -+ -+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) -+ { -+ this->_S_destroy_c_locale(this->_M_c_locale_messages); -+ this->_S_create_c_locale(this->_M_c_locale_messages, __s); -+ } -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2005-04-28 01:23:02.000000000 -0500 -@@ -0,0 +1,692 @@ -+// std::moneypunct implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions -+// -+ -+// Written by Benjamin Kosnik bkoz@redhat.com -+ -+#define _LIBC -+#include <locale> -+#undef _LIBC -+#include <bits/c++locale_internal.h> -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning optimize this for uclibc -+#warning tailor for stub locale support -+#endif -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ // Construct and return valid pattern consisting of some combination of: -+ // space none symbol sign value -+ money_base::pattern -+ money_base::_S_construct_pattern(char __precedes, char __space, char __posn) -+ { -+ pattern __ret; -+ -+ // This insanely complicated routine attempts to construct a valid -+ // pattern for use with monyepunct. A couple of invariants: -+ -+ // if (__precedes) symbol -> value -+ // else value -> symbol -+ -+ // if (__space) space -+ // else none -+ -+ // none == never first -+ // space never first or last -+ -+ // Any elegant implementations of this are welcome. -+ switch (__posn) -+ { -+ case 0: -+ case 1: -+ // 1 The sign precedes the value and symbol. -+ __ret.field[0] = sign; -+ if (__space) -+ { -+ // Pattern starts with sign. -+ if (__precedes) -+ { -+ __ret.field[1] = symbol; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[1] = value; -+ __ret.field[3] = symbol; -+ } -+ __ret.field[2] = space; -+ } -+ else -+ { -+ // Pattern starts with sign and ends with none. -+ if (__precedes) -+ { -+ __ret.field[1] = symbol; -+ __ret.field[2] = value; -+ } -+ else -+ { -+ __ret.field[1] = value; -+ __ret.field[2] = symbol; -+ } -+ __ret.field[3] = none; -+ } -+ break; -+ case 2: -+ // 2 The sign follows the value and symbol. -+ if (__space) -+ { -+ // Pattern either ends with sign. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[2] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[2] = symbol; -+ } -+ __ret.field[1] = space; -+ __ret.field[3] = sign; -+ } -+ else -+ { -+ // Pattern ends with sign then none. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[1] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[1] = symbol; -+ } -+ __ret.field[2] = sign; -+ __ret.field[3] = none; -+ } -+ break; -+ case 3: -+ // 3 The sign immediately precedes the symbol. -+ if (__precedes) -+ { -+ __ret.field[0] = sign; -+ __ret.field[1] = symbol; -+ if (__space) -+ { -+ __ret.field[2] = space; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[2] = value; -+ __ret.field[3] = none; -+ } -+ } -+ else -+ { -+ __ret.field[0] = value; -+ if (__space) -+ { -+ __ret.field[1] = space; -+ __ret.field[2] = sign; -+ __ret.field[3] = symbol; -+ } -+ else -+ { -+ __ret.field[1] = sign; -+ __ret.field[2] = symbol; -+ __ret.field[3] = none; -+ } -+ } -+ break; -+ case 4: -+ // 4 The sign immediately follows the symbol. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[1] = sign; -+ if (__space) -+ { -+ __ret.field[2] = space; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[2] = value; -+ __ret.field[3] = none; -+ } -+ } -+ else -+ { -+ __ret.field[0] = value; -+ if (__space) -+ { -+ __ret.field[1] = space; -+ __ret.field[2] = symbol; -+ __ret.field[3] = sign; -+ } -+ else -+ { -+ __ret.field[1] = symbol; -+ __ret.field[2] = sign; -+ __ret.field[3] = none; -+ } -+ } -+ break; -+ default: -+ __ret = pattern(); -+ } -+ return __ret; -+ } -+ -+ template<> -+ void -+ moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc, -+ const char*) -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache<char, true>; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = ""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = ""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = ""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, -+ __cloc)); -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign); -+ -+ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); -+ if (!__nposn) -+ _M_data->_M_negative_sign = "()"; -+ else -+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, -+ __cloc); -+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign); -+ -+ // _Intl == true -+ _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); -+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol); -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, -+ __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ } -+ } -+ -+ template<> -+ void -+ moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc, -+ const char*) -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache<char, false>; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = ""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = ""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = ""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, -+ __cloc)); -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign); -+ -+ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); -+ if (!__nposn) -+ _M_data->_M_negative_sign = "()"; -+ else -+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, -+ __cloc); -+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign); -+ -+ // _Intl == false -+ _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); -+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol); -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ } -+ } -+ -+ template<> -+ moneypunct<char, true>::~moneypunct() -+ { delete _M_data; } -+ -+ template<> -+ moneypunct<char, false>::~moneypunct() -+ { delete _M_data; } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const char*) -+#else -+ const char* __name) -+#endif -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache<wchar_t, true>; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = -+ static_cast<wchar_t>(money_base::_S_atoms[__i]); -+ } -+ else -+ { -+ // Named locale. -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(__cloc); -+#else -+ // Switch to named locale so that mbsrtowcs will work. -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, __name); -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this... should be monetary -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# else -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+#endif -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ -+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); -+ const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); -+ -+ wchar_t* __wcs_ps = 0; -+ wchar_t* __wcs_ns = 0; -+ const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); -+ try -+ { -+ mbstate_t __state; -+ size_t __len = strlen(__cpossign); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ps = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state); -+ _M_data->_M_positive_sign = __wcs_ps; -+ } -+ else -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); -+ -+ __len = strlen(__cnegsign); -+ if (!__nposn) -+ _M_data->_M_negative_sign = L"()"; -+ else if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ns = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state); -+ _M_data->_M_negative_sign = __wcs_ns; -+ } -+ else -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign); -+ -+ // _Intl == true. -+ __len = strlen(__ccurr); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__ccurr, __len, &__state); -+ _M_data->_M_curr_symbol = __wcs; -+ } -+ else -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol); -+ } -+ catch (...) -+ { -+ delete _M_data; -+ _M_data = 0; -+ delete __wcs_ps; -+ delete __wcs_ns; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ __throw_exception_again; -+ } -+ -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, -+ __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ } -+ } -+ -+ template<> -+ void -+ moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const char*) -+#else -+ const char* __name) -+#endif -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache<wchar_t, false>; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = -+ static_cast<wchar_t>(money_base::_S_atoms[__i]); -+ } -+ else -+ { -+ // Named locale. -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(__cloc); -+#else -+ // Switch to named locale so that mbsrtowcs will work. -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, __name); -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this... should be monetary -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# else -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+#endif -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ -+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); -+ const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); -+ -+ wchar_t* __wcs_ps = 0; -+ wchar_t* __wcs_ns = 0; -+ const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); -+ try -+ { -+ mbstate_t __state; -+ size_t __len; -+ __len = strlen(__cpossign); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ps = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state); -+ _M_data->_M_positive_sign = __wcs_ps; -+ } -+ else -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); -+ -+ __len = strlen(__cnegsign); -+ if (!__nposn) -+ _M_data->_M_negative_sign = L"()"; -+ else if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ns = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state); -+ _M_data->_M_negative_sign = __wcs_ns; -+ } -+ else -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign); -+ -+ // _Intl == true. -+ __len = strlen(__ccurr); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__ccurr, __len, &__state); -+ _M_data->_M_curr_symbol = __wcs; -+ } -+ else -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol); -+ } -+ catch (...) -+ { -+ delete _M_data; -+ _M_data = 0; -+ delete __wcs_ps; -+ delete __wcs_ns; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ __throw_exception_again; -+ } -+ -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ } -+ } -+ -+ template<> -+ moneypunct<wchar_t, true>::~moneypunct() -+ { -+ if (_M_data->_M_positive_sign_size) -+ delete [] _M_data->_M_positive_sign; -+ if (_M_data->_M_negative_sign_size -+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0) -+ delete [] _M_data->_M_negative_sign; -+ if (_M_data->_M_curr_symbol_size) -+ delete [] _M_data->_M_curr_symbol; -+ delete _M_data; -+ } -+ -+ template<> -+ moneypunct<wchar_t, false>::~moneypunct() -+ { -+ if (_M_data->_M_positive_sign_size) -+ delete [] _M_data->_M_positive_sign; -+ if (_M_data->_M_negative_sign_size -+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0) -+ delete [] _M_data->_M_negative_sign; -+ if (_M_data->_M_curr_symbol_size) -+ delete [] _M_data->_M_curr_symbol; -+ delete _M_data; -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2005-04-28 01:20:20.000000000 -0500 -@@ -0,0 +1,173 @@ -+// std::numpunct implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions -+// -+ -+// Written by Benjamin Kosnik bkoz@redhat.com -+ -+#define _LIBC -+#include <locale> -+#undef _LIBC -+#include <bits/c++locale_internal.h> -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning tailor for stub locale support -+#endif -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ numpunct<char>::_M_initialize_numpunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __numpunct_cache<char>; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_use_grouping = false; -+ -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ -+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) -+ _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i]; -+ -+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j) -+ _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP, -+ __cloc)); -+ -+ // Check for NULL, which implies no grouping. -+ if (_M_data->_M_thousands_sep == '\0') -+ _M_data->_M_grouping = ""; -+ else -+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ } -+ -+ // NB: There is no way to extact this info from posix locales. -+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc); -+ _M_data->_M_truename = "true"; -+ _M_data->_M_truename_size = 4; -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); -+ _M_data->_M_falsename = "false"; -+ _M_data->_M_falsename_size = 5; -+ } -+ -+ template<> -+ numpunct<char>::~numpunct() -+ { delete _M_data; } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __numpunct_cache<wchar_t>; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_use_grouping = false; -+ -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) -+ _M_data->_M_atoms_out[__i] = -+ static_cast<wchar_t>(__num_base::_S_atoms_out[__i]); -+ -+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j) -+ _M_data->_M_atoms_in[__j] = -+ static_cast<wchar_t>(__num_base::_S_atoms_in[__j]); -+ } -+ else -+ { -+ // Named locale. -+ // NB: In the GNU model wchar_t is always 32 bit wide. -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# else -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+#endif -+ -+ if (_M_data->_M_thousands_sep == L'\0') -+ _M_data->_M_grouping = ""; -+ else -+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ } -+ -+ // NB: There is no way to extact this info from posix locales. -+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc); -+ _M_data->_M_truename = L"true"; -+ _M_data->_M_truename_size = 4; -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); -+ _M_data->_M_falsename = L"false"; -+ _M_data->_M_falsename_size = 5; -+ } -+ -+ template<> -+ numpunct<wchar_t>::~numpunct() -+ { delete _M_data; } -+ #endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,406 @@ -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions -+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions -+// -+ -+// Written by Benjamin Kosnik bkoz@redhat.com -+ -+#include <locale> -+#include <bits/c++locale_internal.h> -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning tailor for stub locale support -+#endif -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ __timepunct<char>:: -+ _M_put(char* __s, size_t __maxlen, const char* __format, -+ const tm* __tm) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const size_t __len = __strftime_l(__s, __maxlen, __format, __tm, -+ _M_c_locale_timepunct); -+#else -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_timepunct); -+ const size_t __len = strftime(__s, __maxlen, __format, __tm); -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ // Make sure __s is null terminated. -+ if (__len == 0) -+ __s[0] = '\0'; -+ } -+ -+ template<> -+ void -+ __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __timepunct_cache<char>; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_c_locale_timepunct = _S_get_c_locale(); -+ -+ _M_data->_M_date_format = "%m/%d/%y"; -+ _M_data->_M_date_era_format = "%m/%d/%y"; -+ _M_data->_M_time_format = "%H:%M:%S"; -+ _M_data->_M_time_era_format = "%H:%M:%S"; -+ _M_data->_M_date_time_format = ""; -+ _M_data->_M_date_time_era_format = ""; -+ _M_data->_M_am = "AM"; -+ _M_data->_M_pm = "PM"; -+ _M_data->_M_am_pm_format = ""; -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = "Sunday"; -+ _M_data->_M_day2 = "Monday"; -+ _M_data->_M_day3 = "Tuesday"; -+ _M_data->_M_day4 = "Wednesday"; -+ _M_data->_M_day5 = "Thursday"; -+ _M_data->_M_day6 = "Friday"; -+ _M_data->_M_day7 = "Saturday"; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = "Sun"; -+ _M_data->_M_aday2 = "Mon"; -+ _M_data->_M_aday3 = "Tue"; -+ _M_data->_M_aday4 = "Wed"; -+ _M_data->_M_aday5 = "Thu"; -+ _M_data->_M_aday6 = "Fri"; -+ _M_data->_M_aday7 = "Sat"; -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = "January"; -+ _M_data->_M_month02 = "February"; -+ _M_data->_M_month03 = "March"; -+ _M_data->_M_month04 = "April"; -+ _M_data->_M_month05 = "May"; -+ _M_data->_M_month06 = "June"; -+ _M_data->_M_month07 = "July"; -+ _M_data->_M_month08 = "August"; -+ _M_data->_M_month09 = "September"; -+ _M_data->_M_month10 = "October"; -+ _M_data->_M_month11 = "November"; -+ _M_data->_M_month12 = "December"; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = "Jan"; -+ _M_data->_M_amonth02 = "Feb"; -+ _M_data->_M_amonth03 = "Mar"; -+ _M_data->_M_amonth04 = "Apr"; -+ _M_data->_M_amonth05 = "May"; -+ _M_data->_M_amonth06 = "Jun"; -+ _M_data->_M_amonth07 = "Jul"; -+ _M_data->_M_amonth08 = "Aug"; -+ _M_data->_M_amonth09 = "Sep"; -+ _M_data->_M_amonth10 = "Oct"; -+ _M_data->_M_amonth11 = "Nov"; -+ _M_data->_M_amonth12 = "Dec"; -+ } -+ else -+ { -+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); -+ -+ _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc); -+ _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc); -+ _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc); -+ _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc); -+ _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc); -+ _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT, -+ __cloc); -+ _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc); -+ _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc); -+ _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc); -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc); -+ _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc); -+ _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc); -+ _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc); -+ _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc); -+ _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc); -+ _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc); -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc); -+ _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc); -+ _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc); -+ _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc); -+ _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc); -+ _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc); -+ _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc); -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc); -+ _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc); -+ _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc); -+ _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc); -+ _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc); -+ _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc); -+ _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc); -+ _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc); -+ _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc); -+ _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc); -+ _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc); -+ _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc); -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc); -+ _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc); -+ _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc); -+ _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc); -+ _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc); -+ _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc); -+ _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc); -+ _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc); -+ _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc); -+ _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc); -+ _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc); -+ _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc); -+ } -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ __timepunct<wchar_t>:: -+ _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, -+ const tm* __tm) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct); -+ const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm, -+ _M_c_locale_timepunct); -+#else -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_timepunct); -+ const size_t __len = wcsftime(__s, __maxlen, __format, __tm); -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ // Make sure __s is null terminated. -+ if (__len == 0) -+ __s[0] = L'\0'; -+ } -+ -+ template<> -+ void -+ __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __timepunct_cache<wchar_t>; -+ -+#warning wide time stuff -+// if (!__cloc) -+ { -+ // "C" locale -+ _M_c_locale_timepunct = _S_get_c_locale(); -+ -+ _M_data->_M_date_format = L"%m/%d/%y"; -+ _M_data->_M_date_era_format = L"%m/%d/%y"; -+ _M_data->_M_time_format = L"%H:%M:%S"; -+ _M_data->_M_time_era_format = L"%H:%M:%S"; -+ _M_data->_M_date_time_format = L""; -+ _M_data->_M_date_time_era_format = L""; -+ _M_data->_M_am = L"AM"; -+ _M_data->_M_pm = L"PM"; -+ _M_data->_M_am_pm_format = L""; -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = L"Sunday"; -+ _M_data->_M_day2 = L"Monday"; -+ _M_data->_M_day3 = L"Tuesday"; -+ _M_data->_M_day4 = L"Wednesday"; -+ _M_data->_M_day5 = L"Thursday"; -+ _M_data->_M_day6 = L"Friday"; -+ _M_data->_M_day7 = L"Saturday"; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = L"Sun"; -+ _M_data->_M_aday2 = L"Mon"; -+ _M_data->_M_aday3 = L"Tue"; -+ _M_data->_M_aday4 = L"Wed"; -+ _M_data->_M_aday5 = L"Thu"; -+ _M_data->_M_aday6 = L"Fri"; -+ _M_data->_M_aday7 = L"Sat"; -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = L"January"; -+ _M_data->_M_month02 = L"February"; -+ _M_data->_M_month03 = L"March"; -+ _M_data->_M_month04 = L"April"; -+ _M_data->_M_month05 = L"May"; -+ _M_data->_M_month06 = L"June"; -+ _M_data->_M_month07 = L"July"; -+ _M_data->_M_month08 = L"August"; -+ _M_data->_M_month09 = L"September"; -+ _M_data->_M_month10 = L"October"; -+ _M_data->_M_month11 = L"November"; -+ _M_data->_M_month12 = L"December"; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = L"Jan"; -+ _M_data->_M_amonth02 = L"Feb"; -+ _M_data->_M_amonth03 = L"Mar"; -+ _M_data->_M_amonth04 = L"Apr"; -+ _M_data->_M_amonth05 = L"May"; -+ _M_data->_M_amonth06 = L"Jun"; -+ _M_data->_M_amonth07 = L"Jul"; -+ _M_data->_M_amonth08 = L"Aug"; -+ _M_data->_M_amonth09 = L"Sep"; -+ _M_data->_M_amonth10 = L"Oct"; -+ _M_data->_M_amonth11 = L"Nov"; -+ _M_data->_M_amonth12 = L"Dec"; -+ } -+#if 0 -+ else -+ { -+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); -+ -+ union { char *__s; wchar_t *__w; } __u; -+ -+ __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc); -+ _M_data->_M_date_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc); -+ _M_data->_M_date_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc); -+ _M_data->_M_time_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc); -+ _M_data->_M_time_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc); -+ _M_data->_M_date_time_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc); -+ _M_data->_M_date_time_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc); -+ _M_data->_M_am = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc); -+ _M_data->_M_pm = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc); -+ _M_data->_M_am_pm_format = __u.__w; -+ -+ // Day names, starting with "C"'s Sunday. -+ __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc); -+ _M_data->_M_day1 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc); -+ _M_data->_M_day2 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc); -+ _M_data->_M_day3 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc); -+ _M_data->_M_day4 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc); -+ _M_data->_M_day5 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc); -+ _M_data->_M_day6 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc); -+ _M_data->_M_day7 = __u.__w; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc); -+ _M_data->_M_aday1 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc); -+ _M_data->_M_aday2 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc); -+ _M_data->_M_aday3 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc); -+ _M_data->_M_aday4 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc); -+ _M_data->_M_aday5 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc); -+ _M_data->_M_aday6 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc); -+ _M_data->_M_aday7 = __u.__w; -+ -+ // Month names, starting with "C"'s January. -+ __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc); -+ _M_data->_M_month01 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc); -+ _M_data->_M_month02 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc); -+ _M_data->_M_month03 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc); -+ _M_data->_M_month04 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc); -+ _M_data->_M_month05 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc); -+ _M_data->_M_month06 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc); -+ _M_data->_M_month07 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc); -+ _M_data->_M_month08 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc); -+ _M_data->_M_month09 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc); -+ _M_data->_M_month10 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc); -+ _M_data->_M_month11 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc); -+ _M_data->_M_month12 = __u.__w; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc); -+ _M_data->_M_amonth01 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc); -+ _M_data->_M_amonth02 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc); -+ _M_data->_M_amonth03 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc); -+ _M_data->_M_amonth04 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc); -+ _M_data->_M_amonth05 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc); -+ _M_data->_M_amonth06 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc); -+ _M_data->_M_amonth07 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc); -+ _M_data->_M_amonth08 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc); -+ _M_data->_M_amonth09 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc); -+ _M_data->_M_amonth10 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc); -+ _M_data->_M_amonth11 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc); -+ _M_data->_M_amonth12 = __u.__w; -+ } -+#endif // 0 -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h 2004-05-22 18:46:31.000000000 -0500 -@@ -0,0 +1,68 @@ -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.5.1.2 - time_get functions -+// ISO C++ 14882: 22.2.5.3.2 - time_put functions -+// -+ -+// Written by Benjamin Kosnik bkoz@redhat.com -+ -+ template<typename _CharT> -+ __timepunct<_CharT>::__timepunct(size_t __refs) -+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(_S_get_c_name()) -+ { _M_initialize_timepunct(); } -+ -+ template<typename _CharT> -+ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) -+ : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(_S_get_c_name()) -+ { _M_initialize_timepunct(); } -+ -+ template<typename _CharT> -+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, -+ size_t __refs) -+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(__s) -+ { -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ _M_name_timepunct = __tmp; -+ _M_initialize_timepunct(__cloc); -+ } -+ -+ template<typename _CharT> -+ __timepunct<_CharT>::~__timepunct() -+ { -+ if (_M_name_timepunct != _S_get_c_name()) -+ delete [] _M_name_timepunct; -+ delete _M_data; -+ _S_destroy_c_locale(_M_c_locale_timepunct); -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h 2005-04-28 01:10:27.000000000 -0500 -@@ -0,0 +1,64 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004 -+// Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+/** @file ctype_base.h -+ * This is an internal header file, included by other library headers. -+ * You should not attempt to use it directly. -+ */ -+ -+// Information as gleaned from /usr/include/ctype.h -+ -+ /// @brief Base class for ctype. -+ struct ctype_base -+ { -+ // Note: In uClibc, the following two types depend on configuration. -+ -+ // Non-standard typedefs. -+ typedef const __ctype_touplow_t* __to_type; -+ -+ // NB: Offsets into ctype<char>::_M_table force a particular size -+ // on the mask type. Because of this, we don't use an enum. -+ typedef __ctype_mask_t mask; -+ static const mask upper = _ISupper; -+ static const mask lower = _ISlower; -+ static const mask alpha = _ISalpha; -+ static const mask digit = _ISdigit; -+ static const mask xdigit = _ISxdigit; -+ static const mask space = _ISspace; -+ static const mask print = _ISprint; -+ static const mask graph = _ISalpha | _ISdigit | _ISpunct; -+ static const mask cntrl = _IScntrl; -+ static const mask punct = _ISpunct; -+ static const mask alnum = _ISalpha | _ISdigit; -+ }; -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h 2002-06-24 00:49:19.000000000 -0500 -@@ -0,0 +1,69 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 2000, 2002 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*) -+// functions go in ctype.cc -+ -+ bool -+ ctype<char>:: -+ is(mask __m, char __c) const -+ { return _M_table[static_cast<unsigned char>(__c)] & __m; } -+ -+ const char* -+ ctype<char>:: -+ is(const char* __low, const char* __high, mask* __vec) const -+ { -+ while (__low < __high) -+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)]; -+ return __high; -+ } -+ -+ const char* -+ ctype<char>:: -+ scan_is(mask __m, const char* __low, const char* __high) const -+ { -+ while (__low < __high -+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m)) -+ ++__low; -+ return __low; -+ } -+ -+ const char* -+ ctype<char>:: -+ scan_not(mask __m, const char* __low, const char* __high) const -+ { -+ while (__low < __high -+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0) -+ ++__low; -+ return __low; -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h 2005-04-28 01:10:27.000000000 -0500 -@@ -0,0 +1,92 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004 -+// Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+// Information as gleaned from /usr/include/ctype.h -+ -+ const ctype_base::mask* -+ ctype<char>::classic_table() throw() -+ { return __C_ctype_b; } -+ -+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del, -+ size_t __refs) -+ : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), -+ _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0) -+ { -+ _M_toupper = __C_ctype_toupper; -+ _M_tolower = __C_ctype_tolower; -+ _M_table = __table ? __table : __C_ctype_b; -+ memset(_M_widen, 0, sizeof(_M_widen)); -+ memset(_M_narrow, 0, sizeof(_M_narrow)); -+ } -+ -+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs) -+ : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), -+ _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0) -+ { -+ _M_toupper = __C_ctype_toupper; -+ _M_tolower = __C_ctype_tolower; -+ _M_table = __table ? __table : __C_ctype_b; -+ memset(_M_widen, 0, sizeof(_M_widen)); -+ memset(_M_narrow, 0, sizeof(_M_narrow)); -+ } -+ -+ char -+ ctype<char>::do_toupper(char __c) const -+ { return _M_toupper[static_cast<unsigned char>(__c)]; } -+ -+ const char* -+ ctype<char>::do_toupper(char* __low, const char* __high) const -+ { -+ while (__low < __high) -+ { -+ *__low = _M_toupper[static_cast<unsigned char>(*__low)]; -+ ++__low; -+ } -+ return __high; -+ } -+ -+ char -+ ctype<char>::do_tolower(char __c) const -+ { return _M_tolower[static_cast<unsigned char>(__c)]; } -+ -+ const char* -+ ctype<char>::do_tolower(char* __low, const char* __high) const -+ { -+ while (__low < __high) -+ { -+ *__low = _M_tolower[static_cast<unsigned char>(*__low)]; -+ ++__low; -+ } -+ return __high; -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h 2005-04-28 01:10:27.000000000 -0500 -@@ -0,0 +1,44 @@ -+// Specific definitions for GNU/Linux -*- C++ -*- -+ -+// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library is free -+// software; you can redistribute it and/or modify it under the -+// terms of the GNU General Public License as published by the -+// Free Software Foundation; either version 2, or (at your option) -+// any later version. -+ -+// This library is distributed in the hope that it will be useful, -+// but WITHOUT ANY WARRANTY; without even the implied warranty of -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+// GNU General Public License for more details. -+ -+// You should have received a copy of the GNU General Public License along -+// with this library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+#ifndef _GLIBCXX_OS_DEFINES -+#define _GLIBCXX_OS_DEFINES 1 -+ -+// System-specific #define, typedefs, corrections, etc, go here. This -+// file will come before all others. -+ -+// This keeps isanum, et al from being propagated as macros. -+#define __NO_CTYPE 1 -+ -+#include <features.h> -+ -+// We must not see the optimized string functions GNU libc defines. -+#define __NO_STRING_INLINES -+ -+#endif -diff -urN gcc-4.0.0-100/libstdc++-v3/configure gcc-4.0.0/libstdc++-v3/configure ---- gcc-4.0.0-100/libstdc++-v3/configure 2005-04-30 13:06:53.683055232 -0500 -+++ gcc-4.0.0/libstdc++-v3/configure 2005-04-30 12:24:24.000000000 -0500 -@@ -3998,6 +3998,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/.]+.so.[0-9]+.[0-9]+$' -@@ -5672,7 +5677,7 @@ - enableval="$enable_clocale" - - case "$enableval" in -- generic|gnu|ieee_1003.1-2001|yes|no|auto) ;; -+ generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;; - *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5 - echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;} - { (exit 1); exit 1; }; } ;; -@@ -5697,6 +5702,9 @@ - # Default to "generic". - if test $enable_clocale_flag = auto; then - case ${target_os} in -+ linux-uclibc*) -+ enable_clocale_flag=uclibc -+ ;; - linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ -@@ -5927,6 +5935,76 @@ - CTIME_CC=config/locale/generic/time_members.cc - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h - ;; -+ uclibc) -+ echo "$as_me:$LINENO: result: uclibc" >&5 -+echo "${ECHO_T}uclibc" >&6 -+ -+ # Declare intention to use gettext, and add support for specific -+ # languages. -+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT -+ ALL_LINGUAS="de fr" -+ -+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. -+ # Extract the first word of "msgfmt", so it can be a program name with args. -+set dummy msgfmt; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_check_msgfmt+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$check_msgfmt"; then -+ ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_check_msgfmt="yes" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+ test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no" -+fi -+fi -+check_msgfmt=$ac_cv_prog_check_msgfmt -+if test -n "$check_msgfmt"; then -+ echo "$as_me:$LINENO: result: $check_msgfmt" >&5 -+echo "${ECHO_T}$check_msgfmt" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then -+ USE_NLS=yes -+ fi -+ # Export the build objects. -+ for ling in $ALL_LINGUAS; do \ -+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \ -+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \ -+ done -+ -+ -+ -+ CLOCALE_H=config/locale/uclibc/c_locale.h -+ CLOCALE_CC=config/locale/uclibc/c_locale.cc -+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc -+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc -+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc -+ CMESSAGES_H=config/locale/uclibc/messages_members.h -+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc -+ CMONEY_CC=config/locale/uclibc/monetary_members.cc -+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc -+ CTIME_H=config/locale/uclibc/time_members.h -+ CTIME_CC=config/locale/uclibc/time_members.cc -+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h -+ ;; - esac - - # This is where the testsuite looks for locale catalogs, using the -diff -urN gcc-4.0.0-100/libstdc++-v3/configure.host gcc-4.0.0/libstdc++-v3/configure.host ---- gcc-4.0.0-100/libstdc++-v3/configure.host 2005-04-30 13:06:53.688054472 -0500 -+++ gcc-4.0.0/libstdc++-v3/configure.host 2005-04-28 20:20:32.000000000 -0500 -@@ -249,6 +249,12 @@ - ;; - esac - -+# Override for uClibc since linux-uclibc gets mishandled above. -+case "${host_os}" in -+ *-uclibc*) -+ os_include_dir="os/uclibc" -+ ;; -+esac - - # Set any OS-dependent and CPU-dependent bits. - # THIS TABLE IS SORTED. KEEP IT THAT WAY. -diff -urN gcc-4.0.0-100/libstdc++-v3/crossconfig.m4 gcc-4.0.0/libstdc++-v3/crossconfig.m4 ---- gcc-4.0.0-100/libstdc++-v3/crossconfig.m4 2005-04-30 13:06:53.689054320 -0500 -+++ gcc-4.0.0/libstdc++-v3/crossconfig.m4 2005-04-28 20:27:15.000000000 -0500 -@@ -142,6 +142,98 @@ - ;; - esac - ;; -+ *-uclibc*) -+# Temporary hack until we implement the float versions of the libm funcs -+ AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ -+ machine/endian.h machine/param.h sys/machine.h sys/types.h \ -+ fp.h float.h endian.h inttypes.h locale.h float.h stdint.h]) -+ SECTION_FLAGS='-ffunction-sections -fdata-sections' -+ AC_SUBST(SECTION_FLAGS) -+ GLIBCXX_CHECK_LINKER_FEATURES -+ GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT -+ GLIBCXX_CHECK_WCHAR_T_SUPPORT -+ -+ # For LFS. -+ AC_DEFINE(HAVE_INT64_T) -+ case "$target" in -+ *-uclinux*) -+ # Don't enable LFS with uClinux -+ ;; -+ *) -+ AC_DEFINE(_GLIBCXX_USE_LFS) -+ esac -+ -+ # For showmanyc_helper(). -+ AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h) -+ GLIBCXX_CHECK_POLL -+ GLIBCXX_CHECK_S_ISREG_OR_S_IFREG -+ -+ # For xsputn_2(). -+ AC_CHECK_HEADERS(sys/uio.h) -+ GLIBCXX_CHECK_WRITEV -+ -+# AC_DEFINE(HAVE_ACOSF) -+# AC_DEFINE(HAVE_ASINF) -+# AC_DEFINE(HAVE_ATANF) -+# AC_DEFINE(HAVE_ATAN2F) -+ AC_DEFINE(HAVE_CEILF) -+ AC_DEFINE(HAVE_COPYSIGN) -+# AC_DEFINE(HAVE_COPYSIGNF) -+# AC_DEFINE(HAVE_COSF) -+# AC_DEFINE(HAVE_COSHF) -+# AC_DEFINE(HAVE_EXPF) -+# AC_DEFINE(HAVE_FABSF) -+ AC_DEFINE(HAVE_FINITE) -+ AC_DEFINE(HAVE_FINITEF) -+ AC_DEFINE(HAVE_FLOORF) -+# AC_DEFINE(HAVE_FMODF) -+# AC_DEFINE(HAVE_FREXPF) -+ AC_DEFINE(HAVE_HYPOT) -+# AC_DEFINE(HAVE_HYPOTF) -+ AC_DEFINE(HAVE_ISINF) -+ AC_DEFINE(HAVE_ISINFF) -+ AC_DEFINE(HAVE_ISNAN) -+ AC_DEFINE(HAVE_ISNANF) -+# AC_DEFINE(HAVE_LOGF) -+# AC_DEFINE(HAVE_LOG10F) -+# AC_DEFINE(HAVE_MODFF) -+# AC_DEFINE(HAVE_SINF) -+# AC_DEFINE(HAVE_SINHF) -+# AC_DEFINE(HAVE_SINCOS) -+# AC_DEFINE(HAVE_SINCOSF) -+ AC_DEFINE(HAVE_SQRTF) -+# AC_DEFINE(HAVE_TANF) -+# AC_DEFINE(HAVE_TANHF) -+ if test x"long_double_math_on_this_cpu" = x"yes"; then -+# AC_DEFINE(HAVE_ACOSL) -+# AC_DEFINE(HAVE_ASINL) -+# AC_DEFINE(HAVE_ATANL) -+# AC_DEFINE(HAVE_ATAN2L) -+# AC_DEFINE(HAVE_CEILL) -+# AC_DEFINE(HAVE_COPYSIGNL) -+# AC_DEFINE(HAVE_COSL) -+# AC_DEFINE(HAVE_COSHL) -+# AC_DEFINE(HAVE_EXPL) -+# AC_DEFINE(HAVE_FABSL) -+# AC_DEFINE(HAVE_FINITEL) -+# AC_DEFINE(HAVE_FLOORL) -+# AC_DEFINE(HAVE_FMODL) -+# AC_DEFINE(HAVE_FREXPL) -+# AC_DEFINE(HAVE_HYPOTL) -+# AC_DEFINE(HAVE_ISINFL) -+# AC_DEFINE(HAVE_ISNANL) -+# AC_DEFINE(HAVE_LOGL) -+# AC_DEFINE(HAVE_LOG10L) -+# AC_DEFINE(HAVE_MODFL) -+# AC_DEFINE(HAVE_POWL) -+# AC_DEFINE(HAVE_SINL) -+# AC_DEFINE(HAVE_SINHL) -+# AC_DEFINE(HAVE_SINCOSL) -+# AC_DEFINE(HAVE_SQRTL) -+# AC_DEFINE(HAVE_TANL) -+# AC_DEFINE(HAVE_TANHL) -+ fi -+ ;; - *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu) - AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ - machine/endian.h machine/param.h sys/machine.h sys/types.h \ -@@ -156,7 +248,7 @@ - AC_DEFINE(HAVE_INT64_T) - case "$target" in - *-uclinux*) -- # Don't enable LFS with uClibc -+ # Don't enable LFS with uClinux - ;; - *) - AC_DEFINE(_GLIBCXX_USE_LFS) -diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h ---- gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h 2005-04-30 13:06:53.690054168 -0500 -+++ gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h 2005-04-28 20:15:56.000000000 -0500 -@@ -101,7 +101,9 @@ - using std::wmemcpy; - using std::wmemmove; - using std::wmemset; -+#if _GLIBCXX_HAVE_WCSFTIME - using std::wcsftime; -+#endif - - #if _GLIBCXX_USE_C99 - using std::wcstold; -diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h ---- gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h 2005-04-30 13:06:53.691054016 -0500 -+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h 2005-04-28 20:15:56.000000000 -0500 -@@ -179,7 +179,9 @@ - using ::wcscoll; - using ::wcscpy; - using ::wcscspn; -+#if _GLIBCXX_HAVE_WCSFTIME - using ::wcsftime; -+#endif - using ::wcslen; - using ::wcsncat; - using ::wcsncmp; diff --git a/src/patches/gcc/gcc44-build-id.patch b/src/patches/gcc/gcc44-build-id.patch new file mode 100644 index 0000000..f76f939 --- /dev/null +++ b/src/patches/gcc/gcc44-build-id.patch @@ -0,0 +1,52 @@ +2007-07-22 Roland McGrath roland@redhat.com + + * config/rs6000/sysv4.h (LINK_EH_SPEC): Add --build-id for + non-relocatable link. + * config/linux.h (LINK_EH_SPEC): Likewise. + * config/alpha/elf.h (LINK_EH_SPEC): Likewise. + * config/ia64/linux.h (LINK_EH_SPEC): Likewise. + +--- gcc/config/rs6000/sysv4.h.~1~ ++++ gcc/config/rs6000/sysv4.h +@@ -906,7 +906,7 @@ extern int fixuplabelno; + %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}" + + #if defined(HAVE_LD_EH_FRAME_HDR) +-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " ++# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \ +--- gcc/config/linux.h.~1~ ++++ gcc/config/linux.h +@@ -85,7 +85,7 @@ Boston, MA 02110-1301, USA. */ + } while (0) + + #if defined(HAVE_LD_EH_FRAME_HDR) +-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " ++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + /* Define this so we can compile MS code for use with WINE. */ +--- gcc/config/alpha/elf.h.~1~ ++++ gcc/config/alpha/elf.h +@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu + I imagine that other systems will catch up. In the meantime, it + doesn't harm to make sure that the data exists to be used later. */ + #if defined(HAVE_LD_EH_FRAME_HDR) +-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " ++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + /* A C statement (sans semicolon) to output to the stdio stream STREAM +--- gcc/config/ia64/linux.h.~1~ ++++ gcc/config/ia64/linux.h +@@ -56,7 +56,7 @@ do { \ + Signalize that because we have fde-glibc, we don't need all C shared libs + linked against -lgcc_s. */ + #undef LINK_EH_SPEC +-#define LINK_EH_SPEC "" ++#define LINK_EH_SPEC "%{!r:--build-id} " + + #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h" + diff --git a/src/patches/gcc/gcc44-c++-builtin-redecl.patch b/src/patches/gcc/gcc44-c++-builtin-redecl.patch new file mode 100644 index 0000000..1f36f1f --- /dev/null +++ b/src/patches/gcc/gcc44-c++-builtin-redecl.patch @@ -0,0 +1,102 @@ +2007-10-02 Jakub Jelinek jakub@redhat.com + + * decl.c (duplicate_decls): When redeclaring a builtin function, + keep the merged decl builtin whenever types match, even if new + decl defines a function. + + * gcc.dg/builtins-65.c: New test. + * g++.dg/ext/builtin10.C: New test. + +--- gcc/cp/decl.c.jj 2007-10-01 22:11:09.000000000 +0200 ++++ gcc/cp/decl.c 2007-10-02 11:39:46.000000000 +0200 +@@ -2001,23 +2001,21 @@ duplicate_decls (tree newdecl, tree oldd + DECL_ARGUMENTS (olddecl) = DECL_ARGUMENTS (newdecl); + DECL_RESULT (olddecl) = DECL_RESULT (newdecl); + } ++ /* If redeclaring a builtin function, it stays built in. */ ++ if (types_match && DECL_BUILT_IN (olddecl)) ++ { ++ DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl); ++ DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl); ++ /* If we're keeping the built-in definition, keep the rtl, ++ regardless of declaration matches. */ ++ COPY_DECL_RTL (olddecl, newdecl); ++ } + if (new_defines_function) + /* If defining a function declared with other language + linkage, use the previously declared language linkage. */ + SET_DECL_LANGUAGE (newdecl, DECL_LANGUAGE (olddecl)); + else if (types_match) + { +- /* If redeclaring a builtin function, and not a definition, +- it stays built in. */ +- if (DECL_BUILT_IN (olddecl)) +- { +- DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl); +- DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl); +- /* If we're keeping the built-in definition, keep the rtl, +- regardless of declaration matches. */ +- COPY_DECL_RTL (olddecl, newdecl); +- } +- + DECL_RESULT (newdecl) = DECL_RESULT (olddecl); + /* Don't clear out the arguments if we're just redeclaring a + function. */ +--- gcc/testsuite/gcc.dg/builtins-65.c.jj 2007-10-02 11:23:51.000000000 +0200 ++++ gcc/testsuite/gcc.dg/builtins-65.c 2007-10-02 11:24:12.000000000 +0200 +@@ -0,0 +1,25 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++typedef __SIZE_TYPE__ size_t; ++extern void __chk_fail (void); ++extern int snprintf (char *, size_t, const char *, ...); ++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...) ++{ ++ if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b) ++ __chk_fail (); ++ return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ()); ++} ++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf"); ++ ++char buf[10]; ++ ++int ++main (void) ++{ ++ snprintf (buf, 10, "%d%d\n", 10, 10); ++ return 0; ++} ++ ++/* { dg-final { scan-assembler "mysnprintf" } } */ ++/* { dg-final { scan-assembler-not "__chk_fail" } } */ +--- gcc/testsuite/g++.dg/ext/builtin10.C.jj 2007-10-02 11:19:45.000000000 +0200 ++++ gcc/testsuite/g++.dg/ext/builtin10.C 2007-10-02 11:23:26.000000000 +0200 +@@ -0,0 +1,27 @@ ++// { dg-do compile } ++// { dg-options "-O2" } ++ ++typedef __SIZE_TYPE__ size_t; ++extern "C" { ++extern void __chk_fail (void); ++extern int snprintf (char *, size_t, const char *, ...); ++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...) ++{ ++ if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b) ++ __chk_fail (); ++ return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ()); ++} ++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf"); ++} ++ ++char buf[10]; ++ ++int ++main (void) ++{ ++ snprintf (buf, 10, "%d%d\n", 10, 10); ++ return 0; ++} ++ ++// { dg-final { scan-assembler "mysnprintf" } } ++// { dg-final { scan-assembler-not "__chk_fail" } } diff --git a/src/patches/gcc/gcc44-i386-libgomp.patch b/src/patches/gcc/gcc44-i386-libgomp.patch new file mode 100644 index 0000000..5d1eea8 --- /dev/null +++ b/src/patches/gcc/gcc44-i386-libgomp.patch @@ -0,0 +1,61 @@ +Build i386.rpm libgomp and libsupc++.a(guard.o) as i486+, pre-i486 +hardware isn't supported because NPTL doesn't support it anyway. + +--- libgomp/configure.tgt.jj 2008-01-10 20:53:48.000000000 +0100 ++++ libgomp/configure.tgt 2008-03-27 12:44:51.000000000 +0100 +@@ -44,14 +44,14 @@ if test $enable_linux_futex = yes; then + ;; + + # Note that bare i386 is not included here. We need cmpxchg. +- i[456]86-*-linux*) ++ i[3456]86-*-linux*) + config_path="linux/x86 linux posix" + case " ${CC} ${CFLAGS} " in + *" -m64 "*) + ;; + *) + if test -z "$with_arch"; then +- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}" ++ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic" + fi + esac + ;; +@@ -63,7 +63,7 @@ if test $enable_linux_futex = yes; then + config_path="linux/x86 linux posix" + case " ${CC} ${CFLAGS} " in + *" -m32 "*) +- XCFLAGS="${XCFLAGS} -march=i486 -mtune=i686" ++ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic" + ;; + esac + ;; +--- libstdc++-v3/libsupc++/guard.cc.jj 2008-03-01 00:58:24.000000000 +0100 ++++ libstdc++-v3/libsupc++/guard.cc 2008-03-27 14:08:44.000000000 +0100 +@@ -35,6 +35,27 @@ + #include <new> + #include <ext/atomicity.h> + #include <ext/concurrence.h> ++#if defined __i386__ && !defined _GLIBCXX_ATOMIC_BUILTINS_4 ++# define _GLIBCXX_ATOMIC_BUILTINS_4 1 ++# define __sync_val_compare_and_swap(a, b, c) \ ++ ({ \ ++ typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1]; \ ++ int sltas; \ ++ __asm __volatile ("lock; cmpxchgl %3, (%1)" \ ++ : "=a" (sltas) \ ++ : "r" (a), "0" (b), "r" (c) : "memory"); \ ++ sltas; \ ++ }) ++# define __sync_lock_test_and_set(a, b) \ ++ ({ \ ++ typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1]; \ ++ int sltas; \ ++ __asm __volatile ("xchgl (%1), %0" \ ++ : "=r" (sltas) \ ++ : "r" (a), "0" (b) : "memory"); \ ++ sltas; \ ++ }) ++#endif + #if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \ + && defined(_GLIBCXX_ATOMIC_BUILTINS_4) && defined(_GLIBCXX_HAVE_LINUX_FUTEX) + # include <climits> diff --git a/src/patches/gcc/gcc44-libtool-no-rpath.patch b/src/patches/gcc/gcc44-libtool-no-rpath.patch new file mode 100644 index 0000000..466c661 --- /dev/null +++ b/src/patches/gcc/gcc44-libtool-no-rpath.patch @@ -0,0 +1,27 @@ +libtool sucks. +--- ltmain.sh.jj 2007-12-07 14:53:21.000000000 +0100 ++++ ltmain.sh 2008-09-05 21:51:48.000000000 +0200 +@@ -5394,6 +5394,7 @@ EOF + rpath="$finalize_rpath" + test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do ++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then +@@ -6071,6 +6072,7 @@ EOF + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do ++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then +@@ -6120,6 +6122,7 @@ EOF + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do ++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then diff --git a/src/patches/gcc/gcc44-no-add-needed.patch b/src/patches/gcc/gcc44-no-add-needed.patch new file mode 100644 index 0000000..4570c0c --- /dev/null +++ b/src/patches/gcc/gcc44-no-add-needed.patch @@ -0,0 +1,52 @@ +2010-02-08 Roland McGrath roland@redhat.com + + * config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the + linker. + * config/linux.h (LINK_EH_SPEC): Likewise. + * config/alpha/elf.h (LINK_EH_SPEC): Likewise. + * config/ia64/linux.h (LINK_EH_SPEC): Likewise. + +--- gcc/config/alpha/elf.h.~1~ ++++ gcc/config/alpha/elf.h +@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu + I imagine that other systems will catch up. In the meantime, it + doesn't harm to make sure that the data exists to be used later. */ + #if defined(HAVE_LD_EH_FRAME_HDR) +-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " ++#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + /* A C statement (sans semicolon) to output to the stdio stream STREAM +--- gcc/config/ia64/linux.h.~1~ ++++ gcc/config/ia64/linux.h +@@ -58,7 +58,7 @@ do { \ + Signalize that because we have fde-glibc, we don't need all C shared libs + linked against -lgcc_s. */ + #undef LINK_EH_SPEC +-#define LINK_EH_SPEC "%{!r:--build-id} " ++#define LINK_EH_SPEC "--no-add-needed %{!r:--build-id} " + + #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h" + +--- gcc/config/linux.h.~1~ ++++ gcc/config/linux.h +@@ -89,7 +89,7 @@ see the files COPYING3 and COPYING.RUNTI + } while (0) + + #if defined(HAVE_LD_EH_FRAME_HDR) +-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " ++#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + /* Define this so we can compile MS code for use with WINE. */ +--- gcc/config/rs6000/sysv4.h.~1~ ++++ gcc/config/rs6000/sysv4.h +@@ -917,7 +917,7 @@ SVR4_ASM_SPEC \ + %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}" + + #if defined(HAVE_LD_EH_FRAME_HDR) +-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " ++# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \ diff --git a/src/patches/gcc/gcc44-pr33763.patch b/src/patches/gcc/gcc44-pr33763.patch new file mode 100644 index 0000000..86c8ac7 --- /dev/null +++ b/src/patches/gcc/gcc44-pr33763.patch @@ -0,0 +1,153 @@ +2007-11-06 Jakub Jelinek jakub@redhat.com + + PR tree-optimization/33763 + * gcc.dg/pr33763.c: New test. + * g++.dg/opt/inline13.C: New test. + +2007-11-06 Jan Hubicka jh@suse.cz + + PR tree-optimization/33763 + * tree-inline.c (expand_call_inline): Silently ignore always_inline + attribute for redefined extern inline functions. + +--- gcc/tree-inline.c.jj 2007-11-06 09:29:04.000000000 +0100 ++++ gcc/tree-inline.c 2007-11-06 16:19:12.000000000 +0100 +@@ -3157,6 +3157,12 @@ expand_call_inline (basic_block bb, gimp + goto egress; + + if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) ++ /* For extern inline functions that get redefined we always ++ silently ignored alway_inline flag. Better behaviour would ++ be to be able to keep both bodies and use extern inline body ++ for inlining, but we can't do that because frontends overwrite ++ the body. */ ++ && !cg_edge->callee->local.redefined_extern_inline + /* Avoid warnings during early inline pass. */ + && cgraph_global_info_ready) + { +--- gcc/testsuite/gcc.dg/pr33763.c.jj 2007-11-06 16:19:12.000000000 +0100 ++++ gcc/testsuite/gcc.dg/pr33763.c 2007-11-06 16:19:12.000000000 +0100 +@@ -0,0 +1,60 @@ ++/* PR tree-optimization/33763 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++typedef struct ++{ ++ void *a; ++ void *b; ++} T; ++extern void *foo (const char *, const char *); ++extern void *bar (void *, const char *, T); ++extern int baz (const char *, int); ++ ++extern inline __attribute__ ((always_inline, gnu_inline)) int ++baz (const char *x, int y) ++{ ++ return 2; ++} ++ ++int ++baz (const char *x, int y) ++{ ++ return 1; ++} ++ ++int xa, xb; ++ ++static void * ++inl (const char *x, const char *y) ++{ ++ T t = { &xa, &xb }; ++ int *f = (int *) __builtin_malloc (sizeof (int)); ++ const char *z; ++ int o = 0; ++ void *r = 0; ++ ++ for (z = y; *z; z++) ++ { ++ if (*z == 'r') ++ o |= 1; ++ if (*z == 'w') ++ o |= 2; ++ } ++ if (o == 1) ++ *f = baz (x, 0); ++ if (o == 2) ++ *f = baz (x, 1); ++ if (o == 3) ++ *f = baz (x, 2); ++ ++ if (o && *f > 0) ++ r = bar (f, "w", t); ++ return r; ++} ++ ++void * ++foo (const char *x, const char *y) ++{ ++ return inl (x, y); ++} +--- gcc/testsuite/g++.dg/opt/inline13.C.jj 2007-11-06 16:20:20.000000000 +0100 ++++ gcc/testsuite/g++.dg/opt/inline13.C 2007-11-06 16:21:30.000000000 +0100 +@@ -0,0 +1,60 @@ ++// PR tree-optimization/33763 ++// { dg-do compile } ++// { dg-options "-O2" } ++ ++typedef struct ++{ ++ void *a; ++ void *b; ++} T; ++extern void *foo (const char *, const char *); ++extern void *bar (void *, const char *, T); ++extern int baz (const char *, int); ++ ++extern inline __attribute__ ((always_inline, gnu_inline)) int ++baz (const char *x, int y) ++{ ++ return 2; ++} ++ ++int ++baz (const char *x, int y) ++{ ++ return 1; ++} ++ ++int xa, xb; ++ ++static void * ++inl (const char *x, const char *y) ++{ ++ T t = { &xa, &xb }; ++ int *f = (int *) __builtin_malloc (sizeof (int)); ++ const char *z; ++ int o = 0; ++ void *r = 0; ++ ++ for (z = y; *z; z++) ++ { ++ if (*z == 'r') ++ o |= 1; ++ if (*z == 'w') ++ o |= 2; ++ } ++ if (o == 1) ++ *f = baz (x, 0); ++ if (o == 2) ++ *f = baz (x, 1); ++ if (o == 3) ++ *f = baz (x, 2); ++ ++ if (o && *f > 0) ++ r = bar (f, "w", t); ++ return r; ++} ++ ++void * ++foo (const char *x, const char *y) ++{ ++ return inl (x, y); ++} diff --git a/src/patches/gcc/gcc44-rh330771.patch b/src/patches/gcc/gcc44-rh330771.patch new file mode 100644 index 0000000..f7c365d --- /dev/null +++ b/src/patches/gcc/gcc44-rh330771.patch @@ -0,0 +1,34 @@ +2007-10-16 Jakub Jelinek jakub@redhat.com + + * Makefile.am (libgcj_tools_la_LIBADD): Add. + * Makefile.in: Regenerated. + +--- libjava/Makefile.am.jj 2009-05-06 08:14:50.000000000 +0200 ++++ libjava/Makefile.am 2009-05-06 10:26:43.000000000 +0200 +@@ -314,6 +314,8 @@ libgcj_tools_la_SOURCES = classpath/tool + libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch \ + -fno-bootstrap-classes -fno-indirect-classes \ + -fsource-filename=$(here)/classpath/tools/all-classes.lst ++## See jv_convert_LDADD. ++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la + libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \ + -version-info `grep -v '^#' $(srcdir)/libtool-version` \ + $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) +--- libjava/Makefile.in.jj 2009-05-06 08:14:49.000000000 +0200 ++++ libjava/Makefile.in 2009-05-06 10:27:18.000000000 +0200 +@@ -160,7 +160,6 @@ am__objects_1 = gnu/gcj/xlib/lib_gnu_awt + am_lib_gnu_awt_xlib_la_OBJECTS = $(am__objects_1) + lib_gnu_awt_xlib_la_OBJECTS = $(am_lib_gnu_awt_xlib_la_OBJECTS) + @XLIB_AWT_TRUE@am_lib_gnu_awt_xlib_la_rpath = -rpath $(toolexeclibdir) +-libgcj_tools_la_LIBADD = + am_libgcj_tools_la_OBJECTS = classpath/tools/libgcj_tools_la-tools.lo + libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS) + @INTERPRETER_TRUE@am__DEPENDENCIES_1 = gnu/classpath/jdwp.lo \ +@@ -1041,6 +1040,7 @@ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS + -fno-bootstrap-classes -fno-indirect-classes \ + -fsource-filename=$(here)/classpath/tools/all-classes.lst + ++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la + libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \ + -version-info `grep -v '^#' $(srcdir)/libtool-version` \ + $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) diff --git a/src/patches/gcc/gcc44-rh533181.patch b/src/patches/gcc/gcc44-rh533181.patch new file mode 100644 index 0000000..76326e2 --- /dev/null +++ b/src/patches/gcc/gcc44-rh533181.patch @@ -0,0 +1,153 @@ +2010-07-22 Jakub Jelinek jakub@redhat.com + + * gimplify.c (enum gimplify_omp_var_data): Add + GOVD_THREADPRIVATE_WARNED. + (gimplify_bind_expr): Add GOVD_LOCAL | GOVD_SEEN even for global vars. + (omp_notice_threadprivate_variable): Note used threadprivate vars + with current function's context in shared clauses. + (gimplify_adjust_omp_clauses_1): Allow globals with current function's + context in taskreg shared clause. + * omp-low.c (lower_rec_input_clauses): For function-local is_global_var + VAR_DECLs in shared clauses add a decl copy with DECL_VALUE_EXPR + pointing to the original. + + * trans-openmp.c (gfc_omp_private_debug_clause): Return false for + threadprivate decls. + + * gcc.dg/gomp/tls-3.c: New test. + +--- gcc/fortran/trans-openmp.c.jj 2010-06-24 21:47:09.908230044 +0200 ++++ gcc/fortran/trans-openmp.c 2010-07-26 10:45:15.830229443 +0200 +@@ -351,6 +351,18 @@ gfc_omp_disregard_value_expr (tree decl, + bool + gfc_omp_private_debug_clause (tree decl, bool shared) + { ++ if (TREE_STATIC (decl) || DECL_EXTERNAL (decl)) ++ { ++ if (DECL_THREAD_LOCAL_P (decl)) ++ return false; ++ if (DECL_HAS_VALUE_EXPR_P (decl)) ++ { ++ tree value = get_base_address (DECL_VALUE_EXPR (decl)); ++ if (value && DECL_P (value) && DECL_THREAD_LOCAL_P (value)) ++ return false; ++ } ++ } ++ + if (GFC_DECL_CRAY_POINTEE (decl)) + return true; + +--- gcc/gimplify.c.jj 2010-07-09 09:01:37.049604412 +0200 ++++ gcc/gimplify.c 2010-07-26 10:50:05.646291216 +0200 +@@ -66,6 +66,7 @@ enum gimplify_omp_var_data + GOVD_LOCAL = 128, + GOVD_DEBUG_PRIVATE = 256, + GOVD_PRIVATE_OUTER_REF = 512, ++ GOVD_THREADPRIVATE_WARNED = 1024, + GOVD_DATA_SHARE_CLASS = (GOVD_SHARED | GOVD_PRIVATE | GOVD_FIRSTPRIVATE + | GOVD_LASTPRIVATE | GOVD_REDUCTION | GOVD_LOCAL) + }; +@@ -1234,7 +1235,7 @@ gimplify_bind_expr (tree *expr_p, gimple + struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp; + + /* Mark variable as local. */ +- if (ctx && !is_global_var (t) ++ if (ctx + && (! DECL_SEEN_IN_BIND_EXPR_P (t) + || splay_tree_lookup (ctx->variables, + (splay_tree_key) t) == NULL)) +@@ -5339,18 +5340,36 @@ omp_notice_threadprivate_variable (struc + { + splay_tree_node n; + +- if (ctx->region_type != ORT_UNTIED_TASK) ++ while (ctx && ctx->region_type == ORT_WORKSHARE) ++ { ++ n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl); ++ if (n != NULL) ++ { ++ gcc_assert (n->value & GOVD_LOCAL); ++ return false; ++ } ++ ctx = ctx->outer_context; ++ } ++ if (ctx == NULL) + return false; ++ + n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl); + if (n == NULL) ++ n = splay_tree_insert (ctx->variables, (splay_tree_key)decl, ++ DECL_CONTEXT (decl) == current_function_decl ++ ? GOVD_SHARED | GOVD_SEEN : 0); ++ if (ctx->region_type == ORT_UNTIED_TASK ++ && (n->value & GOVD_THREADPRIVATE_WARNED) == 0) + { + error ("threadprivate variable %qs used in untied task", + IDENTIFIER_POINTER (DECL_NAME (decl))); + error ("%Henclosing task", &ctx->location); +- splay_tree_insert (ctx->variables, (splay_tree_key)decl, 0); ++ n->value |= GOVD_THREADPRIVATE_WARNED; + } + if (decl2) +- splay_tree_insert (ctx->variables, (splay_tree_key)decl2, 0); ++ splay_tree_insert (ctx->variables, (splay_tree_key)decl2, ++ DECL_CONTEXT (decl2) == current_function_decl ++ ? GOVD_SHARED | GOVD_SEEN : 0); + return false; + } + +@@ -5779,7 +5798,9 @@ gimplify_adjust_omp_clauses_1 (splay_tre + break; + ctx = ctx->outer_context; + } +- if (ctx == NULL) ++ if (ctx == NULL ++ && (DECL_CONTEXT (decl) != current_function_decl ++ || gimplify_omp_ctxp->region_type == ORT_WORKSHARE)) + return 0; + } + code = OMP_CLAUSE_SHARED; +--- gcc/omp-low.c.jj 2010-06-11 11:06:00.913659301 +0200 ++++ gcc/omp-low.c 2010-07-26 10:45:15.866229447 +0200 +@@ -2222,6 +2222,17 @@ lower_rec_input_clauses (tree clauses, g + continue; + break; + case OMP_CLAUSE_SHARED: ++ if (pass == 0 ++ && is_global_var (OMP_CLAUSE_DECL (c)) ++ && (DECL_CONTEXT (OMP_CLAUSE_DECL (c)) ++ == current_function_decl) ++ && is_taskreg_ctx (ctx) ++ && !DECL_IGNORED_P (OMP_CLAUSE_DECL (c))) ++ { ++ new_var = omp_copy_decl_1 (OMP_CLAUSE_DECL (c), ctx); ++ SET_DECL_VALUE_EXPR (new_var, OMP_CLAUSE_DECL (c)); ++ DECL_HAS_VALUE_EXPR_P (new_var) = 1; ++ } + if (maybe_lookup_decl (OMP_CLAUSE_DECL (c), ctx) == NULL) + { + gcc_assert (is_global_var (OMP_CLAUSE_DECL (c))); +--- gcc/testsuite/gcc.dg/gomp/tls-3.c.jj 2010-07-26 10:45:15.868228753 +0200 ++++ gcc/testsuite/gcc.dg/gomp/tls-3.c 2010-07-26 10:45:15.868228753 +0200 +@@ -0,0 +1,21 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target tls_native } */ ++ ++int thr; ++#pragma omp threadprivate(thr) ++ ++void ++foo (void) ++{ ++ #pragma omp task untied /* { dg-error "enclosing task" } */ ++ { ++ static int thr2; ++ #pragma omp threadprivate(thr2) ++ static int thr3; ++ #pragma omp threadprivate(thr3) ++ thr++; /* { dg-error "used in untied task" } */ ++ thr2++; /* { dg-error "used in untied task" } */ ++ thr++; ++ thr2++; ++ } ++} diff --git a/src/patches/gcc/gcc44-rh610785.patch b/src/patches/gcc/gcc44-rh610785.patch new file mode 100644 index 0000000..91d0934 --- /dev/null +++ b/src/patches/gcc/gcc44-rh610785.patch @@ -0,0 +1,74 @@ +2010-07-07 Jakub Jelinek jakub@redhat.com + + * tree-sra.c (sra_build_assignment): Don't add BIT_XOR_EXPR/MINUS_EXPR + of signbit if signbit is the most significant bit of utype already. + + * gcc.c-torture/execute/20100707-1.c: New test. + +--- gcc/tree-sra.c.jj 2010-05-13 13:08:52.000000000 +0200 ++++ gcc/tree-sra.c 2010-07-06 19:50:09.000000000 +0200 +@@ -2211,7 +2211,10 @@ sra_build_assignment (tree dst, tree src + + /* Perform sign extension, if required. + ??? This should never be necessary. */ +- if (!unsignedp) ++ if (!unsignedp ++ && (TREE_INT_CST_LOW (width) != TYPE_PRECISION (utype) ++ || (TREE_INT_CST_LOW (width) ++ != GET_MODE_BITSIZE (TYPE_MODE (utype))))) + { + tree signbit = int_const_binop (LSHIFT_EXPR, + build_int_cst_wide (utype, 1, 0), +--- gcc/testsuite/gcc.c-torture/execute/20100707-1.c 2010-05-27 15:41:40.446237053 +0200 ++++ gcc/testsuite/gcc.c-torture/execute/20100707-1.c 2010-07-06 13:55:35.000000000 +0200 +@@ -0,0 +1,50 @@ ++struct S { int s; }; ++struct T { int w; int h; }; ++int vr; ++ ++inline struct T ++bar (const struct S * x) ++{ ++ struct T t; ++ t.w = vr; ++ t.h = x->s; ++ return t; ++} ++ ++__attribute__ ((noinline)) ++void foo (struct S * w, unsigned char *x, int y, int *z[2]) ++{ ++ struct T t; ++ int i, j, k; ++ t = bar (w); ++ k = t.w + 2; ++ for (i = 0; i <= t.h; i++) ++ { ++ int *u = z[i > 0] + 1; ++ unsigned char *v; ++ int q = 0; ++ v = x + k * i + 1; ++ for (j = 0; j < t.w; j++) ++ { ++ int m = u[j]; ++ if (m > y && !q && v[j - k] != 2) ++ v[j] = 0; ++ } ++ } ++} ++ ++unsigned char b[64]; ++ ++int ++main (void) ++{ ++ int v[32], *z[2]; ++ struct S s; ++ __builtin_memset (v, 0, sizeof (v)); ++ vr = 16; ++ s.s = 16; ++ z[0] = v; ++ z[1] = v; ++ foo (&s, b + 32, -1, z); ++ return 0; ++} diff --git a/src/patches/gcc/gcc44-unwind-debug-hook.patch b/src/patches/gcc/gcc44-unwind-debug-hook.patch new file mode 100644 index 0000000..9b7c59e --- /dev/null +++ b/src/patches/gcc/gcc44-unwind-debug-hook.patch @@ -0,0 +1,51 @@ +2010-04-27 Jakub Jelinek jakub@redhat.com + + * unwind-dw2.c (_Unwind_DebugHook): Add used attribute. + +2009-05-27 Tom Tromey tromey@redhat.com + + * unwind-dw2.c (_Unwind_DebugHook): New function. + (uw_install_context): Call _Unwind_DebugHook. + +--- gcc/unwind-dw2.c (revision 147933) ++++ gcc/unwind-dw2.c (revision 147934) +@@ -1473,18 +1473,32 @@ uw_init_context_1 (struct _Unwind_Contex + context->ra = __builtin_extract_return_addr (outer_ra); + } + ++static void _Unwind_DebugHook (void *, void *) ++ __attribute__ ((__noinline__, __used__)); ++ ++/* This function is called during unwinding. It is intended as a hook ++ for a debugger to intercept exceptions. CFA is the CFA of the ++ target frame. HANDLER is the PC to which control will be ++ transferred. */ ++static void ++_Unwind_DebugHook (void *cfa __attribute__ ((__unused__)), ++ void *handler __attribute__ ((__unused__))) ++{ ++ asm (""); ++} + + /* Install TARGET into CURRENT so that we can return to it. This is a + macro because __builtin_eh_return must be invoked in the context of + our caller. */ + +-#define uw_install_context(CURRENT, TARGET) \ +- do \ +- { \ +- long offset = uw_install_context_1 ((CURRENT), (TARGET)); \ +- void *handler = __builtin_frob_return_addr ((TARGET)->ra); \ +- __builtin_eh_return (offset, handler); \ +- } \ ++#define uw_install_context(CURRENT, TARGET) \ ++ do \ ++ { \ ++ long offset = uw_install_context_1 ((CURRENT), (TARGET)); \ ++ void *handler = __builtin_frob_return_addr ((TARGET)->ra); \ ++ _Unwind_DebugHook ((TARGET)->cfa, handler); \ ++ __builtin_eh_return (offset, handler); \ ++ } \ + while (0) + + static long diff --git a/src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch b/src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch deleted file mode 100644 index 26c8ac8..0000000 --- a/src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch +++ /dev/null @@ -1,67 +0,0 @@ -diff -Naur glibc-2.3.6.org/elf/dl-load.c glibc-2.3.6/elf/dl-load.c ---- glibc-2.3.6.org/elf/dl-load.c 2005-04-06 04:50:10.000000000 +0200 -+++ glibc-2.3.6/elf/dl-load.c 2010-10-19 17:41:09.000000000 +0200 -@@ -176,8 +176,7 @@ - - - static size_t --is_dst (const char *start, const char *name, const char *str, -- int is_path, int secure) -+is_dst (const char *start, const char *name, const char *str, int is_path) - { - size_t len; - bool is_curly = false; -@@ -206,11 +205,6 @@ - && (!is_path || name[len] != ':')) - return 0; - -- if (__builtin_expect (secure, 0) -- && ((name[len] != '\0' && (!is_path || name[len] != ':')) -- || (name != start + 1 && (!is_path || name[-2] != ':')))) -- return 0; -- - return len; - } - -@@ -225,13 +219,12 @@ - { - size_t len; - -- /* $ORIGIN is not expanded for SUID/GUID programs (except if it -- is $ORIGIN alone) and it must always appear first in path. */ -+ /* $ORIGIN is not expanded for SUID/GUID programs. */ - ++name; -- if ((len = is_dst (start, name, "ORIGIN", is_path, -- INTUSE(__libc_enable_secure))) != 0 -- || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0 -- || (len = is_dst (start, name, "LIB", is_path, 0)) != 0) -+ if (((len = is_dst (start, name, "ORIGIN", is_path)) != 0 -+ && !INTUSE(__libc_enable_secure)) -+ || (len = is_dst (start, name, "PLATFORM", is_path)) != 0 -+ || (len = is_dst (start, name, "LIB", is_path)) != 0) - ++cnt; - - name = strchr (name + len, '$'); -@@ -263,12 +256,17 @@ - size_t len; - - ++name; -- if ((len = is_dst (start, name, "ORIGIN", is_path, -- INTUSE(__libc_enable_secure))) != 0) -- repl = l->l_origin; -- else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) -+ if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0) -+ { -+ // Ignore this path at SUID/GUID -+ if (INTUSE(__libc_enable_secure)) -+ repl = (const char *) -1; -+ else -+ repl = l->l_origin; -+ } -+ else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0) - repl = GLRO(dl_platform); -- else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0) -+ else if ((len = is_dst (start, name, "LIB", is_path)) != 0) - repl = DL_DST_LIB; - - if (repl != NULL && repl != (const char *) -1) diff --git a/src/patches/glibc-2.3.6-inotify-1.patch b/src/patches/glibc-2.3.6-inotify-1.patch deleted file mode 100644 index 30af30c..0000000 --- a/src/patches/glibc-2.3.6-inotify-1.patch +++ /dev/null @@ -1,45 +0,0 @@ -Submitted By: Dan Nicholson <dnicholson at linuxfromscratch dot org> -Date: 2006-09-01 -Initial Package Version: 2.3.6 -Origin: udev-096, syscall functions generated by Alexander E. Patrakov -Upstream Status: Added to syscall list in 2.4 -Description: Adds inotify syscall functions for use in userspace. Minimal - syscall functions borrowed from udev local implementation to - provide system inotify support. -Testcase: dovecot-1.0rc2, ./configure --with-notify=inotify - -diff -pNur glibc-2.3.6.orig/sysdeps/unix/sysv/linux/inotify.h glibc-2.3.6/sysdeps/unix/sysv/linux/inotify.h ---- glibc-2.3.6.orig/sysdeps/unix/sysv/linux/inotify.h 1970-01-01 00:00:00.000000000 +0000 -+++ glibc-2.3.6/sysdeps/unix/sysv/linux/inotify.h 2006-08-01 05:48:27.000000000 +0000 -@@ -0,0 +1,31 @@ -+/* -+ * Inode based directory notification for Linux -+ * -+ * Copyright (C) 2005 John McCutchan -+ */ -+ -+#ifndef _SYS_INOTIFY_H -+#define _SYS_INOTIFY_H -+ -+#include <stdint.h> -+#include <linux/inotify.h> -+#include <asm/unistd.h> -+ -+extern long int syscall (long int __sysno, ...) __THROW; -+ -+static inline int inotify_init(void) -+{ -+ return syscall(__NR_inotify_init); -+} -+ -+static inline int inotify_add_watch(int fd, const char *name, uint32_t mask) -+{ -+ return syscall(__NR_inotify_add_watch, fd, name, mask); -+} -+ -+static inline int inotify_rm_watch (int fd, uint32_t wd) -+{ -+ return syscall(__NR_inotify_rm_watch, fd, wd); -+} -+ -+#endif /* _SYS_INOTIFY_H */ diff --git a/src/patches/glibc-2.3.6-linux_types-1.patch b/src/patches/glibc-2.3.6-linux_types-1.patch deleted file mode 100644 index a365b81..0000000 --- a/src/patches/glibc-2.3.6-linux_types-1.patch +++ /dev/null @@ -1,33 +0,0 @@ -Submitted By: DJ Lucas <dj at linuxfromscratch dot org> -Date: 2006-04-05 -Initial Package Version: 2.3.6 -Upstream Status: Committed -Origin: Glibc CVS -Description: Fixes build errors where linux/types.h is included after sys/kd.h. - -diff -Naur glibc-2.3.6-orig/sysdeps/unix/sysv/linux/sys/kd.h glibc-2.3.6/sysdeps/unix/sysv/linux/sys/kd.h ---- glibc-2.3.6-orig/sysdeps/unix/sysv/linux/sys/kd.h 2001-07-05 23:56:21.000000000 -0500 -+++ glibc-2.3.6/sysdeps/unix/sysv/linux/sys/kd.h 2006-04-04 21:40:50.000000000 -0500 -@@ -1,4 +1,4 @@ --/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. -+/* Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -21,9 +21,15 @@ - - /* Make sure the <linux/types.h> header is not loaded. */ - #ifndef _LINUX_TYPES_H --# define _LINUX_TYPES_H 1 -+# define _LINUX_TYPES_H 1 -+# define __undef_LINUX_TYPES_H - #endif - - #include <linux/kd.h> - -+#ifdef __undef_LINUX_TYPES_H -+# undef _LINUX_TYPES_H -+# undef __undef_LINUX_TYPES_H -+#endif -+ - #endif /* sys/kd.h */ diff --git a/src/patches/glibc-arm-dont-use-swp.patch b/src/patches/glibc-arm-dont-use-swp.patch new file mode 100644 index 0000000..293c20c --- /dev/null +++ b/src/patches/glibc-arm-dont-use-swp.patch @@ -0,0 +1,305 @@ +commit 1ba025a9a21eda65d8c36cc0dbb51d214a3ebb1a +Author: Daniel Jacobowitz dan@codesourcery.com +Date: Mon Jun 2 01:57:03 2008 +0000 + + 2008-06-01 Paul Brook paul@codesourcery.com + Zack Weinberg zack@codesourcery.com + Daniel Jacobowitz dan@codesourcery.com + + * sysdeps/arm/nptl/pthread_spin_lock.S, + sysdeps/arm/nptl/pthread_spin_trylock.S: Delete. + * sysdeps/arm/nptl/pthread_spin_lock.c, + sysdeps/arm/nptl/pthread_spin_trylock.c: New files using + atomic_compare_and_exchange_val_acq to take spinlocks. + * sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h (lll_trylock, + lll_cond_trylock): Use atomic_compare_and_exchange_val_acq. + (__lll_trylock, __lll_cond_trylock): Delete. + * sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h + (atomic_exchange_acq): Delete. + (atomic_full_barrier): Define. + (__arch_compare_and_exchange_val_32_acq): Use named operands. + * sysdeps/unix/sysv/linux/arm/eabi/configure.in: Update + arch_minimum_kernel to 2.6.16. + * sysdeps/unix/sysv/linux/arm/eabi/configure: Regenerated. + +diff --git a/sysdeps/arm/nptl/pthread_spin_lock.S b/sysdeps/arm/nptl/pthread_spin_lock.S +deleted file mode 100644 +index bd6adf7..0000000 +--- a/sysdeps/arm/nptl/pthread_spin_lock.S ++++ /dev/null +@@ -1,31 +0,0 @@ +-/* Copyright (C) 2005 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include <sysdep.h> +- +- .text +- .align 4 +- +-ENTRY (pthread_spin_lock) +- mov r1, #1 +-1: swp r2, r1, [r0] +- teq r2, #0 +- bne 1b +- mov r0, #0 +- PSEUDO_RET_NOERRNO +-END (pthread_spin_lock) +diff --git a/sysdeps/arm/nptl/pthread_spin_lock.c b/sysdeps/arm/nptl/pthread_spin_lock.c +new file mode 100644 +index 0000000..1217b89 +--- /dev/null ++++ b/sysdeps/arm/nptl/pthread_spin_lock.c +@@ -0,0 +1,30 @@ ++/* Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <atomic.h> ++#include "pthreadP.h" ++ ++int ++pthread_spin_lock (pthread_spinlock_t *lock) ++{ ++ while (atomic_compare_and_exchange_val_acq (lock, 1, 0) != 0) ++ while (*lock != 0) ++ ; ++ ++ return 0; ++} +diff --git a/sysdeps/arm/nptl/pthread_spin_trylock.S b/sysdeps/arm/nptl/pthread_spin_trylock.S +deleted file mode 100644 +index 8593150..0000000 +--- a/sysdeps/arm/nptl/pthread_spin_trylock.S ++++ /dev/null +@@ -1,34 +0,0 @@ +-/* Copyright (C) 2005 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#define _ERRNO_H 1 +-#include <bits/errno.h> +- +-#include <sysdep.h> +- +- .text +- .align 4 +- +-ENTRY (pthread_spin_trylock) +- mov r1, #1 +- swp r2, r1, [r0] +- teq r2, #0 +- moveq r0, #0 +- movne r0, #EBUSY +- PSEUDO_RET_NOERRNO +-END (pthread_spin_trylock) +diff --git a/sysdeps/arm/nptl/pthread_spin_trylock.c b/sysdeps/arm/nptl/pthread_spin_trylock.c +new file mode 100644 +index 0000000..fb998d2 +--- /dev/null ++++ b/sysdeps/arm/nptl/pthread_spin_trylock.c +@@ -0,0 +1,27 @@ ++/* Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <errno.h> ++#include <atomic.h> ++#include "pthreadP.h" ++ ++int ++pthread_spin_trylock (pthread_spinlock_t *lock) ++{ ++ return atomic_compare_and_exchange_val_acq (lock, 1, 0) ? EBUSY : 0; ++} +diff --git a/sysdeps/unix/sysv/linux/arm/eabi/configure b/sysdeps/unix/sysv/linux/arm/eabi/configure +index ab83048..28fb9ef 100644 +--- a/sysdeps/unix/sysv/linux/arm/eabi/configure ++++ b/sysdeps/unix/sysv/linux/arm/eabi/configure +@@ -1,5 +1,5 @@ + # This file is generated from configure.in by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi. + +-arch_minimum_kernel=2.6.14 ++arch_minimum_kernel=2.6.16 + libc_cv_gcc_unwind_find_fde=no +diff --git a/sysdeps/unix/sysv/linux/arm/eabi/configure.in b/sysdeps/unix/sysv/linux/arm/eabi/configure.in +index 83aa8fc..d1fb7f4 100644 +--- a/sysdeps/unix/sysv/linux/arm/eabi/configure.in ++++ b/sysdeps/unix/sysv/linux/arm/eabi/configure.in +@@ -1,5 +1,5 @@ + GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. + # Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi. + +-arch_minimum_kernel=2.6.14 ++arch_minimum_kernel=2.6.16 + libc_cv_gcc_unwind_find_fde=no +diff --git a/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h b/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h +index 71ed714..247ddd3 100644 +--- a/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h ++++ b/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h +@@ -37,22 +37,12 @@ typedef uintmax_t uatomic_max_t; + + void __arm_link_error (void); + +-#define atomic_exchange_acq(mem, newvalue) \ +- ({ __typeof (*mem) result; \ +- if (sizeof (*mem) == 1) \ +- __asm__ __volatile__ ("swpb %0, %1, [%2]" \ +- : "=&r,&r" (result) \ +- : "r,0" (newvalue), "r,r" (mem) : "memory"); \ +- else if (sizeof (*mem) == 4) \ +- __asm__ __volatile__ ("swp %0, %1, [%2]" \ +- : "=&r,&r" (result) \ +- : "r,0" (newvalue), "r,r" (mem) : "memory"); \ +- else \ +- { \ +- result = 0; \ +- abort (); \ +- } \ +- result; }) ++#define atomic_full_barrier() \ ++ __asm__ __volatile__ \ ++ ("mov\tip, #0xffff0fff\n\t" \ ++ "mov\tlr, pc\n\t" \ ++ "add\tpc, ip, #(0xffff0fa0 - 0xffff0fff)" \ ++ : : : "ip", "lr", "cc", "memory"); + + /* Atomic compare and exchange. This sequence relies on the kernel to + provide a compare and exchange operation which is atomic on the +@@ -76,18 +66,19 @@ void __arm_link_error (void); + register __typeof (oldval) a_tmp asm ("r3"); \ + register __typeof (oldval) a_oldval2 asm ("r4") = (oldval); \ + __asm__ __volatile__ \ +- ("0:\tldr\t%1,[%3]\n\t" \ +- "cmp\t%1, %4\n\t" \ ++ ("0:\tldr\t%[tmp],[%[ptr]]\n\t" \ ++ "cmp\t%[tmp], %[old2]\n\t" \ + "bne\t1f\n\t" \ +- "mov\t%0, %4\n\t" \ +- "mov\t%1, #0xffff0fff\n\t" \ ++ "mov\t%[old], %[old2]\n\t" \ ++ "mov\t%[tmp], #0xffff0fff\n\t" \ + "mov\tlr, pc\n\t" \ +- "add\tpc, %1, #(0xffff0fc0 - 0xffff0fff)\n\t" \ ++ "add\tpc, %[tmp], #(0xffff0fc0 - 0xffff0fff)\n\t" \ + "bcc\t0b\n\t" \ +- "mov\t%1, %4\n\t" \ ++ "mov\t%[tmp], %[old2]\n\t" \ + "1:" \ +- : "=&r" (a_oldval), "=&r" (a_tmp) \ +- : "r" (a_newval), "r" (a_ptr), "r" (a_oldval2) \ ++ : [old] "=&r" (a_oldval), [tmp] "=&r" (a_tmp) \ ++ : [new] "r" (a_newval), [ptr] "r" (a_ptr), \ ++ [old2] "r" (a_oldval2) \ + : "ip", "lr", "cc", "memory"); \ + a_tmp; }) + +diff --git a/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h +index f48e867..889f97c 100644 +--- a/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h ++++ b/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h +@@ -126,43 +126,11 @@ + }) + + +-static inline int __attribute__((always_inline)) +-__lll_mutex_trylock (int *futex) +-{ +- int flag = 1, old; +- asm volatile ( +- "\tswp %[old], %[flag], [%[futex]] @ try to take the lock\n" +- "\tcmp %[old], #1 @ check old lock value\n" +- "\tmovlo %[flag], #0 @ if we got it, return 0\n" +- "\tswphi %[flag], %[old], [%[futex]] @ if it was contested,\n" +- " @ restore the contested flag,\n" +- " @ and check whether that won." +- : [futex] "+&r" (futex), [flag] "+&r" (flag), [old] "=&r" (old) +- : : "memory" ); +- +- return flag; +-} +-#define lll_mutex_trylock(lock) __lll_mutex_trylock (&(lock)) +- +- +-static inline int __attribute__((always_inline)) +-__lll_mutex_cond_trylock (int *futex) +-{ +- int flag = 2, old; +- asm volatile ( +- "\tswp %[old], %[flag], [%[futex]] @ try to take the lock\n" +- "\tcmp %[old], #1 @ check old lock value\n" +- "\tmovlo %[flag], #0 @ if we got it, return 0\n" +- "\tswphi %[flag], %[old], [%[futex]] @ if it was contested,\n" +- " @ restore the contested flag,\n" +- " @ and check whether that won." +- : [futex] "+&r" (futex), [flag] "+&r" (flag), [old] "=&r" (old) +- : : "memory" ); +- +- return flag; +-} +-#define lll_mutex_cond_trylock(lock) __lll_mutex_cond_trylock (&(lock)) ++#define lll_mutex_trylock(lock) \ ++ atomic_compare_and_exchange_val_acq(&(lock), 1, 0) + ++#define lll_mutex_cond_trylock(lock) \ ++ atomic_compare_and_exchange_val_acq(&(lock), 2, 0) + + #define __lll_robust_trylock(futex, id) \ + (atomic_compare_and_exchange_val_acq (futex, id, 0) != 0) diff --git a/src/patches/glibc-cfi-entry-not-closed.patch b/src/patches/glibc-cfi-entry-not-closed.patch new file mode 100644 index 0000000..02cfe8f --- /dev/null +++ b/src/patches/glibc-cfi-entry-not-closed.patch @@ -0,0 +1,23 @@ +--- glibc-2.12.2/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S 2011-09-08 22:22:41.000000000 +0400 ++++ glibc-2.12.2/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S 2011-09-08 21:44:49.000000000 +0400 +@@ -18,16 +18,20 @@ + + #include <sysdep.h> + ++ .text ++ + /* If no SA_RESTORER function was specified by the application we use + one of these. This avoids the need for the kernel to synthesise a return + instruction on the stack, which would involve expensive cache flushes. */ + + ENTRY(__default_sa_restorer) + swi SYS_ify(sigreturn) ++PSEUDO_END (__default_sa_restorer) + + #ifdef __NR_rt_sigreturn + + ENTRY(__default_rt_sa_restorer) + swi SYS_ify(rt_sigreturn) ++PSEUDO_END (__default_rt_sa_restorer) + + #endif diff --git a/src/patches/glibc-ports-avoid-using-asm-procinfo.patch b/src/patches/glibc-ports-avoid-using-asm-procinfo.patch deleted file mode 100644 index 53a6d1b..0000000 --- a/src/patches/glibc-ports-avoid-using-asm-procinfo.patch +++ /dev/null @@ -1,340 +0,0 @@ -# -# Submitted-By: Marc Kleine-Budde, 2006-11-22 -# Committed-By: Marc Kleine-Budde -# -# Error: -# -# try to compile glibc-ports with sanitized headers -# -# arm-v4t-linux-gnueabi-gcc ../ports/sysdeps/arm/eabi/setfpucw.c -c -#-std=gnu99 -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -#-g -Wstrict-prototypes -Wno-uninitialized -D__NO_MATH_INLINES -#-D__LIBC_INTERNAL_MATH_INLINES -DNO_LONG_DOUBLE -#-D_Mlong_double_=double -I../include -#-I/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math -#-I/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build -#-I../ports/sysdeps/arm/elf -#-I../ports/sysdeps/unix/sysv/linux/arm/eabi/nptl -#-I../ports/sysdeps/unix/sysv/linux/arm/eabi -#-I../ports/sysdeps/unix/sysv/linux/arm/nptl -#-I../ports/sysdeps/unix/sysv/linux/arm -#-I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux -#-I../nptl/sysdeps/pthread -I../sysdeps/pthread -#-I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -#-I../sysdeps/unix/common -I../sysdeps/unix/mman -#-I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv -#-I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -#-I../ports/sysdeps/unix/arm -I../ports/sysdeps/unix -#-I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -#-I../ports/sysdeps/arm/eabi -I../ports/sysdeps/arm/nptl -#-I../ports/sysdeps/arm -I../sysdeps/wordsize-32 -#-I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -#-I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -#-I../ports -I../nptl -I.. -I../libio -I. -nostdinc -isystem -#/ptx/work/mkl/ptxdist/build/OSELAS.Toolchain-trunk-headers/install/arm-v4t-linux-gnueabi/gcc-4.1.1-glibc-2.5-linux-2.6.19-rc6-s/bin/../lib/gcc/arm-v4t-linux-gnueabi/4.1.1/include -#-isystem -#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/install/arm-v4t-linux-gnueabi/gcc-4.1.1-glibc-2.5-linux-2.6.19-rc6-s/sysroot-arm-v4t-linux-gnueabi/usr/include -#-D_LIBC_REENTRANT -include ../include/libc-symbols.h -o -#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o -#-MD -MP -MF -#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o.dt -#-MT -#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o -# ../ports/sysdeps/arm/eabi/setfpucw.c:26:26: error: asm/procinfo.h: No such file or directory -# ../ports/sysdeps/arm/eabi/setfpucw.c: In function '__setfpucw': -# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: 'HWCAP_VFP' undeclared (first use in this function) -# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: (Each undeclared identifier is reported only once -# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: for each function it appears in.) -# -# Description: -# -# http://sourceware.org/ml/libc-ports/2006-10/msg00040.html -# -# State: -# -# added to glibc-ports on 10/31/2006 06:20 PM -# -Date: Tue, 24 Oct 2006 19:25:12 +0000 (UTC) -From: "Joseph S. Myers" joseph@codesourcery.com -To: libc-ports@sourceware.org -Subject: Avoid using asm/procinfo.h - -I previously noted -http://sourceware.org/ml/libc-ports/2006-08/msg00023.html that the -use of <asm/procinfo.h>, a Linux-specific kernel header, in -sysdeps/arm/eabi, is an abstraction violation, and that in principle -all the files in sysdeps/arm/eabi should use sysdep.h not -asm/procinfo.h for HWCAP_VFP. - -The ARM kernel maintainers have now declared that <asm/procinfo.h> -should not be used outside the kernel at all (and in particular that -headers_install is correct in not exporting it), and that these -definitions will move to a different kernel header. This gives a -concrete reason for making the change to use glibc's internal -definitions, which this patch does, thereby allowing glibc to build -with the exported headers. - -2006-10-24 Joseph S. Myers joseph@codesourcery.com - - * sysdeps/arm/eabi/fclrexcpt.c: Include <sysdep.h> instead of - <asm/procinfo.h>. Use HWCAP_ARM_VFP instead of HWCAP_VFP. - * sysdeps/arm/eabi/fedisblxcpt.c: Likewise. - * sysdeps/arm/eabi/feenablxcpt.c: Likewise. - * sysdeps/arm/eabi/fegetenv.c: Likewise. - * sysdeps/arm/eabi/fegetexcept.c: Likewise. - * sysdeps/arm/eabi/fegetround.c: Likewise. - * sysdeps/arm/eabi/feholdexcpt.c: Likewise. - * sysdeps/arm/eabi/fesetenv.c: Likewise. - * sysdeps/arm/eabi/fesetround.c: Likewise. - * sysdeps/arm/eabi/fraiseexcpt.c: Likewise. - * sysdeps/arm/eabi/fsetexcptflg.c: Likewise. - * sysdeps/arm/eabi/ftestexcept.c: Likewise. - * sysdeps/arm/eabi/setfpucw.c: Likewise. - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fclrexcpt.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fclrexcpt.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fclrexcpt.c -@@ -23,12 +23,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - __feclearexcept (int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long int temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fedisblxcpt.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fedisblxcpt.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fedisblxcpt.c -@@ -24,12 +24,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - fedisableexcept (int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long int new_exc, old_exc; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/feenablxcpt.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/feenablxcpt.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/feenablxcpt.c -@@ -24,12 +24,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - feenableexcept (int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long int new_exc, old_exc; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetenv.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetenv.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetenv.c -@@ -23,12 +23,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - __fegetenv (fenv_t *envp) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long int temp; - _FPU_GETCW (temp); -Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetexcept.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetexcept.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetexcept.c -@@ -24,12 +24,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - fegetexcept (void) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetround.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetround.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetround.c -@@ -23,12 +23,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - fegetround (void) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned int temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/feholdexcpt.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/feholdexcpt.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/feholdexcpt.c -@@ -23,12 +23,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - feholdexcept (fenv_t *envp) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long int temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fesetenv.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fesetenv.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fesetenv.c -@@ -23,12 +23,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - __fesetenv (const fenv_t *envp) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned int temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fesetround.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fesetround.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fesetround.c -@@ -23,12 +23,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - fesetround (int round) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - fpu_control_t temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fraiseexcpt.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fraiseexcpt.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fraiseexcpt.c -@@ -24,12 +24,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - feraiseexcept (int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - int fpscr; - const float fp_zero = 0.0, fp_one = 1.0, fp_max = FLT_MAX, -Index: glibc-ports-2.5/sysdeps/arm/eabi/fsetexcptflg.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fsetexcptflg.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fsetexcptflg.c -@@ -24,12 +24,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - __fesetexceptflag (const fexcept_t *flagp, int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - fexcept_t temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/ftestexcept.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/ftestexcept.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/ftestexcept.c -@@ -23,12 +23,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - int - fetestexcept (int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - fexcept_t temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/setfpucw.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/setfpucw.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/setfpucw.c -@@ -23,12 +23,12 @@ - #include <unistd.h> - #include <ldsodefs.h> - #include <dl-procinfo.h> --#include <asm/procinfo.h> -+#include <sysdep.h> - - void - __setfpucw (fpu_control_t set) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - fpu_control_t cw; - diff --git a/src/patches/glibc-remove-ctors-dtors-output-sections.patch b/src/patches/glibc-remove-ctors-dtors-output-sections.patch new file mode 100644 index 0000000..91155c9 --- /dev/null +++ b/src/patches/glibc-remove-ctors-dtors-output-sections.patch @@ -0,0 +1,150 @@ +From 4a531bb0b3b582cb693de9f76d2d97d970f9a5d5 Mon Sep 17 00:00:00 2001 +From: H.J. Lu hongjiu.lu@intel.com +Date: Fri, 24 Dec 2010 20:14:37 -0500 +Subject: [PATCH] Remove `.ctors' and `.dtors' output sections + +--- + config.h.in | 3 + + configure.in | 2 + + elf/sofini.c | 2 + + elf/soinit.c | 2 + + sysdeps/i386/init-first.c | 2 + + sysdeps/mach/hurd/i386/init-first.c | 2 +- + sysdeps/mach/hurd/powerpc/init-first.c | 2 +- + sysdeps/sh/init-first.c | 2 + + sysdeps/unix/sysv/linux/init-first.c | 2 +- + 9 files changed, 16 insertions(+), 3 deletions(-) + +diff --git a/config.h.in b/config.h.in +index 18bf01a..9e797eb 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -201,6 +201,9 @@ + /* Define if multi-arch DSOs should be generated. */ + #undef USE_MULTIARCH + ++/* Define if `.ctors' and `.dtors' sections shouldn't be used. */ ++#undef NO_CTORS_DTORS_SECTIONS ++ + /* + */ + +diff --git a/configure.in b/configure.in +index d8cd5f1..ad25b9b 100644 +--- a/configure.in ++++ b/configure.in +@@ -1497,6 +1497,8 @@ EOF + rm -f conftest*]) + if test $libc_cv_initfini_array != yes; then + AC_MSG_ERROR([Need linker with .init_array/.fini_array support.]) ++ elif AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep SORT_BY_INIT_PRIORITY 1>&AS_MESSAGE_LOG_FD]); then ++ AC_DEFINE(NO_CTORS_DTORS_SECTIONS) + fi + + AC_CACHE_CHECK(for libunwind-support in compiler, +diff --git a/elf/sofini.c b/elf/sofini.c +index 5e06f0c..13e74b7 100644 +--- a/elf/sofini.c ++++ b/elf/sofini.c +@@ -1,12 +1,14 @@ + /* Finalizer module for ELF shared C library. This provides terminating + null pointer words in the `.ctors' and `.dtors' sections. */ + ++#ifndef NO_CTORS_DTORS_SECTIONS + static void (*const __CTOR_END__[1]) (void) + __attribute__ ((used, section (".ctors"))) + = { 0 }; + static void (*const __DTOR_END__[1]) (void) + __attribute__ ((used, section (".dtors"))) + = { 0 }; ++#endif + + /* Terminate the frame unwind info section with a 4byte 0 as a sentinel; + this would be the 'length' field in a real FDE. */ +diff --git a/elf/soinit.c b/elf/soinit.c +index 6fecbb5..1db676a 100644 +--- a/elf/soinit.c ++++ b/elf/soinit.c +@@ -3,6 +3,7 @@ + the `.ctors' and `.dtors' sections so the lists are terminated, and + calling those lists of functions. */ + ++#ifndef NO_CTORS_DTORS_SECTIONS + #include <libc-internal.h> + #include <stdlib.h> + +@@ -40,3 +41,4 @@ __libc_fini (void) + + void (*_fini_ptr) (void) __attribute__ ((section (".fini_array"))) + = &__libc_fini; ++#endif +diff --git a/sysdeps/i386/init-first.c b/sysdeps/i386/init-first.c +index c6355a8..2af042f 100644 +--- a/sysdeps/i386/init-first.c ++++ b/sysdeps/i386/init-first.c +@@ -59,7 +59,9 @@ _init (int argc, ...) + { + init (&argc); + ++#ifndef NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); ++#endif + } + #endif + +diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c +index f9a7a58..60823bd 100644 +--- a/sysdeps/mach/hurd/i386/init-first.c ++++ b/sysdeps/mach/hurd/i386/init-first.c +@@ -92,7 +92,7 @@ posixland_init (int argc, char **argv, char **envp) + __getopt_clean_environment (envp); + #endif + +-#ifdef SHARED ++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); + #endif + } +diff --git a/sysdeps/mach/hurd/powerpc/init-first.c b/sysdeps/mach/hurd/powerpc/init-first.c +index 20fa1d4..21b5054 100644 +--- a/sysdeps/mach/hurd/powerpc/init-first.c ++++ b/sysdeps/mach/hurd/powerpc/init-first.c +@@ -82,7 +82,7 @@ posixland_init (int argc, char **argv, char **envp) + __getopt_clean_environment (__environ); + #endif + +-#ifdef SHARED ++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); + #endif + } +diff --git a/sysdeps/sh/init-first.c b/sysdeps/sh/init-first.c +index d816625..1f3a821 100644 +--- a/sysdeps/sh/init-first.c ++++ b/sysdeps/sh/init-first.c +@@ -59,7 +59,9 @@ _init (int argc, ...) + { + init (&argc); + ++#ifndef NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); ++#endif + } + #endif + +diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c +index 7b2333d..a60212f 100644 +--- a/sysdeps/unix/sysv/linux/init-first.c ++++ b/sysdeps/unix/sysv/linux/init-first.c +@@ -93,7 +93,7 @@ _init (int argc, char **argv, char **envp) + __getopt_clean_environment (envp); + #endif + +-#ifdef SHARED ++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); + #endif + } +-- +1.7.3.4 + diff --git a/src/patches/glibc-resolv-stack_chk_fail.patch b/src/patches/glibc-resolv-stack_chk_fail.patch new file mode 100644 index 0000000..00bb710 --- /dev/null +++ b/src/patches/glibc-resolv-stack_chk_fail.patch @@ -0,0 +1,35 @@ +From e057a1b5930ec538c2b8abbba700a436ef2c81d5 Mon Sep 17 00:00:00 2001 +From: Joseph Myers joseph@codesourcery.com +Date: Wed, 21 Sep 2011 13:27:50 -0700 +Subject: [PATCH] Link libresolv.so with ld.so for __stack_chk_guard. + +--- + resolv/Makefile | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +diff --git a/resolv/Makefile b/resolv/Makefile +index ec3788f..b4287de 100644 +--- a/resolv/Makefile ++++ b/resolv/Makefile +@@ -1,4 +1,5 @@ +-# Copyright (C) 1994-2001,2003,2004,2007,2008 Free Software Foundation, Inc. ++# Copyright (C) 1994-2001,2003,2004,2007,2008,2011 ++# Free Software Foundation, Inc. + # This file is part of the GNU C Library. + + # The GNU C Library is free software; you can redistribute it and/or +@@ -88,6 +89,11 @@ CFLAGS-res_hconf.c = -fexceptions + # This ensures they will load libc.so for needed symbols if loaded by + # a statically-linked program that hasn't already loaded it. + $(objpfx)libresolv.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a ++# Some hosts need '__stack_chk_guard', so pull in the definition from ++# ld.so if required. ++ifeq (yesyes,$(have-ssp)$(elf)) ++LDLIBS-resolv.so += $(as-needed) $(elfobjdir)/ld.so $(no-as-needed) ++endif + + # The DNS NSS modules needs the resolver. + $(objpfx)libnss_dns.so: $(objpfx)libresolv.so $(common-objpfx)libc.so \ +-- +1.7.3.4 + diff --git a/src/patches/glibc-test-installation.pl-libgcc_s.patch b/src/patches/glibc-test-installation.pl-libgcc_s.patch new file mode 100644 index 0000000..a63d5d8 --- /dev/null +++ b/src/patches/glibc-test-installation.pl-libgcc_s.patch @@ -0,0 +1,97 @@ +From 6e236b92765cdafb46d19e4907471699accc8269 Mon Sep 17 00:00:00 2001 +From: Siddhesh Poyarekar siddhesh@redhat.com +Date: Thu, 26 Apr 2012 09:18:48 +0530 +Subject: [PATCH] move libgcc_s soname definition to shlib-versions + +diff --git a/nptl/sysdeps/pthread/unwind-forcedunwind.c b/nptl/sysdeps/pthread/unwind-forcedunwind.c +index adce6e7..60dfbe6 100644 +--- a/nptl/sysdeps/pthread/unwind-forcedunwind.c ++++ b/nptl/sysdeps/pthread/unwind-forcedunwind.c +@@ -21,7 +21,7 @@ + #include <unwind.h> + #include <pthreadP.h> + #include <sysdep.h> +-#include <libgcc_s.h> ++#include <gnu/lib-names.h> + + static void *libgcc_s_handle; + static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); +diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl +index c4f3d6d..1b22086 100755 +--- a/scripts/test-installation.pl ++++ b/scripts/test-installation.pl + +@@ -105,9 +105,10 @@ while (<SOVERSIONS>) { + # - libnss1_* from glibc-compat add-on + # - libthread_db since it contains unresolved references + # - it's just a test NSS module ++ # - We don't provide the libgcc so we don't test it + if ($name ne "nss_ldap" && $name ne "db1" + && !($name =~/^nss1_/) && $name ne "thread_db" +- && $name ne "nss_test1") { ++ && $name ne "nss_test1" && $name ne "libgcc_s") { + $link_libs .= " -l$name"; + $versions{$name} = $version; + } +diff --git a/shlib-versions b/shlib-versions +index c530a44..840e08f 100644 +--- a/shlib-versions ++++ b/shlib-versions +@@ -124,3 +124,7 @@ sparc64.*-.*-.* libBrokenLocale=1 GLIBC_2.2 + + # The asynchronous name lookup library. + .*-.*-.* libanl=1 ++ ++# This defines the libgcc soname version this glibc is to load for ++# asynchronous cancellation to work correctly. ++.*-.*-.* libgcc_s=1 +diff --git a/sysdeps/generic/framestate.c b/sysdeps/generic/framestate.c +index 3638bbe..3bad5b5 100644 +--- a/sysdeps/generic/framestate.c ++++ b/sysdeps/generic/framestate.c +@@ -1,5 +1,5 @@ + /* __frame_state_for unwinder helper function wrapper. +- Copyright (C) 2001, 2003 Free Software Foundation, Inc. ++ Copyright (C) 2001-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek jakub@redhat.com, 2001. + +@@ -23,7 +23,7 @@ + #define __frame_state_for fallback_frame_state_for + #include <unwind-dw2.c> + #undef __frame_state_for +-#include <libgcc_s.h> ++#include <gnu/lib-names.h> + + typedef struct frame_state * (*framesf)(void *pc, struct frame_state *); + struct frame_state *__frame_state_for (void *pc, +diff --git a/sysdeps/generic/libgcc_s.h b/sysdeps/generic/libgcc_s.h +deleted file mode 100644 +index e74a103..0000000 +--- a/sysdeps/generic/libgcc_s.h ++++ /dev/null +@@ -1,2 +0,0 @@ +-/* Name of libgcc_s library provided by gcc. */ +-#define LIBGCC_S_SO "libgcc_s.so.1" +diff --git a/sysdeps/gnu/unwind-resume.c b/sysdeps/gnu/unwind-resume.c +index 1d3e33f..6afaebd 100644 +--- a/sysdeps/gnu/unwind-resume.c ++++ b/sysdeps/gnu/unwind-resume.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2003 Free Software Foundation, Inc. ++/* Copyright (C) 2003-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek jakub@redhat.com. + +@@ -19,7 +19,7 @@ + #include <dlfcn.h> + #include <stdio.h> + #include <unwind.h> +-#include <libgcc_s.h> ++#include <gnu/lib-names.h> + + static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); + static _Unwind_Reason_Code (*libgcc_s_personality) +-- +1.7.3.4 + diff --git a/src/patches/glibc-test-installation.pl-nss_test1.patch b/src/patches/glibc-test-installation.pl-nss_test1.patch new file mode 100644 index 0000000..8881d94 --- /dev/null +++ b/src/patches/glibc-test-installation.pl-nss_test1.patch @@ -0,0 +1,31 @@ +From 9191c04a7e19fffbea0a08523e579cd8e55142df Mon Sep 17 00:00:00 2001 +From: Ulrich Drepper drepper@gmail.com +Date: Sat, 23 Jul 2011 15:28:31 -0400 +Subject: [PATCH] Adjust test for correct installation + +diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl +index 90cd9d7..25a919b 100755 +--- a/scripts/test-installation.pl ++++ b/scripts/test-installation.pl +@@ -1,5 +1,5 @@ + #! /usr/bin/perl -w +-# Copyright (C) 1997, 1998, 1999, 2004 Free Software Foundation, Inc. ++# Copyright (C) 1997, 1998, 1999, 2004, 2011 Free Software Foundation, Inc. + # This file is part of the GNU C Library. + # Contributed by Andreas Jaeger aj@arthur.rhein-neckar.de, 1997. + +@@ -105,8 +105,10 @@ while (<SOVERSIONS>) { + # - libdb1 since it conflicts with libdb + # - libnss1_* from glibc-compat add-on + # - libthread_db since it contains unresolved references ++ # - it's just a test NSS module + if ($name ne "nss_ldap" && $name ne "db1" +- && !($name =~/^nss1_/) && $name ne "thread_db") { ++ && !($name =~/^nss1_/) && $name ne "thread_db" ++ && $name ne "nss_test1") { + $link_libs .= " -l$name"; + $versions{$name} = $version; + } +-- +1.7.3.4 + diff --git a/src/patches/glibc/glibc-aliasing.patch b/src/patches/glibc/glibc-aliasing.patch new file mode 100644 index 0000000..016a4d4 --- /dev/null +++ b/src/patches/glibc/glibc-aliasing.patch @@ -0,0 +1,87 @@ +Index: glibc-2.12-2-gc4ccff1/elf/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile ++++ glibc-2.12-2-gc4ccff1/elf/Makefile +@@ -129,6 +129,7 @@ include ../Makeconfig + ifeq ($(unwind-find-fde),yes) + routines += unwind-dw2-fde-glibc + shared-only-routines += unwind-dw2-fde-glibc ++CFLAGS-unwind-dw2-fde-glibc.c += -fno-strict-aliasing + endif + + before-compile = $(objpfx)trusted-dirs.h +Index: glibc-2.12-2-gc4ccff1/inet/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/inet/Makefile ++++ glibc-2.12-2-gc4ccff1/inet/Makefile +@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa + + include ../Rules + ++CFLAGS-tst-inet6_rth.c += -fno-strict-aliasing ++ + ifeq ($(have-thread-library),yes) + + CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions +Index: glibc-2.12-2-gc4ccff1/nis/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nis/Makefile ++++ glibc-2.12-2-gc4ccff1/nis/Makefile +@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out + + include ../Rules + ++CFLAGS-nis_findserv.c += -fno-strict-aliasing ++CFLAGS-ypclnt.c += -fno-strict-aliasing + + $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version) + $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \ +Index: glibc-2.12-2-gc4ccff1/nss/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nss/Makefile ++++ glibc-2.12-2-gc4ccff1/nss/Makefile +@@ -74,6 +74,7 @@ endif + + include ../Rules + ++CFLAGS-files-hosts.c += -fno-strict-aliasing + + ifeq (yes,$(build-static-nss)) + $(objpfx)getent: $(objpfx)libnss_files.a +Index: glibc-2.12-2-gc4ccff1/resolv/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/resolv/Makefile ++++ glibc-2.12-2-gc4ccff1/resolv/Makefile +@@ -77,6 +77,7 @@ CPPFLAGS += -Dgethostbyname=res_gethostb + -Dgetnetbyaddr=res_getnetbyaddr + + CFLAGS-res_hconf.c = -fexceptions ++CFLAGS-res_send.c += -fno-strict-aliasing + + # The BIND code elicits some harmless warnings. + +cflags += -Wno-strict-prototypes -Wno-write-strings +Index: glibc-2.12-2-gc4ccff1/sunrpc/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sunrpc/Makefile ++++ glibc-2.12-2-gc4ccff1/sunrpc/Makefile +@@ -129,6 +129,10 @@ CFLAGS-openchild.c = -fexceptions + + CPPFLAGS += -D_RPC_THREAD_SAFE_ + ++CFLAGS-clnt_tcp.c += -fno-strict-aliasing ++CFLAGS-clnt_udp.c += -fno-strict-aliasing ++CFLAGS-clnt_unix.c += -fno-strict-aliasing ++ + include ../Rules + + $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \ +Index: glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/elf/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/powerpc/powerpc64/elf/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/elf/Makefile +@@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-re + CFLAGS-rtld-memmove.os = $(no-special-regs) + CFLAGS-rtld-memchr.os = $(no-special-regs) + CFLAGS-rtld-strnlen.os = $(no-special-regs) ++ ++CFLAGS-gmon-start.c += -fno-strict-aliasing diff --git a/src/patches/glibc/glibc-fedora.patch b/src/patches/glibc/glibc-fedora.patch new file mode 100644 index 0000000..5a7fce9 --- /dev/null +++ b/src/patches/glibc/glibc-fedora.patch @@ -0,0 +1,2106 @@ +--- glibc-2.12-2-gc4ccff1/ChangeLog ++++ glibc-2.12-1/ChangeLog +@@ -241,6 +241,12 @@ + + * Makerules (libc-abis): Fix search for libc-abis in add-ons. + ++2010-04-06 Ulrich Drepper drepper@redhat.com ++ ++ * sysdeps/posix/getaddrinfo.c (default_scopes): Assign global ++ scope to RFC 1918 addresses. ++ * posix/gai.conf: Document difference from RFC 3484. ++ + 2010-04-05 Thomas Schwinge thomas@schwinge.name + + * sysdeps/gnu/unwind-resume.c: New, moved from nptl/sysdeps/pthread/. +@@ -995,6 +1001,19 @@ + * sysdeps/x86_64/fpu/fegetenv.c: Likewise + * sysdeps/s390/fpu/fegetenv.c: Likewise. Remove unused headers. + ++2009-10-27 Aurelien Jarno aurelien@aurel32.net ++ ++ [BZ #10855] ++ * locale/programs/locarchive.c: use MMAP_SHARED to reserve memory ++ used later with MMAP_FIXED | MMAP_SHARED to cope with different ++ alignment restrictions. ++ ++2010-02-08 Andreas Schwab schwab@redhat.com ++ ++ [BZ #11155] ++ * sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c: Include i386 ++ version. ++ + 2010-02-05 H.J. Lu hongjiu.lu@intel.com + + [BZ #11230] +@@ -2938,6 +2957,11 @@ d2009-10-30 Ulrich Drepper <drepper@re + * sysdeps/generic/ldsodefs.h (struct rtld_global): The map element in + the unique symbol hash table should not be const. + ++2009-07-22 Jakub Jelinek jakub@redhat.com ++ ++ * Makeconfig (ASFLAGS): Append $(sysdep-ASFLAGS). ++ * sysdeps/i386/Makefile (sysdep-ASFLAGS): Add -U__i686. ++ + 2009-07-21 Ulrich Drepper drepper@redhat.com + + * sysdeps/x86_64/multiarch/strstr.c: Minor cleanups. Remove +@@ -3203,6 +3227,11 @@ d2009-10-30 Ulrich Drepper <drepper@re + out common code into new function get_common_indeces. Determine + extended family and model for Intel processors. + ++2009-06-26 Andreas Schwab aschwab@redhat.com ++ ++ * timezone/zic.c (stringzone): Don't try to generate a POSIX TZ ++ string when the timezone ends in DST. ++ + 2009-06-26 Ulrich Drepper drepper@redhat.com + + * resolv/resolv.h: Define RES_SNGLKUPREOP. +@@ -11896,6 +11925,10 @@ d2009-10-30 Ulrich Drepper <drepper@re + [BZ #4368] + * stdlib/stdlib.h: Remove obsolete part of comment for realpath. + ++2007-04-16 Jakub Jelinek jakub@redhat.com ++ ++ * locale/programs/locarchive.c (add_alias, insert_name): Remove static. ++ + 2007-04-16 Ulrich Drepper drepper@redhat.com + + [BZ #4364] +@@ -13153,6 +13186,15 @@ d2009-10-30 Ulrich Drepper <drepper@re + separators also if no non-zero digits found. + * stdlib/Makefile (tests): Add tst-strtod3. + ++2006-12-10 Jakub Jelinek jakub@redhat.com ++ ++ * sysdeps/unix/sysv/linux/netlinkaccess.h: Include linux/if_addr.h ++ if IFA_MAX is not defined. ++ (IFA_RTA, IFA_PAYLOAD, IFLA_RTA, IFLA_PAYLOAD): Define if not ++ defined. ++ * sysdeps/unix/sysv/linux/check_pf.c: Include netlinkaccess.h ++ instead of asm/types.h, linux/netlink.h and linux/rtnetlink.h. ++ + 2006-12-09 Ulrich Drepper drepper@redhat.com + + [BZ #3632] +--- glibc-2.12-2-gc4ccff1/ChangeLog.15 ++++ glibc-2.12-1/ChangeLog.15 +@@ -477,6 +477,14 @@ + + 2004-11-26 Jakub Jelinek jakub@redhat.com + ++ * posix/Makefile (generated: Add getconf.speclist. ++ ($(inst_libexecdir)/getconf): Use getconf.speclist instead of ++ getconf output. ++ ($(objpfx)getconf.speclist): New rule. ++ * posix/getconf.speclist.h: New file. ++ ++2004-11-26 Jakub Jelinek jakub@redhat.com ++ + * sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR. + + 2004-11-26 Kaz Kojima kkojima@rr.iij4u.or.jp +@@ -1103,6 +1111,13 @@ + * sysdeps/generic/tempname.c (__path_search): Add missing argument + TRY_TMPDIR. + ++2004-11-02 Jakub Jelinek jakub@redhat.com ++ ++ * include/features.h (__USE_FORTIFY_LEVEL): Also set for Red Hat ++ GCC 3.4.x-RH >= 3.4.2-8. ++ * debug/tst-chk1.c (do_test): Deal with GCC 3.4.x-RH not ++ being able to recognize subobjects. ++ + 2004-10-31 Mariusz Mazur mmazur@kernel.pl + + * sysdeps/unix/sysv/linux/alpha/setregid.c: New file. +@@ -1443,6 +1458,11 @@ + * sysdeps/generic/readonly-area.c (__readonly_str): Renamed to ... + (__readonly_area): ... this. + ++2004-10-19 Jakub Jelinek jakub@redhat.com ++ ++ * include/features.h (__USE_FORTIFY_LEVEL): Enable even with ++ Red Hat gcc4 4.0.0 and above. ++ + 2004-10-18 Jakub Jelinek jakub@redhat.com + + * sysdeps/generic/strcpy_chk.c (__strcpy_chk): Speed up by checking +@@ -3182,6 +3202,23 @@ + before return type. + * locale/localename.c (__current_locale_name): Likewise. + ++2004-08-31 Jakub Jelinek jakub@redhat.com ++ ++ * elf/ldconfig.c (parse_conf): Add prefix argument, prepend it ++ before arguments to add_dir and pass to parse_conf_include. ++ (parse_conf_include): Add prefix argument, pass it down to ++ parse_conf. ++ (main): Call arch_startup. Adjust parse_conf caller. ++ Call add_arch_dirs. ++ * sysdeps/generic/dl-cache.h (arch_startup, add_arch_dirs): Define. ++ * sysdeps/unix/sysv/linux/i386/dl-cache.h: New file. ++ * sysdeps/unix/sysv/linux/ia64/dl-cache.h (EMUL_HACK, arch_startup, ++ add_arch_dirs): Define. ++ * sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Prepend ++ /emul/ia32-linux before the 32-bit ld.so pathname. ++ * sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file. ++ * sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file. ++ + 2004-08-30 Roland McGrath roland@frob.com + + * scripts/extract-abilist.awk: If `lastversion' variable defined, omit +--- glibc-2.12-2-gc4ccff1/ChangeLog.16 ++++ glibc-2.12-1/ChangeLog.16 +@@ -2042,6 +2042,9 @@ + (__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT + followed by __THROW. + ++ * sysdeps/unix/sysv/linux/futimesat.c (futimesat): If ++ file == NULL, use __futimes unconditionally. ++ + 2006-02-02 Ulrich Drepper drepper@redhat.com + + * sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat] +@@ -2101,6 +2104,11 @@ + * sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Fix a typo. + * sysdeps/s390/fpu/libm-test-ulps: Remove llrint ulps. + ++2006-01-30 Jakub Jelinek jakub@redhat.com ++ ++ * include/bits/stdlib-ldbl.h: New file. ++ * include/bits/wchar-ldbl.h: New file. ++ + 2006-01-19 Thomas Schwinge tschwinge@gnu.org + + * libio/genops.c: Include <stdbool.h>. +@@ -8922,6 +8930,12 @@ + * argp/argp-help.c (__argp_error): __asprintf -> vasprintf. + (__argp_failure): Likewise. + ++2005-08-08 Jakub Jelinek jakub@redhat.com ++ ++ * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard): ++ Shift marked &errno down on big-endian instead of up. ++ * elf/tst-stackguard1.c (do_test): Fix a typo. ++ + 2005-08-08 Ulrich Drepper drepper@redhat.com + + * nscd/cache.c (cache_add): Commit hash table and header to disk. +@@ -9046,6 +9060,17 @@ + __syslog_chk. + * misc/Versions: Export __syslog_chk and __vsyslog_chk. + ++2005-07-29 Jakub Jelinek jakub@redhat.com ++ ++ * sysdeps/unix/sysv/linux/dl-osinfo.h: Include errno.h, hp-timing.h, ++ endian.h. ++ (_dl_setup_stack_chk_guard): Even without ++ --enable-stackguard-randomization attempt to do some guard ++ randomization using hp-timing (if available) and kernel stack and ++ mmap randomization. ++ * elf/tst-stackguard1.c (do_test): Don't fail if the poor man's ++ randomization doesn't work well enough. ++ + 2005-07-28 Thomas Schwinge schwinge@nic-nac-project.de + + [BZ #1137] +--- glibc-2.12-2-gc4ccff1/Makeconfig ++++ glibc-2.12-1/Makeconfig +@@ -789,12 +789,12 @@ endif + # The assembler can generate debug information too. + ifndef ASFLAGS + ifeq ($(have-cpp-asm-debuginfo),yes) +-ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS)) ++ASFLAGS = $(filter -g% -fdebug-prefix-map=%,$(CFLAGS)) + else +-ASFLAGS := ++ASFLAGS = + endif + endif +-ASFLAGS += $(ASFLAGS-config) $(asflags-cpu) ++ASFLAGS += $(ASFLAGS-config) $(asflags-cpu) $(sysdep-ASFLAGS) + + ifndef BUILD_CC + BUILD_CC = $(CC) +--- glibc-2.12-2-gc4ccff1/csu/Makefile ++++ glibc-2.12-1/csu/Makefile +@@ -93,7 +93,8 @@ omit-deps += $(crtstuff) + $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h + $(compile.S) -g0 $(ASFLAGS-.os) -o $@ + +-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) ++CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \ ++ -fno-asynchronous-unwind-tables + + vpath initfini.c $(sysdirs) + +--- glibc-2.12-2-gc4ccff1/csu/elf-init.c ++++ glibc-2.12-1/csu/elf-init.c +@@ -63,6 +63,23 @@ extern void (*__init_array_end []) (int, + extern void (*__fini_array_start []) (void) attribute_hidden; + extern void (*__fini_array_end []) (void) attribute_hidden; + ++#if defined HAVE_VISIBILITY_ATTRIBUTE \ ++ && (defined SHARED || defined LIBC_NONSHARED) ++# define hidden_undef_2(x) #x ++# define hidden_undef_1(x) hidden_undef_2 (x) ++# define hidden_undef(x) \ ++ __asm (hidden_undef_1 (ASM_GLOBAL_DIRECTIVE) " " #x); \ ++ __asm (".hidden " #x); ++#else ++# define hidden_undef(x) ++#endif ++ ++hidden_undef (__preinit_array_start) ++hidden_undef (__preinit_array_end) ++hidden_undef (__init_array_start) ++hidden_undef (__init_array_end) ++hidden_undef (__fini_array_start) ++hidden_undef (__fini_array_end) + + /* These function symbols are provided for the .init/.fini section entry + points automagically by the linker. */ +--- glibc-2.12-2-gc4ccff1/debug/tst-chk1.c ++++ glibc-2.12-1/debug/tst-chk1.c +@@ -17,6 +17,9 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++/* Hack: make sure GCC doesn't know __chk_fail () will not return. */ ++#define __noreturn__ ++ + #include <assert.h> + #include <fcntl.h> + #include <locale.h> +@@ -242,7 +245,7 @@ do_test (void) + if (memcmp (a.buf1, "aabcdabcjj", 10)) + FAIL (); + +-#if __USE_FORTIFY_LEVEL < 2 ++#if __USE_FORTIFY_LEVEL < 2 || !__GNUC_PREREQ (4, 0) + /* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2 + and sufficient GCC support, as the string operations overflow + from a.buf1 into a.buf2. */ +@@ -357,7 +360,7 @@ do_test (void) + memset (a.buf1 + 9, 'j', l0 + 2); + CHK_FAIL_END + +-# if __USE_FORTIFY_LEVEL >= 2 ++# if __USE_FORTIFY_LEVEL >= 2 && __GNUC_PREREQ (4, 0) + # define O 0 + # else + # define O 1 +--- glibc-2.12-2-gc4ccff1/elf/ldconfig.c ++++ glibc-2.12-1/elf/ldconfig.c +@@ -1031,17 +1031,19 @@ search_dirs (void) + + + static void parse_conf_include (const char *config_file, unsigned int lineno, +- bool do_chroot, const char *pattern); ++ const char *prefix, bool do_chroot, ++ const char *pattern); + + /* Parse configuration file. */ + static void +-parse_conf (const char *filename, bool do_chroot) ++parse_conf (const char *filename, const char *prefix, bool do_chroot) + { + FILE *file = NULL; + char *line = NULL; + const char *canon; + size_t len = 0; + unsigned int lineno; ++ size_t prefix_len = prefix ? strlen (prefix) : 0; + + if (do_chroot && opt_chroot) + { +@@ -1102,7 +1104,14 @@ parse_conf (const char *filename, bool d + cp += 8; + while ((dir = strsep (&cp, " \t")) != NULL) + if (dir[0] != '\0') +- parse_conf_include (filename, lineno, do_chroot, dir); ++ parse_conf_include (filename, lineno, prefix, do_chroot, dir); ++ } ++ else if (prefix != NULL) ++ { ++ size_t cp_len = strlen (cp); ++ char new_cp [prefix_len + cp_len + 1]; ++ memcpy (mempcpy (new_cp, prefix, prefix_len), cp, cp_len + 1); ++ add_dir (new_cp); + } + else if (!strncasecmp (cp, "hwcap", 5) && isblank (cp[5])) + { +@@ -1165,7 +1174,7 @@ parse_conf (const char *filename, bool d + config files to read. */ + static void + parse_conf_include (const char *config_file, unsigned int lineno, +- bool do_chroot, const char *pattern) ++ const char *prefix, bool do_chroot, const char *pattern) + { + if (opt_chroot && pattern[0] != '/') + error (EXIT_FAILURE, 0, +@@ -1197,7 +1206,7 @@ parse_conf_include (const char *config_f + { + case 0: + for (size_t i = 0; i < gl.gl_pathc; ++i) +- parse_conf (gl.gl_pathv[i], false); ++ parse_conf (gl.gl_pathv[i], prefix, false); + globfree64 (&gl); + break; + +@@ -1240,6 +1249,8 @@ main (int argc, char **argv) + /* Set the text message domain. */ + textdomain (_libc_intl_domainname); + ++ arch_startup (argc, argv); ++ + /* Parse and process arguments. */ + int remaining; + argp_parse (&argp, argc, argv, 0, &remaining, NULL); +@@ -1349,12 +1360,14 @@ main (int argc, char **argv) + + if (!opt_only_cline) + { +- parse_conf (config_file, true); ++ parse_conf (config_file, NULL, true); + + /* Always add the standard search paths. */ + add_system_dir (SLIBDIR); + if (strcmp (SLIBDIR, LIBDIR)) + add_system_dir (LIBDIR); ++ ++ add_arch_dirs (config_file); + } + + char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE; +--- glibc-2.12-2-gc4ccff1/elf/tst-stackguard1.c ++++ glibc-2.12-1/elf/tst-stackguard1.c +@@ -160,17 +160,21 @@ do_test (void) + the 16 runs, something is very wrong. */ + int ndifferences = 0; + int ndefaults = 0; ++ int npartlyrandomized = 0; + for (i = 0; i < N; ++i) + { + if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1]) + ndifferences++; + else if (child_stack_chk_guards[i] == default_guard) + ndefaults++; ++ else if (*(char *) &child_stack_chk_guards[i] == 0) ++ npartlyrandomized++; + } + +- printf ("differences %d defaults %d\n", ndifferences, ndefaults); ++ printf ("differences %d defaults %d partly randomized %d\n", ++ ndifferences, ndefaults, npartlyrandomized); + +- if (ndifferences < N / 2 && ndefaults < N / 2) ++ if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4) + { + puts ("stack guard canaries are not randomized enough"); + puts ("nor equal to the default canary value"); +--- glibc-2.12-2-gc4ccff1/include/bits/stdlib-ldbl.h ++++ glibc-2.12-1/include/bits/stdlib-ldbl.h +@@ -0,0 +1 @@ ++#include <stdlib/bits/stdlib-ldbl.h> +--- glibc-2.12-2-gc4ccff1/include/bits/wchar-ldbl.h ++++ glibc-2.12-1/include/bits/wchar-ldbl.h +@@ -0,0 +1 @@ ++#include <wcsmbs/bits/wchar-ldbl.h> +--- glibc-2.12-2-gc4ccff1/include/features.h ++++ glibc-2.12-1/include/features.h +@@ -308,8 +308,13 @@ + #endif + + #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \ +- && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 +-# if _FORTIFY_SOURCE > 1 ++ && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 ++# if !__GNUC_PREREQ (4, 1) ++# ifdef __GNUC_RH_RELEASE__ ++# warning _FORTIFY_SOURCE supported only with GCC 4.1 and later ++# endif ++# define __USE_FORTIFY_LEVEL 0 ++# elif _FORTIFY_SOURCE > 1 + # define __USE_FORTIFY_LEVEL 2 + # else + # define __USE_FORTIFY_LEVEL 1 +--- glibc-2.12-2-gc4ccff1/intl/locale.alias ++++ glibc-2.12-1/intl/locale.alias +@@ -57,8 +57,6 @@ korean ko_KR.eucKR + korean.euc ko_KR.eucKR + ko_KR ko_KR.eucKR + lithuanian lt_LT.ISO-8859-13 +-no_NO nb_NO.ISO-8859-1 +-no_NO.ISO-8859-1 nb_NO.ISO-8859-1 + norwegian nb_NO.ISO-8859-1 + nynorsk nn_NO.ISO-8859-1 + polish pl_PL.ISO-8859-2 +--- glibc-2.12-2-gc4ccff1/libio/stdio.h ++++ glibc-2.12-1/libio/stdio.h +@@ -165,10 +165,12 @@ typedef _G_fpos64_t fpos64_t; + extern struct _IO_FILE *stdin; /* Standard input stream. */ + extern struct _IO_FILE *stdout; /* Standard output stream. */ + extern struct _IO_FILE *stderr; /* Standard error output stream. */ ++#ifdef __STDC__ + /* C89/C99 say they're macros. Make them happy. */ + #define stdin stdin + #define stdout stdout + #define stderr stderr ++#endif + + __BEGIN_NAMESPACE_STD + /* Remove file FILENAME. */ +--- glibc-2.12-2-gc4ccff1/locale/iso-4217.def ++++ glibc-2.12-1/locale/iso-4217.def +@@ -8,6 +8,7 @@ + * + * !!! The list has to be sorted !!! + */ ++DEFINE_INT_CURR("ADP") /* Andorran Peseta -> EUR */ + DEFINE_INT_CURR("AED") /* United Arab Emirates Dirham */ + DEFINE_INT_CURR("AFN") /* Afghanistan Afgani */ + DEFINE_INT_CURR("ALL") /* Albanian Lek */ +@@ -15,12 +16,14 @@ DEFINE_INT_CURR("AMD") /* Armenia Dram + DEFINE_INT_CURR("ANG") /* Netherlands Antilles */ + DEFINE_INT_CURR("AOA") /* Angolan Kwanza */ + DEFINE_INT_CURR("ARS") /* Argentine Peso */ ++DEFINE_INT_CURR("ATS") /* Austrian Schilling -> EUR */ + DEFINE_INT_CURR("AUD") /* Australian Dollar */ + DEFINE_INT_CURR("AWG") /* Aruba Guilder */ + DEFINE_INT_CURR("AZM") /* Azerbaijan Manat */ + DEFINE_INT_CURR("BAM") /* Bosnian and Herzegovina Convertible Mark */ + DEFINE_INT_CURR("BBD") /* Barbados Dollar */ + DEFINE_INT_CURR("BDT") /* Bangladesh Taka */ ++DEFINE_INT_CURR("BEF") /* Belgian Franc -> EUR */ + DEFINE_INT_CURR("BGN") /* Bulgarian Lev */ + DEFINE_INT_CURR("BHD") /* Bahraini Dinar */ + DEFINE_INT_CURR("BIF") /* Burundi Franc */ +@@ -44,6 +47,7 @@ DEFINE_INT_CURR("CUP") /* Cuban Peso * + DEFINE_INT_CURR("CVE") /* Cape Verde Escudo */ + DEFINE_INT_CURR("CYP") /* Cypriot Pound */ + DEFINE_INT_CURR("CZK") /* Czech Koruna */ ++DEFINE_INT_CURR("DEM") /* German Mark -> EUR */ + DEFINE_INT_CURR("DJF") /* Djibouti Franc */ + DEFINE_INT_CURR("DKK") /* Danish Krone (Faroe Islands, Greenland) */ + DEFINE_INT_CURR("DOP") /* Dominican Republic */ +@@ -51,16 +55,20 @@ DEFINE_INT_CURR("DZD") /* Algerian Dina + DEFINE_INT_CURR("EEK") /* Estonian Kroon */ + DEFINE_INT_CURR("EGP") /* Egyptian Pound */ + DEFINE_INT_CURR("ERN") /* Eritrean Nakfa */ ++DEFINE_INT_CURR("ESP") /* Spanish Peseta -> EUR */ + DEFINE_INT_CURR("ETB") /* Ethiopian Birr */ + DEFINE_INT_CURR("EUR") /* European Union Euro */ ++DEFINE_INT_CURR("FIM") /* Finnish Markka -> EUR */ + DEFINE_INT_CURR("FJD") /* Fiji Dollar */ + DEFINE_INT_CURR("FKP") /* Falkland Islands Pound (Malvinas) */ ++DEFINE_INT_CURR("FRF") /* French Franc -> EUR */ + DEFINE_INT_CURR("GBP") /* British Pound */ + DEFINE_INT_CURR("GEL") /* Georgia Lari */ + DEFINE_INT_CURR("GHC") /* Ghana Cedi */ + DEFINE_INT_CURR("GIP") /* Gibraltar Pound */ + DEFINE_INT_CURR("GMD") /* Gambian Dalasi */ + DEFINE_INT_CURR("GNF") /* Guinea Franc */ ++DEFINE_INT_CURR("GRD") /* Greek Drachma -> EUR */ + DEFINE_INT_CURR("GTQ") /* Guatemala Quetzal */ + DEFINE_INT_CURR("GYD") /* Guyana Dollar */ + DEFINE_INT_CURR("HKD") /* Hong Kong Dollar */ +@@ -69,12 +77,14 @@ DEFINE_INT_CURR("HRK") /* Croatia Kuna + DEFINE_INT_CURR("HTG") /* Haiti Gourde */ + DEFINE_INT_CURR("HUF") /* Hungarian Forint */ + DEFINE_INT_CURR("IDR") /* Indonesia Rupiah */ ++DEFINE_INT_CURR("IEP") /* Irish Pound -> EUR */ + DEFINE_INT_CURR("ILS") /* Israeli Shekel */ + DEFINE_INT_CURR("IMP") /* Isle of Man Pounds */ + DEFINE_INT_CURR("INR") /* Indian Rupee (Bhutan) */ + DEFINE_INT_CURR("IQD") /* Iraqi Dinar */ + DEFINE_INT_CURR("IRR") /* Iranian Rial */ + DEFINE_INT_CURR("ISK") /* Iceland Krona */ ++DEFINE_INT_CURR("ITL") /* Italian Lira -> EUR */ + DEFINE_INT_CURR("JEP") /* Jersey Pound */ + DEFINE_INT_CURR("JMD") /* Jamaican Dollar */ + DEFINE_INT_CURR("JOD") /* Jordanian Dinar */ +@@ -94,6 +104,7 @@ DEFINE_INT_CURR("LKR") /* Sri Lankan Ru + DEFINE_INT_CURR("LRD") /* Liberian Dollar */ + DEFINE_INT_CURR("LSL") /* Lesotho Maloti */ + DEFINE_INT_CURR("LTL") /* Lithuanian Litas */ ++DEFINE_INT_CURR("LUF") /* Luxembourg Franc -> EUR */ + DEFINE_INT_CURR("LVL") /* Latvia Lat */ + DEFINE_INT_CURR("LYD") /* Libyan Arab Jamahiriya Dinar */ + DEFINE_INT_CURR("MAD") /* Moroccan Dirham */ +@@ -114,6 +125,7 @@ DEFINE_INT_CURR("MZM") /* Mozambique Me + DEFINE_INT_CURR("NAD") /* Namibia Dollar */ + DEFINE_INT_CURR("NGN") /* Nigeria Naira */ + DEFINE_INT_CURR("NIO") /* Nicaragua Cordoba Oro */ ++DEFINE_INT_CURR("NLG") /* Netherlands Guilder -> EUR */ + DEFINE_INT_CURR("NOK") /* Norwegian Krone */ + DEFINE_INT_CURR("NPR") /* Nepalese Rupee */ + DEFINE_INT_CURR("NZD") /* New Zealand Dollar */ +@@ -124,6 +136,7 @@ DEFINE_INT_CURR("PGK") /* Papau New Gui + DEFINE_INT_CURR("PHP") /* Philippines Peso */ + DEFINE_INT_CURR("PKR") /* Pakistan Rupee */ + DEFINE_INT_CURR("PLN") /* Polish Zloty */ ++DEFINE_INT_CURR("PTE") /* Portugese Escudo -> EUR */ + DEFINE_INT_CURR("PYG") /* Paraguay Guarani */ + DEFINE_INT_CURR("QAR") /* Qatar Rial */ + DEFINE_INT_CURR("ROL") /* Romanian Leu */ +--- glibc-2.12-2-gc4ccff1/locale/programs/locarchive.c ++++ glibc-2.12-1/locale/programs/locarchive.c +@@ -134,7 +134,7 @@ create_archive (const char *archivefname + size_t reserved = RESERVE_MMAP_SIZE; + int xflags = 0; + if (total < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else +@@ -241,9 +241,9 @@ oldlocrecentcmp (const void *a, const vo + /* forward decls for below */ + static uint32_t add_locale (struct locarhandle *ah, const char *name, + locale_data_t data, bool replace); +-static void add_alias (struct locarhandle *ah, const char *alias, +- bool replace, const char *oldname, +- uint32_t *locrec_offset_p); ++void add_alias (struct locarhandle *ah, const char *alias, ++ bool replace, const char *oldname, ++ uint32_t *locrec_offset_p); + + + static bool +@@ -396,7 +396,7 @@ enlarge_archive (struct locarhandle *ah, + size_t reserved = RESERVE_MMAP_SIZE; + int xflags = 0; + if (total < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else +@@ -614,7 +614,7 @@ open_archive (struct locarhandle *ah, bo + int xflags = 0; + void *p; + if (st.st_size < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else +@@ -649,7 +649,7 @@ close_archive (struct locarhandle *ah) + #include "../../intl/explodename.c" + #include "../../intl/l10nflist.c" + +-static struct namehashent * ++struct namehashent * + insert_name (struct locarhandle *ah, + const char *name, size_t name_len, bool replace) + { +@@ -707,7 +707,7 @@ insert_name (struct locarhandle *ah, + return &namehashtab[idx]; + } + +-static void ++void + add_alias (struct locarhandle *ah, const char *alias, bool replace, + const char *oldname, uint32_t *locrec_offset_p) + { +--- glibc-2.12-2-gc4ccff1/localedata/Makefile ++++ glibc-2.12-1/localedata/Makefile +@@ -227,6 +227,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo + echo -n '...'; \ + input=`echo $$locale | sed 's/([^.]*)[^@]*(.*)/\1\2/'`; \ + $(LOCALEDEF) --alias-file=../intl/locale.alias \ ++ --no-archive \ + -i locales/$$input -c -f charmaps/$$charset \ + $(addprefix --prefix=,$(install_root)) $$locale; \ + echo ' done'; \ +--- glibc-2.12-2-gc4ccff1/localedata/SUPPORTED ++++ glibc-2.12-1/localedata/SUPPORTED +@@ -85,6 +85,7 @@ cy_GB.UTF-8/UTF-8 \ + cy_GB/ISO-8859-14 \ + da_DK.UTF-8/UTF-8 \ + da_DK/ISO-8859-1 \ ++da_DK.ISO-8859-15/ISO-8859-15 \ + de_AT.UTF-8/UTF-8 \ + de_AT/ISO-8859-1 \ + de_AT@euro/ISO-8859-15 \ +@@ -116,6 +117,7 @@ en_DK.UTF-8/UTF-8 \ + en_DK/ISO-8859-1 \ + en_GB.UTF-8/UTF-8 \ + en_GB/ISO-8859-1 \ ++en_GB.ISO-8859-15/ISO-8859-15 \ + en_HK.UTF-8/UTF-8 \ + en_HK/ISO-8859-1 \ + en_IE.UTF-8/UTF-8 \ +@@ -131,6 +133,7 @@ en_SG.UTF-8/UTF-8 \ + en_SG/ISO-8859-1 \ + en_US.UTF-8/UTF-8 \ + en_US/ISO-8859-1 \ ++en_US.ISO-8859-15/ISO-8859-15 \ + en_ZA.UTF-8/UTF-8 \ + en_ZA/ISO-8859-1 \ + en_ZW.UTF-8/UTF-8 \ +@@ -307,6 +310,8 @@ nl_NL/ISO-8859-1 \ + nl_NL@euro/ISO-8859-15 \ + nn_NO.UTF-8/UTF-8 \ + nn_NO/ISO-8859-1 \ ++no_NO.UTF-8/UTF-8 \ ++no_NO/ISO-8859-1 \ + nr_ZA/UTF-8 \ + nso_ZA/UTF-8 \ + oc_FR.UTF-8/UTF-8 \ +@@ -367,6 +372,7 @@ sv_FI/ISO-8859-1 \ + sv_FI@euro/ISO-8859-15 \ + sv_SE.UTF-8/UTF-8 \ + sv_SE/ISO-8859-1 \ ++sv_SE.ISO-8859-15/ISO-8859-15 \ + ta_IN/UTF-8 \ + te_IN/UTF-8 \ + tg_TJ.UTF-8/UTF-8 \ +--- glibc-2.12-2-gc4ccff1/localedata/locales/cy_GB ++++ glibc-2.12-1/localedata/locales/cy_GB +@@ -248,8 +248,11 @@ mon "<U0049><U006F><U006E><U0061 + d_t_fmt "<U0044><U0079><U0064><U0064><U0020><U0025><U0041><U0020><U0025><U0064><U0020><U006d><U0069><U0073><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0079>" + t_fmt "<U0025><U0054>" +-am_pm "";"" +-t_fmt_ampm "" ++am_pm "<U0041><U004D>";"<U0050><U004D>" ++t_fmt_ampm "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>" ++date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/ ++<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/ ++<U0025><U005A><U0020><U0025><U0059>" + END LC_TIME + + LC_MESSAGES +--- glibc-2.12-2-gc4ccff1/localedata/locales/en_GB ++++ glibc-2.12-1/localedata/locales/en_GB +@@ -116,8 +116,8 @@ mon "<U004A><U0061><U006E><U0075 + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +-am_pm "";"" +-t_fmt_ampm "" ++am_pm "<U0041><U004D>";"<U0050><U004D>" ++t_fmt_ampm "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>" + date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/ + <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/ + <U0025><U005A><U0020><U0025><U0059>" +--- glibc-2.12-2-gc4ccff1/localedata/locales/no_NO ++++ glibc-2.12-1/localedata/locales/no_NO +@@ -0,0 +1,69 @@ ++escape_char / ++comment_char % ++ ++% Norwegian language locale for Norway ++% Source: Norsk Standardiseringsforbund ++% Address: University Library, ++% Drammensveien 41, N-9242 Oslo, Norge ++% Contact: Kolbjoern Aamboe ++% Tel: +47 - 22859109 ++% Fax: +47 - 22434497 ++% Email: kolbjorn.aambo@usit.uio.no ++% Language: no ++% Territory: NO ++% Revision: 4.3 ++% Date: 1996-10-15 ++% Application: general ++% Users: general ++% Repertoiremap: mnemonic.ds ++% Charset: ISO-8859-1 ++% Distribution and use is free, also ++% for commercial purposes. ++ ++LC_IDENTIFICATION ++copy "nb_NO" ++END LC_IDENTIFICATION ++ ++LC_COLLATE ++copy "nb_NO" ++END LC_COLLATE ++ ++LC_CTYPE ++copy "nb_NO" ++END LC_CTYPE ++ ++LC_MONETARY ++copy "nb_NO" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "nb_NO" ++END LC_NUMERIC ++ ++LC_TIME ++copy "nb_NO" ++END LC_TIME ++ ++LC_MESSAGES ++copy "nb_NO" ++END LC_MESSAGES ++ ++LC_PAPER ++copy "nb_NO" ++END LC_PAPER ++ ++LC_TELEPHONE ++copy "nb_NO" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++copy "nb_NO" ++END LC_MEASUREMENT ++ ++LC_NAME ++copy "nb_NO" ++END LC_NAME ++ ++LC_ADDRESS ++copy "nb_NO" ++END LC_ADDRESS +--- glibc-2.12-2-gc4ccff1/localedata/locales/zh_TW ++++ glibc-2.12-1/localedata/locales/zh_TW +@@ -1,7 +1,7 @@ + comment_char % + escape_char / + % +-% Chinese language locale for Taiwan R.O.C. ++% Chinese language locale for Taiwan + % charmap: BIG5-CP950 + % + % Original Author: +@@ -17,7 +17,7 @@ escape_char / + % Reference: http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf + + LC_IDENTIFICATION +-title "Chinese locale for Taiwan R.O.C." ++title "Chinese locale for Taiwan" + source "" + address "" + contact "" +@@ -25,7 +25,7 @@ email "bug-glibc-locales@gnu.org" + tel "" + fax "" + language "Chinese" +-territory "Taiwan R.O.C." ++territory "Taiwan" + revision "0.2" + date "2000-08-02" + % +--- glibc-2.12-2-gc4ccff1/malloc/mcheck.c ++++ glibc-2.12-1/malloc/mcheck.c +@@ -24,9 +24,25 @@ + # include <mcheck.h> + # include <stdint.h> + # include <stdio.h> ++# include <stdlib.h> + # include <libintl.h> + #endif + ++#ifdef _LIBC ++extern __typeof (malloc) __libc_malloc; ++extern __typeof (free) __libc_free; ++extern __typeof (realloc) __libc_realloc; ++libc_hidden_proto (__libc_malloc) ++libc_hidden_proto (__libc_realloc) ++libc_hidden_proto (__libc_free) ++libc_hidden_proto (__libc_memalign) ++#else ++# define __libc_malloc(sz) malloc (sz) ++# define __libc_free(ptr) free (ptr) ++# define __libc_realloc(ptr, sz) realloc (ptr, sz) ++# define __libc_memalign(al, sz) memalign (al, sz) ++#endif ++ + /* Old hook values. */ + static void (*old_free_hook) (__ptr_t ptr, __const __ptr_t); + static __ptr_t (*old_malloc_hook) (__malloc_size_t size, const __ptr_t); +@@ -197,7 +213,7 @@ freehook (__ptr_t ptr, const __ptr_t cal + if (old_free_hook != NULL) + (*old_free_hook) (ptr, caller); + else +- free (ptr); ++ __libc_free (ptr); + __free_hook = freehook; + } + +@@ -214,7 +230,7 @@ mallochook (__malloc_size_t size, const + hdr = (struct hdr *) (*old_malloc_hook) (sizeof (struct hdr) + size + 1, + caller); + else +- hdr = (struct hdr *) malloc (sizeof (struct hdr) + size + 1); ++ hdr = (struct hdr *) __libc_malloc (sizeof (struct hdr) + size + 1); + __malloc_hook = mallochook; + if (hdr == NULL) + return NULL; +@@ -245,7 +261,7 @@ memalignhook (__malloc_size_t alignment, + if (old_memalign_hook != NULL) + block = (*old_memalign_hook) (alignment, slop + size + 1, caller); + else +- block = memalign (alignment, slop + size + 1); ++ block = __libc_memalign (alignment, slop + size + 1); + __memalign_hook = memalignhook; + if (block == NULL) + return NULL; +@@ -300,8 +316,8 @@ reallochook (__ptr_t ptr, __malloc_size_ + sizeof (struct hdr) + size + 1, + caller); + else +- hdr = (struct hdr *) realloc ((__ptr_t) hdr, +- sizeof (struct hdr) + size + 1); ++ hdr = (struct hdr *) __libc_realloc ((__ptr_t) hdr, ++ sizeof (struct hdr) + size + 1); + __free_hook = freehook; + __malloc_hook = mallochook; + __memalign_hook = memalignhook; +@@ -361,8 +377,8 @@ mcheck (func) + if (__malloc_initialized <= 0 && !mcheck_used) + { + /* We call malloc() once here to ensure it is initialized. */ +- void *p = malloc (0); +- free (p); ++ void *p = __libc_malloc (0); ++ __libc_free (p); + + old_free_hook = __free_hook; + __free_hook = freehook; +--- glibc-2.12-2-gc4ccff1/manual/libc.texinfo ++++ glibc-2.12-1/manual/libc.texinfo +@@ -5,7 +5,7 @@ + @c setchapternewpage odd + + @comment Tell install-info what to do. +-@dircategory Software libraries ++@dircategory Libraries + @direntry + * Libc: (libc). C library. + @end direntry +--- glibc-2.12-2-gc4ccff1/misc/sys/cdefs.h ++++ glibc-2.12-1/misc/sys/cdefs.h +@@ -132,7 +132,10 @@ + #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) + #define __bos0(ptr) __builtin_object_size (ptr, 0) + +-#if __GNUC_PREREQ (4,3) ++#if __GNUC_PREREQ (4,3) \ ++ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ ++ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ ++ && __GNUC_RH_RELEASE__ >= 31) + # define __warndecl(name, msg) \ + extern void name (void) __attribute__((__warning__ (msg))) + # define __warnattr(msg) __attribute__((__warning__ (msg))) +@@ -291,10 +294,16 @@ + + /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. */ +-#if !defined __cplusplus || __GNUC_PREREQ (4,3) ++#if !defined __cplusplus || __GNUC_PREREQ (4,3) \ ++ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ ++ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ ++ && __GNUC_RH_RELEASE__ >= 31) + # if defined __GNUC_STDC_INLINE__ || defined __cplusplus + # define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) +-# if __GNUC_PREREQ (4,3) ++# if __GNUC_PREREQ (4,3) \ ++ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ ++ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ ++ && __GNUC_RH_RELEASE__ >= 31) + # define __extern_always_inline \ + extern __always_inline __attribute__ ((__gnu_inline__, __artificial__)) + # else +@@ -314,7 +323,10 @@ + + /* GCC 4.3 and above allow passing all anonymous arguments of an + __extern_always_inline function to some other vararg function. */ +-#if __GNUC_PREREQ (4,3) ++#if __GNUC_PREREQ (4,3) \ ++ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ ++ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ ++ && __GNUC_RH_RELEASE__ >= 31) + # define __va_arg_pack() __builtin_va_arg_pack () + # define __va_arg_pack_len() __builtin_va_arg_pack_len () + #endif +--- glibc-2.12-2-gc4ccff1/nis/nss ++++ glibc-2.12-1/nis/nss +@@ -25,7 +25,7 @@ + # memory with every getXXent() call. Otherwise each getXXent() call + # might result into a network communication with the server to get + # the next entry. +-#SETENT_BATCH_READ=TRUE ++SETENT_BATCH_READ=TRUE + # + # ADJUNCT_AS_SHADOW + # If set to TRUE, the passwd routines in the NIS NSS module will not +--- glibc-2.12-2-gc4ccff1/nptl/ChangeLog ++++ glibc-2.12-1/nptl/ChangeLog +@@ -3884,6 +3884,15 @@ + Use __sigfillset. Document that sigfillset does the right thing wrt + to SIGSETXID. + ++2005-08-08 Jakub Jelinek jakub@redhat.com ++ ++ * tst-stackguard1.c (do_test): Likewise. ++ ++2005-07-29 Jakub Jelinek jakub@redhat.com ++ ++ * tst-stackguard1.c (do_test): Don't fail if the poor man's ++ randomization doesn't work well enough. ++ + 2005-07-11 Jakub Jelinek jakub@redhat.com + + [BZ #1102] +@@ -4620,6 +4629,11 @@ + Move definition inside libpthread, libc, librt check. Provide + definition for rtld. + ++2004-09-02 Jakub Jelinek jakub@redhat.com ++ ++ * pthread_cond_destroy.c (__pthread_cond_destroy): If there are ++ waiters, awake all waiters on the associated mutex. ++ + 2004-09-02 Ulrich Drepper drepper@redhat.com + + * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp. +@@ -6694,6 +6708,11 @@ + + * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules). + ++2003-07-22 Jakub Jelinek jakub@redhat.com ++ ++ * descr.h: Don't include lowlevellock.h, pthreaddef.h and dl-sysdep.h ++ if __need_struct_pthread_size, instead define lll_lock_t. ++ + 2003-07-25 Jakub Jelinek jakub@redhat.com + + * tst-cancel17.c (do_test): Check if aio_cancel failed. +--- glibc-2.12-2-gc4ccff1/nptl/Makefile ++++ glibc-2.12-1/nptl/Makefile +@@ -341,7 +341,8 @@ endif + extra-objs += $(crti-objs) $(crtn-objs) + omit-deps += crti crtn + +-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) ++CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \ ++ -fno-asynchronous-unwind-tables + endif + + CFLAGS-flockfile.c = -D_IO_MTSAFE_IO +@@ -527,15 +528,19 @@ $(addprefix $(objpfx), \ + $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \ + $(objpfx)libpthread_nonshared.a + $(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so +-# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so, ++# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so, + # since otherwise libpthread.so comes before libc.so when linking. + $(addprefix $(objpfx), $(tests-reverse)): \ +- $(objpfx)../libc.so $(objpfx)libpthread.so \ ++ $(objpfx)linklibc.so $(objpfx)libpthread.so \ + $(objpfx)libpthread_nonshared.a + $(objpfx)../libc.so: $(common-objpfx)libc.so ; + $(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(objpfx)libpthread.a + + $(objpfx)tst-atfork2.out: $(objpfx)tst-atfork2mod.so ++ ++$(objpfx)linklibc.so: $(common-objpfx)libc.so ++ ln -s ../libc.so $@ ++generated += libclink.so + else + $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a + endif +--- glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h ++++ glibc-2.12-1/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h +@@ -189,4 +189,7 @@ + /* Typed memory objects are not available. */ + #define _POSIX_TYPED_MEMORY_OBJECTS -1 + ++/* Streams are not available. */ ++#define _XOPEN_STREAMS -1 ++ + #endif /* bits/posix_opt.h */ +--- glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/kernel-features.h ++++ glibc-2.12-1/nptl/sysdeps/unix/sysv/linux/kernel-features.h +@@ -0,0 +1,6 @@ ++#include_next <kernel-features.h> ++ ++/* NPTL can always assume all clone thread flags work. */ ++#ifndef __ASSUME_CLONE_THREAD_FLAGS ++# define __ASSUME_CLONE_THREAD_FLAGS 1 ++#endif +--- glibc-2.12-2-gc4ccff1/nptl/tst-stackguard1.c ++++ glibc-2.12-1/nptl/tst-stackguard1.c +@@ -190,17 +190,21 @@ do_test (void) + the 16 runs, something is very wrong. */ + int ndifferences = 0; + int ndefaults = 0; ++ int npartlyrandomized = 0; + for (i = 0; i < N; ++i) + { + if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1]) + ndifferences++; + else if (child_stack_chk_guards[i] == default_guard) + ndefaults++; ++ else if (*(char *) &child_stack_chk_guards[i] == 0) ++ npartlyrandomized++; + } + +- printf ("differences %d defaults %d\n", ndifferences, ndefaults); ++ printf ("differences %d defaults %d partly randomized %d\n", ++ ndifferences, ndefaults, npartlyrandomized); + +- if (ndifferences < N / 2 && ndefaults < N / 2) ++ if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4) + { + puts ("stack guard canaries are not randomized enough"); + puts ("nor equal to the default canary value"); +--- glibc-2.12-2-gc4ccff1/nscd/nscd.conf ++++ glibc-2.12-1/nscd/nscd.conf +@@ -33,7 +33,7 @@ + # logfile /var/log/nscd.log + # threads 4 + # max-threads 32 +-# server-user nobody ++ server-user nscd + # stat-user somebody + debug-level 0 + # reload-count 5 +--- glibc-2.12-2-gc4ccff1/nscd/nscd.init ++++ glibc-2.12-1/nscd/nscd.init +@@ -9,6 +9,7 @@ + # slow naming services like NIS, NIS+, LDAP, or hesiod. + # processname: /usr/sbin/nscd + # config: /etc/nscd.conf ++# config: /etc/sysconfig/nscd + # + ### BEGIN INIT INFO + # Provides: nscd +@@ -28,20 +29,8 @@ + # Source function library. + . /etc/init.d/functions + +-# nscd does not run on any kernel lower than 2.2.0 because of threading +-# problems, so we require that in first place. +-case $(uname -r) in +- 2.[2-9].*) +- # this is okay +- ;; +- [3-9]*) +- # these are of course also okay +- ;; +- *) +- #this is not +- exit 1 +- ;; +-esac ++# Source an auxiliary options file if we have one, and pick up NSCD_OPTIONS. ++[ -r /etc/sysconfig/nscd ] && . /etc/sysconfig/nscd + + RETVAL=0 + prog=nscd +@@ -50,7 +39,7 @@ start () { + [ -d /var/run/nscd ] || mkdir /var/run/nscd + [ -d /var/db/nscd ] || mkdir /var/db/nscd + echo -n $"Starting $prog: " +- daemon /usr/sbin/nscd ++ daemon /usr/sbin/nscd $NSCD_OPTIONS + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd +@@ -83,7 +72,7 @@ restart() { + # See how we were called. + case "$1" in + start) +- start ++ [ -e /var/lock/subsys/nscd ] || start + RETVAL=$? + ;; + stop) +@@ -99,14 +88,17 @@ case "$1" in + RETVAL=$? + ;; + try-restart | condrestart) +- [ -e /var/lock/subsys/nscd ] && restart ++ [ ! -e /var/lock/subsys/nscd ] || restart + RETVAL=$? + ;; + force-reload | reload) + echo -n $"Reloading $prog: " +- killproc /usr/sbin/nscd -HUP +- RETVAL=$? +- echo ++ RETVAL=0 ++ /usr/sbin/nscd -i passwd || RETVAL=$? ++ /usr/sbin/nscd -i group || RETVAL=$? ++ /usr/sbin/nscd -i hosts || RETVAL=$? ++ /usr/sbin/nscd -i services || RETVAL=$? ++ echo + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" +--- glibc-2.12-2-gc4ccff1/posix/Makefile ++++ glibc-2.12-1/posix/Makefile +@@ -305,15 +305,8 @@ $(inst_libexecdir)/getconf: $(inst_bindi + mv -f $@/$$spec.new $@/$$spec; \ + done < $(objpfx)getconf.speclist + +-$(objpfx)getconf.speclist: $(objpfx)getconf +-ifeq (no,$(cross-compiling)) +- LC_ALL=C GETCONF_DIR=/dev/null \ +- $(run-program-prefix) $< _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new +- LC_ALL=C GETCONF_DIR=/dev/null \ +- $(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS >> $@.new +- LC_ALL=C GETCONF_DIR=/dev/null \ +- $(run-program-prefix) $< _XBS5_WIDTH_RESTRICTED_ENVS >> $@.new +-else +- > $@.new +-endif ++$(objpfx)getconf.speclist: getconf.speclist.h ++ $(CC) -E $(CFLAGS) $(CPPFLAGS) $< \ ++ | sed -n -e '/START_OF_STRINGS/,$${/(POSIX_V[67]|_XBS5)_/{s/^[^"]*"//;s/".*$$//;p}}' \ ++ > $@.new + mv -f $@.new $@ +--- glibc-2.12-2-gc4ccff1/posix/gai.conf ++++ glibc-2.12-1/posix/gai.conf +@@ -41,7 +41,7 @@ + # + # precedence <mask> <value> + # Add another rule to the RFC 3484 precedence table. See section 2.1 +-# and 10.3 in RFC 3484. The default is: ++# and 10.3 in RFC 3484. The RFC requires: + # + #precedence ::1/128 50 + #precedence ::/0 40 +@@ -58,7 +58,7 @@ + # Add another rule to the RFC 3484 scope table for IPv4 addresses. + # By default the scope IDs described in section 3.2 in RFC 3484 are + # used. Changing these defaults should hardly ever be necessary. +-# The defaults are equivalent to: ++# The definitions in RFC 1918 are equivalent to: + # + #scopev4 ::ffff:169.254.0.0/112 2 + #scopev4 ::ffff:127.0.0.0/104 2 +@@ -75,3 +75,5 @@ + #scopev4 ::ffff:169.254.0.0/112 2 + #scopev4 ::ffff:127.0.0.0/104 2 + #scopev4 ::ffff:0.0.0.0/96 14 ++# ++# This is what the Red Hat setting currently uses. +--- glibc-2.12-2-gc4ccff1/posix/getconf.speclist.h ++++ glibc-2.12-1/posix/getconf.speclist.h +@@ -0,0 +1,39 @@ ++#include <unistd.h> ++const char *START_OF_STRINGS = ++#if _POSIX_V7_ILP32_OFF32 == 1 ++"POSIX_V7_ILP32_OFF32" ++#endif ++#if _POSIX_V7_ILP32_OFFBIG == 1 ++"POSIX_V7_ILP32_OFFBIG" ++#endif ++#if _POSIX_V7_LP64_OFF64 == 1 ++"POSIX_V7_LP64_OFF64" ++#endif ++#if _POSIX_V7_LPBIG_OFFBIG == 1 ++"POSIX_V7_LPBIG_OFFBIG" ++#endif ++#if _POSIX_V6_ILP32_OFF32 == 1 ++"POSIX_V6_ILP32_OFF32" ++#endif ++#if _POSIX_V6_ILP32_OFFBIG == 1 ++"POSIX_V6_ILP32_OFFBIG" ++#endif ++#if _POSIX_V6_LP64_OFF64 == 1 ++"POSIX_V6_LP64_OFF64" ++#endif ++#if _POSIX_V6_LPBIG_OFFBIG == 1 ++"POSIX_V6_LPBIG_OFFBIG" ++#endif ++#if _XBS5_ILP32_OFF32 == 1 ++"XBS5_ILP32_OFF32" ++#endif ++#if _XBS5_ILP32_OFFBIG == 1 ++"XBS5_ILP32_OFFBIG" ++#endif ++#if _XBS5_LP64_OFF64 == 1 ++"XBS5_LP64_OFF64" ++#endif ++#if _XBS5_LPBIG_OFFBIG == 1 ++"XBS5_LPBIG_OFFBIG" ++#endif ++""; +--- glibc-2.12-2-gc4ccff1/streams/Makefile ++++ glibc-2.12-1/streams/Makefile +@@ -21,7 +21,7 @@ + # + subdir := streams + +-headers = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h ++#headers = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h + routines = isastream getmsg getpmsg putmsg putpmsg fattach fdetach + + include ../Rules +--- glibc-2.12-2-gc4ccff1/sysdeps/generic/dl-cache.h ++++ glibc-2.12-1/sysdeps/generic/dl-cache.h +@@ -36,6 +36,14 @@ + # define add_system_dir(dir) add_dir (dir) + #endif + ++#ifndef arch_startup ++# define arch_startup(argc, argv) do { } while (0) ++#endif ++ ++#ifndef add_arch_dirs ++# define add_arch_dirs(config_file) do { } while (0) ++#endif ++ + #define CACHEMAGIC "ld.so-1.7.0" + + /* libc5 and glibc 2.0/2.1 use the same format. For glibc 2.2 another +--- glibc-2.12-2-gc4ccff1/sysdeps/i386/Makefile ++++ glibc-2.12-1/sysdeps/i386/Makefile +@@ -2,6 +2,8 @@ + # Every i386 port in use uses gas syntax (I think). + asm-CPPFLAGS += -DGAS_SYNTAX + ++sysdep-ASFLAGS += -U__i686 ++ + # The i386 `long double' is a distinct type we support. + long-double-fcts = yes + +@@ -64,6 +66,14 @@ endif + + ifneq (,$(filter -mno-tls-direct-seg-refs,$(CFLAGS))) + defines += -DNO_TLS_DIRECT_SEG_REFS ++else ++# .a libraries are not performance critical and so we ++# build them without direct TLS segment references ++# always. ++CPPFLAGS-.o += -DNO_TLS_DIRECT_SEG_REFS ++CFLAGS-.o += -mno-tls-direct-seg-refs ++CPPFLAGS-.oS += -DNO_TLS_DIRECT_SEG_REFS ++CFLAGS-.oS += -mno-tls-direct-seg-refs + endif + + ifeq ($(subdir),elf) +--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/Makefile ++++ glibc-2.12-1/sysdeps/ia64/Makefile +@@ -12,8 +12,8 @@ elide-routines.os += hp-timing + + ifeq (yes,$(build-shared)) + # Compatibility +-sysdep_routines += ia64libgcc +-shared-only-routines += ia64libgcc ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat + endif + endif + +--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/ia64libgcc.S ++++ glibc-2.12-1/sysdeps/ia64/ia64libgcc.S +@@ -1,350 +0,0 @@ +-/* From the Intel IA-64 Optimization Guide, choose the minimum latency +- alternative. */ +- +-#include <sysdep.h> +-#undef ret +- +-#include <shlib-compat.h> +- +-#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6) +- +-/* __divtf3 +- Compute a 80-bit IEEE double-extended quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divtf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fnma.s1 f11 = farg1, f10, f1 +-(p6) fma.s1 f12 = farg0, f10, f0 +- ;; +-(p6) fma.s1 f13 = f11, f11, f0 +-(p6) fma.s1 f14 = f11, f11, f11 +- ;; +-(p6) fma.s1 f11 = f13, f13, f11 +-(p6) fma.s1 f13 = f14, f10, f10 +- ;; +-(p6) fma.s1 f10 = f13, f11, f10 +-(p6) fnma.s1 f11 = farg1, f12, farg0 +- ;; +-(p6) fma.s1 f11 = f11, f10, f12 +-(p6) fnma.s1 f12 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f10 = f12, f10, f10 +-(p6) fnma.s1 f12 = farg1, f11, farg0 +- ;; +-(p6) fma.s0 fret0 = f12, f10, f11 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +-END(___divtf3) +- .symver ___divtf3, __divtf3@GLIBC_2.2 +- +-/* __divdf3 +- Compute a 64-bit IEEE double quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divdf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fmpy.s1 f11 = farg0, f10 +-(p6) fnma.s1 f12 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f11 = f12, f11, f11 +-(p6) fmpy.s1 f13 = f12, f12 +- ;; +-(p6) fma.s1 f10 = f12, f10, f10 +-(p6) fma.s1 f11 = f13, f11, f11 +- ;; +-(p6) fmpy.s1 f12 = f13, f13 +-(p6) fma.s1 f10 = f13, f10, f10 +- ;; +-(p6) fma.d.s1 f11 = f12, f11, f11 +-(p6) fma.s1 f10 = f12, f10, f10 +- ;; +-(p6) fnma.d.s1 f8 = farg1, f11, farg0 +- ;; +-(p6) fma.d fret0 = f8, f10, f11 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divdf3) +- .symver ___divdf3, __divdf3@GLIBC_2.2 +- +-/* __divsf3 +- Compute a 32-bit IEEE float quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divsf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fmpy.s1 f8 = farg0, f10 +-(p6) fnma.s1 f9 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f8 = f9, f8, f8 +-(p6) fmpy.s1 f9 = f9, f9 +- ;; +-(p6) fma.s1 f8 = f9, f8, f8 +-(p6) fmpy.s1 f9 = f9, f9 +- ;; +-(p6) fma.d.s1 f10 = f9, f8, f8 +- ;; +-(p6) fnorm.s.s0 fret0 = f10 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divsf3) +- .symver ___divsf3, __divsf3@GLIBC_2.2 +- +-/* __divdi3 +- Compute a 64-bit integer quotient. +- in0 holds the dividend. in1 holds the divisor. */ +- +-ENTRY(___divdi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f8 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, so that they won't be treated as +- unsigned. */ +- fcvt.xf f8 = f8 +- fcvt.xf f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fnma.s1 f11 = f9, f10, f1 +-(p6) fmpy.s1 f12 = f8, f10 +- ;; +-(p6) fmpy.s1 f13 = f11, f11 +-(p6) fma.s1 f12 = f11, f12, f12 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an integer. */ +- fcvt.fx.trunc.s1 f10 = f10 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divdi3) +- .symver ___divdi3, __divdi3@GLIBC_2.2 +- +-/* __moddi3 +- Compute a 64-bit integer modulus. +- in0 holds the dividend (a). in1 holds the divisor (b). */ +- +-ENTRY(___moddi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f14 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, so that they won't be treated as +- unsigned. */ +- fcvt.xf f8 = f14 +- fcvt.xf f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fmpy.s1 f12 = f8, f10 +-(p6) fnma.s1 f11 = f9, f10, f1 +- ;; +-(p6) fma.s1 f12 = f11, f12, f12 +-(p6) fmpy.s1 f13 = f11, f11 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +- sub in1 = r0, in1 +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +- setf.sig f9 = in1 +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- fcvt.fx.trunc.s1 f10 = f10 +- ;; +- /* r = q * (-b) + a */ +- xma.l f10 = f10, f9, f14 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___moddi3) +- .symver ___moddi3, __moddi3@GLIBC_2.2 +- +-/* __udivdi3 +- Compute a 64-bit unsigned integer quotient. +- in0 holds the dividend. in1 holds the divisor. */ +- +-ENTRY(___udivdi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f8 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, to avoid FP software-assist faults. */ +- fcvt.xuf.s1 f8 = f8 +- fcvt.xuf.s1 f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fnma.s1 f11 = f9, f10, f1 +-(p6) fmpy.s1 f12 = f8, f10 +- ;; +-(p6) fmpy.s1 f13 = f11, f11 +-(p6) fma.s1 f12 = f11, f12, f12 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an unsigned integer. */ +- fcvt.fxu.trunc.s1 f10 = f10 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___udivdi3) +- .symver ___udivdi3, __udivdi3@GLIBC_2.2 +- +-/* __umoddi3 +- Compute a 64-bit unsigned integer modulus. +- in0 holds the dividend (a). in1 holds the divisor (b). */ +- +-ENTRY(___umoddi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f14 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, to avoid FP software assist faults. */ +- fcvt.xuf.s1 f8 = f14 +- fcvt.xuf.s1 f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fmpy.s1 f12 = f8, f10 +-(p6) fnma.s1 f11 = f9, f10, f1 +- ;; +-(p6) fma.s1 f12 = f11, f12, f12 +-(p6) fmpy.s1 f13 = f11, f11 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +- sub in1 = r0, in1 +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +- setf.sig f9 = in1 +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an unsigned integer. */ +- fcvt.fxu.trunc.s1 f10 = f10 +- ;; +- /* r = q * (-b) + a */ +- xma.l f10 = f10, f9, f14 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___umoddi3) +- .symver ___umoddi3, __umoddi3@GLIBC_2.2 +- +-/* __multi3 +- Compute a 128-bit multiply of 128-bit multiplicands. +- in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b). */ +- +-ENTRY(___multi3) +- .regstk 4,0,0,0 +- setf.sig f6 = in1 +- movl r19 = 0xffffffff +- setf.sig f7 = in2 +- ;; +- and r14 = r19, in0 +- ;; +- setf.sig f10 = r14 +- and r14 = r19, in2 +- xmpy.l f9 = f6, f7 +- ;; +- setf.sig f6 = r14 +- shr.u r14 = in0, 32 +- ;; +- setf.sig f7 = r14 +- shr.u r14 = in2, 32 +- ;; +- setf.sig f8 = r14 +- xmpy.l f11 = f10, f6 +- xmpy.l f6 = f7, f6 +- ;; +- getf.sig r16 = f11 +- xmpy.l f7 = f7, f8 +- ;; +- shr.u r14 = r16, 32 +- and r16 = r19, r16 +- getf.sig r17 = f6 +- setf.sig f6 = in0 +- ;; +- setf.sig f11 = r14 +- getf.sig r21 = f7 +- setf.sig f7 = in3 +- ;; +- xma.l f11 = f10, f8, f11 +- xma.l f6 = f6, f7, f9 +- ;; +- getf.sig r18 = f11 +- ;; +- add r18 = r18, r17 +- ;; +- and r15 = r19, r18 +- cmp.ltu p7, p6 = r18, r17 +- ;; +- getf.sig r22 = f6 +-(p7) adds r14 = 1, r19 +- ;; +-(p7) add r21 = r21, r14 +- shr.u r14 = r18, 32 +- shl r15 = r15, 32 +- ;; +- add r20 = r21, r14 +- ;; +- add ret0 = r15, r16 +- add ret1 = r22, r20 +- br.ret.sptk rp +- ;; +-END(___multi3) +- .symver ___multi3, __multi3@GLIBC_2.2 +- +-#endif +--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/libgcc-compat.c ++++ glibc-2.12-1/sysdeps/ia64/libgcc-compat.c +@@ -0,0 +1,84 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++#include <stdint.h> ++#include <shlib-compat.h> ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6) ++ ++typedef int int128_t __attribute__((__mode__(TI))); ++ ++extern long double __divtf3 (long double, long double) attribute_hidden; ++long double INTUSE (__divtf3) (long double x, long double y) ++{ ++ return __divtf3 (x, y); ++} ++symbol_version (INTUSE (__divtf3), __divtf3, GLIBC_2.2); ++ ++extern double __divdf3 (double, double) attribute_hidden; ++double INTUSE (__divdf3) (double x, double y) ++{ ++ return __divdf3 (x, y); ++} ++symbol_version (INTUSE (__divdf3), __divdf3, GLIBC_2.2); ++ ++extern float __divsf3 (float, float) attribute_hidden; ++float INTUSE (__divsf3) (float x, float y) ++{ ++ return __divsf3 (x, y); ++} ++symbol_version (INTUSE (__divsf3), __divsf3, GLIBC_2.2); ++ ++extern int64_t __divdi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__divdi3) (int64_t x, int64_t y) ++{ ++ return __divdi3 (x, y); ++} ++symbol_version (INTUSE (__divdi3), __divdi3, GLIBC_2.2); ++ ++extern int64_t __moddi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__moddi3) (int64_t x, int64_t y) ++{ ++ return __moddi3 (x, y); ++} ++symbol_version (INTUSE (__moddi3), __moddi3, GLIBC_2.2); ++ ++extern uint64_t __udivdi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__udivdi3) (uint64_t x, uint64_t y) ++{ ++ return __udivdi3 (x, y); ++} ++symbol_version (INTUSE (__udivdi3), __udivdi3, GLIBC_2.2); ++ ++extern uint64_t __umoddi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__umoddi3) (uint64_t x, uint64_t y) ++{ ++ return __umoddi3 (x, y); ++} ++symbol_version (INTUSE (__umoddi3), __umoddi3, GLIBC_2.2); ++ ++extern int128_t __multi3 (int128_t, int128_t) attribute_hidden; ++int128_t INTUSE (__multi3) (int128_t x, int128_t y) ++{ ++ return __multi3 (x, y); ++} ++symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2); ++ ++#endif +--- glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c ++++ glibc-2.12-1/sysdeps/posix/getaddrinfo.c +@@ -1099,10 +1099,12 @@ static const struct scopeentry + /* Link-local addresses: scope 2. */ + { { { 169, 254, 0, 0 } }, htonl_c (0xffff0000), 2 }, + { { { 127, 0, 0, 0 } }, htonl_c (0xff000000), 2 }, ++#if 0 + /* Site-local addresses: scope 5. */ + { { { 10, 0, 0, 0 } }, htonl_c (0xff000000), 5 }, + { { { 172, 16, 0, 0 } }, htonl_c (0xfff00000), 5 }, + { { { 192, 168, 0, 0 } }, htonl_c (0xffff0000), 5 }, ++#endif + /* Default: scope 14. */ + { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 } + }; +--- glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/Makefile ++++ glibc-2.12-1/sysdeps/powerpc/powerpc64/Makefile +@@ -30,6 +30,7 @@ ifneq ($(elf),no) + # we use -fpic instead which is much better. + CFLAGS-initfini.s += -fpic -O1 + endif ++CFLAGS-libc-start.c += -fno-asynchronous-unwind-tables + endif + + ifeq ($(subdir),elf) +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/nice.c ++++ glibc-2.12-1/sysdeps/unix/nice.c +@@ -42,7 +42,12 @@ nice (int incr) + __set_errno (save); + } + +- result = setpriority (PRIO_PROCESS, 0, prio + incr); ++ prio += incr; ++ if (prio < PRIO_MIN) ++ prio = PRIO_MIN; ++ else if (prio >= PRIO_MAX) ++ prio = PRIO_MAX - 1; ++ result = setpriority (PRIO_PROCESS, 0, prio); + if (result == -1) + { + if (errno == EACCES) +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/check_pf.c ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/check_pf.c +@@ -27,13 +27,10 @@ + #include <unistd.h> + #include <sys/socket.h> + +-#include <asm/types.h> +-#include <linux/netlink.h> +-#include <linux/rtnetlink.h> +- + #include <not-cancel.h> + #include <kernel-features.h> + ++#include "netlinkaccess.h" + + #ifndef IFA_F_HOMEADDRESS + # define IFA_F_HOMEADDRESS 0 +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/dl-osinfo.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/dl-osinfo.h +@@ -17,10 +17,13 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++#include <errno.h> + #include <kernel-features.h> + #include <dl-sysdep.h> + #include <fcntl.h> + #include <stdint.h> ++#include <hp-timing.h> ++#include <endian.h> + + #ifndef MIN + # define MIN(a,b) (((a)<(b))?(a):(b)) +@@ -80,6 +83,32 @@ _dl_setup_stack_chk_guard (void *dl_rand + unsigned char *p = (unsigned char *) &ret; + p[sizeof (ret) - 1] = 255; + p[sizeof (ret) - 2] = '\n'; ++#ifdef HP_TIMING_NOW ++ hp_timing_t hpt; ++ HP_TIMING_NOW (hpt); ++ hpt = (hpt & 0xffff) << 8; ++ ret ^= hpt; ++#endif ++ uintptr_t stk; ++ /* Avoid GCC being too smart. */ ++ asm ("" : "=r" (stk) : "r" (p)); ++ stk &= 0x7ffff0; ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++ stk <<= (__WORDSIZE - 23); ++#elif __WORDSIZE == 64 ++ stk <<= 31; ++#endif ++ ret ^= stk; ++ /* Avoid GCC being too smart. */ ++ p = (unsigned char *) &errno; ++ asm ("" : "=r" (stk) : "r" (p)); ++ stk &= 0x7fff00; ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++ stk <<= (__WORDSIZE - 29); ++#else ++ stk >>= 8; ++#endif ++ ret ^= stk; + } + else + #endif +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/futimesat.c ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/futimesat.c +@@ -37,14 +37,14 @@ futimesat (fd, file, tvp) + { + int result; + ++ if (file == NULL) ++ return __futimes (fd, tvp); ++ + #ifdef __NR_futimesat + # ifndef __ASSUME_ATFCTS + if (__have_atfcts >= 0) + # endif + { +- if (file == NULL) +- return __futimes (fd, tvp); +- + result = INLINE_SYSCALL (futimesat, 3, fd, file, tvp); + # ifndef __ASSUME_ATFCTS + if (result == -1 && errno == ENOSYS) +@@ -58,22 +58,7 @@ futimesat (fd, file, tvp) + #ifndef __ASSUME_ATFCTS + char *buf = NULL; + +- if (file == NULL) +- { +- static const char procfd[] = "/proc/self/fd/%d"; +- /* Buffer for the path name we are going to use. It consists of +- - the string /proc/self/fd/ +- - the file descriptor number. +- The final NUL is included in the sizeof. A bit of overhead +- due to the format elements compensates for possible negative +- numbers. */ +- size_t buflen = sizeof (procfd) + sizeof (int) * 3; +- buf = alloca (buflen); +- +- __snprintf (buf, buflen, procfd, fd); +- file = buf; +- } +- else if (fd != AT_FDCWD && file[0] != '/') ++ if (fd != AT_FDCWD && file[0] != '/') + { + size_t filelen = strlen (file); + if (__builtin_expect (filelen == 0, 0)) +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/dl-cache.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/i386/dl-cache.h +@@ -0,0 +1,59 @@ ++/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. ++ Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++static inline int ++is_ia64 (void) ++{ ++ unsigned int fl1, fl2; ++ ++ /* See if we can use cpuid. */ ++ __asm__ ("pushfl; pushfl; popl %0; movl %0,%1; xorl %2,%0;" ++ "pushl %0; popfl; pushfl; popl %0; popfl" ++ : "=&r" (fl1), "=&r" (fl2) ++ : "i" (0x00200000)); ++ if (((fl1 ^ fl2) & 0x00200000) == 0) ++ return 0; ++ ++ /* Host supports cpuid. See if cpuid gives capabilities, try ++ CPUID(0). Preserve %ebx and %ecx; cpuid insn clobbers these, we ++ don't need their CPUID values here, and %ebx may be the PIC ++ register. */ ++ __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx" ++ : "=a" (fl1) : "0" (0) : "edx", "cc"); ++ if (fl1 == 0) ++ return 0; ++ ++ /* Invoke CPUID(1), return %edx; caller can examine bits to ++ determine what's supported. */ ++ __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx" ++ : "=d" (fl2), "=a" (fl1) : "1" (1) : "cc"); ++ return (fl2 & (1 << 30)) != 0; ++} ++ ++#define arch_startup(argc, argv) \ ++ do { \ ++ /* On IA-64, try to execute 64-bit ldconfig if possible. \ ++ This is because the badly designed /emul/ia32-linux hack \ ++ will cause 32-bit ldconfig to do all sorts of weird things. */ \ ++ if (is_ia64 ()) \ ++ execv ("/emul/ia32-linux/../../sbin/ldconfig", \ ++ (char *const *) argv); \ ++ } while (0) ++ ++#include_next <dl-cache.h> +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-cache.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-cache.h +@@ -22,4 +22,31 @@ + #define _dl_cache_check_flags(flags) \ + ((flags) == _DL_CACHE_DEFAULT_ID) + ++#define EMUL_HACK "/emul/ia32-linux" ++ ++#define arch_startup(argc, argv) unlink (EMUL_HACK LD_SO_CACHE) ++ ++#define add_arch_dirs(config_file) \ ++ do { \ ++ int save_verbose = opt_verbose; \ ++ opt_verbose = 0; \ ++ \ ++ parse_conf (config_file, EMUL_HACK, true); \ ++ \ ++ /* Always add the standard search paths. */ \ ++ add_system_dir (EMUL_HACK SLIBDIR); \ ++ if (strcmp (SLIBDIR, LIBDIR)) \ ++ add_system_dir (EMUL_HACK LIBDIR); \ ++ \ ++ char emul_config_file[strlen (config_file) \ ++ + sizeof EMUL_HACK]; \ ++ strcpy (mempcpy (emul_config_file, EMUL_HACK, \ ++ strlen (EMUL_HACK)), config_file); \ ++ \ ++ if (! access (emul_config_file, R_OK)) \ ++ parse_conf (emul_config_file, EMUL_HACK, true); \ ++ \ ++ opt_verbose = save_verbose; \ ++ } while (0) ++ + #include_next <dl-cache.h> +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c +@@ -0,0 +1,5 @@ ++#ifdef IS_IN_ldconfig ++#include <sysdeps/i386/dl-procinfo.c> ++#else ++#include <sysdeps/generic/dl-procinfo.c> ++#endif +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h +@@ -0,0 +1,5 @@ ++#ifdef IS_IN_ldconfig ++#include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h> ++#else ++#include <sysdeps/generic/dl-procinfo.h> ++#endif +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed +@@ -1 +1 @@ +-s_^(RTLDLIST=)([^ ]*)-ia64(.so.[0-9.]*)[ ]*$_\1"\2-ia64\3 \2\3"_ ++s_^(RTLDLIST=)([^ ]*)-ia64(.so.[0-9.]*)[ ]*$_\1"\2-ia64\3 /emul/ia32-linux\2\3"_ +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/netlinkaccess.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/netlinkaccess.h +@@ -25,6 +25,24 @@ + + #include <kernel-features.h> + ++#ifndef IFA_MAX ++/* 2.6.19 kernel headers helpfully removed some macros and ++ moved lots of stuff into new headers, some of which aren't ++ included by linux/rtnetlink.h. */ ++#include <linux/if_addr.h> ++#endif ++ ++#ifndef IFA_RTA ++# define IFA_RTA(r) \ ++ ((struct rtattr*) ((char*)(r) + NLMSG_ALIGN (sizeof (struct ifaddrmsg)))) ++# define IFA_PAYLOAD(n) NLMSG_PAYLOAD (n, sizeof (struct ifaddrmsg)) ++#endif ++ ++#ifndef IFLA_RTA ++# define IFLA_RTA(r) \ ++ ((struct rtattr*) ((char*)(r) + NLMSG_ALIGN (sizeof (struct ifinfomsg)))) ++# define IFLA_PAYLOAD(n) NLMSG_PAYLOAD (n, sizeof (struct ifinfomsg)) ++#endif + + struct netlink_res + { +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/paths.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/paths.h +@@ -62,7 +62,7 @@ + #define _PATH_TTY "/dev/tty" + #define _PATH_UNIX "/boot/vmlinux" + #define _PATH_UTMP "/var/run/utmp" +-#define _PATH_VI "/usr/bin/vi" ++#define _PATH_VI "/bin/vi" + #define _PATH_WTMP "/var/log/wtmp" + + /* Provide trailing slash, since mostly used for building pathnames. */ +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c +@@ -1 +1 @@ +-#include "../../fxstat.c" ++#include "../../i386/fxstat.c" +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/tcsetattr.c ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/tcsetattr.c +@@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios + { + struct __kernel_termios k_termios; + unsigned long int cmd; ++ int retval; + + switch (optional_actions) + { +@@ -80,6 +81,35 @@ tcsetattr (fd, optional_actions, termios + memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0], + __KERNEL_NCCS * sizeof (cc_t)); + +- return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ retval = INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ ++ if (retval == 0 && cmd == TCSETS) ++ { ++ /* The Linux kernel has a bug which silently ignore the invalid ++ c_cflag on pty. We have to check it here. */ ++ int save = errno; ++ retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios); ++ if (retval) ++ { ++ /* We cannot verify if the setting is ok. We don't return ++ an error (?). */ ++ __set_errno (save); ++ retval = 0; ++ } ++ else if ((termios_p->c_cflag & (PARENB | CREAD)) ++ != (k_termios.c_cflag & (PARENB | CREAD)) ++ || ((termios_p->c_cflag & CSIZE) ++ && ((termios_p->c_cflag & CSIZE) ++ != (k_termios.c_cflag & CSIZE)))) ++ { ++ /* It looks like the Linux kernel silently changed the ++ PARENB/CREAD/CSIZE bits in c_cflag. Report it as an ++ error. */ ++ __set_errno (EINVAL); ++ retval = -1; ++ } ++ } ++ ++ return retval; + } + libc_hidden_def (tcsetattr) +--- glibc-2.12-2-gc4ccff1/timezone/zic.c ++++ glibc-2.12-1/timezone/zic.c +@@ -1921,7 +1921,7 @@ const int zonecount; + if (stdrp != NULL && stdrp->r_hiyear == 2037) + return; + } +- if (stdrp == NULL && zp->z_nrules != 0) ++ if (stdrp == NULL && (zp->z_nrules != 0 || zp->z_stdoff != 0)) + return; + abbrvar = (stdrp == NULL) ? "" : stdrp->r_abbrvar; + doabbr(result, zp->z_format, abbrvar, FALSE, TRUE); diff --git a/src/patches/glibc/glibc-getlogin-r.patch b/src/patches/glibc/glibc-getlogin-r.patch new file mode 100644 index 0000000..9181ce1 --- /dev/null +++ b/src/patches/glibc/glibc-getlogin-r.patch @@ -0,0 +1,36 @@ +2010-05-05 Ulrich Drepper drepper@redhat.com + + [BZ #11571] + * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Handle + too small buffers according to the standard. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin_r.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c +@@ -81,13 +81,22 @@ __getlogin_r_loginuid (name, namesize) + if (tpwd == NULL) + goto fail; + +- strncpy (name, pwd.pw_name, namesize - 1); +- name[namesize - 1] = '\0'; ++ int result = 0; ++ size_t needed = strlen (pwd.pw_name) + 1; ++ if (needed > namesize) ++ { ++ __set_errno (ERANGE); ++ result = ERANGE; ++ goto out; ++ } + ++ memcpy (name, pwd.pw_name, needed); ++ ++ out: + if (use_malloc) + free (buf); + +- return 0; ++ return result; + } + + diff --git a/src/patches/glibc/glibc-localedata.patch b/src/patches/glibc/glibc-localedata.patch new file mode 100644 index 0000000..15de7c6 --- /dev/null +++ b/src/patches/glibc/glibc-localedata.patch @@ -0,0 +1,18 @@ +2010-05-04 Andreas Schwab schwab@redhat.com + + * SUPPORTED (SUPPORTED-LOCALES): Fix name of tt_RU.UTF-8@iqtelif + locale. + +Index: glibc-2.12-2-gc4ccff1/localedata/SUPPORTED +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/SUPPORTED ++++ glibc-2.12-2-gc4ccff1/localedata/SUPPORTED +@@ -392,7 +392,7 @@ tr_TR.UTF-8/UTF-8 \ + tr_TR/ISO-8859-9 \ + ts_ZA/UTF-8 \ + tt_RU.UTF-8/UTF-8 \ +-tt_RU@iqtelif.UTF-8/UTF-8 \ ++tt_RU.UTF-8@iqtelif/UTF-8 \ + ug_CN/UTF-8 \ + uk_UA.UTF-8/UTF-8 \ + uk_UA/KOI8-U \ diff --git a/src/patches/glibc/glibc-recvmmsg.patch b/src/patches/glibc/glibc-recvmmsg.patch new file mode 100644 index 0000000..9e3aa7a --- /dev/null +++ b/src/patches/glibc/glibc-recvmmsg.patch @@ -0,0 +1,182 @@ +2010-05-21 Andreas Schwab schwab@redhat.com + + * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add recvmmsg + and internal_recvmmsg. + * sysdeps/unix/sysv/linux/recvmmsg.c: New file. + * sysdeps/unix/sysv/linux/internal_recvmmsg.S: New file. + * sysdeps/unix/sysv/linux/socketcall.h (SOCKOP_recvmmsg): Define. + * sysdeps/unix/sysv/linux/syscalls.list (recvmmsg): Remove. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/Makefile +@@ -12,7 +12,7 @@ CFLAGS-malloc.c += -DMORECORE_CLEARS=2 + endif + + ifeq ($(subdir),socket) +-sysdep_routines += internal_accept4 ++sysdep_routines += internal_accept4 recvmmsg internal_recvmmsg + endif + + ifeq ($(subdir),misc) +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_recvmmsg.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_recvmmsg.S +@@ -0,0 +1,14 @@ ++#include <kernel-features.h> ++#include <sys/syscall.h> ++#if !defined __NR_recvmmsg && defined __NR_socketcall ++# define socket recvmmsg ++# ifdef __ASSUME_RECVMMSG ++# define __socket recvmmsg ++# else ++# define __socket __internal_recvmmsg ++# endif ++# define NARGS 5 ++# define NEED_CANCELLATION ++# define NO_WEAK_ALIAS ++# include <socket.S> ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/kernel-features.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h +@@ -547,3 +547,8 @@ + #if __LINUX_KERNEL_VERSION >= 0x020620 + # define __ASSUME_F_GETOWN_EX 1 + #endif ++ ++/* Support for the recvmmsg syscall was added in 2.6.33. */ ++#if __LINUX_KERNEL_VERSION >= 0x020621 ++# define __ASSUME_RECVMMSG 1 ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/recvmmsg.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/recvmmsg.c +@@ -0,0 +1,100 @@ ++/* Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Andreas Schwab schwab@redhat.com, 2010. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <errno.h> ++#include <sys/socket.h> ++ ++#include <sysdep-cancel.h> ++#include <sys/syscall.h> ++#include <kernel-features.h> ++ ++ ++#ifdef __NR_recvmmsg ++int ++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, ++ const struct timespec *tmo) ++{ ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (recvmmsg, 5, fd, vmessages, vlen, flags, tmo); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ++ int result = INLINE_SYSCALL (recvmmsg, 5, fd, vmessages, vlen, flags, tmo); ++ ++ LIBC_CANCEL_RESET (oldtype); ++ ++ return result; ++} ++#elif defined __NR_socketcall ++# ifndef __ASSUME_RECVMMSG ++extern int __internal_recvmmsg (int fd, struct mmsghdr *vmessages, ++ unsigned int vlen, int flags, ++ const struct timespec *tmo) ++ attribute_hidden; ++ ++static int have_recvmmsg; ++ ++int ++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, ++ const struct timespec *tmo) ++{ ++ if (__builtin_expect (have_recvmmsg >= 0, 1)) ++ { ++ int ret = __internal_recvmmsg (fd, vmessages, vlen, flags, tmo); ++ /* The kernel returns -EINVAL for unknown socket operations. ++ We need to convert that error to an ENOSYS error. */ ++ if (__builtin_expect (ret < 0, 0) ++ && have_recvmmsg == 0 ++ && errno == EINVAL) ++ { ++ /* Try another call, this time with an invalid file ++ descriptor and all other parameters cleared. This call ++ will not cause any harm and it will return ++ immediately. */ ++ ret = __internal_recvmmsg (-1, 0, 0, 0, 0); ++ if (errno == EINVAL) ++ { ++ have_recvmmsg = -1; ++ __set_errno (ENOSYS); ++ } ++ else ++ { ++ have_recvmmsg = 1; ++ __set_errno (EINVAL); ++ } ++ return -1; ++ } ++ return ret; ++ } ++ __set_errno (ENOSYS); ++ return -1; ++} ++# else ++/* When __ASSUME_RECVMMSG recvmmsg is defined in internal_recvmmsg.S. */ ++# endif ++#else ++int ++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, ++ const struct timespec *tmo) ++{ ++ __set_errno (ENOSYS); ++ return -1; ++} ++stub_warning (recvmmsg) ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/socketcall.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/socketcall.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/socketcall.h +@@ -44,5 +44,6 @@ + #define SOCKOP_sendmsg 16 + #define SOCKOP_recvmsg 17 + #define SOCKOP_accept4 18 ++#define SOCKOP_recvmmsg 19 + + #endif /* sys/socketcall.h */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/syscalls.list +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/syscalls.list ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/syscalls.list +@@ -53,7 +53,6 @@ prctl EXTRA prctl i:iiiii __prctl prc + putpmsg - putpmsg i:ippii putpmsg + query_module EXTRA query_module i:sipip query_module + quotactl EXTRA quotactl i:isip quotactl +-recvmmsg EXTRA recvmmsg Ci:ipiip recvmmsg + remap_file_pages - remap_file_pages i:piiii __remap_file_pages remap_file_pages + sched_getp - sched_getparam i:ip __sched_getparam sched_getparam + sched_gets - sched_getscheduler i:i __sched_getscheduler sched_getscheduler diff --git a/src/patches/glibc/glibc-rh580498.patch b/src/patches/glibc/glibc-rh580498.patch new file mode 100644 index 0000000..05b673a --- /dev/null +++ b/src/patches/glibc/glibc-rh580498.patch @@ -0,0 +1,296 @@ +2010-07-03 Ulrich Drepper drepper@redhat.com + + * tst-abstime.c (do_test): Some more cleanups + +2010-07-02 Ulrich Drepper drepper@redhat.com + + * tst-abstime.c: Correct testing and add test for sem_timedwait. + +2010-07-01 Andreas Schwab schwab@redhat.com + Ulrich Drepper drepper@redhat.com + + * Makefile (tests): Add tst-abstime. + * tst-abstime.c: New file. + * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S + (__lll_timedlock_wait): Check for timestamp before the Epoch. + * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S + (__lll_timedlock_wait): Likewise. + * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S + (__lll_robust_timedlock_wait): Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S + (__pthread_cond_timedwait): Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S + (pthread_rwlock_timedrdlock): Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S + (pthread_rwlock_timedwrlock): Likewise. + * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait): + Likewise. + +Index: glibc-2.12-2-gc4ccff1/nptl/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/Makefile ++++ glibc-2.12-2-gc4ccff1/nptl/Makefile +@@ -256,6 +256,7 @@ tests = tst-typesizes \ + tst-sched1 \ + tst-backtrace1 \ + tst-oddstacklimit \ ++ tst-abstime \ + tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \ + tst-getpid1 tst-getpid2 tst-getpid3 \ + tst-initializers1 $(patsubst %,tst-initializers1-%,c89 gnu89 c99 gnu99) +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S +@@ -188,6 +188,9 @@ __lll_timedlock_wait: + je .Lreltmo + # endif + ++ cmpl $0, (%edx) ++ js 8f ++ + movl %ecx, %ebx + movl %esi, %ecx + movl %edx, %esi +@@ -223,6 +226,9 @@ __lll_timedlock_wait: + cfi_restore(%ebp) + ret + ++8: movl $ETIMEDOUT, %eax ++ jmp 7b ++ + # ifndef __ASSUME_FUTEX_CLOCK_REALTIME + .Lreltmo: + /* Check for a valid timeout value. */ +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +@@ -169,9 +169,13 @@ __lll_timedlock_wait: + je .Lreltmo + # endif + ++ cmpq $0, (%rdx) ++ js 5f ++ + pushq %r9 + cfi_adjust_cfa_offset(8) + cfi_rel_offset(%r9, 0) ++ + movq %rdx, %r10 + movl $0xffffffff, %r9d + LOAD_FUTEX_WAIT_ABS (%esi) +@@ -202,6 +206,9 @@ __lll_timedlock_wait: + cfi_restore(%r9) + retq + ++5: movl $ETIMEDOUT, %eax ++ retq ++ + # ifndef __ASSUME_FUTEX_CLOCK_REALTIME + .Lreltmo: + /* Check for a valid timeout value. */ +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S +@@ -125,6 +125,9 @@ __lll_robust_timedlock_wait: + je .Lreltmo + # endif + ++ cmpq $0, (%rdx) ++ js 7f ++ + pushq %r9 + cfi_adjust_cfa_offset(8) + cfi_rel_offset(%r9, 0) +@@ -180,6 +183,9 @@ __lll_robust_timedlock_wait: + cfi_adjust_cfa_offset(-8) + cfi_restore(%r9) + ++7: movl $ETIMEDOUT, %eax ++ retq ++ + + # ifndef __ASSUME_FUTEX_CLOCK_REALTIME + .Lreltmo: +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +@@ -144,6 +144,10 @@ __pthread_cond_timedwait: + movq %r9, 24(%rsp) + movl %edx, 4(%rsp) + ++ cmpq $0, (%r13) ++ movq $-ETIMEDOUT, %r14 ++ js 36f ++ + 38: movl cond_futex(%rdi), %r12d + + /* Unlock. */ +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +@@ -102,6 +102,9 @@ pthread_rwlock_timedrdlock: + je .Lreltmo + #endif + ++ cmpq $0, (%r13) ++ js 16f /* Time is already up. */ ++ + movl $FUTEX_PRIVATE_FLAG|FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %esi + xorl PSHARED(%r12), %esi + movq %r13, %r10 +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +@@ -99,6 +99,9 @@ pthread_rwlock_timedwrlock: + je .Lreltmo + #endif + ++ cmpq $0, (%r13) ++ js 16f /* Time is already up. */ ++ + movl $FUTEX_PRIVATE_FLAG|FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %esi + xorl PSHARED(%r12), %esi + movq %r13, %r10 +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S +@@ -77,6 +77,9 @@ sem_timedwait: + je .Lreltmo + #endif + ++ cmpq $0, (%rsi) ++ js 16f ++ + /* This push is only needed to store the sem_t pointer for the + exception handler. */ + pushq %rdi +@@ -169,6 +172,19 @@ sem_timedwait: + + retq + ++16: ++#if USE___THREAD ++ movq errno@gottpoff(%rip), %rdx ++ movl $ETIMEDOUT, %fs:(%rdx) ++#else ++ callq __errno_location@plt ++ movl $ETIMEDOUT, (%rax) ++#endif ++ ++ orl $-1, %eax ++ ++ retq ++ + #ifndef __ASSUME_FUTEX_CLOCK_REALTIME + .Lreltmo: + pushq %r12 +Index: glibc-2.12-2-gc4ccff1/nptl/tst-abstime.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/nptl/tst-abstime.c +@@ -0,0 +1,98 @@ ++/* Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Andreas Schwab schwab@redhat.com, 2010. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <errno.h> ++#include <pthread.h> ++#include <semaphore.h> ++#include <stdio.h> ++ ++static pthread_cond_t c = PTHREAD_COND_INITIALIZER; ++static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER; ++static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER; ++static pthread_rwlock_t rw1 = PTHREAD_RWLOCK_INITIALIZER; ++static pthread_rwlock_t rw2 = PTHREAD_RWLOCK_INITIALIZER; ++static sem_t sem; ++ ++static void * ++th (void *arg) ++{ ++ long int res = 0; ++ int r; ++ struct timespec t = { -2, 0 }; ++ ++ r = pthread_mutex_timedlock (&m1, &t); ++ if (r != ETIMEDOUT) ++ { ++ puts ("pthread_mutex_timedlock did not return ETIMEDOUT"); ++ res = 1; ++ } ++ r = pthread_rwlock_timedrdlock (&rw1, &t); ++ if (r != ETIMEDOUT) ++ { ++ puts ("pthread_rwlock_timedrdlock did not return ETIMEDOUT"); ++ res = 1; ++ } ++ r = pthread_rwlock_timedwrlock (&rw2, &t); ++ if (r != ETIMEDOUT) ++ { ++ puts ("pthread_rwlock_timedwrlock did not return ETIMEDOUT"); ++ res = 1; ++ } ++ return (void *) res; ++} ++ ++static int ++do_test (void) ++{ ++ int res = 0; ++ int r; ++ struct timespec t = { -2, 0 }; ++ pthread_t pth; ++ ++ sem_init (&sem, 0, 0); ++ r = sem_timedwait (&sem, &t); ++ if (r != -1 || errno != ETIMEDOUT) ++ { ++ puts ("sem_timedwait did not fail with ETIMEDOUT"); ++ res = 1; ++ } ++ ++ pthread_mutex_lock (&m1); ++ pthread_rwlock_wrlock (&rw1); ++ pthread_rwlock_rdlock (&rw2); ++ pthread_mutex_lock (&m2); ++ if (pthread_create (&pth, 0, th, 0) != 0) ++ { ++ puts ("cannot create thread"); ++ return 1; ++ } ++ r = pthread_cond_timedwait (&c, &m2, &t); ++ if (r != ETIMEDOUT) ++ { ++ puts ("pthread_cond_timedwait did not return ETIMEDOUT"); ++ res = 1; ++ } ++ void *thres; ++ pthread_join (pth, &thres); ++ return res | (thres != NULL); ++} ++ ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/src/patches/glibc/glibc-rh582738.patch b/src/patches/glibc/glibc-rh582738.patch new file mode 100644 index 0000000..40f7b80 --- /dev/null +++ b/src/patches/glibc/glibc-rh582738.patch @@ -0,0 +1,13 @@ +Index: glibc-2.11-382-g1cdb215/nscd/nscd.init +=================================================================== +--- glibc-2.11-382-g1cdb215.orig/nscd/nscd.init ++++ glibc-2.11-382-g1cdb215/nscd/nscd.init +@@ -76,7 +76,7 @@ case "$1" in + RETVAL=$? + ;; + stop) +- stop ++ [ ! -e /var/lock/subsys/nscd ] || stop + RETVAL=$? + ;; + status) diff --git a/src/patches/glibc/glibc-rh587360.patch b/src/patches/glibc/glibc-rh587360.patch new file mode 100644 index 0000000..07b62e6 --- /dev/null +++ b/src/patches/glibc/glibc-rh587360.patch @@ -0,0 +1,13 @@ +Index: glibc-2.11-382-g1cdb215/posix/regexec.c +=================================================================== +--- glibc-2.11-382-g1cdb215.orig/posix/regexec.c ++++ glibc-2.11-382-g1cdb215/posix/regexec.c +@@ -4031,7 +4031,7 @@ find_collation_sequence_value (const uns + /* Skip the collation sequence value. */ + idx += sizeof (uint32_t); + /* Skip the wide char sequence of the collating element. */ +- idx = idx + sizeof (uint32_t) * (extra[idx] + 1); ++ idx = idx + sizeof (uint32_t) * (*(int32_t *) (extra + idx) + 1); + /* If we found the entry, return the sequence value. */ + if (found) + return *(uint32_t *) (extra + idx); diff --git a/src/patches/glibc/glibc-rh593396.patch b/src/patches/glibc/glibc-rh593396.patch new file mode 100644 index 0000000..b907a36 --- /dev/null +++ b/src/patches/glibc/glibc-rh593396.patch @@ -0,0 +1,42 @@ +2010-05-06 Ulrich Drepper drepper@redhat.com + + * malloc/malloc.c (_int_free): Possible race in the most recently + added check. Only act on the data if no current modification + happened. + +Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/malloc/malloc.c ++++ glibc-2.12-2-gc4ccff1/malloc/malloc.c +@@ -4859,6 +4859,7 @@ _int_free(mstate av, mchunkptr p) + #ifdef ATOMIC_FASTBINS + mchunkptr fd; + mchunkptr old = *fb; ++ unsigned int old_idx = ~0u; + do + { + /* Another simple check: make sure the top of the bin is not the +@@ -4868,15 +4869,17 @@ _int_free(mstate av, mchunkptr p) + errstr = "double free or corruption (fasttop)"; + goto errout; + } +- if (old != NULL +- && __builtin_expect (fastbin_index(chunksize(old)) != idx, 0)) +- { +- errstr = "invalid fastbin entry (free)"; +- goto errout; +- } ++ if (old != NULL) ++ old_idx = fastbin_index(chunksize(old)); + p->fd = fd = old; + } + while ((old = catomic_compare_and_exchange_val_rel (fb, p, fd)) != fd); ++ ++ if (fd != NULL && __builtin_expect (old_idx != idx, 0)) ++ { ++ errstr = "invalid fastbin entry (free)"; ++ goto errout; ++ } + #else + /* Another simple check: make sure the top of the bin is not the + record we are going to add (i.e., double free). */ diff --git a/src/patches/glibc/glibc-rh593686.patch b/src/patches/glibc/glibc-rh593686.patch new file mode 100644 index 0000000..3eceb68 --- /dev/null +++ b/src/patches/glibc/glibc-rh593686.patch @@ -0,0 +1,179 @@ +2010-05-26 Andreas Schwab schwab@redhat.com + + * elf/Makefile: Add rules to build and run unload8 test. + * elf/unload8.c: New file. + * elf/unload8mod1.c: New file. + * elf/unload8mod1x.c: New file. + * elf/unload8mod2.c: New file. + * elf/unload8mod3.c: New file. + + * elf/dl-close.c (_dl_close_worker): Reset private search list if + it wasn't used. + +Index: glibc-2.12-2-gc4ccff1/elf/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile ++++ glibc-2.12-2-gc4ccff1/elf/Makefile +@@ -89,6 +89,7 @@ distribute := rtld-Rules \ + unload4mod1.c unload4mod2.c unload4mod3.c unload4mod4.c \ + unload6mod1.c unload6mod2.c unload6mod3.c \ + unload7mod1.c unload7mod2.c \ ++ unload8mod1.c unload8mod1x.c unload8mod2.c unload8mod3.c \ + tst-audit1.c tst-audit2.c tst-audit3.c tst-audit4.c \ + tst-auditmod1.c tst-auditmod3a.c tst-auditmod3b.c \ + tst-auditmod4a.c tst-auditmod4b.c \ +@@ -196,7 +197,7 @@ tests += loadtest restest1 preloadtest l + tst-align tst-align2 $(tests-execstack-$(have-z-execstack)) \ + tst-dlmodcount tst-dlopenrpath tst-deep1 \ + tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \ +- unload3 unload4 unload5 unload6 unload7 tst-global1 order2 \ ++ unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \ + tst-audit1 tst-audit2 \ + tst-stackguard1 tst-addr1 tst-thrlock \ + tst-unique1 tst-unique2 +@@ -247,6 +248,7 @@ modules-names = testobj1 testobj2 testob + unload4mod1 unload4mod2 unload4mod3 unload4mod4 \ + unload6mod1 unload6mod2 unload6mod3 \ + unload7mod1 unload7mod2 \ ++ unload8mod1 unload8mod1x unload8mod2 unload8mod3 \ + order2mod1 order2mod2 order2mod3 order2mod4 \ + tst-unique1mod1 tst-unique1mod2 \ + tst-unique2mod1 tst-unique2mod2 +@@ -522,6 +524,9 @@ $(objpfx)unload6mod2.so: $(libdl) + $(objpfx)unload6mod3.so: $(libdl) + $(objpfx)unload7mod1.so: $(libdl) + $(objpfx)unload7mod2.so: $(objpfx)unload7mod1.so ++$(objpfx)unload8mod1.so: $(objpfx)unload8mod2.so ++$(objpfx)unload8mod2.so: $(objpfx)unload8mod3.so ++$(objpfx)unload8mod3.so: $(libdl) + + LDFLAGS-tst-tlsmod5.so = -nostdlib + LDFLAGS-tst-tlsmod6.so = -nostdlib +@@ -823,6 +828,9 @@ $(objpfx)unload7: $(libdl) + $(objpfx)unload7.out: $(objpfx)unload7mod1.so $(objpfx)unload7mod2.so + unload7-ENV = MALLOC_PERTURB_=85 + ++$(objpfx)unload8: $(libdl) ++$(objpfx)unload8.out: $(objpfx)unload8mod1.so $(objpfx)unload8mod1x.so ++ + ifdef libdl + $(objpfx)tst-tls9-static: $(common-objpfx)dlfcn/libdl.a + $(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so +Index: glibc-2.12-2-gc4ccff1/elf/dl-close.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-close.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-close.c +@@ -421,6 +421,13 @@ _dl_close_worker (struct link_map *map) + + imap->l_scope_max = new_size; + } ++ else if (new_list != NULL) ++ { ++ /* We didn't change the scope array, so reset the search ++ list. */ ++ imap->l_searchlist.r_list = NULL; ++ imap->l_searchlist.r_nlist = 0; ++ } + + /* The loader is gone, so mark the object as not having one. + Note: l_idx != IDX_STILL_USED -> object will be removed. */ +Index: glibc-2.12-2-gc4ccff1/elf/unload8.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/elf/unload8.c +@@ -0,0 +1,33 @@ ++#include <dlfcn.h> ++#include <stdio.h> ++ ++int ++main (void) ++{ ++ void *h = dlopen ("$ORIGIN/unload8mod1.so", RTLD_LAZY); ++ if (h == NULL) ++ { ++ puts ("dlopen unload8mod1.so failed"); ++ return 1; ++ } ++ ++ void *h2 = dlopen ("$ORIGIN/unload8mod1x.so", RTLD_LAZY); ++ if (h2 == NULL) ++ { ++ puts ("dlopen unload8mod1x.so failed"); ++ return 1; ++ } ++ dlclose (h2); ++ ++ int (*mod1) (void) = dlsym (h, "mod1"); ++ if (mod1 == NULL) ++ { ++ puts ("dlsym failed"); ++ return 1; ++ } ++ ++ mod1 (); ++ dlclose (h); ++ ++ return 0; ++} +Index: glibc-2.12-2-gc4ccff1/elf/unload8mod1.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/elf/unload8mod1.c +@@ -0,0 +1,7 @@ ++extern void mod2 (void); ++ ++void ++mod1 (void) ++{ ++ mod2 (); ++} +Index: glibc-2.12-2-gc4ccff1/elf/unload8mod1x.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/elf/unload8mod1x.c +@@ -0,0 +1 @@ ++int mod1x; +Index: glibc-2.12-2-gc4ccff1/elf/unload8mod2.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/elf/unload8mod2.c +@@ -0,0 +1,7 @@ ++extern void mod3 (void); ++ ++void ++mod2 (void) ++{ ++ mod3 (); ++} +Index: glibc-2.12-2-gc4ccff1/elf/unload8mod3.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/elf/unload8mod3.c +@@ -0,0 +1,27 @@ ++#include <dlfcn.h> ++#include <stdio.h> ++#include <stdlib.h> ++ ++void ++mod3_fini2 (void) ++{ ++} ++ ++void ++mod3_fini (void) ++{ ++ mod3_fini2 (); ++} ++ ++void ++mod3 (void) ++{ ++ void *h = dlopen ("$ORIGIN/unload8mod2.so", RTLD_LAZY); ++ if (h == NULL) ++ { ++ puts ("dlopen unload8mod2.so failed"); ++ exit (1); ++ } ++ ++ atexit (mod3_fini); ++} diff --git a/src/patches/glibc/glibc-rh601686.patch b/src/patches/glibc/glibc-rh601686.patch new file mode 100644 index 0000000..01e42dc --- /dev/null +++ b/src/patches/glibc/glibc-rh601686.patch @@ -0,0 +1,4640 @@ +2010-11-09 H.J. Lu hongjiu.lu@intel.com + + [BZ #12205] + * string/test-strncasecmp.c (check_result): New function. + (do_one_test): Use it. + (check1): New function. + (test_main): Use it. + * sysdeps/i386/i686/multiarch/strcmp.S (nibble_ashr_use_sse4_2_exit): + Support strcasecmp and strncasecmp. + +2010-10-03 Ulrich Drepper drepper@gmail.com + + [BZ #12077] + * sysdeps/x86_64/strcmp.S: Fix handling of remaining bytes in buffer + for strncmp and strncasecmp. + * string/stratcliff.c: Add tests for strcmp and strncmp. + * wcsmbs/wcsatcliff.c: Adjust for stratcliff change. + +2010-09-20 Ulrich Drepper drepper@redhat.com + + * sysdeps/x86_64/strcmp.S: Fix another type in strncasecmp limit + detection. + +2010-08-19 Ulrich Drepper drepper@redhat.com + + * sysdeps/x86_64/multiarch/strcmp.S: Fix two typos in strncasecmp + handling. + +2010-08-15 Ulrich Drepper drepper@redhat.com + + * sysdeps/x86_64/strcmp.S: Use correct register for fourth parameter + of strncasecmp_l. + * sysdeps/multiarch/strcmp.S: Likewise. + +2010-08-14 Ulrich Drepper drepper@redhat.com + + * sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add + strncase_l-nonascii. + * sysdeps/x86_64/multiarch/Makefile [subdir=string] (sysdep_routines): + Add strncase_l-ssse3. + * sysdeps/x86_64/multiarch/strcmp.S: Prepare for use as strncasecmp. + * sysdeps/x86_64/strcmp.S: Likewise. + * sysdeps/x86_64/multiarch/strncase_l-ssse3.S: New file. + * sysdeps/x86_64/multiarch/strncase_l.S: New file. + * sysdeps/x86_64/strncase.S: New file. + * sysdeps/x86_64/strncase_l-nonascii.c: New file. + * sysdeps/x86_64/strncase_l.S: New file. + * string/Makefile (strop-tests): Add strncasecmp. + * string/test-strncasecmp.c: New file. + + * sysdeps/x86_64/strcasecmp_l-nonascii.c: Add prototype to avoid + warning. + + * sysdeps/x86_64/strcmp.S: Move definition of NO_NOLOCALE_ALIAS to... + * sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S: ... here. + +2010-07-31 Ulrich Drepper drepper@redhat.com + + * sysdeps/x86_64/multiarch/Makefile [subdir=string] (sysdep_routines): + Add strcasecmp_l-ssse3. + * sysdeps/x86_64/multiarch/strcmp.S: Add support to compile for + strcasecmp. + * sysdeps/x86_64/strcmp.S: Allow more flexible compiling of strcasecmp. + * sysdeps/x86_64/multiarch/strcasecmp_l.S: New file. + * sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S: New file. + +2010-07-30 Ulrich Drepper drepper@redhat.com + + * sysdeps/x86_64/multiarch/strcmp.S: Pretty printing. + + * string/Makefile (strop-tests): Add strcasecmp. + * sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add + strcasecmp_l-nonascii. + (gen-as-const-headers): Add locale-defines.sym. + * sysdeps/x86_64/strcmp.S: Add support for strcasecmp implementation. + * sysdeps/x86_64/strcasecmp.S: New file. + * sysdeps/x86_64/strcasecmp_l.S: New file. + * sysdeps/x86_64/strcasecmp_l-nonascii.c: New file. + * sysdeps/x86_64/locale-defines.sym: New file. + * string/test-strcasecmp.c: New file. + + * string/test-strcasestr.c: Test both ends of the range of characters. + * sysdeps/x86_64/multiarch/strstr.c: Fix UCHIGH definition. + +2010-07-26 Ulrich Drepper drepper@redhat.com + + * string/test-strnlen.c: New file. + * string/Makefile (strop-tests): Add strnlen. + * string/tester.c (test_strnlen): Add a few more test cases. + * string/tst-strlen.c: Better error reporting. + + * sysdeps/x86_64/strnlen.S: New file. + +2010-07-24 Ulrich Drepper drepper@redhat.com + + * sysdeps/x86_64/multiarch/strstr.c (__m128i_strloadu_tolower): Use + lower-latency instructions. + +2010-07-23 Ulrich Drepper drepper@redhat.com + + * string/test-strcasestr.c: New file. + * string/test-strstr.c: New file. + * string/Makefile (strop-tests): Add strstr and strcasestr. + * string/str-two-way.h: Don't undefine MAX. + * string/strcasestr.c: Don't define alias if NO_ALIAS is defined. + +2010-07-21 Andreas Schwab schwab@redhat.com + + * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add + strcasestr-nonascii. + (CFLAGS-strcasestr-nonascii.c): Define. + * sysdeps/i386/i686/multiarch/strcasestr-nonascii.c: New file. + * sysdeps/x86_64/multiarch/strcasestr-nonascii.c (STRSTR_SSE42): + Remove unused attribute. + +2010-07-16 Ulrich Drepper drepper@redhat.com + + * sysdeps/x86_64/multiarch/strstr.c: Rewrite to avoid indirect function + call in strcasestr. + * sysdeps/x86_64/multiarch/strcasestr.c: Declare + __strcasestr_sse42_nonascii. + * sysdeps/x86_64/multiarch/Makefile: Add rules to build + strcasestr-nonascii.c. + * sysdeps/x86_64/multiarch/strcasestr-nonascii.c: New file. + +Index: glibc-2.12-2-gc4ccff1/string/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/Makefile ++++ glibc-2.12-2-gc4ccff1/string/Makefile +@@ -48,7 +48,8 @@ o-objects.ob := memcpy.o memset.o memchr + + strop-tests := memchr memcmp memcpy memmove mempcpy memset memccpy \ + stpcpy stpncpy strcat strchr strcmp strcpy strcspn \ +- strlen strncmp strncpy strpbrk strrchr strspn memmem ++ strlen strncmp strncpy strpbrk strrchr strspn memmem \ ++ strstr strcasestr strnlen strcasecmp strncasecmp + tests := tester inl-tester noinl-tester testcopy test-ffs \ + tst-strlen stratcliff tst-svc tst-inlcall \ + bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \ +Index: glibc-2.12-2-gc4ccff1/string/str-two-way.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/str-two-way.h ++++ glibc-2.12-2-gc4ccff1/string/str-two-way.h +@@ -426,5 +426,4 @@ two_way_long_needle (const unsigned char + #undef AVAILABLE + #undef CANON_ELEMENT + #undef CMP_FUNC +-#undef MAX + #undef RETURN_TYPE +Index: glibc-2.12-2-gc4ccff1/string/stratcliff.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/stratcliff.c ++++ glibc-2.12-2-gc4ccff1/string/stratcliff.c +@@ -47,6 +47,8 @@ + # define MEMCPY memcpy + # define MEMPCPY mempcpy + # define MEMCHR memchr ++# define STRCMP strcmp ++# define STRNCMP strncmp + #endif + + +@@ -277,7 +279,74 @@ do_test (void) + + adr[inner] = L('T'); + } +- } ++ } ++ ++ /* strcmp/wcscmp tests */ ++ for (outer = 1; outer < 32; ++outer) ++ for (middle = 0; middle < 16; ++middle) ++ { ++ MEMSET (adr + middle, L('T'), 256); ++ adr[256] = L('\0'); ++ MEMSET (dest + nchars - outer, L('T'), outer - 1); ++ dest[nchars - 1] = L('\0'); ++ ++ if (STRCMP (adr + middle, dest + nchars - outer) <= 0) ++ { ++ printf ("%s 1 flunked for outer = %d, middle = %d\n", ++ STRINGIFY (STRCMP), outer, middle); ++ result = 1; ++ } ++ ++ if (STRCMP (dest + nchars - outer, adr + middle) >= 0) ++ { ++ printf ("%s 2 flunked for outer = %d, middle = %d\n", ++ STRINGIFY (STRCMP), outer, middle); ++ result = 1; ++ } ++ } ++ ++ /* strncmp/wcsncmp tests */ ++ for (outer = 1; outer < 32; ++outer) ++ for (middle = 0; middle < 16; ++middle) ++ { ++ MEMSET (adr + middle, L('T'), 256); ++ adr[256] = L('\0'); ++ MEMSET (dest + nchars - outer, L('T'), outer - 1); ++ dest[nchars - 1] = L('U'); ++ ++ for (inner = 0; inner < outer; ++inner) ++ { ++ if (STRNCMP (adr + middle, dest + nchars - outer, inner) != 0) ++ { ++ printf ("%s 1 flunked for outer = %d, middle = %d, " ++ "inner = %d\n", ++ STRINGIFY (STRNCMP), outer, middle, inner); ++ result = 1; ++ } ++ ++ if (STRNCMP (dest + nchars - outer, adr + middle, inner) != 0) ++ { ++ printf ("%s 2 flunked for outer = %d, middle = %d, " ++ "inner = %d\n", ++ STRINGIFY (STRNCMP), outer, middle, inner); ++ result = 1; ++ } ++ } ++ ++ if (STRNCMP (adr + middle, dest + nchars - outer, outer) >= 0) ++ { ++ printf ("%s 1 flunked for outer = %d, middle = %d, full\n", ++ STRINGIFY (STRNCMP), outer, middle); ++ result = 1; ++ } ++ ++ if (STRNCMP (dest + nchars - outer, adr + middle, outer) <= 0) ++ { ++ printf ("%s 2 flunked for outer = %d, middle = %d, full\n", ++ STRINGIFY (STRNCMP), outer, middle); ++ result = 1; ++ } ++ } + + /* strncpy/wcsncpy tests */ + adr[nchars - 1] = L('T'); +Index: glibc-2.12-2-gc4ccff1/string/strcasestr.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/strcasestr.c ++++ glibc-2.12-2-gc4ccff1/string/strcasestr.c +@@ -103,4 +103,6 @@ STRCASESTR (const char *haystack_start, + + #undef LONG_NEEDLE_THRESHOLD + ++#ifndef NO_ALIAS + weak_alias (__strcasestr, strcasestr) ++#endif +Index: glibc-2.12-2-gc4ccff1/string/test-strcasecmp.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/test-strcasecmp.c +@@ -0,0 +1,276 @@ ++/* Test and measure strcasecmp functions. ++ Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Written by Jakub Jelinek jakub@redhat.com, 1999. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <ctype.h> ++#define TEST_MAIN ++#include "test-string.h" ++ ++typedef int (*proto_t) (const char *, const char *); ++static int simple_strcasecmp (const char *, const char *); ++static int stupid_strcasecmp (const char *, const char *); ++ ++IMPL (stupid_strcasecmp, 0) ++IMPL (simple_strcasecmp, 0) ++IMPL (strcasecmp, 1) ++ ++static int ++simple_strcasecmp (const char *s1, const char *s2) ++{ ++ int ret; ++ ++ while ((ret = ((unsigned char) tolower (*s1) ++ - (unsigned char) tolower (*s2))) == 0 ++ && *s1++) ++ ++s2; ++ return ret; ++} ++ ++static int ++stupid_strcasecmp (const char *s1, const char *s2) ++{ ++ size_t ns1 = strlen (s1) + 1, ns2 = strlen (s2) + 1; ++ size_t n = ns1 < ns2 ? ns1 : ns2; ++ int ret = 0; ++ ++ while (n--) ++ { ++ if ((ret = ((unsigned char) tolower (*s1) ++ - (unsigned char) tolower (*s2))) != 0) ++ break; ++ ++s1; ++ ++s2; ++ } ++ return ret; ++} ++ ++static void ++do_one_test (impl_t *impl, const char *s1, const char *s2, int exp_result) ++{ ++ int result = CALL (impl, s1, s2); ++ if ((exp_result == 0 && result != 0) ++ || (exp_result < 0 && result >= 0) ++ || (exp_result > 0 && result <= 0)) ++ { ++ error (0, 0, "Wrong result in function %s %d %d", impl->name, ++ result, exp_result); ++ ret = 1; ++ return; ++ } ++ ++ if (HP_TIMING_AVAIL) ++ { ++ hp_timing_t start __attribute ((unused)); ++ hp_timing_t stop __attribute ((unused)); ++ hp_timing_t best_time = ~ (hp_timing_t) 0; ++ size_t i; ++ ++ for (i = 0; i < 32; ++i) ++ { ++ HP_TIMING_NOW (start); ++ CALL (impl, s1, s2); ++ HP_TIMING_NOW (stop); ++ HP_TIMING_BEST (best_time, start, stop); ++ } ++ ++ printf ("\t%zd", (size_t) best_time); ++ } ++} ++ ++static void ++do_test (size_t align1, size_t align2, size_t len, int max_char, ++ int exp_result) ++{ ++ size_t i; ++ char *s1, *s2; ++ ++ if (len == 0) ++ return; ++ ++ align1 &= 7; ++ if (align1 + len + 1 >= page_size) ++ return; ++ ++ align2 &= 7; ++ if (align2 + len + 1 >= page_size) ++ return; ++ ++ s1 = (char *) (buf1 + align1); ++ s2 = (char *) (buf2 + align2); ++ ++ for (i = 0; i < len; i++) ++ { ++ s1[i] = toupper (1 + 23 * i % max_char); ++ s2[i] = tolower (s1[i]); ++ } ++ ++ s1[len] = s2[len] = 0; ++ s1[len + 1] = 23; ++ s2[len + 1] = 24 + exp_result; ++ if ((s2[len - 1] == 'z' && exp_result == -1) ++ || (s2[len - 1] == 'a' && exp_result == 1)) ++ s1[len - 1] += exp_result; ++ else ++ s2[len - 1] -= exp_result; ++ ++ if (HP_TIMING_AVAIL) ++ printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2); ++ ++ FOR_EACH_IMPL (impl, 0) ++ do_one_test (impl, s1, s2, exp_result); ++ ++ if (HP_TIMING_AVAIL) ++ putchar ('\n'); ++} ++ ++static void ++do_random_tests (void) ++{ ++ size_t i, j, n, align1, align2, pos, len1, len2; ++ int result; ++ long r; ++ unsigned char *p1 = buf1 + page_size - 512; ++ unsigned char *p2 = buf2 + page_size - 512; ++ ++ for (n = 0; n < ITERATIONS; n++) ++ { ++ align1 = random () & 31; ++ if (random () & 1) ++ align2 = random () & 31; ++ else ++ align2 = align1 + (random () & 24); ++ pos = random () & 511; ++ j = align1 > align2 ? align1 : align2; ++ if (pos + j >= 511) ++ pos = 510 - j - (random () & 7); ++ len1 = random () & 511; ++ if (pos >= len1 && (random () & 1)) ++ len1 = pos + (random () & 7); ++ if (len1 + j >= 512) ++ len1 = 511 - j - (random () & 7); ++ if (pos >= len1) ++ len2 = len1; ++ else ++ len2 = len1 + (len1 != 511 - j ? random () % (511 - j - len1) : 0); ++ j = (pos > len2 ? pos : len2) + align1 + 64; ++ if (j > 512) ++ j = 512; ++ for (i = 0; i < j; ++i) ++ { ++ p1[i] = tolower (random () & 255); ++ if (i < len1 + align1 && !p1[i]) ++ { ++ p1[i] = tolower (random () & 255); ++ if (!p1[i]) ++ p1[i] = tolower (1 + (random () & 127)); ++ } ++ } ++ for (i = 0; i < j; ++i) ++ { ++ p2[i] = toupper (random () & 255); ++ if (i < len2 + align2 && !p2[i]) ++ { ++ p2[i] = toupper (random () & 255); ++ if (!p2[i]) ++ toupper (p2[i] = 1 + (random () & 127)); ++ } ++ } ++ ++ result = 0; ++ memcpy (p2 + align2, p1 + align1, pos); ++ if (pos < len1) ++ { ++ if (tolower (p2[align2 + pos]) == p1[align1 + pos]) ++ { ++ p2[align2 + pos] = toupper (random () & 255); ++ if (tolower (p2[align2 + pos]) == p1[align1 + pos]) ++ p2[align2 + pos] = toupper (p1[align1 + pos] ++ + 3 + (random () & 127)); ++ } ++ ++ if (p1[align1 + pos] < tolower (p2[align2 + pos])) ++ result = -1; ++ else ++ result = 1; ++ } ++ p1[len1 + align1] = 0; ++ p2[len2 + align2] = 0; ++ ++ FOR_EACH_IMPL (impl, 1) ++ { ++ r = CALL (impl, (char *) (p1 + align1), (char *) (p2 + align2)); ++ /* Test whether on 64-bit architectures where ABI requires ++ callee to promote has the promotion been done. */ ++ asm ("" : "=g" (r) : "0" (r)); ++ if ((r == 0 && result) ++ || (r < 0 && result >= 0) ++ || (r > 0 && result <= 0)) ++ { ++ error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd, %zd, %zd) %ld != %d, p1 %p p2 %p", ++ n, impl->name, align1, align2, len1, len2, pos, r, result, p1, p2); ++ ret = 1; ++ } ++ } ++ } ++} ++ ++int ++test_main (void) ++{ ++ size_t i; ++ ++ test_init (); ++ ++ printf ("%23s", ""); ++ FOR_EACH_IMPL (impl, 0) ++ printf ("\t%s", impl->name); ++ putchar ('\n'); ++ ++ for (i = 1; i < 16; ++i) ++ { ++ do_test (i, i, i, 127, 0); ++ do_test (i, i, i, 127, 1); ++ do_test (i, i, i, 127, -1); ++ } ++ ++ for (i = 1; i < 10; ++i) ++ { ++ do_test (0, 0, 2 << i, 127, 0); ++ do_test (0, 0, 2 << i, 254, 0); ++ do_test (0, 0, 2 << i, 127, 1); ++ do_test (0, 0, 2 << i, 254, 1); ++ do_test (0, 0, 2 << i, 127, -1); ++ do_test (0, 0, 2 << i, 254, -1); ++ } ++ ++ for (i = 1; i < 8; ++i) ++ { ++ do_test (i, 2 * i, 8 << i, 127, 0); ++ do_test (2 * i, i, 8 << i, 254, 0); ++ do_test (i, 2 * i, 8 << i, 127, 1); ++ do_test (2 * i, i, 8 << i, 254, 1); ++ do_test (i, 2 * i, 8 << i, 127, -1); ++ do_test (2 * i, i, 8 << i, 254, -1); ++ } ++ ++ do_random_tests (); ++ return ret; ++} ++ ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/string/test-strcasestr.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/test-strcasestr.c +@@ -0,0 +1,197 @@ ++/* Test and measure strcasestr functions. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Written by Ulrich Drepper drepper@redhat.com, 2010. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#define TEST_MAIN ++#include "test-string.h" ++ ++ ++#define STRCASESTR simple_strcasestr ++#define NO_ALIAS ++#define __strncasecmp strncasecmp ++#include "strcasestr.c" ++ ++ ++static char * ++stupid_strcasestr (const char *s1, const char *s2) ++{ ++ ssize_t s1len = strlen (s1); ++ ssize_t s2len = strlen (s2); ++ ++ if (s2len > s1len) ++ return NULL; ++ ++ for (ssize_t i = 0; i <= s1len - s2len; ++i) ++ { ++ size_t j; ++ for (j = 0; j < s2len; ++j) ++ if (tolower (s1[i + j]) != tolower (s2[j])) ++ break; ++ if (j == s2len) ++ return (char *) s1 + i; ++ } ++ ++ return NULL; ++} ++ ++ ++typedef char *(*proto_t) (const char *, const char *); ++ ++IMPL (stupid_strcasestr, 0) ++IMPL (simple_strcasestr, 0) ++IMPL (strcasestr, 1) ++ ++ ++static void ++do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result) ++{ ++ char *result = CALL (impl, s1, s2); ++ if (result != exp_result) ++ { ++ error (0, 0, "Wrong result in function %s %s %s", impl->name, ++ result, exp_result); ++ ret = 1; ++ return; ++ } ++ ++ if (HP_TIMING_AVAIL) ++ { ++ hp_timing_t start __attribute ((unused)); ++ hp_timing_t stop __attribute ((unused)); ++ hp_timing_t best_time = ~(hp_timing_t) 0; ++ size_t i; ++ ++ for (i = 0; i < 32; ++i) ++ { ++ HP_TIMING_NOW (start); ++ CALL (impl, s1, s2); ++ HP_TIMING_NOW (stop); ++ HP_TIMING_BEST (best_time, start, stop); ++ } ++ ++ printf ("\t%zd", (size_t) best_time); ++ } ++} ++ ++ ++static void ++do_test (size_t align1, size_t align2, size_t len1, size_t len2, ++ int fail) ++{ ++ char *s1 = (char *) (buf1 + align1); ++ char *s2 = (char *) (buf2 + align2); ++ ++ static const char d[] = "1234567890abcxyz"; ++#define dl (sizeof (d) - 1) ++ char *ss2 = s2; ++ for (size_t l = len2; l > 0; l = l > dl ? l - dl : 0) ++ { ++ size_t t = l > dl ? dl : l; ++ ss2 = mempcpy (ss2, d, t); ++ } ++ s2[len2] = '\0'; ++ ++ if (fail) ++ { ++ char *ss1 = s1; ++ for (size_t l = len1; l > 0; l = l > dl ? l - dl : 0) ++ { ++ size_t t = l > dl ? dl : l; ++ memcpy (ss1, d, t); ++ ++ss1[len2 > 7 ? 7 : len2 - 1]; ++ ss1 += t; ++ } ++ } ++ else ++ { ++ memset (s1, '0', len1); ++ for (size_t i = 0; i < len2; ++i) ++ s1[len1 - len2 + i] = toupper (s2[i]); ++ } ++ s1[len1] = '\0'; ++ ++ if (HP_TIMING_AVAIL) ++ printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:", ++ len1, len2, align1, align2, fail ? "fail" : "found"); ++ ++ FOR_EACH_IMPL (impl, 0) ++ do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2); ++ ++ if (HP_TIMING_AVAIL) ++ putchar ('\n'); ++} ++ ++ ++static int ++test_main (void) ++{ ++ test_init (); ++ ++ printf ("%23s", ""); ++ FOR_EACH_IMPL (impl, 0) ++ printf ("\t%s", impl->name); ++ putchar ('\n'); ++ ++ for (size_t klen = 2; klen < 32; ++klen) ++ for (size_t hlen = 2 * klen; hlen < 16 * klen; hlen += klen) ++ { ++ do_test (0, 0, hlen, klen, 0); ++ do_test (0, 0, hlen, klen, 1); ++ do_test (0, 3, hlen, klen, 0); ++ do_test (0, 3, hlen, klen, 1); ++ do_test (0, 9, hlen, klen, 0); ++ do_test (0, 9, hlen, klen, 1); ++ do_test (0, 15, hlen, klen, 0); ++ do_test (0, 15, hlen, klen, 1); ++ ++ do_test (3, 0, hlen, klen, 0); ++ do_test (3, 0, hlen, klen, 1); ++ do_test (3, 3, hlen, klen, 0); ++ do_test (3, 3, hlen, klen, 1); ++ do_test (3, 9, hlen, klen, 0); ++ do_test (3, 9, hlen, klen, 1); ++ do_test (3, 15, hlen, klen, 0); ++ do_test (3, 15, hlen, klen, 1); ++ ++ do_test (9, 0, hlen, klen, 0); ++ do_test (9, 0, hlen, klen, 1); ++ do_test (9, 3, hlen, klen, 0); ++ do_test (9, 3, hlen, klen, 1); ++ do_test (9, 9, hlen, klen, 0); ++ do_test (9, 9, hlen, klen, 1); ++ do_test (9, 15, hlen, klen, 0); ++ do_test (9, 15, hlen, klen, 1); ++ ++ do_test (15, 0, hlen, klen, 0); ++ do_test (15, 0, hlen, klen, 1); ++ do_test (15, 3, hlen, klen, 0); ++ do_test (15, 3, hlen, klen, 1); ++ do_test (15, 9, hlen, klen, 0); ++ do_test (15, 9, hlen, klen, 1); ++ do_test (15, 15, hlen, klen, 0); ++ do_test (15, 15, hlen, klen, 1); ++ } ++ ++ do_test (0, 0, page_size - 1, 16, 0); ++ do_test (0, 0, page_size - 1, 16, 1); ++ ++ return ret; ++} ++ ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/string/test-strncasecmp.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/test-strncasecmp.c +@@ -0,0 +1,349 @@ ++/* Test and measure strncasecmp functions. ++ Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Written by Jakub Jelinek jakub@redhat.com, 1999. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <ctype.h> ++#define TEST_MAIN ++#include "test-string.h" ++ ++typedef int (*proto_t) (const char *, const char *, size_t); ++static int simple_strncasecmp (const char *, const char *, size_t); ++static int stupid_strncasecmp (const char *, const char *, size_t); ++ ++IMPL (stupid_strncasecmp, 0) ++IMPL (simple_strncasecmp, 0) ++IMPL (strncasecmp, 1) ++ ++static int ++simple_strncasecmp (const char *s1, const char *s2, size_t n) ++{ ++ int ret; ++ ++ if (n == 0) ++ return 0; ++ ++ while ((ret = ((unsigned char) tolower (*s1) ++ - (unsigned char) tolower (*s2))) == 0 ++ && *s1++) ++ { ++ if (--n == 0) ++ return 0; ++ ++s2; ++ } ++ return ret; ++} ++ ++static int ++stupid_strncasecmp (const char *s1, const char *s2, size_t max) ++{ ++ size_t ns1 = strlen (s1) + 1; ++ size_t ns2 = strlen (s2) + 1; ++ size_t n = ns1 < ns2 ? ns1 : ns2; ++ if (n > max) ++ n = max; ++ int ret = 0; ++ ++ while (n--) ++ { ++ if ((ret = ((unsigned char) tolower (*s1) ++ - (unsigned char) tolower (*s2))) != 0) ++ break; ++ ++s1; ++ ++s2; ++ } ++ return ret; ++} ++ ++static int ++check_result (impl_t *impl, const char *s1, const char *s2, size_t n, ++ int exp_result) ++{ ++ int result = CALL (impl, s1, s2, n); ++ if ((exp_result == 0 && result != 0) ++ || (exp_result < 0 && result >= 0) ++ || (exp_result > 0 && result <= 0)) ++ { ++ error (0, 0, "Wrong result in function %s %d %d", impl->name, ++ result, exp_result); ++ ret = 1; ++ return -1; ++ } ++ ++ return 0; ++} ++ ++static void ++do_one_test (impl_t *impl, const char *s1, const char *s2, size_t n, ++ int exp_result) ++{ ++ if (check_result (impl, s1, s2, n, exp_result) < 0) ++ return; ++ ++ if (HP_TIMING_AVAIL) ++ { ++ hp_timing_t start __attribute ((unused)); ++ hp_timing_t stop __attribute ((unused)); ++ hp_timing_t best_time = ~ (hp_timing_t) 0; ++ size_t i; ++ ++ for (i = 0; i < 32; ++i) ++ { ++ HP_TIMING_NOW (start); ++ CALL (impl, s1, s2, n); ++ HP_TIMING_NOW (stop); ++ HP_TIMING_BEST (best_time, start, stop); ++ } ++ ++ printf ("\t%zd", (size_t) best_time); ++ } ++} ++ ++static void ++do_test (size_t align1, size_t align2, size_t n, size_t len, int max_char, ++ int exp_result) ++{ ++ size_t i; ++ char *s1, *s2; ++ ++ if (len == 0) ++ return; ++ ++ align1 &= 7; ++ if (align1 + len + 1 >= page_size) ++ return; ++ ++ align2 &= 7; ++ if (align2 + len + 1 >= page_size) ++ return; ++ ++ s1 = (char *) (buf1 + align1); ++ s2 = (char *) (buf2 + align2); ++ ++ for (i = 0; i < len; i++) ++ { ++ s1[i] = toupper (1 + 23 * i % max_char); ++ s2[i] = tolower (s1[i]); ++ } ++ ++ s1[len] = s2[len] = 0; ++ s1[len + 1] = 23; ++ s2[len + 1] = 24 + exp_result; ++ if ((s2[len - 1] == 'z' && exp_result == -1) ++ || (s2[len - 1] == 'a' && exp_result == 1)) ++ s1[len - 1] += exp_result; ++ else ++ s2[len - 1] -= exp_result; ++ ++ if (HP_TIMING_AVAIL) ++ printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2); ++ ++ FOR_EACH_IMPL (impl, 0) ++ do_one_test (impl, s1, s2, n, exp_result); ++ ++ if (HP_TIMING_AVAIL) ++ putchar ('\n'); ++} ++ ++static void ++do_random_tests (void) ++{ ++ size_t i, j, n, align1, align2, pos, len1, len2; ++ int result; ++ long r; ++ unsigned char *p1 = buf1 + page_size - 512; ++ unsigned char *p2 = buf2 + page_size - 512; ++ ++ for (n = 0; n < ITERATIONS; n++) ++ { ++ align1 = random () & 31; ++ if (random () & 1) ++ align2 = random () & 31; ++ else ++ align2 = align1 + (random () & 24); ++ pos = random () & 511; ++ j = align1 > align2 ? align1 : align2; ++ if (pos + j >= 511) ++ pos = 510 - j - (random () & 7); ++ len1 = random () & 511; ++ if (pos >= len1 && (random () & 1)) ++ len1 = pos + (random () & 7); ++ if (len1 + j >= 512) ++ len1 = 511 - j - (random () & 7); ++ if (pos >= len1) ++ len2 = len1; ++ else ++ len2 = len1 + (len1 != 511 - j ? random () % (511 - j - len1) : 0); ++ j = (pos > len2 ? pos : len2) + align1 + 64; ++ if (j > 512) ++ j = 512; ++ for (i = 0; i < j; ++i) ++ { ++ p1[i] = tolower (random () & 255); ++ if (i < len1 + align1 && !p1[i]) ++ { ++ p1[i] = tolower (random () & 255); ++ if (!p1[i]) ++ p1[i] = tolower (1 + (random () & 127)); ++ } ++ } ++ for (i = 0; i < j; ++i) ++ { ++ p2[i] = toupper (random () & 255); ++ if (i < len2 + align2 && !p2[i]) ++ { ++ p2[i] = toupper (random () & 255); ++ if (!p2[i]) ++ toupper (p2[i] = 1 + (random () & 127)); ++ } ++ } ++ ++ result = 0; ++ memcpy (p2 + align2, p1 + align1, pos); ++ if (pos < len1) ++ { ++ if (tolower (p2[align2 + pos]) == p1[align1 + pos]) ++ { ++ p2[align2 + pos] = toupper (random () & 255); ++ if (tolower (p2[align2 + pos]) == p1[align1 + pos]) ++ p2[align2 + pos] = toupper (p1[align1 + pos] ++ + 3 + (random () & 127)); ++ } ++ ++ if (p1[align1 + pos] < tolower (p2[align2 + pos])) ++ result = -1; ++ else ++ result = 1; ++ } ++ p1[len1 + align1] = 0; ++ p2[len2 + align2] = 0; ++ ++ FOR_EACH_IMPL (impl, 1) ++ { ++ r = CALL (impl, (char *) (p1 + align1), (char *) (p2 + align2), ++ pos + 1 + (random () & 255)); ++ /* Test whether on 64-bit architectures where ABI requires ++ callee to promote has the promotion been done. */ ++ asm ("" : "=g" (r) : "0" (r)); ++ if ((r == 0 && result) ++ || (r < 0 && result >= 0) ++ || (r > 0 && result <= 0)) ++ { ++ error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd, %zd, %zd) %ld != %d, p1 %p p2 %p", ++ n, impl->name, align1, align2, len1, len2, pos, r, result, p1, p2); ++ ret = 1; ++ } ++ } ++ } ++} ++ ++ ++static void ++check1 (void) ++{ ++ static char cp [4096+16] __attribute__ ((aligned(4096))); ++ static char gotrel[4096] __attribute__ ((aligned(4096))); ++ char *s1 = cp + 0xffa; ++ char *s2 = gotrel + 0xcbe; ++ int exp_result; ++ size_t n = 6; ++ ++ strcpy (s1, "gottpoff"); ++ strcpy (s2, "GOTPLT"); ++ ++ exp_result = simple_strncasecmp (s1, s2, n); ++ FOR_EACH_IMPL (impl, 0) ++ check_result (impl, s1, s2, n, exp_result); ++} ++ ++int ++test_main (void) ++{ ++ size_t i; ++ ++ test_init (); ++ ++ check1 (); ++ ++ printf ("%23s", ""); ++ FOR_EACH_IMPL (impl, 0) ++ printf ("\t%s", impl->name); ++ putchar ('\n'); ++ ++ for (i = 1; i < 16; ++i) ++ { ++ do_test (i, i, i - 1, i, 127, 0); ++ ++ do_test (i, i, i, i, 127, 0); ++ do_test (i, i, i, i, 127, 1); ++ do_test (i, i, i, i, 127, -1); ++ ++ do_test (i, i, i + 1, i, 127, 0); ++ do_test (i, i, i + 1, i, 127, 1); ++ do_test (i, i, i + 1, i, 127, -1); ++ } ++ ++ for (i = 1; i < 10; ++i) ++ { ++ do_test (0, 0, (2 << i) - 1, 2 << i, 127, 0); ++ do_test (0, 0, 2 << i, 2 << i, 254, 0); ++ do_test (0, 0, (2 << i) + 1, 2 << i, 127, 0); ++ ++ do_test (0, 0, (2 << i) + 1, 2 << i, 254, 0); ++ ++ do_test (0, 0, 2 << i, 2 << i, 127, 1); ++ do_test (0, 0, (2 << i) + 10, 2 << i, 127, 1); ++ ++ do_test (0, 0, 2 << i, 2 << i, 254, 1); ++ do_test (0, 0, (2 << i) + 10, 2 << i, 254, 1); ++ ++ do_test (0, 0, 2 << i, 2 << i, 127, -1); ++ do_test (0, 0, (2 << i) + 10, 2 << i, 127, -1); ++ ++ do_test (0, 0, 2 << i, 2 << i, 254, -1); ++ do_test (0, 0, (2 << i) + 10, 2 << i, 254, -1); ++ } ++ ++ for (i = 1; i < 8; ++i) ++ { ++ do_test (i, 2 * i, (8 << i) - 1, 8 << i, 127, 0); ++ do_test (i, 2 * i, 8 << i, 8 << i, 127, 0); ++ do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, 0); ++ ++ do_test (2 * i, i, (8 << i) - 1, 8 << i, 254, 0); ++ do_test (2 * i, i, 8 << i, 8 << i, 254, 0); ++ do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, 0); ++ ++ do_test (i, 2 * i, 8 << i, 8 << i, 127, 1); ++ do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, 1); ++ ++ do_test (2 * i, i, 8 << i, 8 << i, 254, 1); ++ do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, 1); ++ ++ do_test (i, 2 * i, 8 << i, 8 << i, 127, -1); ++ do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, -1); ++ ++ do_test (2 * i, i, 8 << i, 8 << i, 254, -1); ++ do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, -1); ++ } ++ ++ do_random_tests (); ++ return ret; ++} ++ ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/string/test-strnlen.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/test-strnlen.c +@@ -0,0 +1,197 @@ ++/* Test and measure strlen functions. ++ Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Written by Jakub Jelinek jakub@redhat.com, 1999. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#define TEST_MAIN ++#include "test-string.h" ++ ++typedef size_t (*proto_t) (const char *, size_t); ++size_t simple_strnlen (const char *, size_t); ++ ++IMPL (simple_strnlen, 0) ++IMPL (strnlen, 1) ++ ++size_t ++simple_strnlen (const char *s, size_t maxlen) ++{ ++ size_t i; ++ ++ for (i = 0; i < maxlen && s[i]; ++i); ++ return i; ++} ++ ++static void ++do_one_test (impl_t *impl, const char *s, size_t maxlen, size_t exp_len) ++{ ++ size_t len = CALL (impl, s, maxlen); ++ if (len != exp_len) ++ { ++ error (0, 0, "Wrong result in function %s %zd %zd", impl->name, ++ len, exp_len); ++ ret = 1; ++ return; ++ } ++ ++ if (HP_TIMING_AVAIL) ++ { ++ hp_timing_t start __attribute ((unused)); ++ hp_timing_t stop __attribute ((unused)); ++ hp_timing_t best_time = ~ (hp_timing_t) 0; ++ size_t i; ++ ++ for (i = 0; i < 32; ++i) ++ { ++ HP_TIMING_NOW (start); ++ CALL (impl, s, maxlen); ++ HP_TIMING_NOW (stop); ++ HP_TIMING_BEST (best_time, start, stop); ++ } ++ ++ printf ("\t%zd", (size_t) best_time); ++ } ++} ++ ++static void ++do_test (size_t align, size_t len, size_t maxlen, int max_char) ++{ ++ size_t i; ++ ++ align &= 7; ++ if (align + len >= page_size) ++ return; ++ ++ for (i = 0; i < len; ++i) ++ buf1[align + i] = 1 + 7 * i % max_char; ++ buf1[align + len] = 0; ++ ++ if (HP_TIMING_AVAIL) ++ printf ("Length %4zd, alignment %2zd:", len, align); ++ ++ FOR_EACH_IMPL (impl, 0) ++ do_one_test (impl, (char *) (buf1 + align), maxlen, MIN (len, maxlen)); ++ ++ if (HP_TIMING_AVAIL) ++ putchar ('\n'); ++} ++ ++static void ++do_random_tests (void) ++{ ++ size_t i, j, n, align, len; ++ unsigned char *p = buf1 + page_size - 512; ++ ++ for (n = 0; n < ITERATIONS; n++) ++ { ++ align = random () & 15; ++ len = random () & 511; ++ if (len + align > 510) ++ len = 511 - align - (random () & 7); ++ j = len + align + 64; ++ if (j > 512) ++ j = 512; ++ ++ for (i = 0; i < j; i++) ++ { ++ if (i == len + align) ++ p[i] = 0; ++ else ++ { ++ p[i] = random () & 255; ++ if (i >= align && i < len + align && !p[i]) ++ p[i] = (random () & 127) + 1; ++ } ++ } ++ ++ FOR_EACH_IMPL (impl, 1) ++ { ++ if (len > 0 ++ && CALL (impl, (char *) (p + align), len - 1) != len - 1) ++ { ++ error (0, 0, "Iteration %zd (limited) - wrong result in function %s (%zd) %zd != %zd, p %p", ++ n, impl->name, align, ++ CALL (impl, (char *) (p + align), len - 1), len - 1, p); ++ ret = 1; ++ } ++ if (CALL (impl, (char *) (p + align), len) != len) ++ { ++ error (0, 0, "Iteration %zd (exact) - wrong result in function %s (%zd) %zd != %zd, p %p", ++ n, impl->name, align, ++ CALL (impl, (char *) (p + align), len), len, p); ++ ret = 1; ++ } ++ if (CALL (impl, (char *) (p + align), len + 1) != len) ++ { ++ error (0, 0, "Iteration %zd (long) - wrong result in function %s (%zd) %zd != %zd, p %p", ++ n, impl->name, align, ++ CALL (impl, (char *) (p + align), len + 1), len, p); ++ ret = 1; ++ } ++ } ++ } ++} ++ ++int ++test_main (void) ++{ ++ size_t i; ++ ++ test_init (); ++ ++ printf ("%20s", ""); ++ FOR_EACH_IMPL (impl, 0) ++ printf ("\t%s", impl->name); ++ putchar ('\n'); ++ ++ for (i = 1; i < 8; ++i) ++ { ++ do_test (0, i, i - 1, 127); ++ do_test (0, i, i, 127); ++ do_test (0, i, i + 1, 127); ++ } ++ ++ for (i = 1; i < 8; ++i) ++ { ++ do_test (i, i, i - 1, 127); ++ do_test (i, i, i, 127); ++ do_test (i, i, i + 1, 127); ++ } ++ ++ for (i = 2; i <= 10; ++i) ++ { ++ do_test (0, 1 << i, 5000, 127); ++ do_test (1, 1 << i, 5000, 127); ++ } ++ ++ for (i = 1; i < 8; ++i) ++ do_test (0, i, 5000, 255); ++ ++ for (i = 1; i < 8; ++i) ++ do_test (i, i, 5000, 255); ++ ++ for (i = 2; i <= 10; ++i) ++ { ++ do_test (0, 1 << i, 5000, 255); ++ do_test (1, 1 << i, 5000, 255); ++ } ++ ++ do_random_tests (); ++ return ret; ++} ++ ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/string/test-strstr.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/test-strstr.c +@@ -0,0 +1,194 @@ ++/* Test and measure strstr functions. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Written by Ulrich Drepper drepper@redhat.com, 2010. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#define TEST_MAIN ++#include "test-string.h" ++ ++ ++#define STRSTR simple_strstr ++#include "strstr.c" ++ ++ ++static char * ++stupid_strstr (const char *s1, const char *s2) ++{ ++ ssize_t s1len = strlen (s1); ++ ssize_t s2len = strlen (s2); ++ ++ if (s2len > s1len) ++ return NULL; ++ ++ for (ssize_t i = 0; i <= s1len - s2len; ++i) ++ { ++ size_t j; ++ for (j = 0; j < s2len; ++j) ++ if (s1[i + j] != s2[j]) ++ break; ++ if (j == s2len) ++ return (char *) s1 + i; ++ } ++ ++ return NULL; ++} ++ ++ ++typedef char *(*proto_t) (const char *, const char *); ++ ++IMPL (stupid_strstr, 0) ++IMPL (simple_strstr, 0) ++IMPL (strstr, 1) ++ ++ ++static void ++do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result) ++{ ++ char *result = CALL (impl, s1, s2); ++ if (result != exp_result) ++ { ++ error (0, 0, "Wrong result in function %s %s %s", impl->name, ++ result, exp_result); ++ ret = 1; ++ return; ++ } ++ ++ if (HP_TIMING_AVAIL) ++ { ++ hp_timing_t start __attribute ((unused)); ++ hp_timing_t stop __attribute ((unused)); ++ hp_timing_t best_time = ~(hp_timing_t) 0; ++ size_t i; ++ ++ for (i = 0; i < 32; ++i) ++ { ++ HP_TIMING_NOW (start); ++ CALL (impl, s1, s2); ++ HP_TIMING_NOW (stop); ++ HP_TIMING_BEST (best_time, start, stop); ++ } ++ ++ printf ("\t%zd", (size_t) best_time); ++ } ++} ++ ++ ++static void ++do_test (size_t align1, size_t align2, size_t len1, size_t len2, ++ int fail) ++{ ++ char *s1 = (char *) (buf1 + align1); ++ char *s2 = (char *) (buf2 + align2); ++ ++ static const char d[] = "1234567890abcdef"; ++#define dl (sizeof (d) - 1) ++ char *ss2 = s2; ++ for (size_t l = len2; l > 0; l = l > dl ? l - dl : 0) ++ { ++ size_t t = l > dl ? dl : l; ++ ss2 = mempcpy (ss2, d, t); ++ } ++ s2[len2] = '\0'; ++ ++ if (fail) ++ { ++ char *ss1 = s1; ++ for (size_t l = len1; l > 0; l = l > dl ? l - dl : 0) ++ { ++ size_t t = l > dl ? dl : l; ++ memcpy (ss1, d, t); ++ ++ss1[len2 > 7 ? 7 : len2 - 1]; ++ ss1 += t; ++ } ++ } ++ else ++ { ++ memset (s1, '0', len1); ++ memcpy (s1 + len1 - len2, s2, len2); ++ } ++ s1[len1] = '\0'; ++ ++ if (HP_TIMING_AVAIL) ++ printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:", ++ len1, len2, align1, align2, fail ? "fail" : "found"); ++ ++ FOR_EACH_IMPL (impl, 0) ++ do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2); ++ ++ if (HP_TIMING_AVAIL) ++ putchar ('\n'); ++} ++ ++ ++static int ++test_main (void) ++{ ++ test_init (); ++ ++ printf ("%23s", ""); ++ FOR_EACH_IMPL (impl, 0) ++ printf ("\t%s", impl->name); ++ putchar ('\n'); ++ ++ for (size_t klen = 2; klen < 32; ++klen) ++ for (size_t hlen = 2 * klen; hlen < 16 * klen; hlen += klen) ++ { ++ do_test (0, 0, hlen, klen, 0); ++ do_test (0, 0, hlen, klen, 1); ++ do_test (0, 3, hlen, klen, 0); ++ do_test (0, 3, hlen, klen, 1); ++ do_test (0, 9, hlen, klen, 0); ++ do_test (0, 9, hlen, klen, 1); ++ do_test (0, 15, hlen, klen, 0); ++ do_test (0, 15, hlen, klen, 1); ++ ++ do_test (3, 0, hlen, klen, 0); ++ do_test (3, 0, hlen, klen, 1); ++ do_test (3, 3, hlen, klen, 0); ++ do_test (3, 3, hlen, klen, 1); ++ do_test (3, 9, hlen, klen, 0); ++ do_test (3, 9, hlen, klen, 1); ++ do_test (3, 15, hlen, klen, 0); ++ do_test (3, 15, hlen, klen, 1); ++ ++ do_test (9, 0, hlen, klen, 0); ++ do_test (9, 0, hlen, klen, 1); ++ do_test (9, 3, hlen, klen, 0); ++ do_test (9, 3, hlen, klen, 1); ++ do_test (9, 9, hlen, klen, 0); ++ do_test (9, 9, hlen, klen, 1); ++ do_test (9, 15, hlen, klen, 0); ++ do_test (9, 15, hlen, klen, 1); ++ ++ do_test (15, 0, hlen, klen, 0); ++ do_test (15, 0, hlen, klen, 1); ++ do_test (15, 3, hlen, klen, 0); ++ do_test (15, 3, hlen, klen, 1); ++ do_test (15, 9, hlen, klen, 0); ++ do_test (15, 9, hlen, klen, 1); ++ do_test (15, 15, hlen, klen, 0); ++ do_test (15, 15, hlen, klen, 1); ++ } ++ ++ do_test (0, 0, page_size - 1, 16, 0); ++ do_test (0, 0, page_size - 1, 16, 1); ++ ++ return ret; ++} ++ ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/string/tester.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/tester.c ++++ glibc-2.12-2-gc4ccff1/string/tester.c +@@ -441,20 +441,21 @@ test_strnlen (void) + check (strnlen ("", 10) == 0, 1); /* Empty. */ + check (strnlen ("a", 10) == 1, 2); /* Single char. */ + check (strnlen ("abcd", 10) == 4, 3); /* Multiple chars. */ +- check (strnlen ("foo", (size_t)-1) == 3, 4); /* limits of n. */ ++ check (strnlen ("foo", (size_t) -1) == 3, 4); /* limits of n. */ ++ check (strnlen ("abcd", 0) == 0, 5); /* Restricted. */ ++ check (strnlen ("abcd", 1) == 1, 6); /* Restricted. */ ++ check (strnlen ("abcd", 2) == 2, 7); /* Restricted. */ ++ check (strnlen ("abcd", 3) == 3, 8); /* Restricted. */ ++ check (strnlen ("abcd", 4) == 4, 9); /* Restricted. */ + +- { +- char buf[4096]; +- int i; +- char *p; +- for (i=0; i < 0x100; i++) +- { +- p = (char *) ((unsigned long int)(buf + 0xff) & ~0xff) + i; +- strcpy (p, "OK"); +- strcpy (p+3, "BAD/WRONG"); +- check (strnlen (p, 100) == 2, 5+i); +- } +- } ++ char buf[4096]; ++ for (int i = 0; i < 0x100; ++i) ++ { ++ char *p = (char *) ((unsigned long int)(buf + 0xff) & ~0xff) + i; ++ strcpy (p, "OK"); ++ strcpy (p + 3, "BAD/WRONG"); ++ check (strnlen (p, 100) == 2, 10 + i); ++ } + } + + static void +Index: glibc-2.12-2-gc4ccff1/string/tst-strlen.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/tst-strlen.c ++++ glibc-2.12-2-gc4ccff1/string/tst-strlen.c +@@ -31,11 +31,21 @@ main(int argc, char *argv[]) + buf[words * 4 + 3] = (last & 8) != 0 ? 'e' : '\0'; + buf[words * 4 + 4] = '\0'; + +- if (strlen (buf) != words * 4 + lens[last] +- || strnlen (buf, -1) != words * 4 + lens[last]) ++ if (strlen (buf) != words * 4 + lens[last]) + { +- printf ("failed for base=%Zu, words=%Zu, and last=%Zu\n", +- base, words, last); ++ printf ("\ ++strlen failed for base=%Zu, words=%Zu, and last=%Zu (is %zd, expected %zd)\n", ++ base, words, last, ++ strlen (buf), words * 4 + lens[last]); ++ return 1; ++ } ++ ++ if (strnlen (buf, -1) != words * 4 + lens[last]) ++ { ++ printf ("\ ++strnlen failed for base=%Zu, words=%Zu, and last=%Zu (is %zd, expected %zd)\n", ++ base, words, last, ++ strnlen (buf, -1), words * 4 + lens[last]); + return 1; + } + } +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile +@@ -9,7 +9,7 @@ sysdep_routines += bzero-sse2 memset-sse + memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \ + memset-sse2-rep bzero-sse2-rep strcmp-ssse3 \ + strcmp-sse4 strncmp-c strncmp-ssse3 strncmp-sse4 \ +- memcmp-ssse3 memcmp-sse4 ++ memcmp-ssse3 memcmp-sse4 strcasestr-nonascii + ifeq (yes,$(config-cflags-sse4)) + sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c + CFLAGS-strcspn-c.c += -msse4 +@@ -17,6 +17,7 @@ CFLAGS-strpbrk-c.c += -msse4 + CFLAGS-strspn-c.c += -msse4 + CFLAGS-strstr.c += -msse4 + CFLAGS-strcasestr.c += -msse4 ++CFLAGS-strcasestr-nonascii.c += -msse4 + endif + endif + +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c +@@ -0,0 +1,2 @@ ++#include <nmmintrin.h> ++#include <sysdeps/x86_64/multiarch/strcasestr-nonascii.c> +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/Makefile +@@ -12,7 +12,8 @@ sysdep_routines += _mcount + endif + + ifeq ($(subdir),string) +-sysdep_routines += cacheinfo ++sysdep_routines += cacheinfo strcasecmp_l-nonascii strncase_l-nonascii ++gen-as-const-headers += locale-defines.sym + endif + + ifeq ($(subdir),elf) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/locale-defines.sym +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/locale-defines.sym +@@ -0,0 +1,11 @@ ++#include <locale/localeinfo.h> ++#include <langinfo.h> ++#include <stddef.h> ++ ++-- ++ ++LOCALE_T___LOCALES offsetof (struct __locale_struct, __locales) ++LC_CTYPE ++_NL_CTYPE_NONASCII_CASE ++LOCALE_DATA_VALUES offsetof (struct __locale_data, values) ++SIZEOF_VALUES sizeof (((struct __locale_data *) 0)->values[0]) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile +@@ -5,7 +5,9 @@ endif + + ifeq ($(subdir),string) + sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \ +- strend-sse4 memcmp-sse4 ++ strend-sse4 memcmp-sse4 \ ++ strcasestr-nonascii strcasecmp_l-ssse3 \ ++ strncase_l-ssse3 + ifeq (yes,$(config-cflags-sse4)) + sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c + CFLAGS-strcspn-c.c += -msse4 +@@ -13,5 +15,6 @@ CFLAGS-strpbrk-c.c += -msse4 + CFLAGS-strspn-c.c += -msse4 + CFLAGS-strstr.c += -msse4 + CFLAGS-strcasestr.c += -msse4 ++CFLAGS-strcasestr-nonascii.c += -msse4 + endif + endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S +@@ -0,0 +1,6 @@ ++#define USE_SSSE3 1 ++#define USE_AS_STRCASECMP_L ++#define NO_NOLOCALE_ALIAS ++#define STRCMP __strcasecmp_l_ssse3 ++#define __strcasecmp __strcasecmp_ssse3 ++#include "../strcmp.S" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l.S +@@ -0,0 +1,6 @@ ++#define STRCMP __strcasecmp_l ++#define USE_AS_STRCASECMP_L ++#include "strcmp.S" ++ ++weak_alias (__strcasecmp_l, strcasecmp_l) ++libc_hidden_def (strcasecmp_l) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr-nonascii.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr-nonascii.c +@@ -0,0 +1,50 @@ ++/* strstr with SSE4.2 intrinsics ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++# include <ctype.h> ++ ++ ++/* Similar to __m128i_strloadu. Convert to lower case for none-POSIX/C ++ locale. */ ++static inline __m128i ++__m128i_strloadu_tolower (const unsigned char *p) ++{ ++ union ++ { ++ char b[16]; ++ __m128i x; ++ } u; ++ ++ for (int i = 0; i < 16; ++i) ++ if (p[i] == 0) ++ { ++ u.b[i] = 0; ++ break; ++ } ++ else ++ u.b[i] = tolower (p[i]); ++ ++ return u.x; ++} ++ ++ ++#define STRCASESTR_NONASCII ++#define USE_AS_STRCASESTR ++#define STRSTR_SSE42 __strcasestr_sse42_nonascii ++#include "strstr.c" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcasestr.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr.c +@@ -1,3 +1,7 @@ ++extern char *__strcasestr_sse42_nonascii (const unsigned char *s1, ++ const unsigned char *s2) ++ attribute_hidden; ++ + #define USE_AS_STRCASESTR + #define STRSTR_SSE42 __strcasestr_sse42 + #include "strstr.c" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcmp.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S +@@ -24,7 +24,7 @@ + #ifdef USE_AS_STRNCMP + /* Since the counter, %r11, is unsigned, we branch to strcmp_exitz + if the new counter > the old one or is 0. */ +-#define UPDATE_STRNCMP_COUNTER \ ++# define UPDATE_STRNCMP_COUNTER \ + /* calculate left number to compare */ \ + lea -16(%rcx, %r11), %r9; \ + cmp %r9, %r11; \ +@@ -33,23 +33,50 @@ + je LABEL(strcmp_exitz_sse4_2); \ + mov %r9, %r11 + +-#define STRCMP_SSE42 __strncmp_sse42 +-#define STRCMP_SSSE3 __strncmp_ssse3 +-#define STRCMP_SSE2 __strncmp_sse2 +-#define __GI_STRCMP __GI_strncmp ++# define STRCMP_SSE42 __strncmp_sse42 ++# define STRCMP_SSSE3 __strncmp_ssse3 ++# define STRCMP_SSE2 __strncmp_sse2 ++# define __GI_STRCMP __GI_strncmp ++#elif defined USE_AS_STRCASECMP_L ++# include "locale-defines.h" ++ ++# define UPDATE_STRNCMP_COUNTER ++ ++# define STRCMP_SSE42 __strcasecmp_l_sse42 ++# define STRCMP_SSSE3 __strcasecmp_l_ssse3 ++# define STRCMP_SSE2 __strcasecmp_l_sse2 ++# define __GI_STRCMP __GI___strcasecmp_l ++#elif defined USE_AS_STRNCASECMP_L ++# include "locale-defines.h" ++ ++/* Since the counter, %r11, is unsigned, we branch to strcmp_exitz ++ if the new counter > the old one or is 0. */ ++# define UPDATE_STRNCMP_COUNTER \ ++ /* calculate left number to compare */ \ ++ lea -16(%rcx, %r11), %r9; \ ++ cmp %r9, %r11; \ ++ jb LABEL(strcmp_exitz_sse4_2); \ ++ test %r9, %r9; \ ++ je LABEL(strcmp_exitz_sse4_2); \ ++ mov %r9, %r11 ++ ++# define STRCMP_SSE42 __strncasecmp_l_sse42 ++# define STRCMP_SSSE3 __strncasecmp_l_ssse3 ++# define STRCMP_SSE2 __strncasecmp_l_sse2 ++# define __GI_STRCMP __GI___strncasecmp_l + #else +-#define UPDATE_STRNCMP_COUNTER +-#ifndef STRCMP +-#define STRCMP strcmp +-#define STRCMP_SSE42 __strcmp_sse42 +-#define STRCMP_SSSE3 __strcmp_ssse3 +-#define STRCMP_SSE2 __strcmp_sse2 +-#define __GI_STRCMP __GI_strcmp +-#endif ++# define UPDATE_STRNCMP_COUNTER ++# ifndef STRCMP ++# define STRCMP strcmp ++# define STRCMP_SSE42 __strcmp_sse42 ++# define STRCMP_SSSE3 __strcmp_ssse3 ++# define STRCMP_SSE2 __strcmp_sse2 ++# define __GI_STRCMP __GI_strcmp ++# endif + #endif + + #ifndef LABEL +-#define LABEL(l) L(l) ++# define LABEL(l) L(l) + #endif + + /* Define multiple versions only for the definition in libc. Don't +@@ -73,6 +100,43 @@ ENTRY(STRCMP) + 2: ret + END(STRCMP) + ++# ifdef USE_AS_STRCASECMP_L ++ENTRY(__strcasecmp) ++ .type __strcasecmp, @gnu_indirect_function ++ cmpl $0, __cpu_features+KIND_OFFSET(%rip) ++ jne 1f ++ call __init_cpu_features ++1: ++ leaq __strcasecmp_sse42(%rip), %rax ++ testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) ++ jnz 2f ++ leaq __strcasecmp_ssse3(%rip), %rax ++ testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip) ++ jnz 2f ++ leaq __strcasecmp_sse2(%rip), %rax ++2: ret ++END(__strcasecmp) ++weak_alias (__strcasecmp, strcasecmp) ++# endif ++# ifdef USE_AS_STRNCASECMP_L ++ENTRY(__strncasecmp) ++ .type __strncasecmp, @gnu_indirect_function ++ cmpl $0, __cpu_features+KIND_OFFSET(%rip) ++ jne 1f ++ call __init_cpu_features ++1: ++ leaq __strncasecmp_sse42(%rip), %rax ++ testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) ++ jnz 2f ++ leaq __strncasecmp_ssse3(%rip), %rax ++ testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip) ++ jnz 2f ++ leaq __strncasecmp_sse2(%rip), %rax ++2: ret ++END(__strncasecmp) ++weak_alias (__strncasecmp, strncasecmp) ++# endif ++ + /* We use 0x1a: + _SIDD_SBYTE_OPS + | _SIDD_CMP_EQUAL_EACH +@@ -101,8 +165,31 @@ END(STRCMP) + + /* Put all SSE 4.2 functions together. */ + .section .text.sse4.2,"ax",@progbits +- .align 16 ++ .align 16 + .type STRCMP_SSE42, @function ++# ifdef USE_AS_STRCASECMP_L ++ENTRY (__strcasecmp_sse42) ++ movq __libc_tsd_LOCALE@gottpoff(%rip),%rax ++ movq %fs:(%rax),%rdx ++ ++ // XXX 5 byte should be before the function ++ /* 5-byte NOP. */ ++ .byte 0x0f,0x1f,0x44,0x00,0x00 ++END (__strcasecmp_sse42) ++ /* FALLTHROUGH to strcasecmp_l. */ ++# endif ++# ifdef USE_AS_STRNCASECMP_L ++ENTRY (__strncasecmp_sse42) ++ movq __libc_tsd_LOCALE@gottpoff(%rip),%rax ++ movq %fs:(%rax),%rcx ++ ++ // XXX 5 byte should be before the function ++ /* 5-byte NOP. */ ++ .byte 0x0f,0x1f,0x44,0x00,0x00 ++END (__strncasecmp_sse42) ++ /* FALLTHROUGH to strncasecmp_l. */ ++# endif ++ + STRCMP_SSE42: + cfi_startproc + CALL_MCOUNT +@@ -110,24 +197,87 @@ STRCMP_SSE42: + /* + * This implementation uses SSE to compare up to 16 bytes at a time. + */ +-#ifdef USE_AS_STRNCMP ++# ifdef USE_AS_STRCASECMP_L ++ /* We have to fall back on the C implementation for locales ++ with encodings not matching ASCII for single bytes. */ ++# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0 ++ movq LOCALE_T___LOCALES+LC_CTYPE*8(%rdx), %rax ++# else ++ movq (%rdx), %rax ++# endif ++ testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax) ++ jne __strcasecmp_l_nonascii ++# endif ++# ifdef USE_AS_STRNCASECMP_L ++ /* We have to fall back on the C implementation for locales ++ with encodings not matching ASCII for single bytes. */ ++# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0 ++ movq LOCALE_T___LOCALES+LC_CTYPE*8(%rcx), %rax ++# else ++ movq (%rcx), %rax ++# endif ++ testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax) ++ jne __strncasecmp_l_nonascii ++# endif ++ ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + test %rdx, %rdx + je LABEL(strcmp_exitz_sse4_2) + cmp $1, %rdx + je LABEL(Byte0_sse4_2) + mov %rdx, %r11 +-#endif ++# endif + mov %esi, %ecx + mov %edi, %eax + /* Use 64bit AND here to avoid long NOP padding. */ + and $0x3f, %rcx /* rsi alignment in cache line */ + and $0x3f, %rax /* rdi alignment in cache line */ ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ .section .rodata.cst16,"aM",@progbits,16 ++ .align 16 ++.Lbelowupper_sse4: ++ .quad 0x4040404040404040 ++ .quad 0x4040404040404040 ++.Ltopupper_sse4: ++ .quad 0x5b5b5b5b5b5b5b5b ++ .quad 0x5b5b5b5b5b5b5b5b ++.Ltouppermask_sse4: ++ .quad 0x2020202020202020 ++ .quad 0x2020202020202020 ++ .previous ++ movdqa .Lbelowupper_sse4(%rip), %xmm4 ++# define UCLOW_reg %xmm4 ++ movdqa .Ltopupper_sse4(%rip), %xmm5 ++# define UCHIGH_reg %xmm5 ++ movdqa .Ltouppermask_sse4(%rip), %xmm6 ++# define LCQWORD_reg %xmm6 ++# endif + cmp $0x30, %ecx + ja LABEL(crosscache_sse4_2)/* rsi: 16-byte load will cross cache line */ + cmp $0x30, %eax + ja LABEL(crosscache_sse4_2)/* rdi: 16-byte load will cross cache line */ + movdqu (%rdi), %xmm1 + movdqu (%rsi), %xmm2 ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++# define TOLOWER(reg1, reg2) \ ++ movdqa reg1, %xmm7; \ ++ movdqa UCHIGH_reg, %xmm8; \ ++ movdqa reg2, %xmm9; \ ++ movdqa UCHIGH_reg, %xmm10; \ ++ pcmpgtb UCLOW_reg, %xmm7; \ ++ pcmpgtb reg1, %xmm8; \ ++ pcmpgtb UCLOW_reg, %xmm9; \ ++ pcmpgtb reg2, %xmm10; \ ++ pand %xmm8, %xmm7; \ ++ pand %xmm10, %xmm9; \ ++ pand LCQWORD_reg, %xmm7; \ ++ pand LCQWORD_reg, %xmm9; \ ++ por %xmm7, reg1; \ ++ por %xmm9, reg2 ++ TOLOWER (%xmm1, %xmm2) ++# else ++# define TOLOWER(reg1, reg2) ++# endif + pxor %xmm0, %xmm0 /* clear %xmm0 for null char checks */ + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ + pcmpeqb %xmm2, %xmm1 /* compare first 16 bytes for equality */ +@@ -135,10 +285,10 @@ STRCMP_SSE42: + pmovmskb %xmm1, %edx + sub $0xffff, %edx /* if first 16 bytes are same, edx == 0xffff */ + jnz LABEL(less16bytes_sse4_2)/* If not, find different value or null char */ +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2)/* finish comparision */ +-#endif ++# endif + add $16, %rsi /* prepare to search next 16 bytes */ + add $16, %rdi /* prepare to search next 16 bytes */ + +@@ -180,7 +330,13 @@ LABEL(ashr_0_sse4_2): + movdqa (%rsi), %xmm1 + pxor %xmm0, %xmm0 /* clear %xmm0 for null char check */ + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpeqb (%rdi), %xmm1 /* compare 16 bytes for equality */ ++# else ++ movdqa (%rdi), %xmm2 ++ TOLOWER (%xmm1, %xmm2) ++ pcmpeqb %xmm2, %xmm1 /* compare 16 bytes for equality */ ++# endif + psubb %xmm0, %xmm1 /* packed sub of comparison results*/ + pmovmskb %xmm1, %r9d + shr %cl, %edx /* adjust 0xffff for offset */ +@@ -204,44 +360,60 @@ LABEL(ashr_0_sse4_2): + .p2align 4 + LABEL(ashr_0_use_sse4_2): + movdqa (%rdi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + lea 16(%rdx), %rdx + jbe LABEL(ashr_0_use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + movdqa (%rdi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + lea 16(%rdx), %rdx + jbe LABEL(ashr_0_use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + jmp LABEL(ashr_0_use_sse4_2) + + + .p2align 4 + LABEL(ashr_0_use_sse4_2_exit): + jnc LABEL(strcmp_exitz_sse4_2) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub %rcx, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + lea -16(%rdx, %rcx), %rcx + movzbl (%rdi, %rcx), %eax + movzbl (%rsi, %rcx), %edx ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rcx ++ movl (%rcx,%rax,4), %eax ++ movl (%rcx,%rdx,4), %edx ++# endif + sub %edx, %eax + ret + + + +- + /* + * The following cases will be handled by ashr_1 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case ++ * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case + * n(15) n -15 0(15 +(n-15) - n) ashr_1 + */ + .p2align 4 +@@ -251,6 +423,7 @@ LABEL(ashr_1_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ + pslldq $15, %xmm2 /* shift first string to align with second */ ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 /* compare 16 bytes for equality */ + psubb %xmm0, %xmm2 /* packed sub of comparison results*/ + pmovmskb %xmm2, %r9d +@@ -281,12 +454,18 @@ LABEL(loop_ashr_1_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $1, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -294,12 +473,18 @@ LABEL(loop_ashr_1_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $1, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_1_use_sse4_2) + +@@ -309,10 +494,10 @@ LABEL(nibble_ashr_1_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $1, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $14, %ecx + ja LABEL(loop_ashr_1_use_sse4_2) + +@@ -320,7 +505,7 @@ LABEL(nibble_ashr_1_use_sse4_2): + + /* + * The following cases will be handled by ashr_2 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case ++ * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case + * n(14~15) n -14 1(15 +(n-14) - n) ashr_2 + */ + .p2align 4 +@@ -330,6 +515,7 @@ LABEL(ashr_2_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $14, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -360,12 +546,18 @@ LABEL(loop_ashr_2_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $2, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -373,12 +565,18 @@ LABEL(loop_ashr_2_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $2, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_2_use_sse4_2) + +@@ -388,10 +586,10 @@ LABEL(nibble_ashr_2_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $2, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $13, %ecx + ja LABEL(loop_ashr_2_use_sse4_2) + +@@ -409,6 +607,7 @@ LABEL(ashr_3_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $13, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -439,12 +638,18 @@ LABEL(loop_ashr_3_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $3, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -452,12 +657,18 @@ LABEL(loop_ashr_3_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $3, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_3_use_sse4_2) + +@@ -467,10 +678,10 @@ LABEL(nibble_ashr_3_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $3, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $12, %ecx + ja LABEL(loop_ashr_3_use_sse4_2) + +@@ -488,6 +699,7 @@ LABEL(ashr_4_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $12, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -519,12 +731,18 @@ LABEL(loop_ashr_4_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $4, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -532,12 +750,18 @@ LABEL(loop_ashr_4_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $4, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_4_use_sse4_2) + +@@ -547,10 +771,10 @@ LABEL(nibble_ashr_4_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $4, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $11, %ecx + ja LABEL(loop_ashr_4_use_sse4_2) + +@@ -559,7 +783,7 @@ LABEL(nibble_ashr_4_use_sse4_2): + /* + * The following cases will be handled by ashr_5 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(11~15) n - 11 4(15 +(n-11) - n) ashr_5 ++ * n(11~15) n - 11 4(15 +(n-11) - n) ashr_5 + */ + .p2align 4 + LABEL(ashr_5_sse4_2): +@@ -568,6 +792,7 @@ LABEL(ashr_5_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $11, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -599,12 +824,18 @@ LABEL(loop_ashr_5_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $5, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -613,12 +844,18 @@ LABEL(loop_ashr_5_use_sse4_2): + movdqa (%rdi, %rdx), %xmm0 + + palignr $5, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_5_use_sse4_2) + +@@ -628,10 +865,10 @@ LABEL(nibble_ashr_5_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $5, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $10, %ecx + ja LABEL(loop_ashr_5_use_sse4_2) + +@@ -640,7 +877,7 @@ LABEL(nibble_ashr_5_use_sse4_2): + /* + * The following cases will be handled by ashr_6 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(10~15) n - 10 5(15 +(n-10) - n) ashr_6 ++ * n(10~15) n - 10 5(15 +(n-10) - n) ashr_6 + */ + .p2align 4 + LABEL(ashr_6_sse4_2): +@@ -649,6 +886,7 @@ LABEL(ashr_6_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $10, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -680,12 +918,18 @@ LABEL(loop_ashr_6_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $6, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -693,12 +937,18 @@ LABEL(loop_ashr_6_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $6, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_6_use_sse4_2) + +@@ -708,10 +958,10 @@ LABEL(nibble_ashr_6_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $6, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $9, %ecx + ja LABEL(loop_ashr_6_use_sse4_2) + +@@ -720,7 +970,7 @@ LABEL(nibble_ashr_6_use_sse4_2): + /* + * The following cases will be handled by ashr_7 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(9~15) n - 9 6(15 +(n - 9) - n) ashr_7 ++ * n(9~15) n - 9 6(15 +(n - 9) - n) ashr_7 + */ + .p2align 4 + LABEL(ashr_7_sse4_2): +@@ -729,6 +979,7 @@ LABEL(ashr_7_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $9, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -760,12 +1011,18 @@ LABEL(loop_ashr_7_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $7, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -773,12 +1030,18 @@ LABEL(loop_ashr_7_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $7, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_7_use_sse4_2) + +@@ -788,10 +1051,10 @@ LABEL(nibble_ashr_7_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $7, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $8, %ecx + ja LABEL(loop_ashr_7_use_sse4_2) + +@@ -800,7 +1063,7 @@ LABEL(nibble_ashr_7_use_sse4_2): + /* + * The following cases will be handled by ashr_8 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(8~15) n - 8 7(15 +(n - 8) - n) ashr_8 ++ * n(8~15) n - 8 7(15 +(n - 8) - n) ashr_8 + */ + .p2align 4 + LABEL(ashr_8_sse4_2): +@@ -809,6 +1072,7 @@ LABEL(ashr_8_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $8, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -840,12 +1104,18 @@ LABEL(loop_ashr_8_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $8, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -853,12 +1123,18 @@ LABEL(loop_ashr_8_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $8, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_8_use_sse4_2) + +@@ -868,10 +1144,10 @@ LABEL(nibble_ashr_8_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $8, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $7, %ecx + ja LABEL(loop_ashr_8_use_sse4_2) + +@@ -880,7 +1156,7 @@ LABEL(nibble_ashr_8_use_sse4_2): + /* + * The following cases will be handled by ashr_9 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(7~15) n - 7 8(15 +(n - 7) - n) ashr_9 ++ * n(7~15) n - 7 8(15 +(n - 7) - n) ashr_9 + */ + .p2align 4 + LABEL(ashr_9_sse4_2): +@@ -889,6 +1165,7 @@ LABEL(ashr_9_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $7, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -921,12 +1198,18 @@ LABEL(loop_ashr_9_use_sse4_2): + movdqa (%rdi, %rdx), %xmm0 + + palignr $9, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -934,12 +1217,18 @@ LABEL(loop_ashr_9_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $9, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_9_use_sse4_2) + +@@ -949,10 +1238,10 @@ LABEL(nibble_ashr_9_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $9, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $6, %ecx + ja LABEL(loop_ashr_9_use_sse4_2) + +@@ -961,7 +1250,7 @@ LABEL(nibble_ashr_9_use_sse4_2): + /* + * The following cases will be handled by ashr_10 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(6~15) n - 6 9(15 +(n - 6) - n) ashr_10 ++ * n(6~15) n - 6 9(15 +(n - 6) - n) ashr_10 + */ + .p2align 4 + LABEL(ashr_10_sse4_2): +@@ -970,6 +1259,7 @@ LABEL(ashr_10_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $6, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1001,12 +1291,18 @@ LABEL(loop_ashr_10_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $10, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1014,12 +1310,18 @@ LABEL(loop_ashr_10_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $10, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_10_use_sse4_2) + +@@ -1029,10 +1331,10 @@ LABEL(nibble_ashr_10_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $10, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $5, %ecx + ja LABEL(loop_ashr_10_use_sse4_2) + +@@ -1041,7 +1343,7 @@ LABEL(nibble_ashr_10_use_sse4_2): + /* + * The following cases will be handled by ashr_11 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(5~15) n - 5 10(15 +(n - 5) - n) ashr_11 ++ * n(5~15) n - 5 10(15 +(n - 5) - n) ashr_11 + */ + .p2align 4 + LABEL(ashr_11_sse4_2): +@@ -1050,6 +1352,7 @@ LABEL(ashr_11_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $5, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1081,12 +1384,18 @@ LABEL(loop_ashr_11_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $11, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1094,12 +1403,18 @@ LABEL(loop_ashr_11_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $11, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_11_use_sse4_2) + +@@ -1109,10 +1424,10 @@ LABEL(nibble_ashr_11_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $11, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $4, %ecx + ja LABEL(loop_ashr_11_use_sse4_2) + +@@ -1121,7 +1436,7 @@ LABEL(nibble_ashr_11_use_sse4_2): + /* + * The following cases will be handled by ashr_12 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(4~15) n - 4 11(15 +(n - 4) - n) ashr_12 ++ * n(4~15) n - 4 11(15 +(n - 4) - n) ashr_12 + */ + .p2align 4 + LABEL(ashr_12_sse4_2): +@@ -1130,6 +1445,7 @@ LABEL(ashr_12_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $4, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1161,12 +1477,18 @@ LABEL(loop_ashr_12_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $12, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1174,12 +1496,18 @@ LABEL(loop_ashr_12_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $12, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_12_use_sse4_2) + +@@ -1189,10 +1517,10 @@ LABEL(nibble_ashr_12_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $12, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $3, %ecx + ja LABEL(loop_ashr_12_use_sse4_2) + +@@ -1201,7 +1529,7 @@ LABEL(nibble_ashr_12_use_sse4_2): + /* + * The following cases will be handled by ashr_13 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(3~15) n - 3 12(15 +(n - 3) - n) ashr_13 ++ * n(3~15) n - 3 12(15 +(n - 3) - n) ashr_13 + */ + .p2align 4 + LABEL(ashr_13_sse4_2): +@@ -1210,6 +1538,7 @@ LABEL(ashr_13_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $3, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1242,12 +1571,18 @@ LABEL(loop_ashr_13_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $13, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1255,12 +1590,18 @@ LABEL(loop_ashr_13_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $13, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_13_use_sse4_2) + +@@ -1270,10 +1611,10 @@ LABEL(nibble_ashr_13_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $13, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $2, %ecx + ja LABEL(loop_ashr_13_use_sse4_2) + +@@ -1282,7 +1623,7 @@ LABEL(nibble_ashr_13_use_sse4_2): + /* + * The following cases will be handled by ashr_14 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(2~15) n - 2 13(15 +(n - 2) - n) ashr_14 ++ * n(2~15) n - 2 13(15 +(n - 2) - n) ashr_14 + */ + .p2align 4 + LABEL(ashr_14_sse4_2): +@@ -1291,6 +1632,7 @@ LABEL(ashr_14_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $2, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1323,12 +1665,18 @@ LABEL(loop_ashr_14_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $14, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1336,12 +1684,18 @@ LABEL(loop_ashr_14_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $14, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_14_use_sse4_2) + +@@ -1351,10 +1705,10 @@ LABEL(nibble_ashr_14_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $14, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $1, %ecx + ja LABEL(loop_ashr_14_use_sse4_2) + +@@ -1363,7 +1717,7 @@ LABEL(nibble_ashr_14_use_sse4_2): + /* + * The following cases will be handled by ashr_15 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(1~15) n - 1 14(15 +(n - 1) - n) ashr_15 ++ * n(1~15) n - 1 14(15 +(n - 1) - n) ashr_15 + */ + .p2align 4 + LABEL(ashr_15_sse4_2): +@@ -1372,6 +1726,7 @@ LABEL(ashr_15_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $1, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1406,12 +1761,18 @@ LABEL(loop_ashr_15_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $15, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1419,12 +1780,18 @@ LABEL(loop_ashr_15_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $15, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_15_use_sse4_2) + +@@ -1434,22 +1801,28 @@ LABEL(nibble_ashr_15_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $15, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $0, %ecx + ja LABEL(loop_ashr_15_use_sse4_2) + + LABEL(nibble_ashr_use_sse4_2_exit): ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + .p2align 4 + LABEL(use_sse4_2_exit): + jnc LABEL(strcmp_exitz_sse4_2) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub %rcx, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add %rcx, %rdx + lea -16(%rdi, %r9), %rdi + movzbl (%rdi, %rdx), %eax +@@ -1458,6 +1831,12 @@ LABEL(use_sse4_2_exit): + jz LABEL(use_sse4_2_ret_sse4_2) + xchg %eax, %edx + LABEL(use_sse4_2_ret_sse4_2): ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rcx ++ movl (%rcx,%rdx,4), %edx ++ movl (%rcx,%rax,4), %eax ++# endif ++ + sub %edx, %eax + ret + +@@ -1473,13 +1852,19 @@ LABEL(ret_sse4_2): + LABEL(less16bytes_sse4_2): + bsf %rdx, %rdx /* find and store bit index in %rdx */ + +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub %rdx, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + movzbl (%rsi, %rdx), %ecx + movzbl (%rdi, %rdx), %eax + ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx ++ movl (%rdx,%rcx,4), %ecx ++ movl (%rdx,%rax,4), %eax ++# endif ++ + sub %ecx, %eax + ret + +@@ -1488,15 +1873,27 @@ LABEL(strcmp_exitz_sse4_2): + ret + + .p2align 4 ++ // XXX Same as code above + LABEL(Byte0_sse4_2): + movzx (%rsi), %ecx + movzx (%rdi), %eax + ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx ++ movl (%rdx,%rcx,4), %ecx ++ movl (%rdx,%rax,4), %eax ++# endif ++ + sub %ecx, %eax + ret + cfi_endproc + .size STRCMP_SSE42, .-STRCMP_SSE42 + ++# undef UCLOW_reg ++# undef UCHIGH_reg ++# undef LCQWORD_reg ++# undef TOLOWER ++ + /* Put all SSE 4.2 functions together. */ + .section .rodata.sse4.2,"a",@progbits + .p2align 3 +@@ -1528,6 +1925,27 @@ LABEL(unaligned_table_sse4_2): + # undef END + # define END(name) \ + cfi_endproc; .size STRCMP_SSE2, .-STRCMP_SSE2 ++ ++# ifdef USE_AS_STRCASECMP_L ++# define ENTRY2(name) \ ++ .type __strcasecmp_sse2, @function; \ ++ .align 16; \ ++ __strcasecmp_sse2: cfi_startproc; \ ++ CALL_MCOUNT ++# define END2(name) \ ++ cfi_endproc; .size __strcasecmp_sse2, .-__strcasecmp_sse2 ++# endif ++ ++# ifdef USE_AS_STRNCASECMP_L ++# define ENTRY2(name) \ ++ .type __strncasecmp_sse2, @function; \ ++ .align 16; \ ++ __strncasecmp_sse2: cfi_startproc; \ ++ CALL_MCOUNT ++# define END2(name) \ ++ cfi_endproc; .size __strncasecmp_sse2, .-__strncasecmp_sse2 ++# endif ++ + # undef libc_hidden_builtin_def + /* It doesn't make sense to send libc-internal strcmp calls through a PLT. + The speedup we get from using SSE4.2 instruction is likely eaten away +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l-ssse3.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l-ssse3.S +@@ -0,0 +1,6 @@ ++#define USE_SSSE3 1 ++#define USE_AS_STRNCASECMP_L ++#define NO_NOLOCALE_ALIAS ++#define STRCMP __strncasecmp_l_ssse3 ++#define __strncasecmp __strncasecmp_ssse3 ++#include "../strcmp.S" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l.S +@@ -0,0 +1,6 @@ ++#define STRCMP __strncasecmp_l ++#define USE_AS_STRNCASECMP_L ++#include "strcmp.S" ++ ++weak_alias (__strncasecmp_l, strncasecmp_l) ++libc_hidden_def (strncasecmp_l) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strstr.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strstr.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strstr.c +@@ -67,10 +67,10 @@ + + case ECX CFlag ZFlag SFlag + 3 X 1 0 0/1 +- 4a 0 1 0 0 +- 4b 0 1 0 1 +- 4c 0 < X 1 0 0/1 +- 5 16 0 1 0 ++ 4a 0 1 0 0 ++ 4b 0 1 0 1 ++ 4c 0 < X 1 0 0/1 ++ 5 16 0 1 0 + + 3. An initial ordered-comparison fragment match, we fix up to do + subsequent string comparison +@@ -147,8 +147,7 @@ __m128i_shift_right (__m128i value, int + If EOS occurs within less than 16B before 4KB boundary, we don't + cross to next page. */ + +-static __m128i +-__attribute__ ((section (".text.sse4.2"))) ++static inline __m128i + __m128i_strloadu (const unsigned char * p) + { + int offset = ((size_t) p & (16 - 1)); +@@ -164,59 +163,36 @@ __m128i_strloadu (const unsigned char * + return _mm_loadu_si128 ((__m128i *) p); + } + +-#ifdef USE_AS_STRCASESTR ++#if defined USE_AS_STRCASESTR && !defined STRCASESTR_NONASCII + + /* Similar to __m128i_strloadu. Convert to lower case for POSIX/C + locale. */ +- +-static __m128i +-__attribute__ ((section (".text.sse4.2"))) +-__m128i_strloadu_tolower_posix (const unsigned char * p) ++static inline __m128i ++__m128i_strloadu_tolower (const unsigned char *p, __m128i rangeuc, ++ __m128i u2ldelta) + { + __m128i frag = __m128i_strloadu (p); + +- /* Convert frag to lower case for POSIX/C locale. */ +- __m128i rangeuc = _mm_set_epi64x (0x0, 0x5a41); +- __m128i u2ldelta = _mm_set1_epi64x (0xe0e0e0e0e0e0e0e0); +- __m128i mask1 = _mm_cmpistrm (rangeuc, frag, 0x44); +- __m128i mask2 = _mm_blendv_epi8 (u2ldelta, frag, mask1); +- mask2 = _mm_sub_epi8 (mask2, u2ldelta); +- return _mm_blendv_epi8 (frag, mask2, mask1); ++#define UCLOW 0x4040404040404040ULL ++#define UCHIGH 0x5b5b5b5b5b5b5b5bULL ++#define LCQWORD 0x2020202020202020ULL ++ /* Compare if 'Z' > bytes. Inverted way to get a mask for byte <= 'Z'. */ ++ __m128i r2 = _mm_cmpgt_epi8 (_mm_set1_epi64x (UCHIGH), frag); ++ /* Compare if bytes are > 'A' - 1. */ ++ __m128i r1 = _mm_cmpgt_epi8 (frag, _mm_set1_epi64x (UCLOW)); ++ /* Mask byte == ff if byte(r2) <= 'Z' and byte(r1) > 'A' - 1. */ ++ __m128i mask = _mm_and_si128 (r2, r1); ++ /* Apply lowercase bit 6 mask for above mask bytes == ff. */ ++ return _mm_or_si128 (frag, _mm_and_si128 (mask, _mm_set1_epi64x (LCQWORD))); + } + +-/* Similar to __m128i_strloadu. Convert to lower case for none-POSIX/C +- locale. */ +- +-static __m128i +-__attribute__ ((section (".text.sse4.2"))) +-__m128i_strloadu_tolower (const unsigned char * p) +-{ +- union +- { +- char b[16]; +- __m128i x; +- } u; +- +- for (int i = 0; i < 16; i++) +- if (p[i] == 0) +- { +- u.b[i] = 0; +- break; +- } +- else +- u.b[i] = tolower (p[i]); +- +- return u.x; +-} + #endif + + /* Calculate Knuth-Morris-Pratt string searching algorithm (or KMP + algorithm) overlap for a fully populated 16B vector. + Input parameter: 1st 16Byte loaded from the reference string of a + strstr function. +- We don't use KMP algorithm if reference string is less than 16B. +- */ +- ++ We don't use KMP algorithm if reference string is less than 16B. */ + static int + __inline__ __attribute__ ((__always_inline__,)) + KMP16Bovrlap (__m128i s2) +@@ -236,7 +212,7 @@ KMP16Bovrlap (__m128i s2) + return 1; + else if (!k1) + { +- /* There are al least two ditinct char in s2. If byte 0 and 1 are ++ /* There are al least two distinct chars in s2. If byte 0 and 1 are + idential and the distinct value lies farther down, we can deduce + the next byte offset to restart full compare is least no earlier + than byte 3. */ +@@ -256,23 +232,30 @@ STRSTR_SSE42 (const unsigned char *s1, c + #define p1 s1 + const unsigned char *p2 = s2; + +- if (p2[0] == '\0') ++#ifndef STRCASESTR_NONASCII ++ if (__builtin_expect (p2[0] == '\0', 0)) + return (char *) p1; + +- if (p1[0] == '\0') ++ if (__builtin_expect (p1[0] == '\0', 0)) + return NULL; + + /* Check if p1 length is 1 byte long. */ +- if (p1[1] == '\0') ++ if (__builtin_expect (p1[1] == '\0', 0)) + return p2[1] == '\0' && CMPBYTE (p1[0], p2[0]) ? (char *) p1 : NULL; ++#endif + + #ifdef USE_AS_STRCASESTR +- __m128i (*strloadu) (const unsigned char *); +- +- if (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_NONASCII_CASE) == 0) +- strloadu = __m128i_strloadu_tolower_posix; +- else +- strloadu = __m128i_strloadu_tolower; ++# ifndef STRCASESTR_NONASCII ++ if (__builtin_expect (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_NONASCII_CASE) ++ != 0, 0)) ++ return __strcasestr_sse42_nonascii (s1, s2); ++ ++ const __m128i rangeuc = _mm_set_epi64x (0x0, 0x5a41); ++ const __m128i u2ldelta = _mm_set1_epi64x (0xe0e0e0e0e0e0e0e0); ++# define strloadu(p) __m128i_strloadu_tolower (p, rangeuc, u2ldelta) ++# else ++# define strloadu __m128i_strloadu_tolower ++# endif + #else + # define strloadu __m128i_strloadu + #endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp.S +@@ -0,0 +1 @@ ++/* In strcasecmp_l.S. */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l-nonascii.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l-nonascii.c +@@ -0,0 +1,8 @@ ++#include <string.h> ++ ++extern int __strcasecmp_l_nonascii (__const char *__s1, __const char *__s2, ++ __locale_t __loc); ++ ++#define __strcasecmp_l __strcasecmp_l_nonascii ++#define USE_IN_EXTENDED_LOCALE_MODEL 1 ++#include <string/strcasecmp.c> +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l.S +@@ -0,0 +1,6 @@ ++#define STRCMP __strcasecmp_l ++#define USE_AS_STRCASECMP_L ++#include "strcmp.S" ++ ++weak_alias (__strcasecmp_l, strcasecmp_l) ++libc_hidden_def (strcasecmp_l) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcmp.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/strcmp.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcmp.S +@@ -51,6 +51,31 @@ + je LABEL(strcmp_exitz); \ + mov %r9, %r11 + ++#elif defined USE_AS_STRCASECMP_L ++# include "locale-defines.h" ++ ++/* No support for strcasecmp outside libc so far since it is not needed. */ ++# ifdef NOT_IN_lib ++# error "strcasecmp_l not implemented so far" ++# endif ++ ++# define UPDATE_STRNCMP_COUNTER ++#elif defined USE_AS_STRNCASECMP_L ++# include "locale-defines.h" ++ ++/* No support for strncasecmp outside libc so far since it is not needed. */ ++# ifdef NOT_IN_lib ++# error "strncasecmp_l not implemented so far" ++# endif ++ ++# define UPDATE_STRNCMP_COUNTER \ ++ /* calculate left number to compare */ \ ++ lea -16(%rcx, %r11), %r9; \ ++ cmp %r9, %r11; \ ++ jb LABEL(strcmp_exitz); \ ++ test %r9, %r9; \ ++ je LABEL(strcmp_exitz); \ ++ mov %r9, %r11 + #else + # define UPDATE_STRNCMP_COUNTER + # ifndef STRCMP +@@ -64,6 +89,46 @@ + .section .text.ssse3,"ax",@progbits + #endif + ++#ifdef USE_AS_STRCASECMP_L ++# ifndef ENTRY2 ++# define ENTRY2(name) ENTRY (name) ++# define END2(name) END (name) ++# endif ++ ++ENTRY2 (__strcasecmp) ++ movq __libc_tsd_LOCALE@gottpoff(%rip),%rax ++ movq %fs:(%rax),%rdx ++ ++ // XXX 5 byte should be before the function ++ /* 5-byte NOP. */ ++ .byte 0x0f,0x1f,0x44,0x00,0x00 ++END2 (__strcasecmp) ++# ifndef NO_NOLOCALE_ALIAS ++weak_alias (__strcasecmp, strcasecmp) ++libc_hidden_def (__strcasecmp) ++# endif ++ /* FALLTHROUGH to strcasecmp_l. */ ++#elif defined USE_AS_STRNCASECMP_L ++# ifndef ENTRY2 ++# define ENTRY2(name) ENTRY (name) ++# define END2(name) END (name) ++# endif ++ ++ENTRY2 (__strncasecmp) ++ movq __libc_tsd_LOCALE@gottpoff(%rip),%rax ++ movq %fs:(%rax),%rcx ++ ++ // XXX 5 byte should be before the function ++ /* 5-byte NOP. */ ++ .byte 0x0f,0x1f,0x44,0x00,0x00 ++END2 (__strncasecmp) ++# ifndef NO_NOLOCALE_ALIAS ++weak_alias (__strncasecmp, strncasecmp) ++libc_hidden_def (__strncasecmp) ++# endif ++ /* FALLTHROUGH to strncasecmp_l. */ ++#endif ++ + ENTRY (BP_SYM (STRCMP)) + #ifdef NOT_IN_libc + /* Simple version since we can't use SSE registers in ld.so. */ +@@ -84,10 +149,32 @@ L(neq): movl $1, %eax + ret + END (BP_SYM (STRCMP)) + #else /* NOT_IN_libc */ ++# ifdef USE_AS_STRCASECMP_L ++ /* We have to fall back on the C implementation for locales ++ with encodings not matching ASCII for single bytes. */ ++# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0 ++ movq LOCALE_T___LOCALES+LC_CTYPE*8(%rdx), %rax ++# else ++ movq (%rdx), %rax ++# endif ++ testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax) ++ jne __strcasecmp_l_nonascii ++# elif defined USE_AS_STRNCASECMP_L ++ /* We have to fall back on the C implementation for locales ++ with encodings not matching ASCII for single bytes. */ ++# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0 ++ movq LOCALE_T___LOCALES+LC_CTYPE*8(%rcx), %rax ++# else ++ movq (%rcx), %rax ++# endif ++ testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax) ++ jne __strncasecmp_l_nonascii ++# endif ++ + /* + * This implementation uses SSE to compare up to 16 bytes at a time. + */ +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + test %rdx, %rdx + je LABEL(strcmp_exitz) + cmp $1, %rdx +@@ -99,6 +186,26 @@ END (BP_SYM (STRCMP)) + /* Use 64bit AND here to avoid long NOP padding. */ + and $0x3f, %rcx /* rsi alignment in cache line */ + and $0x3f, %rax /* rdi alignment in cache line */ ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ .section .rodata.cst16,"aM",@progbits,16 ++ .align 16 ++.Lbelowupper: ++ .quad 0x4040404040404040 ++ .quad 0x4040404040404040 ++.Ltopupper: ++ .quad 0x5b5b5b5b5b5b5b5b ++ .quad 0x5b5b5b5b5b5b5b5b ++.Ltouppermask: ++ .quad 0x2020202020202020 ++ .quad 0x2020202020202020 ++ .previous ++ movdqa .Lbelowupper(%rip), %xmm5 ++# define UCLOW_reg %xmm5 ++ movdqa .Ltopupper(%rip), %xmm6 ++# define UCHIGH_reg %xmm6 ++ movdqa .Ltouppermask(%rip), %xmm7 ++# define LCQWORD_reg %xmm7 ++# endif + cmp $0x30, %ecx + ja LABEL(crosscache) /* rsi: 16-byte load will cross cache line */ + cmp $0x30, %eax +@@ -107,6 +214,26 @@ END (BP_SYM (STRCMP)) + movlpd (%rsi), %xmm2 + movhpd 8(%rdi), %xmm1 + movhpd 8(%rsi), %xmm2 ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++# define TOLOWER(reg1, reg2) \ ++ movdqa reg1, %xmm8; \ ++ movdqa UCHIGH_reg, %xmm9; \ ++ movdqa reg2, %xmm10; \ ++ movdqa UCHIGH_reg, %xmm11; \ ++ pcmpgtb UCLOW_reg, %xmm8; \ ++ pcmpgtb reg1, %xmm9; \ ++ pcmpgtb UCLOW_reg, %xmm10; \ ++ pcmpgtb reg2, %xmm11; \ ++ pand %xmm9, %xmm8; \ ++ pand %xmm11, %xmm10; \ ++ pand LCQWORD_reg, %xmm8; \ ++ pand LCQWORD_reg, %xmm10; \ ++ por %xmm8, reg1; \ ++ por %xmm10, reg2 ++ TOLOWER (%xmm1, %xmm2) ++# else ++# define TOLOWER(reg1, reg2) ++# endif + pxor %xmm0, %xmm0 /* clear %xmm0 for null char checks */ + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ + pcmpeqb %xmm2, %xmm1 /* compare first 16 bytes for equality */ +@@ -114,7 +241,7 @@ END (BP_SYM (STRCMP)) + pmovmskb %xmm1, %edx + sub $0xffff, %edx /* if first 16 bytes are same, edx == 0xffff */ + jnz LABEL(less16bytes) /* If not, find different value or null char */ +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) /* finish comparision */ + # endif +@@ -159,7 +286,13 @@ LABEL(ashr_0): + movdqa (%rsi), %xmm1 + pxor %xmm0, %xmm0 /* clear %xmm0 for null char check */ + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpeqb (%rdi), %xmm1 /* compare 16 bytes for equality */ ++# else ++ movdqa (%rdi), %xmm2 ++ TOLOWER (%xmm1, %xmm2) ++ pcmpeqb %xmm2, %xmm1 /* compare 16 bytes for equality */ ++# endif + psubb %xmm0, %xmm1 /* packed sub of comparison results*/ + pmovmskb %xmm1, %r9d + shr %cl, %edx /* adjust 0xffff for offset */ +@@ -183,6 +316,7 @@ LABEL(ashr_0): + LABEL(loop_ashr_0): + movdqa (%rsi, %rcx), %xmm1 + movdqa (%rdi, %rcx), %xmm2 ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -191,13 +325,14 @@ LABEL(loop_ashr_0): + sub $0xffff, %edx + jnz LABEL(exit) /* mismatch or null char seen */ + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif + add $16, %rcx + movdqa (%rsi, %rcx), %xmm1 + movdqa (%rdi, %rcx), %xmm2 ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -205,7 +340,7 @@ LABEL(loop_ashr_0): + pmovmskb %xmm1, %edx + sub $0xffff, %edx + jnz LABEL(exit) +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -214,7 +349,7 @@ LABEL(loop_ashr_0): + + /* + * The following cases will be handled by ashr_1 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case ++ * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case + * n(15) n -15 0(15 +(n-15) - n) ashr_1 + */ + .p2align 4 +@@ -224,6 +359,7 @@ LABEL(ashr_1): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ + pslldq $15, %xmm2 /* shift first string to align with second */ ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 /* compare 16 bytes for equality */ + psubb %xmm0, %xmm2 /* packed sub of comparison results*/ + pmovmskb %xmm2, %r9d +@@ -263,6 +399,7 @@ LABEL(gobble_ashr_1): + # else + palignr $1, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -271,7 +408,7 @@ LABEL(gobble_ashr_1): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -292,6 +429,7 @@ LABEL(gobble_ashr_1): + # else + palignr $1, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -300,7 +438,7 @@ LABEL(gobble_ashr_1): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -319,8 +457,8 @@ LABEL(nibble_ashr_1): + test $0xfffe, %edx + jnz LABEL(ashr_1_exittail) /* find null char*/ + +-# ifdef USE_AS_STRNCMP +- cmp $14, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $15, %r11 + jbe LABEL(ashr_1_exittail) + # endif + +@@ -351,6 +489,7 @@ LABEL(ashr_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $14, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -390,6 +529,7 @@ LABEL(gobble_ashr_2): + # else + palignr $2, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -398,7 +538,7 @@ LABEL(gobble_ashr_2): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -420,6 +560,7 @@ LABEL(gobble_ashr_2): + # else + palignr $2, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -428,7 +569,7 @@ LABEL(gobble_ashr_2): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -444,8 +585,8 @@ LABEL(nibble_ashr_2): + test $0xfffc, %edx + jnz LABEL(ashr_2_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $13, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $14, %r11 + jbe LABEL(ashr_2_exittail) + # endif + +@@ -472,6 +613,7 @@ LABEL(ashr_3): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $13, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -512,6 +654,7 @@ LABEL(gobble_ashr_3): + # else + palignr $3, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -520,7 +663,7 @@ LABEL(gobble_ashr_3): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -542,6 +685,7 @@ LABEL(gobble_ashr_3): + # else + palignr $3, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -550,7 +694,7 @@ LABEL(gobble_ashr_3): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -566,8 +710,8 @@ LABEL(nibble_ashr_3): + test $0xfff8, %edx + jnz LABEL(ashr_3_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $12, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $13, %r11 + jbe LABEL(ashr_3_exittail) + # endif + +@@ -594,6 +738,7 @@ LABEL(ashr_4): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $12, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -634,6 +779,7 @@ LABEL(gobble_ashr_4): + # else + palignr $4, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -642,7 +788,7 @@ LABEL(gobble_ashr_4): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -664,6 +810,7 @@ LABEL(gobble_ashr_4): + # else + palignr $4, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -672,7 +819,7 @@ LABEL(gobble_ashr_4): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -688,8 +835,8 @@ LABEL(nibble_ashr_4): + test $0xfff0, %edx + jnz LABEL(ashr_4_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $11, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $12, %r11 + jbe LABEL(ashr_4_exittail) + # endif + +@@ -716,6 +863,7 @@ LABEL(ashr_5): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $11, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -756,6 +904,7 @@ LABEL(gobble_ashr_5): + # else + palignr $5, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -764,7 +913,7 @@ LABEL(gobble_ashr_5): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -786,6 +935,7 @@ LABEL(gobble_ashr_5): + # else + palignr $5, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -794,7 +944,7 @@ LABEL(gobble_ashr_5): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -810,8 +960,8 @@ LABEL(nibble_ashr_5): + test $0xffe0, %edx + jnz LABEL(ashr_5_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $10, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $11, %r11 + jbe LABEL(ashr_5_exittail) + # endif + +@@ -838,6 +988,7 @@ LABEL(ashr_6): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $10, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -878,6 +1029,7 @@ LABEL(gobble_ashr_6): + # else + palignr $6, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -886,7 +1038,7 @@ LABEL(gobble_ashr_6): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -908,6 +1060,7 @@ LABEL(gobble_ashr_6): + # else + palignr $6, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -916,7 +1069,7 @@ LABEL(gobble_ashr_6): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -932,8 +1085,8 @@ LABEL(nibble_ashr_6): + test $0xffc0, %edx + jnz LABEL(ashr_6_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $9, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $10, %r11 + jbe LABEL(ashr_6_exittail) + # endif + +@@ -960,6 +1113,7 @@ LABEL(ashr_7): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $9, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1000,6 +1154,7 @@ LABEL(gobble_ashr_7): + # else + palignr $7, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1008,7 +1163,7 @@ LABEL(gobble_ashr_7): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1030,6 +1185,7 @@ LABEL(gobble_ashr_7): + # else + palignr $7, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1038,7 +1194,7 @@ LABEL(gobble_ashr_7): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1054,8 +1210,8 @@ LABEL(nibble_ashr_7): + test $0xff80, %edx + jnz LABEL(ashr_7_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $8, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $9, %r11 + jbe LABEL(ashr_7_exittail) + # endif + +@@ -1082,6 +1238,7 @@ LABEL(ashr_8): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $8, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1122,6 +1279,7 @@ LABEL(gobble_ashr_8): + # else + palignr $8, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1130,7 +1288,7 @@ LABEL(gobble_ashr_8): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1152,6 +1310,7 @@ LABEL(gobble_ashr_8): + # else + palignr $8, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1160,7 +1319,7 @@ LABEL(gobble_ashr_8): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1176,8 +1335,8 @@ LABEL(nibble_ashr_8): + test $0xff00, %edx + jnz LABEL(ashr_8_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $7, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $8, %r11 + jbe LABEL(ashr_8_exittail) + # endif + +@@ -1204,6 +1363,7 @@ LABEL(ashr_9): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $7, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1244,6 +1404,7 @@ LABEL(gobble_ashr_9): + # else + palignr $9, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1252,7 +1413,7 @@ LABEL(gobble_ashr_9): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1274,6 +1435,7 @@ LABEL(gobble_ashr_9): + # else + palignr $9, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1282,7 +1444,7 @@ LABEL(gobble_ashr_9): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1298,8 +1460,8 @@ LABEL(nibble_ashr_9): + test $0xfe00, %edx + jnz LABEL(ashr_9_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $6, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $7, %r11 + jbe LABEL(ashr_9_exittail) + # endif + +@@ -1326,6 +1488,7 @@ LABEL(ashr_10): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $6, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1366,6 +1529,7 @@ LABEL(gobble_ashr_10): + # else + palignr $10, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1374,7 +1538,7 @@ LABEL(gobble_ashr_10): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1396,6 +1560,7 @@ LABEL(gobble_ashr_10): + # else + palignr $10, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1404,7 +1569,7 @@ LABEL(gobble_ashr_10): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1420,8 +1585,8 @@ LABEL(nibble_ashr_10): + test $0xfc00, %edx + jnz LABEL(ashr_10_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $5, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $6, %r11 + jbe LABEL(ashr_10_exittail) + # endif + +@@ -1448,6 +1613,7 @@ LABEL(ashr_11): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $5, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1488,6 +1654,7 @@ LABEL(gobble_ashr_11): + # else + palignr $11, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1496,7 +1663,7 @@ LABEL(gobble_ashr_11): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1518,6 +1685,7 @@ LABEL(gobble_ashr_11): + # else + palignr $11, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1526,7 +1694,7 @@ LABEL(gobble_ashr_11): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1542,8 +1710,8 @@ LABEL(nibble_ashr_11): + test $0xf800, %edx + jnz LABEL(ashr_11_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $4, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $5, %r11 + jbe LABEL(ashr_11_exittail) + # endif + +@@ -1570,6 +1738,7 @@ LABEL(ashr_12): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $4, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1610,6 +1779,7 @@ LABEL(gobble_ashr_12): + # else + palignr $12, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1618,7 +1788,7 @@ LABEL(gobble_ashr_12): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1640,6 +1810,7 @@ LABEL(gobble_ashr_12): + # else + palignr $12, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1648,7 +1819,7 @@ LABEL(gobble_ashr_12): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1664,8 +1835,8 @@ LABEL(nibble_ashr_12): + test $0xf000, %edx + jnz LABEL(ashr_12_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $3, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $4, %r11 + jbe LABEL(ashr_12_exittail) + # endif + +@@ -1692,6 +1863,7 @@ LABEL(ashr_13): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $3, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1732,6 +1904,7 @@ LABEL(gobble_ashr_13): + # else + palignr $13, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1740,7 +1913,7 @@ LABEL(gobble_ashr_13): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1762,6 +1935,7 @@ LABEL(gobble_ashr_13): + # else + palignr $13, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1770,7 +1944,7 @@ LABEL(gobble_ashr_13): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1786,8 +1960,8 @@ LABEL(nibble_ashr_13): + test $0xe000, %edx + jnz LABEL(ashr_13_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $2, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $3, %r11 + jbe LABEL(ashr_13_exittail) + # endif + +@@ -1814,6 +1988,7 @@ LABEL(ashr_14): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $2, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1854,6 +2029,7 @@ LABEL(gobble_ashr_14): + # else + palignr $14, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1862,7 +2038,7 @@ LABEL(gobble_ashr_14): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1884,6 +2060,7 @@ LABEL(gobble_ashr_14): + # else + palignr $14, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1892,7 +2069,7 @@ LABEL(gobble_ashr_14): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP | defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1908,8 +2085,8 @@ LABEL(nibble_ashr_14): + test $0xc000, %edx + jnz LABEL(ashr_14_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $1, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $2, %r11 + jbe LABEL(ashr_14_exittail) + # endif + +@@ -1936,6 +2113,7 @@ LABEL(ashr_15): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $1, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1978,6 +2156,7 @@ LABEL(gobble_ashr_15): + # else + palignr $15, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1986,7 +2165,7 @@ LABEL(gobble_ashr_15): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -2008,6 +2187,7 @@ LABEL(gobble_ashr_15): + # else + palignr $15, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -2016,7 +2196,7 @@ LABEL(gobble_ashr_15): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -2032,9 +2212,9 @@ LABEL(nibble_ashr_15): + test $0x8000, %edx + jnz LABEL(ashr_15_exittail) + +-# ifdef USE_AS_STRNCMP +- test %r11, %r11 +- je LABEL(ashr_15_exittail) ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmpq $1, %r11 ++ jbe LABEL(ashr_15_exittail) + # endif + + pxor %xmm0, %xmm0 +@@ -2049,6 +2229,7 @@ LABEL(ashr_15_exittail): + + .p2align 4 + LABEL(aftertail): ++ TOLOWER (%xmm1, %xmm3) + pcmpeqb %xmm3, %xmm1 + psubb %xmm0, %xmm1 + pmovmskb %xmm1, %edx +@@ -2069,13 +2250,19 @@ LABEL(ret): + LABEL(less16bytes): + bsf %rdx, %rdx /* find and store bit index in %rdx */ + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub %rdx, %r11 + jbe LABEL(strcmp_exitz) + # endif + movzbl (%rsi, %rdx), %ecx + movzbl (%rdi, %rdx), %eax + ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx ++ movl (%rdx,%rcx,4), %ecx ++ movl (%rdx,%rax,4), %eax ++# endif ++ + sub %ecx, %eax + ret + +@@ -2088,6 +2275,12 @@ LABEL(Byte0): + movzx (%rsi), %ecx + movzx (%rdi), %eax + ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx ++ movl (%rdx,%rcx,4), %ecx ++ movl (%rdx,%rax,4), %eax ++# endif ++ + sub %ecx, %eax + ret + END (BP_SYM (STRCMP)) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase.S +@@ -0,0 +1 @@ ++/* In strncase_l.S. */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l-nonascii.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l-nonascii.c +@@ -0,0 +1,8 @@ ++#include <string.h> ++ ++extern int __strncasecmp_l_nonascii (__const char *__s1, __const char *__s2, ++ size_t __n, __locale_t __loc); ++ ++#define __strncasecmp_l __strncasecmp_l_nonascii ++#define USE_IN_EXTENDED_LOCALE_MODEL 1 ++#include <string/strncase.c> +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l.S +@@ -0,0 +1,6 @@ ++#define STRCMP __strncasecmp_l ++#define USE_AS_STRNCASECMP_L ++#include "strcmp.S" ++ ++weak_alias (__strncasecmp_l, strncasecmp_l) ++libc_hidden_def (strncasecmp_l) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strnlen.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strnlen.S +@@ -0,0 +1,64 @@ ++/* strnlen(str,maxlen) -- determine the length of the string STR up to MAXLEN. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ Contributed by Ulrich Drepper drepper@redhat.com. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <sysdep.h> ++ ++ ++ .text ++ENTRY(__strnlen) ++ movq %rsi, %rax ++ testq %rsi, %rsi ++ jz 3f ++ pxor %xmm2, %xmm2 ++ movq %rdi, %rcx ++ movq %rdi, %r8 ++ movq $16, %r9 ++ andq $~15, %rdi ++ movdqa %xmm2, %xmm1 ++ pcmpeqb (%rdi), %xmm2 ++ orl $0xffffffff, %r10d ++ subq %rdi, %rcx ++ shll %cl, %r10d ++ subq %rcx, %r9 ++ pmovmskb %xmm2, %edx ++ andl %r10d, %edx ++ jnz 1f ++ subq %r9, %rsi ++ jbe 3f ++ ++2: movdqa 16(%rdi), %xmm0 ++ leaq 16(%rdi), %rdi ++ pcmpeqb %xmm1, %xmm0 ++ pmovmskb %xmm0, %edx ++ testl %edx, %edx ++ jnz 1f ++ subq $16, %rsi ++ jnbe 2b ++3: ret ++ ++1: subq %r8, %rdi ++ bsfl %edx, %edx ++ addq %rdi, %rdx ++ cmpq %rdx, %rax ++ cmovnbq %rdx, %rax ++ ret ++END(__strnlen) ++weak_alias (__strnlen, strnlen) ++libc_hidden_def (strnlen) +Index: glibc-2.12-2-gc4ccff1/wcsmbs/wcsatcliff.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/wcsatcliff.c ++++ glibc-2.12-2-gc4ccff1/wcsmbs/wcsatcliff.c +@@ -16,6 +16,8 @@ + #define MEMCPY wmemcpy + #define MEMPCPY wmempcpy + #define MEMCHR wmemchr ++#define STRCMP wcscmp ++#define STRNCMP wcsncmp + + + #include "../string/stratcliff.c" diff --git a/src/patches/glibc/glibc-rh607010.patch b/src/patches/glibc/glibc-rh607010.patch new file mode 100644 index 0000000..6952dad --- /dev/null +++ b/src/patches/glibc/glibc-rh607010.patch @@ -0,0 +1,26 @@ +2010-09-07 H.J. Lu hongjiu.lu@intel.com + + * sysdeps/x86_64/cacheinfo.c (init_cacheinfo): Round cache sizes + up to multiple of 256 bytes. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +@@ -661,12 +661,16 @@ init_cacheinfo (void) + + if (data > 0) + { ++ /* Round data cache size up to multiple of 256 bytes. */ ++ data = (data + 255) & ~255L; + __x86_64_data_cache_size_half = data / 2; + __x86_64_data_cache_size = data; + } + + if (shared > 0) + { ++ /* Round shared cache size up to multiple of 256 bytes. */ ++ shared = (shared + 255) & ~255L; + __x86_64_shared_cache_size_half = shared / 2; + __x86_64_shared_cache_size = shared; + } diff --git a/src/patches/glibc/glibc-rh607461.patch b/src/patches/glibc/glibc-rh607461.patch new file mode 100644 index 0000000..79fc72c --- /dev/null +++ b/src/patches/glibc/glibc-rh607461.patch @@ -0,0 +1,22 @@ +Index: glibc-2.12-2-gc4ccff1/nptl/allocatestack.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/allocatestack.c ++++ glibc-2.12-2-gc4ccff1/nptl/allocatestack.c +@@ -994,7 +994,16 @@ setxid_mark_thread (struct xid_command * + + /* If the thread is exiting right now, ignore it. */ + if ((ch & EXITING_BITMASK) != 0) +- return; ++ { ++ /* Release the futex if there is no other setxid in ++ progress. */ ++ if ((ch & SETXID_BITMASK) == 0) ++ { ++ t->setxid_futex = 1; ++ lll_futex_wake (&t->setxid_futex, 1, LLL_PRIVATE); ++ } ++ return; ++ } + } + while (atomic_compare_and_exchange_bool_acq (&t->cancelhandling, + ch | SETXID_BITMASK, ch)); diff --git a/src/patches/glibc/glibc-rh615090.patch b/src/patches/glibc/glibc-rh615090.patch new file mode 100644 index 0000000..e6c00f0 --- /dev/null +++ b/src/patches/glibc/glibc-rh615090.patch @@ -0,0 +1,21 @@ +2010-07-27 Andreas Schwab schwab@redhat.com + + * manual/memory.texi (Malloc Tunable Parameters): Document + M_PERTURB. + +Index: glibc-2.12-2-gc4ccff1/manual/memory.texi +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/manual/memory.texi ++++ glibc-2.12-2-gc4ccff1/manual/memory.texi +@@ -702,6 +702,11 @@ be allocated via @code{mmap}. + @item M_MMAP_MAX + The maximum number of chunks to allocate with @code{mmap}. Setting this + to zero disables all use of @code{mmap}. ++@item M_PERTURB ++If non-zero, memory blocks are filled with values depending on some ++low order bits of this parameter when they are allocated (except when ++allocated by @code{calloc}) and freed. This can be used to debug the ++use of uninitialized or freed heap memory. + @end table + + @end deftypefun diff --git a/src/patches/glibc/glibc-rh615701.patch b/src/patches/glibc/glibc-rh615701.patch new file mode 100644 index 0000000..283e3fe --- /dev/null +++ b/src/patches/glibc/glibc-rh615701.patch @@ -0,0 +1,23 @@ +2010-07-20 Roland McGrath roland@redhat.com + + * elf/dl-sysdep.c (_dl_important_hwcaps): Add dsocaps mask to + dl_hwcap_mask as well as dl_hwcap. Without this, dsocaps matching in + ld.so.cache was broken. With it, there is no way to disable dsocaps + like LD_HWCAP_MASK can disable hwcaps. + +Index: glibc-2.12-2-gc4ccff1/elf/dl-sysdep.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-sysdep.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-sysdep.c +@@ -425,6 +425,11 @@ _dl_important_hwcaps (const char *platfo + { + const ElfW(Word) mask = ((const ElfW(Word) *) dsocaps)[-1]; + GLRO(dl_hwcap) |= (uint64_t) mask << _DL_FIRST_EXTRA; ++ /* Note that we add the dsocaps to the set already chosen by the ++ LD_HWCAP_MASK environment variable (or default HWCAP_IMPORTANT). ++ So there is no way to request ignoring an OS-supplied dsocap ++ string and bit like you can ignore an OS-supplied HWCAP bit. */ ++ GLRO(dl_hwcap_mask) |= (uint64_t) mask << _DL_FIRST_EXTRA; + size_t len; + for (const char *p = dsocaps; p < dsocaps + dsocapslen; p += len + 1) + { diff --git a/src/patches/glibc/glibc-rh621959.patch b/src/patches/glibc/glibc-rh621959.patch new file mode 100644 index 0000000..315521f --- /dev/null +++ b/src/patches/glibc/glibc-rh621959.patch @@ -0,0 +1,120 @@ +2010-08-06 Ulrich Drepper drepper@redhat.com + + * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): + Also fail if tpwd after pwuid call is NULL. + +2010-06-21 Andreas Schwab schwab@redhat.com + + * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): + Restore proper fallback handling. + +2010-06-19 Ulrich Drepper drepper@redhat.com + + * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Handle + OOM in getpwuid_r correctly. Return error number when the caller + should return, otherwise -1. + (getlogin_r): Adjust to return also for result of __getlogin_r_loginuid + call returning > 0 value. + * sysdeps/unix/sysv/linux/getlogin.c (getlogin): Likewise. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin.c +@@ -32,8 +32,9 @@ + char * + getlogin (void) + { +- if (__getlogin_r_loginuid (name, sizeof (name)) == 0) +- return name; ++ int res = __getlogin_r_loginuid (name, sizeof (name)); ++ if (res >= 0) ++ return res == 0 ? name : NULL; + + return getlogin_fd0 (); + } +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin_r.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c +@@ -27,6 +27,10 @@ static int getlogin_r_fd0 (char *name, s + #undef getlogin_r + + ++/* Try to determine login name from /proc/self/loginuid and return 0 ++ if successful. If /proc/self/loginuid cannot be read return -1. ++ Otherwise return the error number. */ ++ + int + attribute_hidden + __getlogin_r_loginuid (name, namesize) +@@ -35,7 +39,7 @@ __getlogin_r_loginuid (name, namesize) + { + int fd = open_not_cancel_2 ("/proc/self/loginuid", O_RDONLY); + if (fd == -1) +- return 1; ++ return -1; + + /* We are reading a 32-bit number. 12 bytes are enough for the text + representation. If not, something is wrong. */ +@@ -51,37 +55,38 @@ __getlogin_r_loginuid (name, namesize) + || (uidbuf[n] = '\0', + uid = strtoul (uidbuf, &endp, 10), + endp == uidbuf || *endp != '\0')) +- return 1; ++ return -1; + + size_t buflen = 1024; + char *buf = alloca (buflen); + bool use_malloc = false; + struct passwd pwd; + struct passwd *tpwd; ++ int result = 0; + int res; + +- while ((res = __getpwuid_r (uid, &pwd, buf, buflen, &tpwd)) != 0) ++ while ((res = __getpwuid_r (uid, &pwd, buf, buflen, &tpwd)) == ERANGE) + if (__libc_use_alloca (2 * buflen)) +- extend_alloca (buf, buflen, 2 * buflen); ++ buf = extend_alloca (buf, buflen, 2 * buflen); + else + { + buflen *= 2; + char *newp = realloc (use_malloc ? buf : NULL, buflen); + if (newp == NULL) + { +- fail: +- if (use_malloc) +- free (buf); +- return 1; ++ result = ENOMEM; ++ goto out; + } + buf = newp; + use_malloc = true; + } + +- if (tpwd == NULL) +- goto fail; ++ if (res != 0 || tpwd == NULL) ++ { ++ result = -1; ++ goto out; ++ } + +- int result = 0; + size_t needed = strlen (pwd.pw_name) + 1; + if (needed > namesize) + { +@@ -109,8 +114,9 @@ getlogin_r (name, namesize) + char *name; + size_t namesize; + { +- if (__getlogin_r_loginuid (name, namesize) == 0) +- return 0; ++ int res = __getlogin_r_loginuid (name, namesize); ++ if (res >= 0) ++ return res; + + return getlogin_r_fd0 (name, namesize); + } diff --git a/src/patches/glibc/glibc-rh623187.patch b/src/patches/glibc/glibc-rh623187.patch new file mode 100644 index 0000000..596fdd6 --- /dev/null +++ b/src/patches/glibc/glibc-rh623187.patch @@ -0,0 +1,18 @@ +2010-08-10 Dinakar Guniguntala dino@in.ibm.com + Stefan Hajnoczi stefanha@linux.vnet.ibm.com + + * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: If + FUTEX_WAKE_OP fails make sure to call FUTEX_WAKE instead. + +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S +@@ -163,7 +163,6 @@ __pthread_cond_signal: + #endif + orl $FUTEX_WAKE, %ecx + +- xorl $(FUTEX_WAKE ^ FUTEX_WAKE_OP), %ecx + movl $SYS_futex, %eax + /* %edx should be 1 already from $FUTEX_WAKE_OP syscall. + movl $1, %edx */ diff --git a/src/patches/glibc/glibc-rh625893.patch b/src/patches/glibc/glibc-rh625893.patch new file mode 100644 index 0000000..5337a42 --- /dev/null +++ b/src/patches/glibc/glibc-rh625893.patch @@ -0,0 +1,79 @@ +2010-08-12 Andreas Schwab schwab@redhat.com + + [BZ #11904] + * locale/programs/locale.c (print_assignment): New function. + (show_locale_vars): Use it. + +Index: glibc-2.12-2-gc4ccff1/locale/programs/locale.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/locale/programs/locale.c ++++ glibc-2.12-2-gc4ccff1/locale/programs/locale.c +@@ -762,6 +762,29 @@ write_charmaps (void) + twalk (all_data, print_names); + } + ++/* Print a properly quoted assignment of NAME with VAL, using double ++ quotes iff DQUOTE is true. */ ++static void ++print_assignment (const char *name, const char *val, bool dquote) ++{ ++ printf ("%s=", name); ++ if (dquote) ++ putchar ('"'); ++ while (*val != '\0') ++ { ++ size_t segment ++ = strcspn (val, dquote ? "$`"\" : "~|&;<>()$`\"' \t\n"); ++ printf ("%.*s", (int) segment, val); ++ val += segment; ++ if (*val == '\0') ++ break; ++ putchar ('\'); ++ putchar (*val++); ++ } ++ if (dquote) ++ putchar ('"'); ++ putchar ('\n'); ++} + + /* We have to show the contents of the environments determining the + locale. */ +@@ -769,7 +792,7 @@ static void + show_locale_vars (void) + { + size_t cat_no; +- const char *lcall = getenv ("LC_ALL"); ++ const char *lcall = getenv ("LC_ALL") ? : ""; + const char *lang = getenv ("LANG") ? : ""; + + auto void get_source (const char *name); +@@ -778,15 +801,15 @@ show_locale_vars (void) + { + char *val = getenv (name); + +- if ((lcall ?: "")[0] != '\0' || val == NULL) +- printf ("%s="%s"\n", name, +- (lcall ?: "")[0] ? lcall : (lang ?: "")[0] ? lang : "POSIX"); ++ if (lcall[0] != '\0' || val == NULL) ++ print_assignment (name, lcall[0] ? lcall : lang[0] ? lang : "POSIX", ++ true); + else +- printf ("%s=%s\n", name, val); ++ print_assignment (name, val, false); + } + + /* LANG has to be the first value. */ +- printf ("LANG=%s\n", lang); ++ print_assignment ("LANG", lang, false); + + /* Now all categories in an unspecified order. */ + for (cat_no = 0; cat_no < NCATEGORIES; ++cat_no) +@@ -794,7 +817,7 @@ show_locale_vars (void) + get_source (category[cat_no].name); + + /* The last is the LC_ALL value. */ +- printf ("LC_ALL=%s\n", lcall ? : ""); ++ print_assignment ("LC_ALL", lcall, false); + } + + diff --git a/src/patches/glibc/glibc-rh630801.patch b/src/patches/glibc/glibc-rh630801.patch new file mode 100644 index 0000000..5bd3c66 --- /dev/null +++ b/src/patches/glibc/glibc-rh630801.patch @@ -0,0 +1,29 @@ +2010-05-26 H.J. Lu hongjiu.lu@intel.com + + [BZ #11640] + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): + Properly check family and model. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +@@ -62,15 +62,15 @@ __init_cpu_features (void) + unsigned int eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax; + unsigned int extended_family = (eax >> 20) & 0xff; + unsigned int extended_model = (eax >> 12) & 0xf0; +- if (__cpu_features.family == 0x0f) ++ if (family == 0x0f) + { + family += extended_family; + model += extended_model; + } +- else if (__cpu_features.family == 0x06) ++ else if (family == 0x06) + { + model += extended_model; +- switch (__cpu_features.model) ++ switch (model) + { + case 0x1a: + case 0x1e: diff --git a/src/patches/glibc/glibc-rh631011.patch b/src/patches/glibc/glibc-rh631011.patch new file mode 100644 index 0000000..42a1a56 --- /dev/null +++ b/src/patches/glibc/glibc-rh631011.patch @@ -0,0 +1,17 @@ +2010-08-19 Andreas Schwab schwab@redhat.com + + * sysdeps/i386/i686/multiarch/strspn.S [!SHARED]: Fix SSE4.2 check. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strspn.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/strspn.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strspn.S +@@ -65,7 +65,7 @@ ENTRY(strspn) + jne 1f + call __init_cpu_features + 1: leal __strspn_ia32, %eax +- testl $index_SSE2, CPUID_OFFSET+index_SSE4_2+__cpu_features ++ testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features + jz 2f + leal __strspn_sse42, %eax + 2: ret diff --git a/src/patches/glibc/glibc-rh641128.patch b/src/patches/glibc/glibc-rh641128.patch new file mode 100644 index 0000000..52df4ae --- /dev/null +++ b/src/patches/glibc/glibc-rh641128.patch @@ -0,0 +1,78 @@ +2010-10-06 Ulrich Drepper drepper@gmail.com + + * string/bug-strstr1.c: New file. + * string/Makefile: Add rules to build and run bug-strstr1. + +2010-10-05 Eric Blake eblake@redhat.com + + [BZ #12092] + * string/str-two-way.h (two_way_long_needle): Always clear memory + when skipping input due to the shift table. + +Index: glibc-2.12-2-gc4ccff1/string/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/Makefile ++++ glibc-2.12-2-gc4ccff1/string/Makefile +@@ -54,7 +54,8 @@ tests := tester inl-tester noinl-tester + bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \ + tst-strtok tst-strxfrm bug-strcoll1 tst-strfry \ + bug-strtok1 $(addprefix test-,$(strop-tests)) \ +- bug-envz1 tst-strxfrm2 tst-endian tst-svc2 ++ bug-envz1 tst-strxfrm2 tst-endian tst-svc2 \ ++ bug-strstr1 + distribute := memcopy.h pagecopy.h tst-svc.expect test-string.h \ + str-two-way.h + +@@ -73,6 +74,7 @@ CFLAGS-tst-strlen.c = -fno-builtin + CFLAGS-stratcliff.c = -fno-builtin + CFLAGS-test-ffs.c = -fno-builtin + CFLAGS-tst-inlcall.c = -fno-builtin ++CFLAGS-bug-strstr1.c = -fno-builtin + + ifeq ($(cross-compiling),no) + tests: $(objpfx)tst-svc.out +Index: glibc-2.12-2-gc4ccff1/string/bug-strstr1.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/bug-strstr1.c +@@ -0,0 +1,26 @@ ++#include <stdio.h> ++#include <string.h> ++ ++int main (int argc, char** argv) ++{ ++ const char haystack[] = ++ "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD_C3_A7_20_EF_BF_BD"; ++ ++ const char needle[] = ++ "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"; ++ ++ const char* sub = strstr (haystack, needle); ++ ++ if (sub != NULL) ++ { ++ int j; ++ ++ fprintf (stderr, "BUG: expected NULL, got:\n%s\n%s\n", sub, needle); ++ for (j = 0; needle[j] != '\0'; ++j) ++ putchar (needle[j] == sub[j] ? ' ' : '^'); ++ puts (""); ++ return 1; ++ } ++ ++ return 0; ++} +Index: glibc-2.12-2-gc4ccff1/string/str-two-way.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/str-two-way.h ++++ glibc-2.12-2-gc4ccff1/string/str-two-way.h +@@ -350,8 +350,8 @@ two_way_long_needle (const unsigned char + a byte out of place, there can be no match until + after the mismatch. */ + shift = needle_len - period; +- memory = 0; + } ++ memory = 0; + j += shift; + continue; + } diff --git a/src/patches/glibc/glibc-rh642584.patch b/src/patches/glibc/glibc-rh642584.patch new file mode 100644 index 0000000..7fd390d --- /dev/null +++ b/src/patches/glibc/glibc-rh642584.patch @@ -0,0 +1,41 @@ +2010-10-13 H.J. Lu hongjiu.lu@intel.com + + [BZ #12113] + * sysdeps/x86_64/pthreaddef.h (TCB_ALIGNMENT): Changed to 32. + * sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Defined with alignment + of "struct pthread". + +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/pthreaddef.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/x86_64/pthreaddef.h ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/pthreaddef.h +@@ -27,8 +27,9 @@ + /* Minimal stack size after allocating thread descriptor and guard size. */ + #define MINIMAL_REST_STACK 2048 + +-/* Alignment requirement for TCB. */ +-#define TCB_ALIGNMENT 16 ++/* Alignment requirement for TCB. Need to store post-AVX vector registers ++ in the TCB and we want the storage to be aligned at 32-byte. */ ++#define TCB_ALIGNMENT 32 + + + /* Location of current stack frame. The frame pointer is not usable. */ +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/tls.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/x86_64/tls.h ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/tls.h +@@ -117,12 +117,7 @@ typedef struct + # define TLS_TCB_SIZE sizeof (struct pthread) + + /* Alignment requirements for the TCB. */ +-//# define TLS_TCB_ALIGN __alignof__ (struct pthread) +-// Normally the above would be correct But we have to store post-AVX +-// vector registers in the TCB and we want the storage to be aligned. +-// unfortunately there isn't yet a type for these values and hence no +-// 32-byte alignment requirement. Make this explicit, for now. +-# define TLS_TCB_ALIGN 32 ++# define TLS_TCB_ALIGN __alignof__ (struct pthread) + + /* The TCB can have any size and the memory following the address the + thread pointer points to is unspecified. Allocate the TCB there. */ diff --git a/src/patches/glibc/glibc-rh643822.patch b/src/patches/glibc/glibc-rh643822.patch new file mode 100644 index 0000000..c32c1fe --- /dev/null +++ b/src/patches/glibc/glibc-rh643822.patch @@ -0,0 +1,64 @@ +2010-12-09 Andreas Schwab schwab@redhat.com + + * elf/dl-object.c (_dl_new_object): Ignore origin of privileged + program. + +2010-10-18 Andreas Schwab schwab@redhat.com + + * elf/dl-open.c (dl_open_worker): Don't expand DST here, let + _dl_map_object do it. + +Index: glibc-2.12-2-gc4ccff1/elf/dl-object.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-object.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-object.c +@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const ch + out: + new->l_origin = origin; + } ++ else if (INTUSE(__libc_enable_secure) && type == lt_executable) ++ /* The origin of a privileged program cannot be trusted. */ ++ new->l_origin = (char *) -1; + + return new; + } +Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c +@@ -221,35 +221,6 @@ dl_open_worker (void *a) + + assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT); + +- /* Maybe we have to expand a DST. */ +- if (__builtin_expect (dst != NULL, 0)) +- { +- size_t len = strlen (file); +- +- /* Determine how much space we need. We have to allocate the +- memory locally. */ +- size_t required = DL_DST_REQUIRED (call_map, file, len, +- _dl_dst_count (dst, 0)); +- +- /* Get space for the new file name. */ +- char *new_file = (char *) alloca (required + 1); +- +- /* Generate the new file name. */ +- _dl_dst_substitute (call_map, file, new_file, 0); +- +- /* If the substitution failed don't try to load. */ +- if (*new_file == '\0') +- _dl_signal_error (0, "dlopen", NULL, +- N_("empty dynamic string token substitution")); +- +- /* Now we have a new file name. */ +- file = new_file; +- +- /* It does not matter whether call_map is set even if we +- computed it only because of the DST. Since the path contains +- a slash the value is not used. See dl-load.c. */ +- } +- + /* Load the named object. */ + struct link_map *new; + args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0, diff --git a/src/patches/glibc/glibc-rh645672.patch b/src/patches/glibc/glibc-rh645672.patch new file mode 100644 index 0000000..644614e --- /dev/null +++ b/src/patches/glibc/glibc-rh645672.patch @@ -0,0 +1,215 @@ +2010-10-22 Andreas Schwab schwab@redhat.com + + * include/dlfcn.h (__RTLD_SECURE): Define. + * elf/dl-load.c (_dl_map_object): Remove preloaded parameter. Use + mode & __RTLD_SECURE instead. + (open_path): Remove preloaded parameter to secure. + * sysdeps/generic/ldsodefs.h (_dl_map_object): Adjust declaration. + * elf/dl-open.c (dl_open_worker): Adjust call to _dl_map_object. + * elf/dl-deps.c (openaux): Likewise. + * elf/rtld.c (struct map_args): Remove is_preloaded. + (map_doit): Don't use it. + (dl_main): Likewise. + (do_preload): Use __RTLD_SECURE instead of is_preloaded. + (dlmopen_doit): Add __RTLD_SECURE to mode bits. + +Index: glibc-2.12-2-gc4ccff1/elf/dl-deps.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-deps.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-deps.c +@@ -62,7 +62,7 @@ openaux (void *a) + { + struct openaux_args *args = (struct openaux_args *) a; + +- args->aux = _dl_map_object (args->map, args->name, 0, ++ args->aux = _dl_map_object (args->map, args->name, + (args->map->l_type == lt_executable + ? lt_library : args->map->l_type), + args->trace_mode, args->open_mode, +Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c +@@ -1811,7 +1811,7 @@ open_verify (const char *name, struct fi + if MAY_FREE_DIRS is true. */ + + static int +-open_path (const char *name, size_t namelen, int preloaded, ++open_path (const char *name, size_t namelen, int secure, + struct r_search_path_struct *sps, char **realname, + struct filebuf *fbp, struct link_map *loader, int whatcode, + bool *found_other_class) +@@ -1893,7 +1893,7 @@ open_path (const char *name, size_t name + /* Remember whether we found any existing directory. */ + here_any |= this_dir->status[cnt] != nonexisting; + +- if (fd != -1 && __builtin_expect (preloaded, 0) ++ if (fd != -1 && __builtin_expect (secure, 0) + && INTUSE(__libc_enable_secure)) + { + /* This is an extra security effort to make sure nobody can +@@ -1962,7 +1962,7 @@ open_path (const char *name, size_t name + + struct link_map * + internal_function +-_dl_map_object (struct link_map *loader, const char *name, int preloaded, ++_dl_map_object (struct link_map *loader, const char *name, + int type, int trace_mode, int mode, Lmid_t nsid) + { + int fd; +@@ -2066,7 +2066,8 @@ _dl_map_object (struct link_map *loader, + for (l = loader; l; l = l->l_loader) + if (cache_rpath (l, &l->l_rpath_dirs, DT_RPATH, "RPATH")) + { +- fd = open_path (name, namelen, preloaded, &l->l_rpath_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, ++ &l->l_rpath_dirs, + &realname, &fb, loader, LA_SER_RUNPATH, + &found_other_class); + if (fd != -1) +@@ -2081,14 +2082,15 @@ _dl_map_object (struct link_map *loader, + && main_map != NULL && main_map->l_type != lt_loaded + && cache_rpath (main_map, &main_map->l_rpath_dirs, DT_RPATH, + "RPATH")) +- fd = open_path (name, namelen, preloaded, &main_map->l_rpath_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, ++ &main_map->l_rpath_dirs, + &realname, &fb, loader ?: main_map, LA_SER_RUNPATH, + &found_other_class); + } + + /* Try the LD_LIBRARY_PATH environment variable. */ + if (fd == -1 && env_path_list.dirs != (void *) -1) +- fd = open_path (name, namelen, preloaded, &env_path_list, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, &env_path_list, + &realname, &fb, + loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded, + LA_SER_LIBPATH, &found_other_class); +@@ -2097,12 +2099,12 @@ _dl_map_object (struct link_map *loader, + if (fd == -1 && loader != NULL + && cache_rpath (loader, &loader->l_runpath_dirs, + DT_RUNPATH, "RUNPATH")) +- fd = open_path (name, namelen, preloaded, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, + &loader->l_runpath_dirs, &realname, &fb, loader, + LA_SER_RUNPATH, &found_other_class); + + if (fd == -1 +- && (__builtin_expect (! preloaded, 1) ++ && (__builtin_expect (! (mode & __RTLD_SECURE), 1) + || ! INTUSE(__libc_enable_secure))) + { + /* Check the list of libraries in the file /etc/ld.so.cache, +@@ -2168,7 +2170,7 @@ _dl_map_object (struct link_map *loader, + && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL + || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) + && rtld_search_dirs.dirs != (void *) -1) +- fd = open_path (name, namelen, preloaded, &rtld_search_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, + &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); + + /* Add another newline when we are tracing the library loading. */ +Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c +@@ -252,7 +252,7 @@ dl_open_worker (void *a) + + /* Load the named object. */ + struct link_map *new; +- args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0, ++ args->map = new = _dl_map_object (call_map, file, lt_loaded, 0, + mode | __RTLD_CALLMAP, args->nsid); + + /* If the pointer returned is NULL this means the RTLD_NOLOAD flag is +Index: glibc-2.12-2-gc4ccff1/elf/rtld.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c ++++ glibc-2.12-2-gc4ccff1/elf/rtld.c +@@ -589,7 +589,6 @@ struct map_args + /* Argument to map_doit. */ + char *str; + struct link_map *loader; +- int is_preloaded; + int mode; + /* Return value of map_doit. */ + struct link_map *map; +@@ -627,16 +626,17 @@ static void + map_doit (void *a) + { + struct map_args *args = (struct map_args *) a; +- args->map = _dl_map_object (args->loader, args->str, +- args->is_preloaded, lt_library, 0, args->mode, +- LM_ID_BASE); ++ args->map = _dl_map_object (args->loader, args->str, lt_library, 0, ++ args->mode, LM_ID_BASE); + } + + static void + dlmopen_doit (void *a) + { + struct dlmopen_args *args = (struct dlmopen_args *) a; +- args->map = _dl_open (args->fname, RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT, ++ args->map = _dl_open (args->fname, ++ (RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT ++ | __RTLD_SECURE), + dl_main, LM_ID_NEWLM, _dl_argc, INTUSE(_dl_argv), + __environ); + } +@@ -806,8 +806,7 @@ do_preload (char *fname, struct link_map + + args.str = fname; + args.loader = main_map; +- args.is_preloaded = 1; +- args.mode = 0; ++ args.mode = __RTLD_SECURE; + + unsigned int old_nloaded = GL(dl_ns)[LM_ID_BASE]._ns_nloaded; + +@@ -1054,7 +1053,6 @@ of this helper program; chances are you + + args.str = rtld_progname; + args.loader = NULL; +- args.is_preloaded = 0; + args.mode = __RTLD_OPENEXEC; + (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit, + &args); +@@ -1066,7 +1064,7 @@ of this helper program; chances are you + else + { + HP_TIMING_NOW (start); +- _dl_map_object (NULL, rtld_progname, 0, lt_library, 0, ++ _dl_map_object (NULL, rtld_progname, lt_library, 0, + __RTLD_OPENEXEC, LM_ID_BASE); + HP_TIMING_NOW (stop); + +Index: glibc-2.12-2-gc4ccff1/include/dlfcn.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/include/dlfcn.h ++++ glibc-2.12-2-gc4ccff1/include/dlfcn.h +@@ -9,6 +9,7 @@ + #define __RTLD_OPENEXEC 0x20000000 + #define __RTLD_CALLMAP 0x10000000 + #define __RTLD_AUDIT 0x08000000 ++#define __RTLD_SECURE 0x04000000 /* Apply additional security checks. */ + + #define __LM_ID_CALLER -2 + +Index: glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h +@@ -824,11 +824,9 @@ extern void _dl_receive_error (receiver_ + + /* Open the shared object NAME and map in its segments. + LOADER's DT_RPATH is used in searching for NAME. +- If the object is already opened, returns its existing map. +- For preloaded shared objects PRELOADED is set to a non-zero +- value to allow additional security checks. */ ++ If the object is already opened, returns its existing map. */ + extern struct link_map *_dl_map_object (struct link_map *loader, +- const char *name, int preloaded, ++ const char *name, + int type, int trace_mode, int mode, + Lmid_t nsid) + internal_function attribute_hidden; diff --git a/src/patches/glibc/glibc-rh646954.patch b/src/patches/glibc/glibc-rh646954.patch new file mode 100644 index 0000000..bbb959e --- /dev/null +++ b/src/patches/glibc/glibc-rh646954.patch @@ -0,0 +1,216 @@ +2010-10-26 Ulrich Drepper drepper@gmail.com + + * elf/rtld.c (dl_main): Move assertion after the point where rtld map + is added to the list. + +2010-10-20 Andreas Krebbel Andreas.Krebbel@de.ibm.com + Ulrich Drepper drepper@gmail.com + + * elf/dl-object.c (_dl_new_object): Don't append the new object to + the global list here. Move code to... + (_dl_add_to_namespace_list): ...here. New function. + * elf/rtld.c (dl_main): Invoke _dl_add_to_namespace_list. + * sysdeps/generic/ldsodefs.h (_dl_add_to_namespace_list): Declare. + * elf/dl-load.c (lose): Don't remove the element from the list. + (_dl_map_object_from_fd): Invoke _dl_add_to_namespace_list. + (_dl_map_object): Likewise. + +Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c +@@ -797,22 +797,7 @@ lose (int code, int fd, const char *name + /* The file might already be closed. */ + if (fd != -1) + (void) __close (fd); +- if (l != NULL) +- { +- /* We modify the list of loaded objects. */ +- __rtld_lock_lock_recursive (GL(dl_load_write_lock)); +- /* Remove the stillborn object from the list and free it. */ +- assert (l->l_next == NULL); +- if (l->l_prev == NULL) +- /* No other module loaded. This happens only in the static library, +- or in rtld under --verify. */ +- GL(dl_ns)[l->l_ns]._ns_loaded = NULL; +- else +- l->l_prev->l_next = NULL; +- --GL(dl_ns)[l->l_ns]._ns_nloaded; +- free (l); +- __rtld_lock_unlock_recursive (GL(dl_load_write_lock)); +- } ++ free (l); + free (realname); + + if (r != NULL) +@@ -897,6 +882,9 @@ _dl_map_object_from_fd (const char *name + never be unloaded. */ + __close (fd); + ++ /* Add the map for the mirrored object to the object list. */ ++ _dl_add_to_namespace_list (l, nsid); ++ + return l; + } + #endif +@@ -1491,6 +1479,9 @@ cannot enable executable stack as shared + add_name_to_object (l, ((const char *) D_PTR (l, l_info[DT_STRTAB]) + + l->l_info[DT_SONAME]->d_un.d_val)); + ++ /* Now that the object is fully initialized add it to the object list. */ ++ _dl_add_to_namespace_list (l, nsid); ++ + #ifdef SHARED + /* Auditing checkpoint: we have a new object. */ + if (__builtin_expect (GLRO(dl_naudit) > 0, 0) +@@ -2215,7 +2206,7 @@ _dl_map_object (struct link_map *loader, + have. */ + static const Elf_Symndx dummy_bucket = STN_UNDEF; + +- /* Enter the new object in the list of loaded objects. */ ++ /* Allocate a new object map. */ + if ((name_copy = local_strdup (name)) == NULL + || (l = _dl_new_object (name_copy, name, type, loader, + mode, nsid)) == NULL) +@@ -2233,6 +2224,9 @@ _dl_map_object (struct link_map *loader, + l->l_nbuckets = 1; + l->l_relocated = 1; + ++ /* Enter the object in the object list. */ ++ _dl_add_to_namespace_list (l, nsid); ++ + return l; + } + else if (found_other_class) +Index: glibc-2.12-2-gc4ccff1/elf/dl-object.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-object.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-object.c +@@ -26,16 +26,41 @@ + #include <assert.h> + + ++/* Add the new link_map NEW to the end of the namespace list. */ ++void ++internal_function ++_dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid) ++{ ++ /* We modify the list of loaded objects. */ ++ __rtld_lock_lock_recursive (GL(dl_load_write_lock)); ++ ++ if (GL(dl_ns)[nsid]._ns_loaded != NULL) ++ { ++ struct link_map *l = GL(dl_ns)[nsid]._ns_loaded; ++ while (l->l_next != NULL) ++ l = l->l_next; ++ new->l_prev = l; ++ /* new->l_next = NULL; Would be necessary but we use calloc. */ ++ l->l_next = new; ++ } ++ else ++ GL(dl_ns)[nsid]._ns_loaded = new; ++ ++GL(dl_ns)[nsid]._ns_nloaded; ++ new->l_serial = GL(dl_load_adds); ++ ++GL(dl_load_adds); ++ ++ __rtld_lock_unlock_recursive (GL(dl_load_write_lock)); ++} ++ ++ + /* Allocate a `struct link_map' for a new object being loaded, + and enter it into the _dl_loaded list. */ +- + struct link_map * + internal_function + _dl_new_object (char *realname, const char *libname, int type, + struct link_map *loader, int mode, Lmid_t nsid) + { + struct link_map *l; +- int idx; + size_t libname_len = strlen (libname) + 1; + struct link_map *new; + struct libname_list *newname; +@@ -93,31 +118,12 @@ _dl_new_object (char *realname, const ch + new->l_scope = new->l_scope_mem; + new->l_scope_max = sizeof (new->l_scope_mem) / sizeof (new->l_scope_mem[0]); + +- /* We modify the list of loaded objects. */ +- __rtld_lock_lock_recursive (GL(dl_load_write_lock)); +- + /* Counter for the scopes we have to handle. */ +- idx = 0; ++ int idx = 0; + + if (GL(dl_ns)[nsid]._ns_loaded != NULL) +- { +- l = GL(dl_ns)[nsid]._ns_loaded; +- while (l->l_next != NULL) +- l = l->l_next; +- new->l_prev = l; +- /* new->l_next = NULL; Would be necessary but we use calloc. */ +- l->l_next = new; +- +- /* Add the global scope. */ +- new->l_scope[idx++] = &GL(dl_ns)[nsid]._ns_loaded->l_searchlist; +- } +- else +- GL(dl_ns)[nsid]._ns_loaded = new; +- ++GL(dl_ns)[nsid]._ns_nloaded; +- new->l_serial = GL(dl_load_adds); +- ++GL(dl_load_adds); +- +- __rtld_lock_unlock_recursive (GL(dl_load_write_lock)); ++ /* Add the global scope. */ ++ new->l_scope[idx++] = &GL(dl_ns)[nsid]._ns_loaded->l_searchlist; + + /* If we have no loader the new object acts as it. */ + if (loader == NULL) +Index: glibc-2.12-2-gc4ccff1/elf/rtld.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c ++++ glibc-2.12-2-gc4ccff1/elf/rtld.c +@@ -1108,11 +1108,15 @@ of this helper program; chances are you + main_map = _dl_new_object ((char *) "", "", lt_executable, NULL, + __RTLD_OPENEXEC, LM_ID_BASE); + assert (main_map != NULL); +- assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded); + main_map->l_phdr = phdr; + main_map->l_phnum = phnum; + main_map->l_entry = *user_entry; + ++ /* Even though the link map is not yet fully initialized we can add ++ it to the map list since there are no possible users running yet. */ ++ _dl_add_to_namespace_list (main_map, LM_ID_BASE); ++ assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded); ++ + /* At this point we are in a bit of trouble. We would have to + fill in the values for l_dev and l_ino. But in general we + do not know where the file is. We also do not handle AT_EXECFD +@@ -1380,6 +1384,9 @@ of this helper program; chances are you + l->l_libname->name = memcpy (copy, dsoname, len); + } + ++ /* Add the vDSO to the object list. */ ++ _dl_add_to_namespace_list (l, LM_ID_BASE); ++ + /* Rearrange the list so this DSO appears after rtld_map. */ + assert (l->l_next == NULL); + assert (l->l_prev == main_map); +Index: glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h +@@ -891,8 +891,11 @@ extern lookup_t _dl_lookup_symbol_x (con + extern ElfW(Addr) _dl_symbol_value (struct link_map *map, const char *name) + internal_function; + +-/* Allocate a `struct link_map' for a new object being loaded, +- and enter it into the _dl_main_map list. */ ++/* Add the new link_map NEW to the end of the namespace list. */ ++extern void _dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid) ++ internal_function attribute_hidden; ++ ++/* Allocate a `struct link_map' for a new object being loaded. */ + extern struct link_map *_dl_new_object (char *realname, const char *libname, + int type, struct link_map *loader, + int mode, Lmid_t nsid) diff --git a/src/patches/glibc/glibc-rh647448.patch b/src/patches/glibc/glibc-rh647448.patch new file mode 100644 index 0000000..ff55945 --- /dev/null +++ b/src/patches/glibc/glibc-rh647448.patch @@ -0,0 +1,58 @@ +2010-10-25 Ulrich Drepper drepper@redhat.com + + [BZ #12159] + * sysdeps/x86_64/multiarch/strchr.S: Fix propagation of search byte + into all bytes of SSE register. + Patch by Richard Li richardpku@gmail.com. + +Index: glibc-2.12-2-gc4ccff1/string/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/Makefile ++++ glibc-2.12-2-gc4ccff1/string/Makefile +@@ -55,7 +55,7 @@ tests := tester inl-tester noinl-tester + tst-strtok tst-strxfrm bug-strcoll1 tst-strfry \ + bug-strtok1 $(addprefix test-,$(strop-tests)) \ + bug-envz1 tst-strxfrm2 tst-endian tst-svc2 \ +- bug-strstr1 ++ bug-strstr1 bug-strchr1 + distribute := memcopy.h pagecopy.h tst-svc.expect test-string.h \ + str-two-way.h + +Index: glibc-2.12-2-gc4ccff1/string/bug-strchr1.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/bug-strchr1.c +@@ -0,0 +1,14 @@ ++#include <stdio.h> ++#include <string.h> ++ ++static int ++do_test (void) ++{ ++ char s[] __attribute__((aligned(16))) = "\xff"; ++ char *p = strchr (s, '\xfe'); ++ printf ("%p\n", p); ++ return p != NULL; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strchr.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strchr.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strchr.S +@@ -87,13 +87,13 @@ __strchr_sse42: + pxor %xmm2, %xmm2 + movd %esi, %xmm1 + movl %edi, %ecx ++ pshufb %xmm2, %xmm1 + andl $15, %ecx + movq %rdi, %r8 + je L(aligned_start) + + /* Handle unaligned string. */ + andq $-16, %r8 +- pshufb %xmm2, %xmm1 + movdqa (%r8), %xmm0 + pcmpeqb %xmm0, %xmm2 + pcmpeqb %xmm1, %xmm0 diff --git a/src/patches/glibc/glibc-rh652661.patch b/src/patches/glibc/glibc-rh652661.patch new file mode 100644 index 0000000..79a3212 --- /dev/null +++ b/src/patches/glibc/glibc-rh652661.patch @@ -0,0 +1,21 @@ +2010-05-20 Andreas Schwab schwab@redhat.com + + * sysdeps/unix/sysv/linux/sys/timex.h: Use __REDIRECT_NTH. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sys/timex.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/sys/timex.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sys/timex.h +@@ -140,9 +140,9 @@ __BEGIN_DECLS + extern int __adjtimex (struct timex *__ntx) __THROW; + extern int adjtimex (struct timex *__ntx) __THROW; + +-#if defined __GNUC__ && __GNUC__ >= 2 +-extern int ntp_gettime (struct ntptimeval *__ntv) +- __asm__ ("ntp_gettimex") __THROW; ++#ifdef __REDIRECT_NTH ++extern int __REDIRECT_NTH (ntp_gettime, (struct ntptimeval *__ntv), ++ ntp_gettimex); + #else + extern int ntp_gettimex (struct ntptimeval *__ntv) __THROW; + # define ntp_gettime ntp_gettimex diff --git a/src/patches/glibc/glibc-rh656014.patch b/src/patches/glibc/glibc-rh656014.patch new file mode 100644 index 0000000..5ef68dc --- /dev/null +++ b/src/patches/glibc/glibc-rh656014.patch @@ -0,0 +1,45 @@ +2010-11-24 Andreas Schwab schwab@redhat.com + + * resolv/nss_dns/dns-host.c (getanswer_r): Don't handle ttl == 0 + specially. + (gaih_getanswer_slice): Likewise. + +Index: glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-host.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/resolv/nss_dns/dns-host.c ++++ glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-host.c +@@ -599,7 +599,6 @@ getanswer_r (const querybuf *answer, int + int (*name_ok) (const char *); + u_char packtmp[NS_MAXCDNAME]; + int have_to_map = 0; +- int32_t ttl = 0; + uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct host_data); + buffer += pad; + if (__builtin_expect (buflen < sizeof (struct host_data) + pad, 0)) +@@ -733,7 +732,7 @@ getanswer_r (const querybuf *answer, int + cp += INT16SZ; /* type */ + class = __ns_get16 (cp); + cp += INT16SZ; /* class */ +- ttl = __ns_get32 (cp); ++ int32_t ttl = __ns_get32 (cp); + cp += INT32SZ; /* TTL */ + n = __ns_get16 (cp); + cp += INT16SZ; /* len */ +@@ -907,7 +906,7 @@ getanswer_r (const querybuf *answer, int + { + register int nn; + +- if (ttlp != NULL && ttl != 0) ++ if (ttlp != NULL) + *ttlp = ttl; + if (canonp != NULL) + *canonp = bp; +@@ -1163,7 +1162,7 @@ gaih_getanswer_slice (const querybuf *an + + if (*firstp) + { +- if (ttl != 0 && ttlp != NULL) ++ if (ttlp != NULL) + *ttlp = ttl; + + (*pat)->name = canon ?: h_name; diff --git a/src/patches/glibc/glibc-rh656530.patch b/src/patches/glibc/glibc-rh656530.patch new file mode 100644 index 0000000..f101430 --- /dev/null +++ b/src/patches/glibc/glibc-rh656530.patch @@ -0,0 +1,21 @@ +2010-11-10 Luis Machado luisgpm@br.ibm.com + + * sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c (__ieee754_sqrtl): Force + signed comparison. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c +@@ -73,9 +73,9 @@ long double __ieee754_sqrtl(long double + m = ((a.i[2] >> 20) & 0x7ff) - 54; + } + m += n; +- if (m > 0) ++ if ((int) m > 0) + a.i[2] = (a.i[2] & 0x800fffff) | (m << 20); +- else if (m <= -54) { ++ else if ((int) m <= -54) { + a.i[2] &= 0x80000000; + a.i[3] = 0; + } else { diff --git a/src/patches/glibc/glibc-rh657572.patch b/src/patches/glibc/glibc-rh657572.patch new file mode 100644 index 0000000..a720130 --- /dev/null +++ b/src/patches/glibc/glibc-rh657572.patch @@ -0,0 +1,141 @@ +commit 42c5011242e48f846111237552d3bf3ca18c4885 +Author: Ulrich Drepper drepper@gmail.com +Date: Fri Dec 23 09:51:10 2011 -0500 + + Various fixes to fi_FI + + 2011-12-23 Ulrich Drepper drepper@gmail.com + + [BZ #12962] + * locales/fi_FI: Various fixups. + Patch by Marko Myllynen myllynen@redhat.com. + +diff --git a/localedata/locales/fi_FI b/localedata/locales/fi_FI +index acc9ce6..f51700c 100644 +--- a/localedata/locales/fi_FI ++++ b/localedata/locales/fi_FI +@@ -1,4 +1,4 @@ +-escape_char / ++escape_char / + comment_char % + + % Finnish language locale for Finland +@@ -45,10 +45,10 @@ category "fi_FI:2000";LC_NUMERIC + category "fi_FI:2000";LC_MONETARY + category "fi_FI:2000";LC_MESSAGES + category "fi_FI:2000";LC_PAPER ++category "fi_FI:2000";LC_MEASUREMENT + category "fi_FI:2000";LC_NAME + category "fi_FI:2000";LC_ADDRESS + category "fi_FI:2000";LC_TELEPHONE +- + END LC_IDENTIFICATION + + LC_COLLATE +@@ -125,7 +125,6 @@ reorder-after <U0044> + <U0110> <d>;<OBL>;<CAP>;IGNORE + + reorder-end +- + END LC_COLLATE + + LC_CTYPE +@@ -146,12 +145,10 @@ positive_sign "" + negative_sign "<U002D>" + int_frac_digits 2 + frac_digits 2 +-% int_curr_symbol precedes +-% curr_symbol succeeds + p_cs_precedes 0 +-p_sep_by_space 2 ++p_sep_by_space 1 + n_cs_precedes 0 +-n_sep_by_space 2 ++n_sep_by_space 1 + p_sign_posn 1 + n_sign_posn 1 + END LC_MONETARY +@@ -173,18 +170,18 @@ day "<U0073><U0075><U006E><U006E><U0075><U006E><U0074><U0061><U0069>";/ + "<U0074><U006F><U0072><U0073><U0074><U0061><U0069>";/ + "<U0070><U0065><U0072><U006A><U0061><U006E><U0074><U0061><U0069>";/ + "<U006C><U0061><U0075><U0061><U006E><U0074><U0061><U0069>" +-abmon "<U0074><U0061><U006D><U006D><U0069><U00A0>";/ +- "<U0068><U0065><U006C><U006D><U0069><U00A0>";/ ++abmon "<U0074><U0061><U006D><U006D><U0069>";/ ++ "<U0068><U0065><U006C><U006D><U0069>";/ + "<U006D><U0061><U0061><U006C><U0069><U0073>";/ +- "<U0068><U0075><U0068><U0074><U0069><U00A0>";/ +- "<U0074><U006F><U0075><U006B><U006F><U00A0>";/ +- "<U006B><U0065><U0073><U00E4><U00A0><U00A0>";/ +- "<U0068><U0065><U0069><U006E><U00E4><U00A0>";/ +- "<U0065><U006C><U006F><U00A0><U00A0><U00A0>";/ +- "<U0073><U0079><U0079><U0073><U00A0><U00A0>";/ +- "<U006C><U006F><U006B><U0061><U00A0><U00A0>";/ ++ "<U0068><U0075><U0068><U0074><U0069>";/ ++ "<U0074><U006F><U0075><U006B><U006F>";/ ++ "<U006B><U0065><U0073><U00E4>";/ ++ "<U0068><U0065><U0069><U006E><U00E4>";/ ++ "<U0065><U006C><U006F>";/ ++ "<U0073><U0079><U0079><U0073>";/ ++ "<U006C><U006F><U006B><U0061>";/ + "<U006D><U0061><U0072><U0072><U0061><U0073>";/ +- "<U006A><U006F><U0075><U006C><U0075><U00A0>" ++ "<U006A><U006F><U0075><U006C><U0075>" + mon "<U0074><U0061><U006D><U006D><U0069><U006B><U0075><U0075>";/ + "<U0068><U0065><U006C><U006D><U0069><U006B><U0075><U0075>";/ + "<U006D><U0061><U0061><U006C><U0069><U0073><U006B><U0075><U0075>";/ +@@ -207,13 +204,14 @@ t_fmt_ampm "" + date_fmt "<U0025><U0061><U0020><U0025><U002D><U0064><U002E><U0025>/ + <U002D><U006D><U002E><U0025><U0059><U0020><U0025><U0048><U002E><U0025>/ + <U004D><U002E><U0025><U0053><U0020><U0025><U007A>" ++week 7;19971130;4 + first_weekday 2 % Monday + first_workday 2 % Monday + END LC_TIME + + LC_MESSAGES +-yesexpr "<U005E><U005B><U004B><U006B><U004A><U006A><U0059><U0079><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U004E><U006E><U0045><U0065><U005D><U002E><U002A>" ++yesexpr "<U005E><U005B><U004B><U006B><U0059><U0079><U005D><U002E><U002A>" ++noexpr "<U005E><U005B><U0045><U0065><U004E><U006E><U005D><U002E><U002A>" + END LC_MESSAGES + + LC_PAPER +@@ -222,6 +220,7 @@ width 210 + END LC_PAPER + + LC_TELEPHONE ++tel_dom_fmt "<U0028><U0025><U0041><U0029><U0020><U0025><U006C>" + tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/ + <U006C>" + int_prefix "<U0033><U0035><U0038>" +@@ -235,15 +234,25 @@ END LC_MEASUREMENT + LC_NAME + name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/ + <U0025><U006D><U0025><U0074><U0025><U0066>" ++% Finnish equivalents for Mr/Mrs/Miss/Ms are herra/rouva/rouva/neiti ++% but they are practically never used, thus we don't define them here. + END LC_NAME + + LC_ADDRESS +-postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/ +-<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/ +-<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/ +-<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/ ++postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0064><U0025><U004E>/ ++<U0025><U0062><U0025><U004E><U0025><U0061><U0025><U004E><U0025><U0073>/ ++<U0020><U0025><U0068><U0025><U0074><U0025><U0065><U0025><U0074><U0025>/ ++<U0072><U0025><U004E><U0025><U007A><U0020><U0025><U0054><U0025>/ + <U004E><U0025><U0063><U0025><U004E>" + country_ab2 "<U0046><U0049>" + country_ab3 "<U0046><U0049><U004E>" + country_num 246 ++country_name "<U0053><U0075><U006F><U006D><U0069>" ++country_post "<U0046><U0049>" ++country_car "<U0046><U0049><U004E>" ++country_isbn 952 ++lang_name "<U0073><U0075><U006F><U006D><U0069>" ++lang_ab "<U0066><U0069>" ++lang_term "<U0066><U0069><U006E>" ++lang_lib "<U0066><U0069><U006E>" + END LC_ADDRESS diff --git a/src/patches/glibc/glibc-rh661982.patch b/src/patches/glibc/glibc-rh661982.patch new file mode 100644 index 0000000..60b840b --- /dev/null +++ b/src/patches/glibc/glibc-rh661982.patch @@ -0,0 +1,188 @@ +2010-12-10 Andreas Schwab schwab@redhat.com + + * wcsmbs/wchar.h (wcpcpy, wcpncpy): Only declare under + _GNU_SOURCE. + +2010-12-10 Andreas Schwab schwab@redhat.com + + * wcsmbs/wchar.h (wcpcpy, wcpncpy): Add __restrict. + * wcsmbs/bits/wchar2.h (__wmemmove_chk_warn, wmemmove, wmemset): + Remove __restrict. + (wcscpy, __wcpcpy_chk, __wcpcpy_alias, wcpcpy, wcsncpy, wcpncpy) + (wcscat, wcsncat, __wcrtomb_chk, wcrtomb): Add __restrict. + +2010-12-09 Jakub Jelinek jakub@redhat.com + + * string/bits/string3.h (memmove, bcopy): Remove __restrict. + +Index: glibc-2.12-2-gc4ccff1/string/bits/string3.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/bits/string3.h ++++ glibc-2.12-2-gc4ccff1/string/bits/string3.h +@@ -53,8 +53,7 @@ __NTH (memcpy (void *__restrict __dest, + } + + __extern_always_inline void * +-__NTH (memmove (void *__restrict __dest, __const void *__restrict __src, +- size_t __len)) ++__NTH (memmove (void *__dest, __const void *__src, size_t __len)) + { + return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest)); + } +@@ -88,8 +87,7 @@ __NTH (memset (void *__dest, int __ch, s + + #ifdef __USE_BSD + __extern_always_inline void +-__NTH (bcopy (__const void *__restrict __src, void *__restrict __dest, +- size_t __len)) ++__NTH (bcopy (__const void *__src, void *__dest, size_t __len)) + { + (void) __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest)); + } +Index: glibc-2.12-2-gc4ccff1/wcsmbs/bits/wchar2.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/bits/wchar2.h ++++ glibc-2.12-2-gc4ccff1/wcsmbs/bits/wchar2.h +@@ -60,15 +60,13 @@ extern wchar_t *__REDIRECT_NTH (__wmemmo + __const wchar_t *__s2, + size_t __n), wmemmove); + extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn, +- (wchar_t *__restrict __s1, +- __const wchar_t *__restrict __s2, size_t __n, +- size_t __ns1), __wmemmove_chk) ++ (wchar_t *__s1, __const wchar_t *__s2, ++ size_t __n, size_t __ns1), __wmemmove_chk) + __warnattr ("wmemmove called with length bigger than size of destination " + "buffer"); + + __extern_always_inline wchar_t * +-__NTH (wmemmove (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, +- size_t __n)) ++__NTH (wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)) + { + if (__bos0 (__s1) != (size_t) -1) + { +@@ -129,7 +127,7 @@ extern wchar_t *__REDIRECT_NTH (__wmemse + "buffer"); + + __extern_always_inline wchar_t * +-__NTH (wmemset (wchar_t *__restrict __s, wchar_t __c, size_t __n)) ++__NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n)) + { + if (__bos0 (__s) != (size_t) -1) + { +@@ -152,7 +150,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscpy + __const wchar_t *__restrict __src), wcscpy); + + __extern_always_inline wchar_t * +-__NTH (wcscpy (wchar_t *__dest, __const wchar_t *__src)) ++__NTH (wcscpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src)) + { + if (__bos (__dest) != (size_t) -1) + return __wcscpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t)); +@@ -160,14 +158,15 @@ __NTH (wcscpy (wchar_t *__dest, __const + } + + +-extern wchar_t *__wcpcpy_chk (wchar_t *__dest, __const wchar_t *__src, ++extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, ++ __const wchar_t *__restrict __src, + size_t __destlen) __THROW; +-extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias, (wchar_t *__dest, +- __const wchar_t *__src), +- wcpcpy); ++extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias, ++ (wchar_t *__restrict __dest, ++ __const wchar_t *__restrict __src), wcpcpy); + + __extern_always_inline wchar_t * +-__NTH (wcpcpy (wchar_t *__dest, __const wchar_t *__src)) ++__NTH (wcpcpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src)) + { + if (__bos (__dest) != (size_t) -1) + return __wcpcpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t)); +@@ -190,7 +189,8 @@ extern wchar_t *__REDIRECT_NTH (__wcsncp + "buffer"); + + __extern_always_inline wchar_t * +-__NTH (wcsncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)) ++__NTH (wcsncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, ++ size_t __n)) + { + if (__bos (__dest) != (size_t) -1) + { +@@ -220,7 +220,8 @@ extern wchar_t *__REDIRECT_NTH (__wcpncp + "buffer"); + + __extern_always_inline wchar_t * +-__NTH (wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)) ++__NTH (wcpncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, ++ size_t __n)) + { + if (__bos (__dest) != (size_t) -1) + { +@@ -243,7 +244,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscat + __const wchar_t *__restrict __src), wcscat); + + __extern_always_inline wchar_t * +-__NTH (wcscat (wchar_t *__dest, __const wchar_t *__src)) ++__NTH (wcscat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src)) + { + if (__bos (__dest) != (size_t) -1) + return __wcscat_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t)); +@@ -260,7 +261,8 @@ extern wchar_t *__REDIRECT_NTH (__wcsnca + size_t __n), wcsncat); + + __extern_always_inline wchar_t * +-__NTH (wcsncat (wchar_t *__dest, __const wchar_t *__src, size_t __n)) ++__NTH (wcsncat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, ++ size_t __n)) + { + if (__bos (__dest) != (size_t) -1) + return __wcsncat_chk (__dest, __src, __n, +@@ -428,14 +430,16 @@ fgetws_unlocked (wchar_t *__restrict __s + #endif + + +-extern size_t __wcrtomb_chk (char *__s, wchar_t __wchar, mbstate_t *__p, +- size_t __buflen) __THROW __wur; ++extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, ++ mbstate_t *__restrict __p, ++ size_t __buflen) __THROW __wur; + extern size_t __REDIRECT_NTH (__wcrtomb_alias, + (char *__restrict __s, wchar_t __wchar, + mbstate_t *__restrict __ps), wcrtomb) __wur; + + __extern_always_inline __wur size_t +-__NTH (wcrtomb (char *__s, wchar_t __wchar, mbstate_t *__ps)) ++__NTH (wcrtomb (char *__restrict __s, wchar_t __wchar, ++ mbstate_t *__restrict __ps)) + { + /* We would have to include <limits.h> to get a definition of MB_LEN_MAX. + But this would only disturb the namespace. So we define our own +Index: glibc-2.12-2-gc4ccff1/wcsmbs/wchar.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/wchar.h ++++ glibc-2.12-2-gc4ccff1/wcsmbs/wchar.h +@@ -555,17 +555,17 @@ extern float wcstof_l (__const wchar_t * + extern long double wcstold_l (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + __locale_t __loc) __THROW; +-#endif /* GNU */ + + +-#ifdef __USE_XOPEN2K8 + /* Copy SRC to DEST, returning the address of the terminating L'\0' in + DEST. */ +-extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) __THROW; ++extern wchar_t *wcpcpy (wchar_t *__restrict __dest, ++ __const wchar_t *__restrict __src) __THROW; + + /* Copy no more than N characters of SRC to DEST, returning the address of + the last character written into DEST. */ +-extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n) ++extern wchar_t *wcpncpy (wchar_t *__restrict __dest, ++ __const wchar_t *__restrict __src, size_t __n) + __THROW; + #endif /* use GNU */ + diff --git a/src/patches/glibc/glibc-rh667974.patch b/src/patches/glibc/glibc-rh667974.patch new file mode 100644 index 0000000..48aacac --- /dev/null +++ b/src/patches/glibc/glibc-rh667974.patch @@ -0,0 +1,160 @@ +2011-03-14 Andreas Schwab schwab@redhat.com + + * elf/dl-load.c (is_dst): Remove parameter secure, all callers + changed. Don't check for isolated use. + (_dl_dst_substitute): Ignore rpath elements containing + non-isolated use of $ORIGIN when privileged. + + * elf/dl-load.c (_dl_dst_substitute): When skipping the first + rpath element also skip the following colon. + (expand_dynamic_string_token): Add is_path parameter and pass + down to DL_DST_REQUIRED and _dl_dst_substitute. + (decompose_rpath): Call expand_dynamic_string_token with + non-zero is_path. Ignore empty rpaths. + (_dl_map_object_from_fd): Call expand_dynamic_string_token + with zero is_path. + +Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c +@@ -169,8 +169,7 @@ local_strdup (const char *s) + + + static size_t +-is_dst (const char *start, const char *name, const char *str, +- int is_path, int secure) ++is_dst (const char *start, const char *name, const char *str, int is_path) + { + size_t len; + bool is_curly = false; +@@ -199,11 +198,6 @@ is_dst (const char *start, const char *n + && (!is_path || name[len] != ':')) + return 0; + +- if (__builtin_expect (secure, 0) +- && ((name[len] != '\0' && (!is_path || name[len] != ':')) +- || (name != start + 1 && (!is_path || name[-2] != ':')))) +- return 0; +- + return len; + } + +@@ -218,13 +212,10 @@ _dl_dst_count (const char *name, int is_ + { + size_t len; + +- /* $ORIGIN is not expanded for SUID/GUID programs (except if it +- is $ORIGIN alone) and it must always appear first in path. */ + ++name; +- if ((len = is_dst (start, name, "ORIGIN", is_path, +- INTUSE(__libc_enable_secure))) != 0 +- || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0 +- || (len = is_dst (start, name, "LIB", is_path, 0)) != 0) ++ if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0 ++ || (len = is_dst (start, name, "PLATFORM", is_path)) != 0 ++ || (len = is_dst (start, name, "LIB", is_path)) != 0) + ++cnt; + + name = strchr (name + len, '$'); +@@ -256,9 +247,16 @@ _dl_dst_substitute (struct link_map *l, + size_t len; + + ++name; +- if ((len = is_dst (start, name, "ORIGIN", is_path, +- INTUSE(__libc_enable_secure))) != 0) ++ if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0) + { ++ /* $ORIGIN is not expanded for SUID/GUID programs ++ (except if it is $ORIGIN alone) and it must always ++ appear first in path. */ ++ if (__builtin_expect (INTUSE(__libc_enable_secure), 0) ++ && ((name[len] != '\0' && (!is_path || name[len] != ':')) ++ || (name != start + 1 && (!is_path || name[-2] != ':')))) ++ repl = (const char *) -1; ++ else + #ifndef SHARED + if (l == NULL) + repl = _dl_get_origin (); +@@ -266,9 +264,9 @@ _dl_dst_substitute (struct link_map *l, + #endif + repl = l->l_origin; + } +- else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) ++ else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0) + repl = GLRO(dl_platform); +- else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0) ++ else if ((len = is_dst (start, name, "LIB", is_path)) != 0) + repl = DL_DST_LIB; + + if (repl != NULL && repl != (const char *) -1) +@@ -284,6 +282,10 @@ _dl_dst_substitute (struct link_map *l, + name += len; + while (*name != '\0' && (!is_path || *name != ':')) + ++name; ++ /* Also skip following colon if this is the first rpath ++ element, but keep an empty element at the end. */ ++ if (wp == result && is_path && *name == ':' && name[1] != '\0') ++ ++name; + } + else + /* No DST we recognize. */ +@@ -310,7 +312,7 @@ _dl_dst_substitute (struct link_map *l, + belonging to the map is loaded. In this case the path element + containing $ORIGIN is left out. */ + static char * +-expand_dynamic_string_token (struct link_map *l, const char *s) ++expand_dynamic_string_token (struct link_map *l, const char *s, int is_path) + { + /* We make two runs over the string. First we determine how large the + resulting string is and then we copy it over. Since this is no +@@ -321,7 +323,7 @@ expand_dynamic_string_token (struct link + char *result; + + /* Determine the number of DST elements. */ +- cnt = DL_DST_COUNT (s, 1); ++ cnt = DL_DST_COUNT (s, is_path); + + /* If we do not have to replace anything simply copy the string. */ + if (__builtin_expect (cnt, 0) == 0) +@@ -335,7 +337,7 @@ expand_dynamic_string_token (struct link + if (result == NULL) + return NULL; + +- return _dl_dst_substitute (l, s, result, 1); ++ return _dl_dst_substitute (l, s, result, is_path); + } + + +@@ -551,13 +553,21 @@ decompose_rpath (struct r_search_path_st + + /* Make a writable copy. At the same time expand possible dynamic + string tokens. */ +- copy = expand_dynamic_string_token (l, rpath); ++ copy = expand_dynamic_string_token (l, rpath, 1); + if (copy == NULL) + { + errstring = N_("cannot create RUNPATH/RPATH copy"); + goto signal_error; + } + ++ /* Ignore empty rpaths. */ ++ if (*copy == 0) ++ { ++ free (copy); ++ sps->dirs = (char *) -1; ++ return false; ++ } ++ + /* Count the number of necessary elements in the result array. */ + nelems = 0; + for (cp = copy; *cp != '\0'; ++cp) +@@ -2176,7 +2186,7 @@ _dl_map_object (struct link_map *loader, + { + /* The path may contain dynamic string tokens. */ + realname = (loader +- ? expand_dynamic_string_token (loader, name) ++ ? expand_dynamic_string_token (loader, name, 0) + : local_strdup (name)); + if (realname == NULL) + fd = -1; diff --git a/src/patches/glibc/glibc-rh676076.patch b/src/patches/glibc/glibc-rh676076.patch new file mode 100644 index 0000000..c5aa2d4 --- /dev/null +++ b/src/patches/glibc/glibc-rh676076.patch @@ -0,0 +1,714 @@ +2011-03-02 Harsha Jagasia harsha.jagasia@amd.com + Ulrich Drepper drepper@gmail.com + + * sysdeps/x86_64/memset.S: After aligning destination, code + branches to different locations depending on the value of + misalignment, when multiarch is enabled. Fix this. + +2011-03-02 Harsha Jagasia harsha.jagasia@amd.com + + * sysdeps/x86_64/cacheinfo.c (init_cacheinfo): + Set _x86_64_preferred_memory_instruction for AMD processsors. + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): + Set bit_Prefer_SSE_for_memop for AMD processors. + +2010-11-07 H.J. Lu hongjiu.lu@intel.com + + * sysdeps/x86_64/memset.S: Check USE_MULTIARCH and USE_SSE2 for + IFUNC support. + * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add + memset-x86-64. + * sysdeps/x86_64/multiarch/bzero.S: New file. + * sysdeps/x86_64/multiarch/cacheinfo.c: New file. + * sysdeps/x86_64/multiarch/memset-x86-64.S: New file. + * sysdeps/x86_64/multiarch/memset.S: New file. + * sysdeps/x86_64/multiarch/memset_chk.S: New file. + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): + Set bit_Prefer_SSE_for_memop for Intel processors. + * sysdeps/x86_64/multiarch/init-arch.h (bit_Prefer_SSE_for_memop): + Define. + (index_Prefer_SSE_for_memop): Define. + (HAS_PREFER_SSE_FOR_MEMOP): Define. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +@@ -613,6 +613,25 @@ init_cacheinfo (void) + long int core = handle_amd (_SC_LEVEL2_CACHE_SIZE); + shared = handle_amd (_SC_LEVEL3_CACHE_SIZE); + ++#ifndef DISABLE_PREFERRED_MEMORY_INSTRUCTION ++# ifdef USE_MULTIARCH ++ eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax; ++ ebx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ebx; ++ ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx; ++ edx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].edx; ++# else ++ __cpuid (1, eax, ebx, ecx, edx); ++# endif ++ ++ /* AMD prefers SSSE3 instructions for memory/string routines ++ if they are avaiable, otherwise it prefers integer ++ instructions. */ ++ if ((ecx & 0x200)) ++ __x86_64_preferred_memory_instruction = 3; ++ else ++ __x86_64_preferred_memory_instruction = 0; ++#endif ++ + /* Get maximum extended function. */ + __cpuid (0x80000000, max_cpuid_ex, ebx, ecx, edx); + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/memset.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/memset.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/memset.S +@@ -24,7 +24,7 @@ + #define __STOS_UPPER_BOUNDARY $65536 + + .text +-#ifndef NOT_IN_libc ++#if !defined NOT_IN_libc && !defined USE_MULTIARCH + ENTRY(__bzero) + mov %rsi,%rdx /* Adjust parameter. */ + xorl %esi,%esi /* Fill with 0s. */ +@@ -34,10 +34,10 @@ weak_alias (__bzero, bzero) + #endif + + #if defined PIC && !defined NOT_IN_libc +-ENTRY (__memset_chk) ++ENTRY_CHK (__memset_chk) + cmpq %rdx, %rcx + jb HIDDEN_JUMPTARGET (__chk_fail) +-END (__memset_chk) ++END_CHK (__memset_chk) + #endif + ENTRY (memset) + L(memset_entry): +@@ -591,157 +591,15 @@ L(A6Q1): mov %dx,-0xe(%rdi) + L(A7Q0): mov %dl,-0x7(%rdi) + L(A6Q0): mov %dx,-0x6(%rdi) + mov %edx,-0x4(%rdi) +- jmp L(aligned_now) +- +- .balign 16 +-L(aligned_now): +- +- cmpl $0x1,__x86_64_preferred_memory_instruction(%rip) +- jg L(SSE_pre) +- +-L(8byte_move_try): +- cmpq __STOS_LOWER_BOUNDARY,%r8 +- jae L(8byte_stos_try) +- +- .balign 16 +-L(8byte_move): +- movq %r8,%rcx +- shrq $7,%rcx +- jz L(8byte_move_skip) +- +- .p2align 4 +- +-L(8byte_move_loop): +- decq %rcx +- +- movq %rdx, (%rdi) +- movq %rdx, 8 (%rdi) +- movq %rdx, 16 (%rdi) +- movq %rdx, 24 (%rdi) +- movq %rdx, 32 (%rdi) +- movq %rdx, 40 (%rdi) +- movq %rdx, 48 (%rdi) +- movq %rdx, 56 (%rdi) +- movq %rdx, 64 (%rdi) +- movq %rdx, 72 (%rdi) +- movq %rdx, 80 (%rdi) +- movq %rdx, 88 (%rdi) +- movq %rdx, 96 (%rdi) +- movq %rdx, 104 (%rdi) +- movq %rdx, 112 (%rdi) +- movq %rdx, 120 (%rdi) +- +- leaq 128 (%rdi),%rdi +- +- jnz L(8byte_move_loop) +- +-L(8byte_move_skip): +- andl $127,%r8d +- lea (%rdi,%r8,1),%rdi +- +-#ifndef PIC +- lea L(setPxQx)(%rip),%r11 +- jmpq *(%r11,%r8,8) # old scheme remained for nonPIC +-#else +- lea L(Got0)(%rip),%r11 +- lea L(setPxQx)(%rip),%rcx +- movswq (%rcx,%r8,2),%rcx +- lea (%rcx,%r11,1),%r11 +- jmpq *%r11 +-#endif +- +- .balign 16 +-L(8byte_stos_try): +- mov __x86_64_shared_cache_size(%rip),%r9d // ck largest cache size +- cmpq %r8,%r9 // calculate the lesser of remaining +- cmovaq %r8,%r9 // bytes and largest cache size +- jbe L(8byte_stos) +- +-L(8byte_move_reuse_try): +- cmp __STOS_UPPER_BOUNDARY,%r8 +- jae L(8byte_move) +- +- .balign 16 +-L(8byte_stos): +- movq %r9,%rcx +- andq $-8,%r9 +- +- shrq $3,%rcx +- jz L(8byte_stos_skip) +- +- xchgq %rax,%rdx +- +- rep +- stosq +- +- xchgq %rax,%rdx +- +-L(8byte_stos_skip): +- subq %r9,%r8 +- ja L(8byte_nt_move) +- +- andl $7,%r8d +- lea (%rdi,%r8,1),%rdi +-#ifndef PIC +- lea L(setPxQx)(%rip),%r11 +- jmpq *(%r11,%r8,8) # old scheme remained for nonPIC +-#else +- lea L(Got0)(%rip),%r11 +- lea L(setPxQx)(%rip),%rcx +- movswq (%rcx,%r8,2),%rcx +- lea (%rcx,%r11,1),%r11 +- jmpq *%r11 +-#endif + +- .balign 16 +-L(8byte_nt_move): +- movq %r8,%rcx +- shrq $7,%rcx +- jz L(8byte_nt_move_skip) +- +- .balign 16 +-L(8byte_nt_move_loop): +- decq %rcx +- +- movntiq %rdx, (%rdi) +- movntiq %rdx, 8 (%rdi) +- movntiq %rdx, 16 (%rdi) +- movntiq %rdx, 24 (%rdi) +- movntiq %rdx, 32 (%rdi) +- movntiq %rdx, 40 (%rdi) +- movntiq %rdx, 48 (%rdi) +- movntiq %rdx, 56 (%rdi) +- movntiq %rdx, 64 (%rdi) +- movntiq %rdx, 72 (%rdi) +- movntiq %rdx, 80 (%rdi) +- movntiq %rdx, 88 (%rdi) +- movntiq %rdx, 96 (%rdi) +- movntiq %rdx, 104 (%rdi) +- movntiq %rdx, 112 (%rdi) +- movntiq %rdx, 120 (%rdi) +- +- leaq 128 (%rdi),%rdi +- +- jnz L(8byte_nt_move_loop) +- +- sfence +- +-L(8byte_nt_move_skip): +- andl $127,%r8d ++#ifndef USE_MULTIARCH ++ jmp L(aligned_now) + +- lea (%rdi,%r8,1),%rdi +-#ifndef PIC +- lea L(setPxQx)(%rip),%r11 +- jmpq *(%r11,%r8,8) # old scheme remained for nonPIC ++L(SSE_pre): + #else +- lea L(Got0)(%rip),%r11 +- lea L(setPxQx)(%rip),%rcx +- movswq (%rcx,%r8,2),%rcx +- lea (%rcx,%r11,1),%r11 +- jmpq *%r11 ++L(aligned_now): + #endif +- +-L(SSE_pre): ++#if !defined USE_MULTIARCH || defined USE_SSE2 + # fill RegXMM0 with the pattern + movd %rdx,%xmm0 + punpcklqdq %xmm0,%xmm0 +@@ -1342,11 +1200,162 @@ L(SSExDx): + .short L(SSE15QB)-L(SSE0Q0) + #endif + .popsection ++#endif /* !defined USE_MULTIARCH || defined USE_SSE2 */ ++ ++ .balign 16 ++#ifndef USE_MULTIARCH ++L(aligned_now): ++ ++ cmpl $0x1,__x86_64_preferred_memory_instruction(%rip) ++ jg L(SSE_pre) ++#endif /* USE_MULTIARCH */ ++ ++L(8byte_move_try): ++ cmpq __STOS_LOWER_BOUNDARY,%r8 ++ jae L(8byte_stos_try) ++ ++ .balign 16 ++L(8byte_move): ++ movq %r8,%rcx ++ shrq $7,%rcx ++ jz L(8byte_move_skip) ++ ++ .p2align 4 ++ ++L(8byte_move_loop): ++ decq %rcx ++ ++ movq %rdx, (%rdi) ++ movq %rdx, 8 (%rdi) ++ movq %rdx, 16 (%rdi) ++ movq %rdx, 24 (%rdi) ++ movq %rdx, 32 (%rdi) ++ movq %rdx, 40 (%rdi) ++ movq %rdx, 48 (%rdi) ++ movq %rdx, 56 (%rdi) ++ movq %rdx, 64 (%rdi) ++ movq %rdx, 72 (%rdi) ++ movq %rdx, 80 (%rdi) ++ movq %rdx, 88 (%rdi) ++ movq %rdx, 96 (%rdi) ++ movq %rdx, 104 (%rdi) ++ movq %rdx, 112 (%rdi) ++ movq %rdx, 120 (%rdi) ++ ++ leaq 128 (%rdi),%rdi ++ ++ jnz L(8byte_move_loop) ++ ++L(8byte_move_skip): ++ andl $127,%r8d ++ lea (%rdi,%r8,1),%rdi ++ ++#ifndef PIC ++ lea L(setPxQx)(%rip),%r11 ++ jmpq *(%r11,%r8,8) # old scheme remained for nonPIC ++#else ++ lea L(Got0)(%rip),%r11 ++ lea L(setPxQx)(%rip),%rcx ++ movswq (%rcx,%r8,2),%rcx ++ lea (%rcx,%r11,1),%r11 ++ jmpq *%r11 ++#endif ++ ++ .balign 16 ++L(8byte_stos_try): ++ mov __x86_64_shared_cache_size(%rip),%r9d // ck largest cache size ++ cmpq %r8,%r9 // calculate the lesser of remaining ++ cmovaq %r8,%r9 // bytes and largest cache size ++ jbe L(8byte_stos) ++ ++L(8byte_move_reuse_try): ++ cmp __STOS_UPPER_BOUNDARY,%r8 ++ jae L(8byte_move) ++ ++ .balign 16 ++L(8byte_stos): ++ movq %r9,%rcx ++ andq $-8,%r9 ++ ++ shrq $3,%rcx ++ jz L(8byte_stos_skip) ++ ++ xchgq %rax,%rdx ++ ++ rep ++ stosq ++ ++ xchgq %rax,%rdx ++ ++L(8byte_stos_skip): ++ subq %r9,%r8 ++ ja L(8byte_nt_move) ++ ++ andl $7,%r8d ++ lea (%rdi,%r8,1),%rdi ++#ifndef PIC ++ lea L(setPxQx)(%rip),%r11 ++ jmpq *(%r11,%r8,8) # old scheme remained for nonPIC ++#else ++ lea L(Got0)(%rip),%r11 ++ lea L(setPxQx)(%rip),%rcx ++ movswq (%rcx,%r8,2),%rcx ++ lea (%rcx,%r11,1),%r11 ++ jmpq *%r11 ++#endif ++ ++ .balign 16 ++L(8byte_nt_move): ++ movq %r8,%rcx ++ shrq $7,%rcx ++ jz L(8byte_nt_move_skip) ++ ++ .balign 16 ++L(8byte_nt_move_loop): ++ decq %rcx ++ ++ movntiq %rdx, (%rdi) ++ movntiq %rdx, 8 (%rdi) ++ movntiq %rdx, 16 (%rdi) ++ movntiq %rdx, 24 (%rdi) ++ movntiq %rdx, 32 (%rdi) ++ movntiq %rdx, 40 (%rdi) ++ movntiq %rdx, 48 (%rdi) ++ movntiq %rdx, 56 (%rdi) ++ movntiq %rdx, 64 (%rdi) ++ movntiq %rdx, 72 (%rdi) ++ movntiq %rdx, 80 (%rdi) ++ movntiq %rdx, 88 (%rdi) ++ movntiq %rdx, 96 (%rdi) ++ movntiq %rdx, 104 (%rdi) ++ movntiq %rdx, 112 (%rdi) ++ movntiq %rdx, 120 (%rdi) ++ ++ leaq 128 (%rdi),%rdi ++ ++ jnz L(8byte_nt_move_loop) ++ ++ sfence ++ ++L(8byte_nt_move_skip): ++ andl $127,%r8d ++ ++ lea (%rdi,%r8,1),%rdi ++#ifndef PIC ++ lea L(setPxQx)(%rip),%r11 ++ jmpq *(%r11,%r8,8) # old scheme remained for nonPIC ++#else ++ lea L(Got0)(%rip),%r11 ++ lea L(setPxQx)(%rip),%rcx ++ movswq (%rcx,%r8,2),%rcx ++ lea (%rcx,%r11,1),%r11 ++ jmpq *%r11 ++#endif + + END (memset) + libc_hidden_builtin_def (memset) + +-#if defined PIC && !defined NOT_IN_libc ++#if defined PIC && !defined NOT_IN_libc && !defined USE_MULTIARCH + strong_alias (__memset_chk, __memset_zero_constant_len_parameter) + .section .gnu.warning.__memset_zero_constant_len_parameter + .string "memset used with constant zero length parameter; this could be due to transposed parameters" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile +@@ -7,7 +7,8 @@ ifeq ($(subdir),string) + sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \ + strend-sse4 memcmp-sse4 \ + strcasestr-nonascii strcasecmp_l-ssse3 \ +- strncase_l-ssse3 ++ strncase_l-ssse3 \ ++ memset-x86-64 + ifeq (yes,$(config-cflags-sse4)) + sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c + CFLAGS-strcspn-c.c += -msse4 +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/bzero.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/bzero.S +@@ -0,0 +1,56 @@ ++/* Multiple versions of bzero ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <sysdep.h> ++#include <init-arch.h> ++ ++ .text ++ENTRY(__bzero) ++ .type __bzero, @gnu_indirect_function ++ cmpl $0, __cpu_features+KIND_OFFSET(%rip) ++ jne 1f ++ call __init_cpu_features ++1: leaq __bzero_x86_64(%rip), %rax ++ testl $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip) ++ jz 2f ++ leaq __bzero_sse2(%rip), %rax ++2: ret ++END(__bzero) ++ ++ .type __bzero_sse2, @function ++__bzero_sse2: ++ cfi_startproc ++ CALL_MCOUNT ++ mov %rsi,%rdx /* Adjust parameter. */ ++ xorl %esi,%esi /* Fill with 0s. */ ++ jmp __memset_sse2 ++ cfi_endproc ++ .size __bzero_sse2, .-__bzero_sse2 ++ ++ .type __bzero_x86_64, @function ++__bzero_x86_64: ++ cfi_startproc ++ CALL_MCOUNT ++ mov %rsi,%rdx /* Adjust parameter. */ ++ xorl %esi,%esi /* Fill with 0s. */ ++ jmp __memset_x86_64 ++ cfi_endproc ++ .size __bzero_x86_64, .-__bzero_x86_64 ++ ++weak_alias (__bzero, bzero) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/cacheinfo.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/cacheinfo.c +@@ -0,0 +1,2 @@ ++#define DISABLE_PREFERRED_MEMORY_INSTRUCTION ++#include "../cacheinfo.c" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +@@ -59,6 +59,11 @@ __init_cpu_features (void) + + get_common_indeces (&family, &model); + ++ /* Intel processors prefer SSE instruction for memory/string ++ routines if they are avaiable. */ ++ __cpu_features.feature[index_Prefer_SSE_for_memop] ++ |= bit_Prefer_SSE_for_memop; ++ + unsigned int eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax; + unsigned int extended_family = (eax >> 20) & 0xff; + unsigned int extended_model = (eax >> 12) & 0xf0; +@@ -92,6 +97,14 @@ __init_cpu_features (void) + kind = arch_kind_amd; + + get_common_indeces (&family, &model); ++ ++ unsigned int ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx; ++ ++ /* AMD processors prefer SSE instructions for memory/string routines ++ if they are available, otherwise they prefer integer instructions. */ ++ if ((ecx & 0x200)) ++ __cpu_features.feature[index_Prefer_SSE_for_memop] ++ |= bit_Prefer_SSE_for_memop; + } + else + kind = arch_kind_other; +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.h +@@ -16,7 +16,8 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +-#define bit_Fast_Rep_String (1 << 0) ++#define bit_Fast_Rep_String (1 << 0) ++#define bit_Prefer_SSE_for_memop (1 << 3) + + #ifdef __ASSEMBLER__ + +@@ -33,6 +34,7 @@ + # define index_SSE4_2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET + + #define index_Fast_Rep_String FEATURE_INDEX_1*FEATURE_SIZE ++# define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE + + #else /* __ASSEMBLER__ */ + +@@ -103,5 +105,12 @@ extern const struct cpu_features *__get_ + # define HAS_FMA HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 12) + + # define index_Fast_Rep_String FEATURE_INDEX_1 ++# define index_Prefer_SSE_for_memop FEATURE_INDEX_1 ++ ++#define HAS_ARCH_FEATURE(idx, bit) \ ++ ((__get_cpu_features ()->feature[idx] & (bit)) != 0) ++ ++#define HAS_PREFER_SSE_FOR_MEMOP \ ++ HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop) + + #endif /* __ASSEMBLER__ */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset-x86-64.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset-x86-64.S +@@ -0,0 +1,18 @@ ++#include <sysdep.h> ++ ++#ifndef NOT_IN_libc ++# undef ENTRY_CHK ++# define ENTRY_CHK(name) \ ++ .type __memset_chk_x86_64, @function; \ ++ .globl __memset_chk_x86_64; \ ++ .p2align 4; \ ++ __memset_chk_x86_64: cfi_startproc; \ ++ CALL_MCOUNT ++# undef END_CHK ++# define END_CHK(name) \ ++ cfi_endproc; .size __memset_chk_x86_64, .-__memset_chk_x86_64 ++ ++# define libc_hidden_builtin_def(name) ++# define memset __memset_x86_64 ++# include "../memset.S" ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset.S +@@ -0,0 +1,74 @@ ++/* Multiple versions of memset ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <sysdep.h> ++#include <init-arch.h> ++ ++/* Define multiple versions only for the definition in lib. */ ++#ifndef NOT_IN_libc ++ENTRY(memset) ++ .type memset, @gnu_indirect_function ++ cmpl $0, __cpu_features+KIND_OFFSET(%rip) ++ jne 1f ++ call __init_cpu_features ++1: leaq __memset_x86_64(%rip), %rax ++ testl $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip) ++ jz 2f ++ leaq __memset_sse2(%rip), %rax ++2: ret ++END(memset) ++ ++# define USE_SSE2 1 ++ ++# undef ENTRY ++# define ENTRY(name) \ ++ .type __memset_sse2, @function; \ ++ .globl __memset_sse2; \ ++ .p2align 4; \ ++ __memset_sse2: cfi_startproc; \ ++ CALL_MCOUNT ++# undef END ++# define END(name) \ ++ cfi_endproc; .size __memset_sse2, .-__memset_sse2 ++ ++# undef ENTRY_CHK ++# define ENTRY_CHK(name) \ ++ .type __memset_chk_sse2, @function; \ ++ .globl __memset_chk_sse2; \ ++ .p2align 4; \ ++ __memset_chk_sse2: cfi_startproc; \ ++ CALL_MCOUNT ++# undef END_CHK ++# define END_CHK(name) \ ++ cfi_endproc; .size __memset_chk_sse2, .-__memset_chk_sse2 ++ ++# ifdef SHARED ++# undef libc_hidden_builtin_def ++/* It doesn't make sense to send libc-internal memset calls through a PLT. ++ The speedup we get from using GPR instruction is likely eaten away ++ by the indirect call in the PLT. */ ++# define libc_hidden_builtin_def(name) \ ++ .globl __GI_memset; __GI_memset = __memset_sse2 ++# endif ++ ++# undef strong_alias ++# define strong_alias(original, alias) ++#endif ++ ++#include "../memset.S" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset_chk.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset_chk.S +@@ -0,0 +1,44 @@ ++/* Multiple versions of __memset_chk ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <sysdep.h> ++#include <init-arch.h> ++ ++/* Define multiple versions only for the definition in lib. */ ++#ifndef NOT_IN_libc ++# ifdef SHARED ++ENTRY(__memset_chk) ++ .type __memset_chk, @gnu_indirect_function ++ cmpl $0, __cpu_features+KIND_OFFSET(%rip) ++ jne 1f ++ call __init_cpu_features ++1: leaq __memset_chk_x86_64(%rip), %rax ++ testl $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip) ++ jz 2f ++ leaq __memset_chk_sse2(%rip), %rax ++2: ret ++END(__memset_chk) ++ ++strong_alias (__memset_chk, __memset_zero_constant_len_parameter) ++ .section .gnu.warning.__memset_zero_constant_len_parameter ++ .string "memset used with constant zero length parameter; this could be due to transposed parameters" ++# else ++# include "../memset_chk.S" ++# endif ++#endif diff --git a/src/patches/glibc/glibc-rh676591.patch b/src/patches/glibc/glibc-rh676591.patch new file mode 100644 index 0000000..fd6df1e --- /dev/null +++ b/src/patches/glibc/glibc-rh676591.patch @@ -0,0 +1,352 @@ +2011-05-15 Ulrich Drepper drepper@gmail.com + + [BZ #11901] + * include/stdlib.h: Move include protection to the right place. + Define abort_msg_s. Declare __abort_msg with it. + * stdlib/abort.c (__abort_msg): Adjust type. + * assert/assert.c (__assert_fail_base): New function. Majority + of code from __assert_fail. Allocate memory for __abort_msg with + mmap. + (__assert_fail): Now call __assert_fail_base. + * assert/assert-perr.c: Remove bulk of implementation. Use + __assert_fail_base. + * include/assert.hL Declare __assert_fail_base. + * sysdeps/posix/libc_fatal.c: Allocate memory for __abort_msg with + mmap. + * sysdeps/unix/sysv/linux/libc_fatal.c: Likewise. + +Index: glibc-2.12-2-gc4ccff1/assert/assert-perr.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/assert/assert-perr.c ++++ glibc-2.12-2-gc4ccff1/assert/assert-perr.c +@@ -17,66 +17,23 @@ + 02111-1307 USA. */ + + #include <assert.h> +-#include <atomic.h> + #include <libintl.h> +-#include <stdio.h> +-#include <stdlib.h> + #include <string.h> +-#include <sysdep.h> +-#include <unistd.h> + + +-extern const char *__progname; +- +-#ifdef USE_IN_LIBIO +-# include <wchar.h> +-# include <libio/iolibio.h> +-# define fflush(s) INTUSE(_IO_fflush) (s) +-#endif +- + /* This function, when passed an error number, a filename, and a line + number, prints a message on the standard error stream of the form: +- a.c:10: foobar: Unexpected error: Computer bought the farm ++ a.c:10: foobar: Unexpected error: Computer bought the farm + It then aborts program execution via a call to `abort'. */ +- +-#ifdef FATAL_PREPARE_INCLUDE +-# include FATAL_PREPARE_INCLUDE +-#endif +- + void + __assert_perror_fail (int errnum, + const char *file, unsigned int line, + const char *function) + { + char errbuf[1024]; +- char *buf; +- +-#ifdef FATAL_PREPARE +- FATAL_PREPARE; +-#endif +- +- if (__asprintf (&buf, _("%s%s%s:%u: %s%sUnexpected error: %s.\n"), +- __progname, __progname[0] ? ": " : "", +- file, line, +- function ? function : "", function ? ": " : "", +- __strerror_r (errnum, errbuf, sizeof errbuf)) >= 0) +- { +- /* Print the message. */ +- (void) __fxprintf (NULL, "%s", buf); +- (void) fflush (stderr); +- +- /* We have to free the old buffer since the application might +- catch the SIGABRT signal. */ +- char *old = atomic_exchange_acq (&__abort_msg, buf); +- free (old); +- } +- else +- { +- /* At least print a minimal message. */ +- static const char errstr[] = "Unexpected error.\n"; +- __libc_write (STDERR_FILENO, errstr, sizeof (errstr) - 1); +- } + +- abort (); ++ char *e = __strerror_r (errnum, errbuf, sizeof errbuf); ++ __assert_fail_base (_("%s%s%s:%u: %s%sUnexpected error: %s.\n"), ++ e, file, line, function); + } + libc_hidden_def (__assert_perror_fail) +Index: glibc-2.12-2-gc4ccff1/assert/assert.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/assert/assert.c ++++ glibc-2.12-2-gc4ccff1/assert/assert.c +@@ -19,11 +19,13 @@ + + #include <assert.h> + #include <atomic.h> ++#include <ldsodefs.h> + #include <libintl.h> + #include <stdio.h> + #include <stdlib.h> + #include <sysdep.h> + #include <unistd.h> ++#include <sys/mman.h> + + + extern const char *__progname; +@@ -45,31 +47,44 @@ extern const char *__progname; + #endif + + +-#undef __assert_fail + void +-__assert_fail (const char *assertion, const char *file, unsigned int line, +- const char *function) ++__assert_fail_base (const char *fmt, const char *assertion, const char *file, ++ unsigned int line, const char *function) + { +- char *buf; ++ char *str; + + #ifdef FATAL_PREPARE + FATAL_PREPARE; + #endif + +- if (__asprintf (&buf, _("%s%s%s:%u: %s%sAssertion `%s' failed.\n"), ++ int total; ++ if (__asprintf (&str, fmt, + __progname, __progname[0] ? ": " : "", + file, line, + function ? function : "", function ? ": " : "", +- assertion) >= 0) ++ assertion, &total) >= 0) + { + /* Print the message. */ +- (void) __fxprintf (NULL, "%s", buf); ++ (void) __fxprintf (NULL, "%s", str); + (void) fflush (stderr); + +- /* We have to free the old buffer since the application might +- catch the SIGABRT signal. */ +- char *old = atomic_exchange_acq (&__abort_msg, buf); +- free (old); ++ total = (total + 1 + GLRO(dl_pagesize) - 1) & ~(GLRO(dl_pagesize) - 1); ++ struct abort_msg_s *buf = __mmap (NULL, total, PROT_READ | PROT_WRITE, ++ MAP_ANON | MAP_PRIVATE, -1, 0); ++ if (__builtin_expect (buf != MAP_FAILED, 1)) ++ { ++ buf->size = total; ++ strcpy (buf->msg, str); ++ ++ /* We have to free the old buffer since the application might ++ catch the SIGABRT signal. */ ++ struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg, buf); ++ ++ if (old != NULL) ++ __munmap (old, old->size); ++ } ++ ++ free (str); + } + else + { +@@ -80,4 +95,14 @@ __assert_fail (const char *assertion, co + + abort (); + } ++ ++ ++#undef __assert_fail ++void ++__assert_fail (const char *assertion, const char *file, unsigned int line, ++ const char *function) ++{ ++ __assert_fail_base (_("%s%s%s:%u: %s%sAssertion `%s' failed.\n%n"), ++ assertion, file, line, function); ++} + hidden_def(__assert_fail) +Index: glibc-2.12-2-gc4ccff1/include/assert.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/include/assert.h ++++ glibc-2.12-2-gc4ccff1/include/assert.h +@@ -13,6 +13,12 @@ extern void __assert_perror_fail (int __ + __const char *__function) + __THROW __attribute__ ((__noreturn__)); + ++/* The real implementation of the two functions above. */ ++extern void __assert_fail_base (const char *fmt, const char *assertion, ++ const char *file, unsigned int line, ++ const char *function) ++ __THROW __attribute__ ((__noreturn__)); ++ + #if !defined NOT_IN_libc || defined IS_IN_rtld + hidden_proto (__assert_fail) + hidden_proto (__assert_perror_fail) +Index: glibc-2.12-2-gc4ccff1/include/stdlib.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/include/stdlib.h ++++ glibc-2.12-2-gc4ccff1/include/stdlib.h +@@ -223,16 +223,21 @@ extern int __qfcvt_r (long double __valu + # define __cxa_atexit(func, arg, d) INTUSE(__cxa_atexit) (func, arg, d) + # endif + +-#endif +- + extern void *__default_morecore (ptrdiff_t) __THROW; + libc_hidden_proto (__default_morecore) + +-extern char *__abort_msg; ++struct abort_msg_s ++{ ++ unsigned int size; ++ char msg[0]; ++}; ++extern struct abort_msg_s *__abort_msg; + libc_hidden_proto (__abort_msg) + + __END_DECLS + ++#endif ++ + #undef __Need_M_And_C + + #endif /* include/stdlib.h */ +Index: glibc-2.12-2-gc4ccff1/stdlib/abort.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/stdlib/abort.c ++++ glibc-2.12-2-gc4ccff1/stdlib/abort.c +@@ -37,7 +37,7 @@ + #endif + + /* Exported variable to locate abort message in core files etc. */ +-char *__abort_msg __attribute__ ((nocommon)); ++struct abort_msg_s *__abort_msg __attribute__ ((nocommon)); + libc_hidden_def (__abort_msg) + + /* We must avoid to run in circles. Therefore we remember how far we +Index: glibc-2.12-2-gc4ccff1/sysdeps/posix/libc_fatal.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/libc_fatal.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/posix/libc_fatal.c +@@ -20,6 +20,7 @@ + #include <atomic.h> + #include <errno.h> + #include <fcntl.h> ++#include <ldsodefs.h> + #include <paths.h> + #include <stdarg.h> + #include <stdbool.h> +@@ -125,18 +126,28 @@ __libc_message (int do_abort, const char + if (TEMP_FAILURE_RETRY (__writev (fd, iov, nlist)) == total) + written = true; + +- char *buf = do_abort ? malloc (total + 1) : NULL; +- if (buf != NULL) ++ if (do_abort) + { +- char *wp = buf; +- for (int cnt = 0; cnt < nlist; ++cnt) +- wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len); +- *wp = '\0'; +- +- /* We have to free the old buffer since the application might +- catch the SIGABRT signal. */ +- char *old = atomic_exchange_acq (&__abort_msg, buf); +- free (old); ++ total = ((total + 1 + GLRO(dl_pagesize) - 1) ++ & ~(GLRO(dl_pagesize) - 1)); ++ struct abort_msg_s *buf = __mmap (NULL, total, ++ PROT_READ | PROT_WRITE, ++ MAP_ANON | MAP_PRIVATE, -1, 0); ++ if (buf != MAP_FAILED) ++ { ++ buf->size = total; ++ char *wp = buf->msg; ++ for (int cnt = 0; cnt < nlist; ++cnt) ++ wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len); ++ *wp = '\0'; ++ ++ /* We have to free the old buffer since the application might ++ catch the SIGABRT signal. */ ++ struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg, ++ buf); ++ if (old != NULL) ++ __munmap (old, old->size); ++ } + } + } + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/libc_fatal.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/libc_fatal.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/libc_fatal.c +@@ -20,6 +20,7 @@ + #include <atomic.h> + #include <errno.h> + #include <fcntl.h> ++#include <ldsodefs.h> + #include <paths.h> + #include <stdarg.h> + #include <stdbool.h> +@@ -28,6 +29,7 @@ + #include <string.h> + #include <sysdep.h> + #include <unistd.h> ++#include <sys/mman.h> + #include <sys/syslog.h> + #include <execinfo.h> + +@@ -134,18 +136,28 @@ __libc_message (int do_abort, const char + if (cnt == total) + written = true; + +- char *buf = do_abort ? malloc (total + 1) : NULL; +- if (buf != NULL) ++ if (do_abort) + { +- char *wp = buf; +- for (int cnt = 0; cnt < nlist; ++cnt) +- wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len); +- *wp = '\0'; +- +- /* We have to free the old buffer since the application might +- catch the SIGABRT signal. */ +- char *old = atomic_exchange_acq (&__abort_msg, buf); +- free (old); ++ total = ((total + 1 + GLRO(dl_pagesize) - 1) ++ & ~(GLRO(dl_pagesize) - 1)); ++ struct abort_msg_s *buf = __mmap (NULL, total, ++ PROT_READ | PROT_WRITE, ++ MAP_ANON | MAP_PRIVATE, -1, 0); ++ if (__builtin_expect (buf != MAP_FAILED, 1)) ++ { ++ buf->size = total; ++ char *wp = buf->msg; ++ for (int cnt = 0; cnt < nlist; ++cnt) ++ wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len); ++ *wp = '\0'; ++ ++ /* We have to free the old buffer since the application might ++ catch the SIGABRT signal. */ ++ struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg, ++ buf); ++ if (old != NULL) ++ __munmap (old, old->size); ++ } + } + } + diff --git a/src/patches/glibc/glibc-rh681054.patch b/src/patches/glibc/glibc-rh681054.patch new file mode 100644 index 0000000..27b7361 --- /dev/null +++ b/src/patches/glibc/glibc-rh681054.patch @@ -0,0 +1,514 @@ +2011-03-18 Ulrich Drepper drepper@gmail.com + + * posix/fnmatch.c (fnmatch): Check size of pattern in wide + character representation. + Partly based on a patch by Tomas Hoger thoger@redhat.com. + +2010-11-11 Andreas Schwab schwab@redhat.com + + * posix/fnmatch_loop.c (NEW_PATTERN): Fix use of alloca. + * posix/Makefile (tests): Add $(objpfx)tst-fnmatch-mem. + (tst-fnmatch-ENV): Set MALLOC_TRACE. + ($(objpfx)tst-fnmatch-mem): New rule. + (generated): Add tst-fnmatch-mem and tst-fnmatch.mtrace. + * posix/tst-fnmatch.c (main): Call mtrace. + +2010-08-09 Ulrich Drepper drepper@redhat.com + + [BZ #11883] + * posix/fnmatch.c: Keep track of alloca use and fall back on malloc. + * posix/fnmatch_loop.c: Likewise. + +Index: glibc-2.12-2-gc4ccff1/posix/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/posix/Makefile ++++ glibc-2.12-2-gc4ccff1/posix/Makefile +@@ -114,7 +114,8 @@ generated := $(addprefix wordexp-test-re + tst-rxspencer-mem tst-rxspencer.mtrace tst-getconf.out \ + tst-pcre-mem tst-pcre.mtrace tst-boost-mem tst-boost.mtrace \ + bug-ga2.mtrace bug-ga2-mem bug-glob2.mtrace bug-glob2-mem \ +- tst-vfork3-mem tst-vfork3.mtrace getconf.speclist ++ tst-vfork3-mem tst-vfork3.mtrace getconf.speclist \ ++ tst-fnmatch-mem tst-fnmatch.mtrace + + include ../Rules + +@@ -226,7 +227,7 @@ ifeq (no,$(cross-compiling)) + tests: $(objpfx)bug-regex2-mem $(objpfx)bug-regex14-mem \ + $(objpfx)bug-regex21-mem $(objpfx)tst-rxspencer-mem \ + $(objpfx)tst-pcre-mem $(objpfx)tst-boost-mem $(objpfx)tst-getconf.out \ +- $(objpfx)bug-glob2-mem $(objpfx)tst-vfork3-mem ++ $(objpfx)bug-glob2-mem $(objpfx)tst-vfork3-mem $(objpfx)tst-fnmatch-mem + xtests: $(objpfx)bug-ga2-mem + endif + +@@ -238,6 +239,11 @@ annexc-CFLAGS = -O + $(objpfx)annexc: annexc.c + $(native-compile) + ++tst-fnmatch-ENV += MALLOC_TRACE=$(objpfx)tst-fnmatch.mtrace ++ ++$(objpfx)tst-fnmatch-mem: $(objpfx)tst-fnmatch.out ++ $(common-objpfx)malloc/mtrace $(objpfx)tst-fnmatch.mtrace > $@ ++ + bug-regex2-ENV = MALLOC_TRACE=$(objpfx)bug-regex2.mtrace + + $(objpfx)bug-regex2-mem: $(objpfx)bug-regex2.out +Index: glibc-2.12-2-gc4ccff1/posix/fnmatch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/posix/fnmatch.c ++++ glibc-2.12-2-gc4ccff1/posix/fnmatch.c +@@ -41,6 +41,12 @@ + # include <stdlib.h> + #endif + ++#ifdef _LIBC ++# include <alloca.h> ++#else ++# define alloca_account(size., var) alloca (size) ++#endif ++ + /* For platform which support the ISO C amendement 1 functionality we + support user defined character classes. */ + #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) +@@ -330,8 +336,11 @@ fnmatch (pattern, string, flags) + mbstate_t ps; + size_t n; + const char *p; ++ wchar_t *wpattern_malloc = NULL; + wchar_t *wpattern; ++ wchar_t *wstring_malloc = NULL; + wchar_t *wstring; ++ size_t alloca_used = 0; + + /* Convert the strings into wide characters. */ + memset (&ps, '\0', sizeof (ps)); +@@ -343,7 +352,8 @@ fnmatch (pattern, string, flags) + #endif + if (__builtin_expect (n < 1024, 1)) + { +- wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); ++ wpattern = (wchar_t *) alloca_account ((n + 1) * sizeof (wchar_t), ++ alloca_used); + n = mbsrtowcs (wpattern, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) + /* Something wrong. +@@ -365,8 +375,16 @@ fnmatch (pattern, string, flags) + XXX Do we have to set `errno' to something which mbsrtows hasn't + already done? */ + return -1; +- wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); ++ if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0)) ++ { ++ __set_errno (ENOMEM); ++ return -2; ++ } ++ wpattern_malloc = wpattern ++ = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); + assert (mbsinit (&ps)); ++ if (wpattern == NULL) ++ return -2; + (void) mbsrtowcs (wpattern, &pattern, n + 1, &ps); + } + +@@ -379,13 +397,18 @@ fnmatch (pattern, string, flags) + p = string; + if (__builtin_expect (n < 1024, 1)) + { +- wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); ++ wstring = (wchar_t *) alloca_account ((n + 1) * sizeof (wchar_t), ++ alloca_used); + n = mbsrtowcs (wstring, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ { ++ /* Something wrong. ++ XXX Do we have to set `errno' to something which ++ mbsrtows hasn't already done? */ ++ free_return: ++ free (wpattern_malloc); ++ return -1; ++ } + if (p) + { + memset (&ps, '\0', sizeof (ps)); +@@ -400,19 +423,38 @@ fnmatch (pattern, string, flags) + /* Something wrong. + XXX Do we have to set `errno' to something which mbsrtows hasn't + already done? */ +- return -1; +- wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); ++ goto free_return; ++ if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0)) ++ { ++ free (wpattern_malloc); ++ __set_errno (ENOMEM); ++ return -2; ++ } ++ ++ wstring_malloc = wstring ++ = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); ++ if (wstring == NULL) ++ { ++ free (wpattern_malloc); ++ return -2; ++ } + assert (mbsinit (&ps)); + (void) mbsrtowcs (wstring, &string, n + 1, &ps); + } + +- return internal_fnwmatch (wpattern, wstring, wstring + n, +- flags & FNM_PERIOD, flags, NULL); ++ int res = internal_fnwmatch (wpattern, wstring, wstring + n, ++ flags & FNM_PERIOD, flags, NULL, ++ alloca_used); ++ ++ free (wstring_malloc); ++ free (wpattern_malloc); ++ ++ return res; + } + # endif /* mbstate_t and mbsrtowcs or _LIBC. */ + + return internal_fnmatch (pattern, string, string + strlen (string), +- flags & FNM_PERIOD, flags, NULL); ++ flags & FNM_PERIOD, flags, NULL, 0); + } + + # ifdef _LIBC +Index: glibc-2.12-2-gc4ccff1/posix/fnmatch_loop.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/posix/fnmatch_loop.c ++++ glibc-2.12-2-gc4ccff1/posix/fnmatch_loop.c +@@ -28,22 +28,24 @@ struct STRUCT + it matches, nonzero if not. */ + static int FCT (const CHAR *pattern, const CHAR *string, + const CHAR *string_end, int no_leading_period, int flags, +- struct STRUCT *ends) ++ struct STRUCT *ends, size_t alloca_used) + internal_function; + static int EXT (INT opt, const CHAR *pattern, const CHAR *string, +- const CHAR *string_end, int no_leading_period, int flags) ++ const CHAR *string_end, int no_leading_period, int flags, ++ size_t alloca_used) + internal_function; + static const CHAR *END (const CHAR *patternp) internal_function; + + static int + internal_function +-FCT (pattern, string, string_end, no_leading_period, flags, ends) ++FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) + const CHAR *pattern; + const CHAR *string; + const CHAR *string_end; + int no_leading_period; + int flags; + struct STRUCT *ends; ++ size_t alloca_used; + { + register const CHAR *p = pattern, *n = string; + register UCHAR c; +@@ -67,10 +69,8 @@ FCT (pattern, string, string_end, no_lea + case L('?'): + if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') + { +- int res; +- +- res = EXT (c, p, n, string_end, no_leading_period, +- flags); ++ int res = EXT (c, p, n, string_end, no_leading_period, ++ flags, alloca_used); + if (res != -1) + return res; + } +@@ -99,10 +99,8 @@ FCT (pattern, string, string_end, no_lea + case L('*'): + if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') + { +- int res; +- +- res = EXT (c, p, n, string_end, no_leading_period, +- flags); ++ int res = EXT (c, p, n, string_end, no_leading_period, ++ flags, alloca_used); + if (res != -1) + return res; + } +@@ -191,7 +189,7 @@ FCT (pattern, string, string_end, no_lea + + for (--p; n < endp; ++n, no_leading_period = 0) + if (FCT (p, n, string_end, no_leading_period, flags2, +- &end) == 0) ++ &end, alloca_used) == 0) + goto found; + } + else if (c == L('/') && (flags & FNM_FILE_NAME)) +@@ -200,7 +198,7 @@ FCT (pattern, string, string_end, no_lea + ++n; + if (n < string_end && *n == L('/') + && (FCT (p, n + 1, string_end, flags & FNM_PERIOD, flags, +- NULL) == 0)) ++ NULL, alloca_used) == 0)) + return 0; + } + else +@@ -214,7 +212,7 @@ FCT (pattern, string, string_end, no_lea + for (--p; n < endp; ++n, no_leading_period = 0) + if (FOLD ((UCHAR) *n) == c + && (FCT (p, n, string_end, no_leading_period, flags2, +- &end) == 0)) ++ &end, alloca_used) == 0)) + { + found: + if (end.pattern == NULL) +@@ -749,7 +747,7 @@ FCT (pattern, string, string_end, no_lea + _NL_COLLATE_SYMB_EXTRAMB); + + /* Locate the character in the hashing +- table. */ ++ table. */ + hash = elem_hash (str, c1); + + idx = 0; +@@ -971,9 +969,8 @@ FCT (pattern, string, string_end, no_lea + case L('!'): + if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') + { +- int res; +- +- res = EXT (c, p, n, string_end, no_leading_period, flags); ++ int res = EXT (c, p, n, string_end, no_leading_period, flags, ++ alloca_used); + if (res != -1) + return res; + } +@@ -1052,26 +1049,32 @@ END (const CHAR *pattern) + static int + internal_function + EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end, +- int no_leading_period, int flags) ++ int no_leading_period, int flags, size_t alloca_used) + { + const CHAR *startp; + int level; + struct patternlist + { + struct patternlist *next; ++ CHAR malloced; + CHAR str[0]; + } *list = NULL; + struct patternlist **lastp = &list; + size_t pattern_len = STRLEN (pattern); ++ int any_malloced = 0; + const CHAR *p; + const CHAR *rs; ++ int retval = 0; + + /* Parse the pattern. Store the individual parts in the list. */ + level = 0; + for (startp = p = pattern + 1; level >= 0; ++p) + if (*p == L('\0')) +- /* This is an invalid pattern. */ +- return -1; ++ { ++ /* This is an invalid pattern. */ ++ retval = -1; ++ goto out; ++ } + else if (*p == L('[')) + { + /* Handle brackets special. */ +@@ -1088,8 +1091,11 @@ EXT (INT opt, const CHAR *pattern, const + /* Skip over all characters of the list. */ + while (*p != L(']')) + if (*p++ == L('\0')) +- /* This is no valid pattern. */ +- return -1; ++ { ++ /* This is no valid pattern. */ ++ retval = -1; ++ goto out; ++ } + } + else if ((*p == L('?') || *p == L('*') || *p == L('+') || *p == L('@') + || *p == L('!')) && p[1] == L('(')) +@@ -1102,15 +1108,25 @@ EXT (INT opt, const CHAR *pattern, const + /* This means we found the end of the pattern. */ + #define NEW_PATTERN \ + struct patternlist *newp; \ +- \ +- if (opt == L('?') || opt == L('@')) \ +- newp = alloca (sizeof (struct patternlist) \ +- + (pattern_len * sizeof (CHAR))); \ ++ size_t slen = (opt == L('?') || opt == L('@') \ ++ ? pattern_len : (p - startp + 1)); \ ++ slen = sizeof (struct patternlist) + (slen * sizeof (CHAR)); \ ++ int malloced = ! __libc_use_alloca (alloca_used + slen); \ ++ if (__builtin_expect (malloced, 0)) \ ++ { \ ++ newp = malloc (slen); \ ++ if (newp == NULL) \ ++ { \ ++ retval = -2; \ ++ goto out; \ ++ } \ ++ any_malloced = 1; \ ++ } \ + else \ +- newp = alloca (sizeof (struct patternlist) \ +- + ((p - startp + 1) * sizeof (CHAR))); \ +- *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0'); \ ++ newp = alloca_account (slen, alloca_used); \ + newp->next = NULL; \ ++ newp->malloced = malloced; \ ++ *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0'); \ + *lastp = newp; \ + lastp = &newp->next + NEW_PATTERN; +@@ -1131,8 +1147,9 @@ EXT (INT opt, const CHAR *pattern, const + switch (opt) + { + case L('*'): +- if (FCT (p, string, string_end, no_leading_period, flags, NULL) == 0) +- return 0; ++ if (FCT (p, string, string_end, no_leading_period, flags, NULL, ++ alloca_used) == 0) ++ goto success; + /* FALLTHROUGH */ + + case L('+'): +@@ -1143,7 +1160,7 @@ EXT (INT opt, const CHAR *pattern, const + current pattern. */ + if (FCT (list->str, string, rs, no_leading_period, + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD, +- NULL) == 0 ++ NULL, alloca_used) == 0 + /* This was successful. Now match the rest with the rest + of the pattern. */ + && (FCT (p, rs, string_end, +@@ -1151,7 +1168,7 @@ EXT (INT opt, const CHAR *pattern, const + ? no_leading_period + : rs[-1] == '/' && NO_LEADING_PERIOD (flags) ? 1 : 0, + flags & FNM_FILE_NAME +- ? flags : flags & ~FNM_PERIOD, NULL) == 0 ++ ? flags : flags & ~FNM_PERIOD, NULL, alloca_used) == 0 + /* This didn't work. Try the whole pattern. */ + || (rs != string + && FCT (pattern - 1, rs, string_end, +@@ -1160,18 +1177,21 @@ EXT (INT opt, const CHAR *pattern, const + : (rs[-1] == '/' && NO_LEADING_PERIOD (flags) + ? 1 : 0), + flags & FNM_FILE_NAME +- ? flags : flags & ~FNM_PERIOD, NULL) == 0))) ++ ? flags : flags & ~FNM_PERIOD, NULL, ++ alloca_used) == 0))) + /* It worked. Signal success. */ +- return 0; ++ goto success; + } + while ((list = list->next) != NULL); + + /* None of the patterns lead to a match. */ +- return FNM_NOMATCH; ++ retval = FNM_NOMATCH; ++ break; + + case L('?'): +- if (FCT (p, string, string_end, no_leading_period, flags, NULL) == 0) +- return 0; ++ if (FCT (p, string, string_end, no_leading_period, flags, NULL, ++ alloca_used) == 0) ++ goto success; + /* FALLTHROUGH */ + + case L('@'): +@@ -1183,13 +1203,14 @@ EXT (INT opt, const CHAR *pattern, const + if (FCT (STRCAT (list->str, p), string, string_end, + no_leading_period, + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD, +- NULL) == 0) ++ NULL, alloca_used) == 0) + /* It worked. Signal success. */ +- return 0; ++ goto success; + while ((list = list->next) != NULL); + + /* None of the patterns lead to a match. */ +- return FNM_NOMATCH; ++ retval = FNM_NOMATCH; ++ break; + + case L('!'): + for (rs = string; rs <= string_end; ++rs) +@@ -1199,7 +1220,7 @@ EXT (INT opt, const CHAR *pattern, const + for (runp = list; runp != NULL; runp = runp->next) + if (FCT (runp->str, string, rs, no_leading_period, + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD, +- NULL) == 0) ++ NULL, alloca_used) == 0) + break; + + /* If none of the patterns matched see whether the rest does. */ +@@ -1209,21 +1230,34 @@ EXT (INT opt, const CHAR *pattern, const + ? no_leading_period + : rs[-1] == '/' && NO_LEADING_PERIOD (flags) ? 1 : 0, + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD, +- NULL) == 0)) ++ NULL, alloca_used) == 0)) + /* This is successful. */ +- return 0; ++ goto success; + } + + /* None of the patterns together with the rest of the pattern + lead to a match. */ +- return FNM_NOMATCH; ++ retval = FNM_NOMATCH; ++ break; + + default: + assert (! "Invalid extended matching operator"); ++ retval = -1; + break; + } + +- return -1; ++ success: ++ out: ++ if (any_malloced) ++ while (list != NULL) ++ { ++ struct patternlist *old = list; ++ list = list->next; ++ if (old->malloced) ++ free (old); ++ } ++ ++ return retval; + } + + +Index: glibc-2.12-2-gc4ccff1/posix/tst-fnmatch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/posix/tst-fnmatch.c ++++ glibc-2.12-2-gc4ccff1/posix/tst-fnmatch.c +@@ -25,6 +25,7 @@ + #include <stdlib.h> + #include <string.h> + #include <sys/types.h> ++#include <mcheck.h> + + + static char *next_input (char **line, int first, int last); +@@ -46,6 +47,8 @@ main (void) + size_t escpatternlen = 0; + int nr = 0; + ++ mtrace (); ++ + /* Read lines from stdin with the following format: + + locale input-string match-string flags result diff --git a/src/patches/glibc/glibc-rh688720.patch b/src/patches/glibc/glibc-rh688720.patch new file mode 100644 index 0000000..0c86f25 --- /dev/null +++ b/src/patches/glibc/glibc-rh688720.patch @@ -0,0 +1,1638 @@ +2011-11-11 Ulrich Drepper drepper@gmail.com + + [BZ #13147] + * locales/de_AT: Use de_DE for LC_NUMERIC. + * locales/es_BO: Use es_ES for LC_MESSAGES and LC_NUMERIC. + * locales/es_CL: Likewise. + * locales/es_CO: Likewise. + * locales/es_DO: Likewise. + * locales/es_EC: Likewise. + * locales/es_GT: Likewise. + * locales/es_HN: Likewise. + * locales/es_MX: Likewise. + * locales/es_NI: Likewise. + * locales/es_PA: Likewise. + * locales/es_PE: Likewise. + * locales/es_PR: Likewise. + * locales/es_PY: Likewise. + * locales/es_SV: Likewise. + * locales/es_UY: Likewise. + * locales/es_VE: Likewise. + * locales/es_ES: Fix LC_NUMERIC. + * locales/es_CR: Use es_ES for LC_MESSAGES. + * locales/fr_BE: Actually use grouping in LC_NUMERIC. + * locales/fr_CA: Use fr_FR for LC_MESSAGES and LC_NUMERIC. + * locales/fr_CH: Use de_CH for LC_NUMERIC. + * locales/fr_LU: Use same grouping in LC_NUMERIC as in LC_MONETARY. + +2010-05-17 Andreas Schwab schwab@redhat.com + + * locales/es_CR (LC_ADDRESS): Fix character names in lang_ab. + +Index: glibc-2.12-2-gc4ccff1/localedata/locales/de_AT +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/de_AT ++++ glibc-2.12-2-gc4ccff1/localedata/locales/de_AT +@@ -78,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002C>" +-thousands_sep "" +-grouping 0;0 ++copy "de_DE" + END LC_NUMERIC + + LC_TIME + abday "<U0053><U006F><U006E>";"<U004D><U006F><U006E>";/ +- "<U0044><U0069><U0065>";"<U004D><U0069><U0074>";/ +- "<U0044><U006F><U006E>";"<U0046><U0072><U0065>";/ +- "<U0053><U0061><U006D>" ++ "<U0044><U0069><U0065>";"<U004D><U0069><U0074>";/ ++ "<U0044><U006F><U006E>";"<U0046><U0072><U0065>";/ ++ "<U0053><U0061><U006D>" + day "<U0053><U006F><U006E><U006E><U0074><U0061><U0067>";/ +- "<U004D><U006F><U006E><U0074><U0061><U0067>";/ +- "<U0044><U0069><U0065><U006E><U0073><U0074><U0061><U0067>";/ +- "<U004D><U0069><U0074><U0074><U0077><U006F><U0063><U0068>";/ +- "<U0044><U006F><U006E><U006E><U0065><U0072><U0073><U0074><U0061><U0067>";/ +- "<U0046><U0072><U0065><U0069><U0074><U0061><U0067>";/ +- "<U0053><U0061><U006D><U0073><U0074><U0061><U0067>" ++ "<U004D><U006F><U006E><U0074><U0061><U0067>";/ ++ "<U0044><U0069><U0065><U006E><U0073><U0074><U0061><U0067>";/ ++ "<U004D><U0069><U0074><U0074><U0077><U006F><U0063><U0068>";/ ++ "<U0044><U006F><U006E><U006E><U0065><U0072><U0073><U0074><U0061><U0067>";/ ++ "<U0046><U0072><U0065><U0069><U0074><U0061><U0067>";/ ++ "<U0053><U0061><U006D><U0073><U0074><U0061><U0067>" + abmon "<U004A><U00E4><U006E>";"<U0046><U0065><U0062>";/ +- "<U004D><U00E4><U0072>";"<U0041><U0070><U0072>";/ +- "<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/ +- "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/ +- "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/ +- "<U004E><U006F><U0076>";"<U0044><U0065><U007A>" ++ "<U004D><U00E4><U0072>";"<U0041><U0070><U0072>";/ ++ "<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/ ++ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/ ++ "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/ ++ "<U004E><U006F><U0076>";"<U0044><U0065><U007A>" + mon "<U004A><U00E4><U006E><U006E><U0065><U0072>";/ +- "<U0046><U0065><U0062><U0065><U0072>";/ +- "<U004D><U00E4><U0072><U007A>";/ +- "<U0041><U0070><U0072><U0069><U006C>";/ +- "<U004D><U0061><U0069>";/ +- "<U004A><U0075><U006E><U0069>";/ +- "<U004A><U0075><U006C><U0069>";/ +- "<U0041><U0075><U0067><U0075><U0073><U0074>";/ +- "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/ +- "<U004F><U006B><U0074><U006F><U0062><U0065><U0072>";/ +- "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/ +- "<U0044><U0065><U007A><U0065><U006D><U0062><U0065><U0072>" ++ "<U0046><U0065><U0062><U0065><U0072>";/ ++ "<U004D><U00E4><U0072><U007A>";/ ++ "<U0041><U0070><U0072><U0069><U006C>";/ ++ "<U004D><U0061><U0069>";/ ++ "<U004A><U0075><U006E><U0069>";/ ++ "<U004A><U0075><U006C><U0069>";/ ++ "<U0041><U0075><U0067><U0075><U0073><U0074>";/ ++ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/ ++ "<U004F><U006B><U0074><U006F><U0062><U0065><U0072>";/ ++ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/ ++ "<U0044><U0065><U007A><U0065><U006D><U0062><U0065><U0072>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_BO +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_BO ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_BO +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002C>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CL +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CL ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CL +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002C>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CO +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CO ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CO +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002C>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CR +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CR ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CR +@@ -47,8 +47,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,34 +78,34 @@ END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>" + t_fmt "<U0025><U0054>" +@@ -157,7 +156,7 @@ country_post "<U0043><U0052>" + country_car "<U0043><U0052>" + country_isbn "9930,9977,9968" + lang_name "<U0045><U0073><U0070><U0061><U00F1><U006F><U006C>" +-lang_ab "<0065><0073>" ++lang_ab "<U0065><U0073>" + lang_term "<U0073><U0070><U0061>" + country_ab2 "<U0043><U0052>" + country_ab3 "<U0043><U0052><U0049>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_DO +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_DO ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_DO +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002E>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_EC +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_EC ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_EC +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002C>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_ES +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_ES ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_ES +@@ -85,40 +85,40 @@ END LC_MONETARY + + LC_NUMERIC + decimal_point "<U002C>" +-thousands_sep "" +-grouping 0;0 ++thousands_sep "<U002E>" ++grouping 3;3 + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_GT +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_GT ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_GT +@@ -55,8 +55,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -78,9 +77,7 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002E>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_HN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_HN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_HN +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002E>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_MX +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_MX ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_MX +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002E>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_NI +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_NI ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_NI +@@ -47,8 +47,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -70,9 +69,7 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002E>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PA +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PA ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PA +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002E>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PE +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PE ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PE +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002E>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PR +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PR ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PR +@@ -47,8 +47,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -70,41 +69,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002E>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PY +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PY ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PY +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002C>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_SV +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_SV ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_SV +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,9 +78,7 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002E>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_UY +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_UY ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_UY +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002C>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_VE +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_VE ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_VE +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002C>" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ +- "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ +- "<U0073><U00E1><U0062>" ++ "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ ++ "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ ++ "<U0073><U00E1><U0062>" + day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ +- "<U006C><U0075><U006E><U0065><U0073>";/ +- "<U006D><U0061><U0072><U0074><U0065><U0073>";/ +- "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ +- "<U006A><U0075><U0065><U0076><U0065><U0073>";/ +- "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ +- "<U0073><U00E1><U0062><U0061><U0064><U006F>" ++ "<U006C><U0075><U006E><U0065><U0073>";/ ++ "<U006D><U0061><U0072><U0074><U0065><U0073>";/ ++ "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ ++ "<U006A><U0075><U0065><U0076><U0065><U0073>";/ ++ "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ ++ "<U0073><U00E1><U0062><U0061><U0064><U006F>" + abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ +- "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ +- "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ ++ "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + mon "<U0065><U006E><U0065><U0072><U006F>";/ +- "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ +- "<U006D><U0061><U0072><U007A><U006F>";/ +- "<U0061><U0062><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0079><U006F>";/ +- "<U006A><U0075><U006E><U0069><U006F>";/ +- "<U006A><U0075><U006C><U0069><U006F>";/ +- "<U0061><U0067><U006F><U0073><U0074><U006F>";/ +- "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ ++ "<U006D><U0061><U0072><U007A><U006F>";/ ++ "<U0061><U0062><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0079><U006F>";/ ++ "<U006A><U0075><U006E><U0069><U006F>";/ ++ "<U006A><U0075><U006C><U0069><U006F>";/ ++ "<U0061><U0067><U006F><U0073><U0074><U006F>";/ ++ "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_BE +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_BE ++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_BE +@@ -79,7 +79,7 @@ END LC_MONETARY + LC_NUMERIC + decimal_point "<U002C>" + thousands_sep "<U002E>" +-grouping 0;0 ++grouping 3;3 + END LC_NUMERIC + + LC_TIME +Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_CA +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_CA ++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_CA +@@ -55,8 +55,7 @@ copy "en_CA" + END LC_COLLATE + + LC_MESSAGES +-yesexpr "<U005E><U005B><U006F><U004F><U0079><U0059><U005D><U002E><U002A>" +-noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" ++copy "fr_FR" + END LC_MESSAGES + + LC_MONETARY +@@ -78,41 +77,39 @@ n_sign_posn 0 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002C>" +-thousands_sep "<U0020>" +-grouping 0;0 ++copy "fr_FR" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/ +- "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/ +- "<U0073><U0061><U006D>" ++ "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/ ++ "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/ ++ "<U0073><U0061><U006D>" + day "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/ +- "<U006C><U0075><U006E><U0064><U0069>";/ +- "<U006D><U0061><U0072><U0064><U0069>";/ +- "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/ +- "<U006A><U0065><U0075><U0064><U0069>";/ +- "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/ +- "<U0073><U0061><U006D><U0065><U0064><U0069>" ++ "<U006C><U0075><U006E><U0064><U0069>";/ ++ "<U006D><U0061><U0072><U0064><U0069>";/ ++ "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/ ++ "<U006A><U0065><U0075><U0064><U0069>";/ ++ "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/ ++ "<U0073><U0061><U006D><U0065><U0064><U0069>" + abmon "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/ +- "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/ +- "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/ ++ "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>" + mon "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/ +- "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/ +- "<U006D><U0061><U0072><U0073>";/ +- "<U0061><U0076><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0069>";/ +- "<U006A><U0075><U0069><U006E>";/ +- "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/ +- "<U0061><U006F><U00FB><U0074>";/ +- "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/ ++ "<U006D><U0061><U0072><U0073>";/ ++ "<U0061><U0076><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0069>";/ ++ "<U006A><U0075><U0069><U006E>";/ ++ "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/ ++ "<U0061><U006F><U00FB><U0074>";/ ++ "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_CH +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_CH ++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_CH +@@ -64,41 +64,39 @@ copy "de_CH" + END LC_MONETARY + + LC_NUMERIC +-decimal_point "<U002C>" +-thousands_sep "" +-grouping 0;0 ++copy "de_CH" + END LC_NUMERIC + + LC_TIME + abday "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/ +- "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/ +- "<U0073><U0061><U006D>" ++ "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/ ++ "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/ ++ "<U0073><U0061><U006D>" + day "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/ +- "<U006C><U0075><U006E><U0064><U0069>";/ +- "<U006D><U0061><U0072><U0064><U0069>";/ +- "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/ +- "<U006A><U0065><U0075><U0064><U0069>";/ +- "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/ +- "<U0073><U0061><U006D><U0065><U0064><U0069>" ++ "<U006C><U0075><U006E><U0064><U0069>";/ ++ "<U006D><U0061><U0072><U0064><U0069>";/ ++ "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/ ++ "<U006A><U0065><U0075><U0064><U0069>";/ ++ "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/ ++ "<U0073><U0061><U006D><U0065><U0064><U0069>" + abmon "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/ +- "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/ +- "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/ ++ "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>" + mon "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/ +- "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/ +- "<U006D><U0061><U0072><U0073>";/ +- "<U0061><U0076><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0069>";/ +- "<U006A><U0075><U0069><U006E>";/ +- "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/ +- "<U0061><U006F><U00FB><U0074>";/ +- "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/ ++ "<U006D><U0061><U0072><U0073>";/ ++ "<U0061><U0076><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0069>";/ ++ "<U006A><U0075><U0069><U006E>";/ ++ "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/ ++ "<U0061><U006F><U00FB><U0074>";/ ++ "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002E><U0020><U0025><U006D><U002E><U0020><U0025><U0079>" + t_fmt "<U0025><U0054>" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_LU +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_LU ++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_LU +@@ -78,40 +78,40 @@ END LC_MONETARY + + LC_NUMERIC + decimal_point "<U002C>" +-thousands_sep "" +-grouping 0;0 ++thousands_sep "<U0020>" ++grouping 3;3 + END LC_NUMERIC + + LC_TIME + abday "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/ +- "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/ +- "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/ +- "<U0073><U0061><U006D>" ++ "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/ ++ "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/ ++ "<U0073><U0061><U006D>" + day "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/ +- "<U006C><U0075><U006E><U0064><U0069>";/ +- "<U006D><U0061><U0072><U0064><U0069>";/ +- "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/ +- "<U006A><U0065><U0075><U0064><U0069>";/ +- "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/ +- "<U0073><U0061><U006D><U0065><U0064><U0069>" ++ "<U006C><U0075><U006E><U0064><U0069>";/ ++ "<U006D><U0061><U0072><U0064><U0069>";/ ++ "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/ ++ "<U006A><U0065><U0075><U0064><U0069>";/ ++ "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/ ++ "<U0073><U0061><U006D><U0065><U0064><U0069>" + abmon "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/ +- "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/ +- "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/ +- "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/ +- "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ +- "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>" ++ "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/ ++ "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/ ++ "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/ ++ "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ ++ "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>" + mon "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/ +- "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/ +- "<U006D><U0061><U0072><U0073>";/ +- "<U0061><U0076><U0072><U0069><U006C>";/ +- "<U006D><U0061><U0069>";/ +- "<U006A><U0075><U0069><U006E>";/ +- "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/ +- "<U0061><U006F><U00FB><U0074>";/ +- "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/ +- "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/ +- "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/ +- "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>" ++ "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/ ++ "<U006D><U0061><U0072><U0073>";/ ++ "<U0061><U0076><U0072><U0069><U006C>";/ ++ "<U006D><U0061><U0069>";/ ++ "<U006A><U0075><U0069><U006E>";/ ++ "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/ ++ "<U0061><U006F><U00FB><U0074>";/ ++ "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/ ++ "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/ ++ "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>" + d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" + d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>" + t_fmt "<U0025><U0054>" diff --git a/src/patches/glibc/glibc-rh688980.patch b/src/patches/glibc/glibc-rh688980.patch new file mode 100644 index 0000000..ce98926 --- /dev/null +++ b/src/patches/glibc/glibc-rh688980.patch @@ -0,0 +1,20 @@ +2011-05-11 Ulrich Drepper drepper@gmail.com + + [BZ #12625] + * misc/mntent_r.c (addmntent): Flush the stream after the output + +Index: glibc-2.12-2-gc4ccff1/misc/mntent_r.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/misc/mntent_r.c ++++ glibc-2.12-2-gc4ccff1/misc/mntent_r.c +@@ -263,8 +263,8 @@ __addmntent (FILE *stream, const struct + mntcopy.mnt_type, + mntcopy.mnt_opts, + mntcopy.mnt_freq, +- mntcopy.mnt_passno) +- < 0 ? 1 : 0); ++ mntcopy.mnt_passno) < 0 ++ || fflush (stream) != 0); + } + weak_alias (__addmntent, addmntent) + diff --git a/src/patches/glibc/glibc-rh689471.patch b/src/patches/glibc/glibc-rh689471.patch new file mode 100644 index 0000000..4c7fc8a --- /dev/null +++ b/src/patches/glibc/glibc-rh689471.patch @@ -0,0 +1,333 @@ +2011-03-20 H.J. Lu hongjiu.lu@intel.com + + [BZ #12597] + * string/test-strncmp.c (do_page_test): New function. + (check2): Likewise. + (test_main): Call check2. + * sysdeps/x86_64/multiarch/strcmp.S: Properly cross page boundary. + +Index: glibc-2.12-2-gc4ccff1/string/test-strncmp.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/test-strncmp.c ++++ glibc-2.12-2-gc4ccff1/string/test-strncmp.c +@@ -200,6 +200,27 @@ do_test (size_t align1, size_t align2, s + } + + static void ++do_page_test (size_t offset1, size_t offset2, char *s2) ++{ ++ char *s1; ++ int exp_result; ++ ++ if (offset1 >= page_size || offset2 >= page_size) ++ return; ++ ++ s1 = (char *) (buf1 + offset1); ++ s2 += offset2; ++ ++ exp_result= *s1; ++ ++ FOR_EACH_IMPL (impl, 0) ++ { ++ check_result (impl, s1, s2, page_size, -exp_result); ++ check_result (impl, s2, s1, page_size, exp_result); ++ } ++} ++ ++static void + do_random_tests (void) + { + size_t i, j, n, align1, align2, pos, len1, len2, size; +@@ -312,6 +333,25 @@ check1 (void) + } + } + ++static void ++check2 (void) ++{ ++ size_t i; ++ char *s1, *s2; ++ ++ s1 = (char *) buf1; ++ for (i = 0; i < page_size - 1; i++) ++ s1[i] = 23; ++ s1[i] = 0; ++ ++ s2 = strdup (s1); ++ ++ for (i = 0; i < 64; ++i) ++ do_page_test (3990 + i, 2635, s2); ++ ++ free (s2); ++} ++ + int + test_main (void) + { +@@ -320,6 +360,7 @@ test_main (void) + test_init (); + + check1 (); ++ check2 (); + + printf ("%23s", ""); + FOR_EACH_IMPL (impl, 0) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcmp.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S +@@ -452,6 +452,7 @@ LABEL(loop_ashr_1_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_1_use_sse4_2) + ++LABEL(nibble_ashr_1_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $1, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -499,7 +500,7 @@ LABEL(nibble_ashr_1_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $14, %ecx +- ja LABEL(loop_ashr_1_use_sse4_2) ++ ja LABEL(nibble_ashr_1_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -544,6 +545,7 @@ LABEL(loop_ashr_2_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_2_use_sse4_2) + ++LABEL(nibble_ashr_2_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $2, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -591,7 +593,7 @@ LABEL(nibble_ashr_2_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $13, %ecx +- ja LABEL(loop_ashr_2_use_sse4_2) ++ ja LABEL(nibble_ashr_2_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -636,6 +638,7 @@ LABEL(loop_ashr_3_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_3_use_sse4_2) + ++LABEL(nibble_ashr_3_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $3, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -683,7 +686,7 @@ LABEL(nibble_ashr_3_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $12, %ecx +- ja LABEL(loop_ashr_3_use_sse4_2) ++ ja LABEL(nibble_ashr_3_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -729,6 +732,7 @@ LABEL(loop_ashr_4_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_4_use_sse4_2) + ++LABEL(nibble_ashr_4_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $4, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -776,7 +780,7 @@ LABEL(nibble_ashr_4_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $11, %ecx +- ja LABEL(loop_ashr_4_use_sse4_2) ++ ja LABEL(nibble_ashr_4_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -822,6 +826,7 @@ LABEL(loop_ashr_5_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_5_use_sse4_2) + ++LABEL(nibble_ashr_5_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $5, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -870,7 +875,7 @@ LABEL(nibble_ashr_5_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $10, %ecx +- ja LABEL(loop_ashr_5_use_sse4_2) ++ ja LABEL(nibble_ashr_5_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -916,6 +921,7 @@ LABEL(loop_ashr_6_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_6_use_sse4_2) + ++LABEL(nibble_ashr_6_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $6, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -963,7 +969,7 @@ LABEL(nibble_ashr_6_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $9, %ecx +- ja LABEL(loop_ashr_6_use_sse4_2) ++ ja LABEL(nibble_ashr_6_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1009,6 +1015,7 @@ LABEL(loop_ashr_7_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_7_use_sse4_2) + ++LABEL(nibble_ashr_7_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $7, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1056,7 +1063,7 @@ LABEL(nibble_ashr_7_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $8, %ecx +- ja LABEL(loop_ashr_7_use_sse4_2) ++ ja LABEL(nibble_ashr_7_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1102,6 +1109,7 @@ LABEL(loop_ashr_8_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_8_use_sse4_2) + ++LABEL(nibble_ashr_8_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $8, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1149,7 +1157,7 @@ LABEL(nibble_ashr_8_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $7, %ecx +- ja LABEL(loop_ashr_8_use_sse4_2) ++ ja LABEL(nibble_ashr_8_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1195,6 +1203,7 @@ LABEL(loop_ashr_9_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_9_use_sse4_2) + ++LABEL(nibble_ashr_9_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + + palignr $9, -16(%rdi, %rdx), %xmm0 +@@ -1243,7 +1252,7 @@ LABEL(nibble_ashr_9_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $6, %ecx +- ja LABEL(loop_ashr_9_use_sse4_2) ++ ja LABEL(nibble_ashr_9_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1289,6 +1298,7 @@ LABEL(loop_ashr_10_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_10_use_sse4_2) + ++LABEL(nibble_ashr_10_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $10, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1336,7 +1346,7 @@ LABEL(nibble_ashr_10_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $5, %ecx +- ja LABEL(loop_ashr_10_use_sse4_2) ++ ja LABEL(nibble_ashr_10_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1382,6 +1392,7 @@ LABEL(loop_ashr_11_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_11_use_sse4_2) + ++LABEL(nibble_ashr_11_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $11, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1429,7 +1440,7 @@ LABEL(nibble_ashr_11_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $4, %ecx +- ja LABEL(loop_ashr_11_use_sse4_2) ++ ja LABEL(nibble_ashr_11_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1475,6 +1486,7 @@ LABEL(loop_ashr_12_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_12_use_sse4_2) + ++LABEL(nibble_ashr_12_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $12, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1522,7 +1534,7 @@ LABEL(nibble_ashr_12_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $3, %ecx +- ja LABEL(loop_ashr_12_use_sse4_2) ++ ja LABEL(nibble_ashr_12_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1569,6 +1581,7 @@ LABEL(loop_ashr_13_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_13_use_sse4_2) + ++LABEL(nibble_ashr_13_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $13, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1616,7 +1629,7 @@ LABEL(nibble_ashr_13_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $2, %ecx +- ja LABEL(loop_ashr_13_use_sse4_2) ++ ja LABEL(nibble_ashr_13_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1663,6 +1676,7 @@ LABEL(loop_ashr_14_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_14_use_sse4_2) + ++LABEL(nibble_ashr_14_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $14, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1710,7 +1724,7 @@ LABEL(nibble_ashr_14_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $1, %ecx +- ja LABEL(loop_ashr_14_use_sse4_2) ++ ja LABEL(nibble_ashr_14_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1759,6 +1773,7 @@ LABEL(loop_ashr_15_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_15_use_sse4_2) + ++LABEL(nibble_ashr_15_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $15, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1806,7 +1821,7 @@ LABEL(nibble_ashr_15_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $0, %ecx +- ja LABEL(loop_ashr_15_use_sse4_2) ++ ja LABEL(nibble_ashr_15_use_sse4_2_restart) + + LABEL(nibble_ashr_use_sse4_2_exit): + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L diff --git a/src/patches/glibc/glibc-rh692177.patch b/src/patches/glibc/glibc-rh692177.patch new file mode 100644 index 0000000..1036769 --- /dev/null +++ b/src/patches/glibc/glibc-rh692177.patch @@ -0,0 +1,137 @@ +2011-03-22 Ulrich Drepper drepper@gmail.com + + * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Increment + round counter. + * sysdeps/x86_64/cacheinfo.c (intel_check_word): Likewise. + +2011-03-20 Ulrich Drepper drepper@gmail.com + + [BZ #12587] + * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): + Handle cache information in CPU leaf 4. + * sysdeps/x86_64/cacheinfo.c (intel_check_word): Likewise. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/sysconf.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/i386/sysconf.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/sysconf.c +@@ -186,6 +186,57 @@ intel_check_word (int name, unsigned int + /* No need to look further. */ + break; + } ++ else if (byte == 0xff) ++ { ++ /* CPUID leaf 0x4 contains all the information. We need to ++ iterate over it. */ ++ unsigned int eax; ++ unsigned int ebx; ++ unsigned int ecx; ++ unsigned int edx; ++ ++ unsigned int round = 0; ++ while (1) ++ { ++ asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1" ++ : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx) ++ : "0" (4), "2" (round)); ++ ++ enum { null = 0, data = 1, inst = 2, uni = 3 } type = eax & 0x1f; ++ if (type == null) ++ /* That was the end. */ ++ break; ++ ++ unsigned int level = (eax >> 5) & 0x7; ++ ++ if ((level == 1 && type == data ++ && folded_rel_name == M(_SC_LEVEL1_DCACHE_SIZE)) ++ || (level == 1 && type == inst ++ && folded_rel_name == M(_SC_LEVEL1_ICACHE_SIZE)) ++ || (level == 2 && folded_rel_name == M(_SC_LEVEL2_CACHE_SIZE)) ++ || (level == 3 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) ++ || (level == 4 && folded_rel_name == M(_SC_LEVEL4_CACHE_SIZE))) ++ { ++ unsigned int offset = M(name) - folded_rel_name; ++ ++ if (offset == 0) ++ /* Cache size. */ ++ return (((ebx >> 22) + 1) ++ * (((ebx >> 12) & 0x3ff) + 1) ++ * ((ebx & 0xfff) + 1) ++ * (ecx + 1)); ++ if (offset == 1) ++ return (ebx >> 22) + 1; ++ ++ assert (offset == 2); ++ return (ebx & 0xfff) + 1; ++ } ++ ++ ++round; ++ } ++ /* There is no other cache information anywhere else. */ ++ break; ++ } + else + { + if (byte == 0x49 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +@@ -181,6 +181,57 @@ intel_check_word (int name, unsigned int + /* No need to look further. */ + break; + } ++ else if (byte == 0xff) ++ { ++ /* CPUID leaf 0x4 contains all the information. We need to ++ iterate over it. */ ++ unsigned int eax; ++ unsigned int ebx; ++ unsigned int ecx; ++ unsigned int edx; ++ ++ unsigned int round = 0; ++ while (1) ++ { ++ asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1" ++ : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx) ++ : "0" (4), "2" (round)); ++ ++ enum { null = 0, data = 1, inst = 2, uni = 3 } type = eax & 0x1f; ++ if (type == null) ++ /* That was the end. */ ++ break; ++ ++ unsigned int level = (eax >> 5) & 0x7; ++ ++ if ((level == 1 && type == data ++ && folded_rel_name == M(_SC_LEVEL1_DCACHE_SIZE)) ++ || (level == 1 && type == inst ++ && folded_rel_name == M(_SC_LEVEL1_ICACHE_SIZE)) ++ || (level == 2 && folded_rel_name == M(_SC_LEVEL2_CACHE_SIZE)) ++ || (level == 3 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) ++ || (level == 4 && folded_rel_name == M(_SC_LEVEL4_CACHE_SIZE))) ++ { ++ unsigned int offset = M(name) - folded_rel_name; ++ ++ if (offset == 0) ++ /* Cache size. */ ++ return (((ebx >> 22) + 1) ++ * (((ebx >> 12) & 0x3ff) + 1) ++ * ((ebx & 0xfff) + 1) ++ * (ecx + 1)); ++ if (offset == 1) ++ return (ebx >> 22) + 1; ++ ++ assert (offset == 2); ++ return (ebx & 0xfff) + 1; ++ } ++ ++ ++round; ++ } ++ /* There is no other cache information anywhere else. */ ++ break; ++ } + else + { + if (byte == 0x49 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) diff --git a/src/patches/glibc/glibc-rh692838.patch b/src/patches/glibc/glibc-rh692838.patch new file mode 100644 index 0000000..aa2adf1 --- /dev/null +++ b/src/patches/glibc/glibc-rh692838.patch @@ -0,0 +1,6165 @@ +2011-05-09 Ulrich Drepper drepper@gmail.com + + [BZ #12541] + * locales/ar_IN: Update currency_symbol. + * locales/as_IN: Likewise. + * locales/bn_IN: Likewise. + * locales/en_IN: Likewise. + * locales/gu_IN: Likewise. + * locales/hi_IN: Likewise. + * locales/kn_IN: Likewise. + * locales/kok_IN: Likewise. + * locales/ks_IN: Likewise. + * locales/ml_IN: Likewise. + * locales/mr_IN: Likewise. + * locales/or_IN: Likewise. + * locales/pa_IN: Likewise. + * locales/sa_IN: Likewise. + * locales/sd_IN: Likewise. + * locales/ta_IN: Likewise. + * locales/te_IN: Likewise. + Patch by pravin.d.s@gmail.com. + +2011-05-09 Ulrich Drepper drepper@gmail.com + + [BZ #12711] + * locale/C-translit.h.in: Add entry for U20B9. + Patch by pravin.d.s@gmail.com. + +Index: glibc-2.12-2-gc4ccff1/locale/C-translit.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/locale/C-translit.h ++++ glibc-2.12-2-gc4ccff1/locale/C-translit.h +@@ -1,4 +1,4 @@ +-#define NTRANSLIT 1353 ++#define NTRANSLIT 1354 + static const uint32_t translit_from_idx[] = + { + 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, +@@ -113,7 +113,7 @@ static const uint32_t translit_from_idx[ + 2616, 2618, 2620, 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2636, 2638, + 2640, 2642, 2644, 2646, 2648, 2650, 2652, 2654, 2656, 2658, 2660, 2662, + 2664, 2666, 2668, 2670, 2672, 2674, 2676, 2678, 2680, 2682, 2684, 2686, +- 2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704 ++ 2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704, 2706 + }; + static const wchar_t translit_from_tbl[] = + L"\x00a0" L"\0" L"\x00a9" L"\0" L"\x00ab" L"\0" L"\x00ad" L"\0" L"\x00ae" +@@ -134,334 +134,334 @@ static const wchar_t translit_from_tbl[] + L"\0" L"\x2035" L"\0" L"\x2036" L"\0" L"\x2037" L"\0" L"\x2039" L"\0" + L"\x203a" L"\0" L"\x203c" L"\0" L"\x2044" L"\0" L"\x2047" L"\0" L"\x2048" + L"\0" L"\x2049" L"\0" L"\x205f" L"\0" L"\x2060" L"\0" L"\x2061" L"\0" +- L"\x2062" L"\0" L"\x2063" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x2100" +- L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0" L"\x2106" L"\0" +- L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d" L"\0" L"\x210e" +- L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0" L"\x2113" L"\0" +- L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a" L"\0" L"\x211b" +- L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0" L"\x2122" L"\0" +- L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c" L"\0" L"\x212d" +- L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0" L"\x2131" L"\0" +- L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145" L"\0" L"\x2146" +- L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0" L"\x2153" L"\0" +- L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" L"\0" L"\x2158" +- L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0" L"\x215c" L"\0" +- L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" L"\0" L"\x2161" +- L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0" L"\x2165" L"\0" +- L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" L"\0" L"\x216a" +- L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0" L"\x216e" L"\0" +- L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" L"\0" L"\x2173" +- L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0" L"\x2177" L"\0" +- L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" L"\0" L"\x217c" +- L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0" L"\x2190" L"\0" +- L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2" L"\0" L"\x21d4" +- L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0" L"\x2217" L"\0" +- L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264" L"\0" L"\x2265" +- L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0" L"\x22d9" L"\0" +- L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403" L"\0" L"\x2404" +- L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0" L"\x2408" L"\0" +- L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c" L"\0" L"\x240d" +- L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0" L"\x2411" L"\0" +- L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415" L"\0" L"\x2416" +- L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0" L"\x241a" L"\0" +- L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e" L"\0" L"\x241f" +- L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0" L"\x2424" L"\0" +- L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" L"\0" L"\x2464" +- L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0" L"\x2468" L"\0" +- L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" L"\0" L"\x246d" +- L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0" L"\x2471" L"\0" +- L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" L"\0" L"\x2476" +- L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0" L"\x247a" L"\0" +- L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" L"\0" L"\x247f" +- L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0" L"\x2483" L"\0" +- L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" L"\0" L"\x2488" +- L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0" L"\x248c" L"\0" +- L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" L"\0" L"\x2491" +- L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0" L"\x2495" L"\0" +- L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" L"\0" L"\x249a" +- L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0" L"\x249e" L"\0" +- L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" L"\0" L"\x24a3" +- L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" L"\x24a7" L"\0" +- L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" L"\0" L"\x24ac" +- L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" L"\x24b0" L"\0" +- L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" L"\0" L"\x24b5" +- L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" L"\x24b9" L"\0" +- L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" L"\0" L"\x24be" +- L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" L"\x24c2" L"\0" +- L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" L"\0" L"\x24c7" +- L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" L"\x24cb" L"\0" +- L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" L"\0" L"\x24d0" +- L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" L"\x24d4" L"\0" +- L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" L"\0" L"\x24d9" +- L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" L"\x24dd" L"\0" +- L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" L"\0" L"\x24e2" +- L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" L"\x24e6" L"\0" +- L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" L"\0" L"\x2500" +- L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0" L"\x2514" L"\0" +- L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" L"\0" L"\x2534" +- L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0" L"\x2a75" L"\0" +- L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251" L"\0" L"\x3252" +- L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0" L"\x3256" L"\0" +- L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a" L"\0" L"\x325b" +- L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0" L"\x325f" L"\0" +- L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4" L"\0" L"\x32b5" +- L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0" L"\x32b9" L"\0" +- L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd" L"\0" L"\x32be" +- L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0" L"\x3373" L"\0" +- L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380" L"\0" L"\x3381" +- L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0" L"\x3385" L"\0" +- L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389" L"\0" L"\x338a" +- L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0" L"\x338e" L"\0" +- L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392" L"\0" L"\x3393" +- L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0" L"\x3397" L"\0" +- L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b" L"\0" L"\x339c" +- L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0" L"\x33a0" L"\0" +- L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4" L"\0" L"\x33a5" +- L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0" L"\x33a9" L"\0" +- L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad" L"\0" L"\x33ae" +- L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0" L"\x33b2" L"\0" +- L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6" L"\0" L"\x33b7" +- L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0" L"\x33bb" L"\0" +- L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf" L"\0" L"\x33c2" +- L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0" L"\x33c6" L"\0" +- L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca" L"\0" L"\x33cb" +- L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0" L"\x33cf" L"\0" +- L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3" L"\0" L"\x33d4" +- L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0" L"\x33d8" L"\0" +- L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc" L"\0" L"\x33dd" +- L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0" L"\xfb03" L"\0" +- L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00" L"\0" L"\xfe01" +- L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0" L"\xfe05" L"\0" +- L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09" L"\0" L"\xfe0a" +- L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0" L"\xfe0e" L"\0" +- L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" L"\0" L"\xfe50" +- L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" L"\xfe56" L"\0" +- L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" L"\0" L"\xfe5c" +- L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" L"\xfe62" L"\0" +- L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" L"\0" L"\xfe68" +- L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" L"\xfeff" L"\0" +- L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04" L"\0" L"\xff05" +- L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0" L"\xff09" L"\0" +- L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d" L"\0" L"\xff0e" +- L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0" L"\xff12" L"\0" +- L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16" L"\0" L"\xff17" +- L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0" L"\xff1b" L"\0" +- L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f" L"\0" L"\xff20" +- L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0" L"\xff24" L"\0" +- L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28" L"\0" L"\xff29" +- L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0" L"\xff2d" L"\0" +- L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31" L"\0" L"\xff32" +- L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0" L"\xff36" L"\0" +- L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a" L"\0" L"\xff3b" +- L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0" L"\xff3f" L"\0" +- L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43" L"\0" L"\xff44" +- L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0" L"\xff48" L"\0" +- L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c" L"\0" L"\xff4d" +- L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" L"\xff51" L"\0" +- L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" L"\0" L"\xff56" +- L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0" L"\xff5a" L"\0" +- L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" L"\0" +- L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0" L"\x0001d403" +- L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406" L"\0" +- L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0" L"\x0001d40a" +- L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" L"\0" +- L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0" L"\x0001d411" +- L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414" L"\0" +- L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0" L"\x0001d418" +- L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" L"\0" +- L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" L"\x0001d41f" +- L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422" L"\0" +- L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0" L"\x0001d426" +- L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429" L"\0" +- L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" L"\x0001d42d" +- L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430" L"\0" +- L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0" L"\x0001d434" +- L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437" L"\0" +- L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0" L"\x0001d43b" +- L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" L"\0" +- L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0" L"\x0001d442" +- L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445" L"\0" +- L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0" L"\x0001d449" +- L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" L"\0" +- L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" L"\x0001d450" +- L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453" L"\0" +- L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0" L"\x0001d458" +- L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" L"\0" +- L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" L"\x0001d45f" +- L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462" L"\0" +- L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0" L"\x0001d466" +- L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469" L"\0" +- L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" L"\x0001d46d" +- L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470" L"\0" +- L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0" L"\x0001d474" +- L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477" L"\0" +- L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0" L"\x0001d47b" +- L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" L"\0" +- L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0" L"\x0001d482" +- L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485" L"\0" +- L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0" L"\x0001d489" +- L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" L"\0" +- L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" L"\x0001d490" +- L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493" L"\0" +- L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0" L"\x0001d497" +- L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a" L"\0" +- L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" L"\x0001d49f" +- L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" L"\0" +- L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" L"\x0001d4ac" +- L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" L"\0" +- L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" L"\x0001d4b4" +- L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" L"\0" +- L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" L"\x0001d4bd" +- L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" L"\0" +- L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" L"\x0001d4c6" +- L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" L"\0" +- L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" L"\x0001d4cd" +- L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" L"\0" +- L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" L"\x0001d4d4" +- L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" L"\0" +- L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" L"\x0001d4db" +- L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" L"\0" +- L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" L"\x0001d4e2" +- L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" L"\0" +- L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" L"\x0001d4e9" +- L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" L"\0" +- L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" L"\x0001d4f0" +- L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" L"\0" +- L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" L"\x0001d4f7" +- L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" L"\0" +- L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" L"\x0001d4fe" +- L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501" L"\0" +- L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0" L"\x0001d505" +- L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509" L"\0" +- L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" L"\x0001d50f" +- L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512" L"\0" +- L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0" L"\x0001d517" +- L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a" L"\0" +- L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" L"\x0001d51f" +- L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522" L"\0" +- L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0" L"\x0001d526" +- L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529" L"\0" +- L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" L"\x0001d52d" +- L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530" L"\0" +- L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0" L"\x0001d534" +- L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537" L"\0" +- L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0" L"\x0001d53c" +- L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540" L"\0" +- L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0" L"\x0001d544" +- L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" L"\0" +- L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" L"\x0001d54f" +- L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553" L"\0" +- L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0" L"\x0001d557" +- L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a" L"\0" +- L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" L"\x0001d55e" +- L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561" L"\0" +- L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0" L"\x0001d565" +- L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568" L"\0" +- L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" L"\x0001d56c" +- L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" L"\0" +- L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0" L"\x0001d573" +- L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576" L"\0" +- L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0" L"\x0001d57a" +- L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" L"\0" +- L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0" L"\x0001d581" +- L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584" L"\0" +- L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0" L"\x0001d588" +- L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" L"\0" +- L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" L"\x0001d58f" +- L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592" L"\0" +- L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0" L"\x0001d596" +- L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599" L"\0" +- L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" L"\x0001d59d" +- L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" L"\0" +- L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" L"\x0001d5a4" +- L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" L"\0" +- L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" L"\x0001d5ab" +- L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" L"\0" +- L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" L"\x0001d5b2" +- L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" L"\0" +- L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" L"\x0001d5b9" +- L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" L"\0" +- L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" L"\x0001d5c0" +- L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" L"\0" +- L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" L"\x0001d5c7" +- L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" L"\0" +- L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" L"\x0001d5ce" +- L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" L"\0" +- L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" L"\x0001d5d5" +- L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" L"\0" +- L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" L"\x0001d5dc" +- L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" L"\0" +- L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" L"\x0001d5e3" +- L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" L"\0" +- L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" L"\x0001d5ea" +- L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" L"\0" +- L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" L"\x0001d5f1" +- L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" L"\0" +- L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" L"\x0001d5f8" +- L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" L"\0" +- L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" L"\x0001d5ff" +- L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602" L"\0" +- L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0" L"\x0001d606" +- L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609" L"\0" +- L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" L"\x0001d60d" +- L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610" L"\0" +- L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0" L"\x0001d614" +- L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617" L"\0" +- L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0" L"\x0001d61b" +- L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" L"\0" +- L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0" L"\x0001d622" +- L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625" L"\0" +- L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0" L"\x0001d629" +- L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" L"\0" +- L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" L"\x0001d630" +- L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633" L"\0" +- L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0" L"\x0001d637" +- L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a" L"\0" +- L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" L"\x0001d63e" +- L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641" L"\0" +- L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0" L"\x0001d645" +- L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648" L"\0" +- L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" L"\x0001d64c" +- L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" L"\0" +- L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0" L"\x0001d653" +- L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656" L"\0" +- L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0" L"\x0001d65a" +- L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" L"\0" +- L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0" L"\x0001d661" +- L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664" L"\0" +- L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0" L"\x0001d668" +- L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" L"\0" +- L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" L"\x0001d66f" +- L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672" L"\0" +- L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0" L"\x0001d676" +- L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679" L"\0" +- L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" L"\x0001d67d" +- L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680" L"\0" +- L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0" L"\x0001d684" +- L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687" L"\0" +- L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0" L"\x0001d68b" +- L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" L"\0" +- L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0" L"\x0001d692" +- L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695" L"\0" +- L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0" L"\x0001d699" +- L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" L"\0" +- L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" L"\x0001d6a0" +- L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" L"\0" +- L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" L"\x0001d7d1" +- L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" L"\0" +- L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" L"\x0001d7d8" +- L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" L"\0" +- L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" L"\x0001d7df" +- L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" L"\0" +- L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" L"\x0001d7e6" +- L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" L"\0" +- L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" L"\x0001d7ed" +- L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" L"\0" +- L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" L"\x0001d7f4" +- L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" L"\0" +- L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" L"\x0001d7fb" +- L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" L"\0" +- L"\x0001d7ff"; ++ L"\x2062" L"\0" L"\x2063" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x20b9" ++ L"\0" L"\x2100" L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0" ++ L"\x2106" L"\0" L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d" ++ L"\0" L"\x210e" L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0" ++ L"\x2113" L"\0" L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a" ++ L"\0" L"\x211b" L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0" ++ L"\x2122" L"\0" L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c" ++ L"\0" L"\x212d" L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0" ++ L"\x2131" L"\0" L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145" ++ L"\0" L"\x2146" L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0" ++ L"\x2153" L"\0" L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" ++ L"\0" L"\x2158" L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0" ++ L"\x215c" L"\0" L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" ++ L"\0" L"\x2161" L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0" ++ L"\x2165" L"\0" L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" ++ L"\0" L"\x216a" L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0" ++ L"\x216e" L"\0" L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" ++ L"\0" L"\x2173" L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0" ++ L"\x2177" L"\0" L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" ++ L"\0" L"\x217c" L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0" ++ L"\x2190" L"\0" L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2" ++ L"\0" L"\x21d4" L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0" ++ L"\x2217" L"\0" L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264" ++ L"\0" L"\x2265" L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0" ++ L"\x22d9" L"\0" L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403" ++ L"\0" L"\x2404" L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0" ++ L"\x2408" L"\0" L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c" ++ L"\0" L"\x240d" L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0" ++ L"\x2411" L"\0" L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415" ++ L"\0" L"\x2416" L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0" ++ L"\x241a" L"\0" L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e" ++ L"\0" L"\x241f" L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0" ++ L"\x2424" L"\0" L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" ++ L"\0" L"\x2464" L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0" ++ L"\x2468" L"\0" L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" ++ L"\0" L"\x246d" L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0" ++ L"\x2471" L"\0" L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" ++ L"\0" L"\x2476" L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0" ++ L"\x247a" L"\0" L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" ++ L"\0" L"\x247f" L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0" ++ L"\x2483" L"\0" L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" ++ L"\0" L"\x2488" L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0" ++ L"\x248c" L"\0" L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" ++ L"\0" L"\x2491" L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0" ++ L"\x2495" L"\0" L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" ++ L"\0" L"\x249a" L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0" ++ L"\x249e" L"\0" L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" ++ L"\0" L"\x24a3" L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" ++ L"\x24a7" L"\0" L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" ++ L"\0" L"\x24ac" L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" ++ L"\x24b0" L"\0" L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" ++ L"\0" L"\x24b5" L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" ++ L"\x24b9" L"\0" L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" ++ L"\0" L"\x24be" L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" ++ L"\x24c2" L"\0" L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" ++ L"\0" L"\x24c7" L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" ++ L"\x24cb" L"\0" L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" ++ L"\0" L"\x24d0" L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" ++ L"\x24d4" L"\0" L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" ++ L"\0" L"\x24d9" L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" ++ L"\x24dd" L"\0" L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" ++ L"\0" L"\x24e2" L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" ++ L"\x24e6" L"\0" L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" ++ L"\0" L"\x2500" L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0" ++ L"\x2514" L"\0" L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" ++ L"\0" L"\x2534" L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0" ++ L"\x2a75" L"\0" L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251" ++ L"\0" L"\x3252" L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0" ++ L"\x3256" L"\0" L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a" ++ L"\0" L"\x325b" L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0" ++ L"\x325f" L"\0" L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4" ++ L"\0" L"\x32b5" L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0" ++ L"\x32b9" L"\0" L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd" ++ L"\0" L"\x32be" L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0" ++ L"\x3373" L"\0" L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380" ++ L"\0" L"\x3381" L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0" ++ L"\x3385" L"\0" L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389" ++ L"\0" L"\x338a" L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0" ++ L"\x338e" L"\0" L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392" ++ L"\0" L"\x3393" L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0" ++ L"\x3397" L"\0" L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b" ++ L"\0" L"\x339c" L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0" ++ L"\x33a0" L"\0" L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4" ++ L"\0" L"\x33a5" L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0" ++ L"\x33a9" L"\0" L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad" ++ L"\0" L"\x33ae" L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0" ++ L"\x33b2" L"\0" L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6" ++ L"\0" L"\x33b7" L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0" ++ L"\x33bb" L"\0" L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf" ++ L"\0" L"\x33c2" L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0" ++ L"\x33c6" L"\0" L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca" ++ L"\0" L"\x33cb" L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0" ++ L"\x33cf" L"\0" L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3" ++ L"\0" L"\x33d4" L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0" ++ L"\x33d8" L"\0" L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc" ++ L"\0" L"\x33dd" L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0" ++ L"\xfb03" L"\0" L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00" ++ L"\0" L"\xfe01" L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0" ++ L"\xfe05" L"\0" L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09" ++ L"\0" L"\xfe0a" L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0" ++ L"\xfe0e" L"\0" L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" ++ L"\0" L"\xfe50" L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" ++ L"\xfe56" L"\0" L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" ++ L"\0" L"\xfe5c" L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" ++ L"\xfe62" L"\0" L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" ++ L"\0" L"\xfe68" L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" ++ L"\xfeff" L"\0" L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04" ++ L"\0" L"\xff05" L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0" ++ L"\xff09" L"\0" L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d" ++ L"\0" L"\xff0e" L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0" ++ L"\xff12" L"\0" L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16" ++ L"\0" L"\xff17" L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0" ++ L"\xff1b" L"\0" L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f" ++ L"\0" L"\xff20" L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0" ++ L"\xff24" L"\0" L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28" ++ L"\0" L"\xff29" L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0" ++ L"\xff2d" L"\0" L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31" ++ L"\0" L"\xff32" L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0" ++ L"\xff36" L"\0" L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a" ++ L"\0" L"\xff3b" L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0" ++ L"\xff3f" L"\0" L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43" ++ L"\0" L"\xff44" L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0" ++ L"\xff48" L"\0" L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c" ++ L"\0" L"\xff4d" L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" ++ L"\xff51" L"\0" L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" ++ L"\0" L"\xff56" L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0" ++ L"\xff5a" L"\0" L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" ++ L"\0" L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0" ++ L"\x0001d403" L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406" ++ L"\0" L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0" ++ L"\x0001d40a" L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" ++ L"\0" L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0" ++ L"\x0001d411" L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414" ++ L"\0" L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0" ++ L"\x0001d418" L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" ++ L"\0" L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" ++ L"\x0001d41f" L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422" ++ L"\0" L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0" ++ L"\x0001d426" L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429" ++ L"\0" L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" ++ L"\x0001d42d" L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430" ++ L"\0" L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0" ++ L"\x0001d434" L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437" ++ L"\0" L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0" ++ L"\x0001d43b" L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" ++ L"\0" L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0" ++ L"\x0001d442" L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445" ++ L"\0" L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0" ++ L"\x0001d449" L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" ++ L"\0" L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" ++ L"\x0001d450" L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453" ++ L"\0" L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0" ++ L"\x0001d458" L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" ++ L"\0" L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" ++ L"\x0001d45f" L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462" ++ L"\0" L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0" ++ L"\x0001d466" L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469" ++ L"\0" L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" ++ L"\x0001d46d" L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470" ++ L"\0" L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0" ++ L"\x0001d474" L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477" ++ L"\0" L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0" ++ L"\x0001d47b" L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" ++ L"\0" L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0" ++ L"\x0001d482" L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485" ++ L"\0" L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0" ++ L"\x0001d489" L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" ++ L"\0" L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" ++ L"\x0001d490" L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493" ++ L"\0" L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0" ++ L"\x0001d497" L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a" ++ L"\0" L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" ++ L"\x0001d49f" L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" ++ L"\0" L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" ++ L"\x0001d4ac" L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" ++ L"\0" L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" ++ L"\x0001d4b4" L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" ++ L"\0" L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" ++ L"\x0001d4bd" L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" ++ L"\0" L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" ++ L"\x0001d4c6" L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" ++ L"\0" L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" ++ L"\x0001d4cd" L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" ++ L"\0" L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" ++ L"\x0001d4d4" L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" ++ L"\0" L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" ++ L"\x0001d4db" L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" ++ L"\0" L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" ++ L"\x0001d4e2" L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" ++ L"\0" L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" ++ L"\x0001d4e9" L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" ++ L"\0" L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" ++ L"\x0001d4f0" L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" ++ L"\0" L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" ++ L"\x0001d4f7" L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" ++ L"\0" L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" ++ L"\x0001d4fe" L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501" ++ L"\0" L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0" ++ L"\x0001d505" L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509" ++ L"\0" L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" ++ L"\x0001d50f" L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512" ++ L"\0" L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0" ++ L"\x0001d517" L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a" ++ L"\0" L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" ++ L"\x0001d51f" L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522" ++ L"\0" L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0" ++ L"\x0001d526" L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529" ++ L"\0" L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" ++ L"\x0001d52d" L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530" ++ L"\0" L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0" ++ L"\x0001d534" L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537" ++ L"\0" L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0" ++ L"\x0001d53c" L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540" ++ L"\0" L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0" ++ L"\x0001d544" L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" ++ L"\0" L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" ++ L"\x0001d54f" L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553" ++ L"\0" L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0" ++ L"\x0001d557" L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a" ++ L"\0" L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" ++ L"\x0001d55e" L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561" ++ L"\0" L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0" ++ L"\x0001d565" L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568" ++ L"\0" L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" ++ L"\x0001d56c" L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" ++ L"\0" L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0" ++ L"\x0001d573" L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576" ++ L"\0" L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0" ++ L"\x0001d57a" L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" ++ L"\0" L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0" ++ L"\x0001d581" L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584" ++ L"\0" L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0" ++ L"\x0001d588" L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" ++ L"\0" L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" ++ L"\x0001d58f" L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592" ++ L"\0" L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0" ++ L"\x0001d596" L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599" ++ L"\0" L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" ++ L"\x0001d59d" L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" ++ L"\0" L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" ++ L"\x0001d5a4" L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" ++ L"\0" L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" ++ L"\x0001d5ab" L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" ++ L"\0" L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" ++ L"\x0001d5b2" L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" ++ L"\0" L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" ++ L"\x0001d5b9" L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" ++ L"\0" L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" ++ L"\x0001d5c0" L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" ++ L"\0" L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" ++ L"\x0001d5c7" L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" ++ L"\0" L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" ++ L"\x0001d5ce" L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" ++ L"\0" L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" ++ L"\x0001d5d5" L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" ++ L"\0" L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" ++ L"\x0001d5dc" L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" ++ L"\0" L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" ++ L"\x0001d5e3" L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" ++ L"\0" L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" ++ L"\x0001d5ea" L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" ++ L"\0" L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" ++ L"\x0001d5f1" L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" ++ L"\0" L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" ++ L"\x0001d5f8" L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" ++ L"\0" L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" ++ L"\x0001d5ff" L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602" ++ L"\0" L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0" ++ L"\x0001d606" L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609" ++ L"\0" L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" ++ L"\x0001d60d" L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610" ++ L"\0" L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0" ++ L"\x0001d614" L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617" ++ L"\0" L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0" ++ L"\x0001d61b" L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" ++ L"\0" L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0" ++ L"\x0001d622" L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625" ++ L"\0" L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0" ++ L"\x0001d629" L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" ++ L"\0" L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" ++ L"\x0001d630" L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633" ++ L"\0" L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0" ++ L"\x0001d637" L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a" ++ L"\0" L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" ++ L"\x0001d63e" L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641" ++ L"\0" L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0" ++ L"\x0001d645" L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648" ++ L"\0" L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" ++ L"\x0001d64c" L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" ++ L"\0" L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0" ++ L"\x0001d653" L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656" ++ L"\0" L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0" ++ L"\x0001d65a" L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" ++ L"\0" L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0" ++ L"\x0001d661" L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664" ++ L"\0" L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0" ++ L"\x0001d668" L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" ++ L"\0" L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" ++ L"\x0001d66f" L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672" ++ L"\0" L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0" ++ L"\x0001d676" L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679" ++ L"\0" L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" ++ L"\x0001d67d" L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680" ++ L"\0" L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0" ++ L"\x0001d684" L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687" ++ L"\0" L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0" ++ L"\x0001d68b" L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" ++ L"\0" L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0" ++ L"\x0001d692" L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695" ++ L"\0" L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0" ++ L"\x0001d699" L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" ++ L"\0" L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" ++ L"\x0001d6a0" L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" ++ L"\0" L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" ++ L"\x0001d7d1" L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" ++ L"\0" L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" ++ L"\x0001d7d8" L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" ++ L"\0" L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" ++ L"\x0001d7df" L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" ++ L"\0" L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" ++ L"\x0001d7e6" L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" ++ L"\0" L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" ++ L"\x0001d7ed" L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" ++ L"\0" L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" ++ L"\x0001d7f4" L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" ++ L"\0" L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" ++ L"\x0001d7fb" L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" ++ L"\0" L"\x0001d7ff"; + static const uint32_t translit_to_idx[] = + { + 0, 3, 8, 12, 15, 20, 23, 26, 30, 37, 44, 51, +@@ -471,22 +471,22 @@ static const uint32_t translit_to_idx[] + 180, 183, 186, 189, 192, 196, 199, 202, 205, 208, 211, 214, + 217, 221, 224, 227, 230, 233, 237, 242, 245, 248, 252, 257, + 260, 263, 267, 270, 274, 278, 282, 285, 287, 289, 291, 293, +- 297, 302, 307, 312, 315, 320, 325, 328, 331, 334, 337, 340, +- 343, 346, 349, 352, 355, 359, 362, 365, 368, 371, 374, 379, +- 385, 388, 393, 396, 399, 402, 405, 408, 411, 414, 417, 420, +- 423, 426, 429, 432, 435, 438, 445, 452, 459, 466, 473, 480, +- 487, 494, 501, 508, 515, 522, 527, 530, 534, 539, 543, 546, +- 550, 555, 561, 565, 568, 572, 577, 580, 583, 586, 589, 592, +- 596, 601, 605, 608, 612, 617, 623, 627, 630, 634, 639, 642, +- 645, 648, 651, 655, 659, 664, 668, 672, 677, 680, 683, 686, +- 689, 692, 695, 698, 702, 706, 710, 714, 719, 724, 729, 734, +- 739, 744, 749, 754, 759, 764, 768, 772, 776, 780, 784, 788, +- 792, 796, 801, 806, 811, 816, 821, 826, 831, 836, 841, 845, +- 850, 855, 859, 863, 867, 871, 875, 880, 883, 887, 892, 897, +- 902, 907, 912, 917, 922, 927, 932, 938, 944, 950, 956, 962, +- 968, 974, 980, 986, 992, 998, 1003, 1008, 1013, 1018, 1023, 1028, +- 1033, 1038, 1043, 1049, 1055, 1061, 1067, 1073, 1079, 1085, 1091, 1097, +- 1103, 1109, 1113, 1117, 1121, 1125, 1129, 1133, 1137, 1141, 1145, 1150, ++ 297, 302, 307, 312, 317, 320, 325, 330, 333, 336, 339, 342, ++ 345, 348, 351, 354, 357, 360, 364, 367, 370, 373, 376, 379, ++ 384, 390, 393, 398, 401, 404, 407, 410, 413, 416, 419, 422, ++ 425, 428, 431, 434, 437, 440, 443, 450, 457, 464, 471, 478, ++ 485, 492, 499, 506, 513, 520, 527, 532, 535, 539, 544, 548, ++ 551, 555, 560, 566, 570, 573, 577, 582, 585, 588, 591, 594, ++ 597, 601, 606, 610, 613, 617, 622, 628, 632, 635, 639, 644, ++ 647, 650, 653, 656, 660, 664, 669, 673, 677, 682, 685, 688, ++ 691, 694, 697, 700, 703, 707, 711, 715, 719, 724, 729, 734, ++ 739, 744, 749, 754, 759, 764, 769, 773, 777, 781, 785, 789, ++ 793, 797, 801, 806, 811, 816, 821, 826, 831, 836, 841, 846, ++ 850, 855, 860, 864, 868, 872, 876, 880, 885, 888, 892, 897, ++ 902, 907, 912, 917, 922, 927, 932, 937, 943, 949, 955, 961, ++ 967, 973, 979, 985, 991, 997, 1003, 1008, 1013, 1018, 1023, 1028, ++ 1033, 1038, 1043, 1048, 1054, 1060, 1066, 1072, 1078, 1084, 1090, 1096, ++ 1102, 1108, 1114, 1118, 1122, 1126, 1130, 1134, 1138, 1142, 1146, 1150, + 1155, 1160, 1165, 1170, 1175, 1180, 1185, 1190, 1195, 1200, 1205, 1210, + 1215, 1220, 1225, 1230, 1235, 1240, 1245, 1250, 1255, 1260, 1265, 1270, + 1275, 1280, 1285, 1290, 1295, 1300, 1305, 1310, 1315, 1320, 1325, 1330, +@@ -494,89 +494,89 @@ static const uint32_t translit_to_idx[] + 1395, 1400, 1405, 1410, 1415, 1420, 1425, 1430, 1435, 1440, 1445, 1450, + 1455, 1460, 1465, 1470, 1475, 1480, 1485, 1490, 1495, 1500, 1505, 1510, + 1515, 1520, 1525, 1530, 1535, 1540, 1545, 1550, 1555, 1560, 1565, 1570, +- 1575, 1580, 1585, 1590, 1595, 1598, 1601, 1604, 1607, 1610, 1613, 1616, +- 1619, 1622, 1625, 1628, 1631, 1636, 1640, 1645, 1648, 1651, 1657, 1663, +- 1669, 1675, 1681, 1687, 1693, 1699, 1705, 1711, 1717, 1723, 1729, 1735, +- 1741, 1747, 1753, 1759, 1765, 1771, 1777, 1783, 1789, 1795, 1801, 1807, +- 1813, 1819, 1825, 1831, 1836, 1840, 1844, 1849, 1853, 1857, 1861, 1865, +- 1869, 1873, 1877, 1881, 1885, 1889, 1894, 1900, 1904, 1908, 1912, 1916, +- 1920, 1924, 1928, 1933, 1938, 1943, 1948, 1952, 1956, 1960, 1964, 1968, +- 1972, 1976, 1980, 1984, 1988, 1994, 2000, 2005, 2011, 2017, 2023, 2028, +- 2034, 2039, 2046, 2050, 2055, 2060, 2065, 2070, 2077, 2086, 2090, 2094, +- 2098, 2102, 2106, 2110, 2114, 2118, 2122, 2126, 2130, 2134, 2138, 2142, +- 2146, 2150, 2156, 2160, 2164, 2168, 2174, 2179, 2183, 2187, 2191, 2195, +- 2199, 2203, 2207, 2211, 2215, 2219, 2224, 2228, 2232, 2237, 2242, 2246, +- 2252, 2257, 2261, 2265, 2269, 2273, 2277, 2281, 2285, 2290, 2295, 2299, +- 2302, 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318, 2320, 2322, 2324, +- 2326, 2328, 2330, 2332, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, +- 2358, 2361, 2364, 2367, 2370, 2373, 2376, 2379, 2382, 2385, 2388, 2391, +- 2394, 2397, 2400, 2403, 2406, 2409, 2411, 2414, 2417, 2420, 2423, 2426, +- 2429, 2432, 2435, 2438, 2441, 2444, 2447, 2450, 2453, 2456, 2459, 2462, +- 2465, 2468, 2471, 2474, 2477, 2480, 2483, 2486, 2489, 2492, 2495, 2498, +- 2501, 2504, 2507, 2510, 2513, 2516, 2519, 2522, 2525, 2528, 2531, 2534, +- 2537, 2540, 2543, 2546, 2549, 2552, 2555, 2558, 2561, 2564, 2567, 2570, +- 2573, 2576, 2579, 2582, 2585, 2588, 2591, 2594, 2597, 2600, 2603, 2606, +- 2609, 2612, 2615, 2618, 2621, 2624, 2627, 2630, 2633, 2636, 2639, 2642, +- 2645, 2648, 2651, 2654, 2657, 2660, 2663, 2666, 2669, 2672, 2675, 2678, +- 2681, 2684, 2687, 2690, 2693, 2696, 2699, 2702, 2705, 2708, 2711, 2714, +- 2717, 2720, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750, +- 2753, 2756, 2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786, +- 2789, 2792, 2795, 2798, 2801, 2804, 2807, 2810, 2813, 2816, 2819, 2822, +- 2825, 2828, 2831, 2834, 2837, 2840, 2843, 2846, 2849, 2852, 2855, 2858, +- 2861, 2864, 2867, 2870, 2873, 2876, 2879, 2882, 2885, 2888, 2891, 2894, +- 2897, 2900, 2903, 2906, 2909, 2912, 2915, 2918, 2921, 2924, 2927, 2930, +- 2933, 2936, 2939, 2942, 2945, 2948, 2951, 2954, 2957, 2960, 2963, 2966, +- 2969, 2972, 2975, 2978, 2981, 2984, 2987, 2990, 2993, 2996, 2999, 3002, +- 3005, 3008, 3011, 3014, 3017, 3020, 3023, 3026, 3029, 3032, 3035, 3038, +- 3041, 3044, 3047, 3050, 3053, 3056, 3059, 3062, 3065, 3068, 3071, 3074, +- 3077, 3080, 3083, 3086, 3089, 3092, 3095, 3098, 3101, 3104, 3107, 3110, +- 3113, 3116, 3119, 3122, 3125, 3128, 3131, 3134, 3137, 3140, 3143, 3146, +- 3149, 3152, 3155, 3158, 3161, 3164, 3167, 3170, 3173, 3176, 3179, 3182, +- 3185, 3188, 3191, 3194, 3197, 3200, 3203, 3206, 3209, 3212, 3215, 3218, +- 3221, 3224, 3227, 3230, 3233, 3236, 3239, 3242, 3245, 3248, 3251, 3254, +- 3257, 3260, 3263, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290, +- 3293, 3296, 3299, 3302, 3305, 3308, 3311, 3314, 3317, 3320, 3323, 3326, +- 3329, 3332, 3335, 3338, 3341, 3344, 3347, 3350, 3353, 3356, 3359, 3362, +- 3365, 3368, 3371, 3374, 3377, 3380, 3383, 3386, 3389, 3392, 3395, 3398, +- 3401, 3404, 3407, 3410, 3413, 3416, 3419, 3422, 3425, 3428, 3431, 3434, +- 3437, 3440, 3443, 3446, 3449, 3452, 3455, 3458, 3461, 3464, 3467, 3470, +- 3473, 3476, 3479, 3482, 3485, 3488, 3491, 3494, 3497, 3500, 3503, 3506, +- 3509, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3536, 3539, 3542, +- 3545, 3548, 3551, 3554, 3557, 3560, 3563, 3566, 3569, 3572, 3575, 3578, +- 3581, 3584, 3587, 3590, 3593, 3596, 3599, 3602, 3605, 3608, 3611, 3614, +- 3617, 3620, 3623, 3626, 3629, 3632, 3635, 3638, 3641, 3644, 3647, 3650, +- 3653, 3656, 3659, 3662, 3665, 3668, 3671, 3674, 3677, 3680, 3683, 3686, +- 3689, 3692, 3695, 3698, 3701, 3704, 3707, 3710, 3713, 3716, 3719, 3722, +- 3725, 3728, 3731, 3734, 3737, 3740, 3743, 3746, 3749, 3752, 3755, 3758, +- 3761, 3764, 3767, 3770, 3773, 3776, 3779, 3782, 3785, 3788, 3791, 3794, +- 3797, 3800, 3803, 3806, 3809, 3812, 3815, 3818, 3821, 3824, 3827, 3830, +- 3833, 3836, 3839, 3842, 3845, 3848, 3851, 3854, 3857, 3860, 3863, 3866, +- 3869, 3872, 3875, 3878, 3881, 3884, 3887, 3890, 3893, 3896, 3899, 3902, +- 3905, 3908, 3911, 3914, 3917, 3920, 3923, 3926, 3929, 3932, 3935, 3938, +- 3941, 3944, 3947, 3950, 3953, 3956, 3959, 3962, 3965, 3968, 3971, 3974, +- 3977, 3980, 3983, 3986, 3989, 3992, 3995, 3998, 4001, 4004, 4007, 4010, +- 4013, 4016, 4019, 4022, 4025, 4028, 4031, 4034, 4037, 4040, 4043, 4046, +- 4049, 4052, 4055, 4058, 4061, 4064, 4067, 4070, 4073, 4076, 4079, 4082, +- 4085, 4088, 4091, 4094, 4097, 4100, 4103, 4106, 4109, 4112, 4115, 4118, +- 4121, 4124, 4127, 4130, 4133, 4136, 4139, 4142, 4145, 4148, 4151, 4154, +- 4157, 4160, 4163, 4166, 4169, 4172, 4175, 4178, 4181, 4184, 4187, 4190, +- 4193, 4196, 4199, 4202, 4205, 4208, 4211, 4214, 4217, 4220, 4223, 4226, +- 4229, 4232, 4235, 4238, 4241, 4244, 4247, 4250, 4253, 4256, 4259, 4262, +- 4265, 4268, 4271, 4274, 4277, 4280, 4283, 4286, 4289, 4292, 4295, 4298, +- 4301, 4304, 4307, 4310, 4313, 4316, 4319, 4322, 4325, 4328, 4331, 4334, +- 4337, 4340, 4343, 4346, 4349, 4352, 4355, 4358, 4361, 4364, 4367, 4370, +- 4373, 4376, 4379, 4382, 4385, 4388, 4391, 4394, 4397, 4400, 4403, 4406, +- 4409, 4412, 4415, 4418, 4421, 4424, 4427, 4430, 4433, 4436, 4439, 4442, +- 4445, 4448, 4451, 4454, 4457, 4460, 4463, 4466, 4469, 4472, 4475, 4478, +- 4481, 4484, 4487, 4490, 4493, 4496, 4499, 4502, 4505, 4508, 4511, 4514, +- 4517, 4520, 4523, 4526, 4529, 4532, 4535, 4538, 4541, 4544, 4547, 4550, +- 4553, 4556, 4559, 4562, 4565, 4568, 4571, 4574, 4577, 4580, 4583, 4586, +- 4589, 4592, 4595, 4598, 4601, 4604, 4607, 4610, 4613, 4616, 4619, 4622, +- 4625, 4628, 4631, 4634, 4637, 4640, 4643, 4646, 4649, 4652, 4655, 4658, +- 4661, 4664, 4667, 4670, 4673, 4676, 4679, 4682, 4685, 4688, 4691, 4694, +- 4697, 4700, 4703, 4706, 4709, 4712, 4715, 4718, 4721, 4724, 4727, 4730, +- 4733, 4736, 4739, 4742, 4745, 4748, 4751, 4754, 4757, 4760, 4763, 4766, +- 4769, 4772, 4775, 4778, 4781, 4784, 4787, 4790, 4793 ++ 1575, 1580, 1585, 1590, 1595, 1600, 1603, 1606, 1609, 1612, 1615, 1618, ++ 1621, 1624, 1627, 1630, 1633, 1636, 1641, 1645, 1650, 1653, 1656, 1662, ++ 1668, 1674, 1680, 1686, 1692, 1698, 1704, 1710, 1716, 1722, 1728, 1734, ++ 1740, 1746, 1752, 1758, 1764, 1770, 1776, 1782, 1788, 1794, 1800, 1806, ++ 1812, 1818, 1824, 1830, 1836, 1841, 1845, 1849, 1854, 1858, 1862, 1866, ++ 1870, 1874, 1878, 1882, 1886, 1890, 1894, 1899, 1905, 1909, 1913, 1917, ++ 1921, 1925, 1929, 1933, 1938, 1943, 1948, 1953, 1957, 1961, 1965, 1969, ++ 1973, 1977, 1981, 1985, 1989, 1993, 1999, 2005, 2010, 2016, 2022, 2028, ++ 2033, 2039, 2044, 2051, 2055, 2060, 2065, 2070, 2075, 2082, 2091, 2095, ++ 2099, 2103, 2107, 2111, 2115, 2119, 2123, 2127, 2131, 2135, 2139, 2143, ++ 2147, 2151, 2155, 2161, 2165, 2169, 2173, 2179, 2184, 2188, 2192, 2196, ++ 2200, 2204, 2208, 2212, 2216, 2220, 2224, 2229, 2233, 2237, 2242, 2247, ++ 2251, 2257, 2262, 2266, 2270, 2274, 2278, 2282, 2286, 2290, 2295, 2300, ++ 2304, 2307, 2309, 2311, 2313, 2315, 2317, 2319, 2321, 2323, 2325, 2327, ++ 2329, 2331, 2333, 2335, 2337, 2339, 2342, 2345, 2348, 2351, 2354, 2357, ++ 2360, 2363, 2366, 2369, 2372, 2375, 2378, 2381, 2384, 2387, 2390, 2393, ++ 2396, 2399, 2402, 2405, 2408, 2411, 2414, 2416, 2419, 2422, 2425, 2428, ++ 2431, 2434, 2437, 2440, 2443, 2446, 2449, 2452, 2455, 2458, 2461, 2464, ++ 2467, 2470, 2473, 2476, 2479, 2482, 2485, 2488, 2491, 2494, 2497, 2500, ++ 2503, 2506, 2509, 2512, 2515, 2518, 2521, 2524, 2527, 2530, 2533, 2536, ++ 2539, 2542, 2545, 2548, 2551, 2554, 2557, 2560, 2563, 2566, 2569, 2572, ++ 2575, 2578, 2581, 2584, 2587, 2590, 2593, 2596, 2599, 2602, 2605, 2608, ++ 2611, 2614, 2617, 2620, 2623, 2626, 2629, 2632, 2635, 2638, 2641, 2644, ++ 2647, 2650, 2653, 2656, 2659, 2662, 2665, 2668, 2671, 2674, 2677, 2680, ++ 2683, 2686, 2689, 2692, 2695, 2698, 2701, 2704, 2707, 2710, 2713, 2716, ++ 2719, 2722, 2725, 2728, 2731, 2734, 2737, 2740, 2743, 2746, 2749, 2752, ++ 2755, 2758, 2761, 2764, 2767, 2770, 2773, 2776, 2779, 2782, 2785, 2788, ++ 2791, 2794, 2797, 2800, 2803, 2806, 2809, 2812, 2815, 2818, 2821, 2824, ++ 2827, 2830, 2833, 2836, 2839, 2842, 2845, 2848, 2851, 2854, 2857, 2860, ++ 2863, 2866, 2869, 2872, 2875, 2878, 2881, 2884, 2887, 2890, 2893, 2896, ++ 2899, 2902, 2905, 2908, 2911, 2914, 2917, 2920, 2923, 2926, 2929, 2932, ++ 2935, 2938, 2941, 2944, 2947, 2950, 2953, 2956, 2959, 2962, 2965, 2968, ++ 2971, 2974, 2977, 2980, 2983, 2986, 2989, 2992, 2995, 2998, 3001, 3004, ++ 3007, 3010, 3013, 3016, 3019, 3022, 3025, 3028, 3031, 3034, 3037, 3040, ++ 3043, 3046, 3049, 3052, 3055, 3058, 3061, 3064, 3067, 3070, 3073, 3076, ++ 3079, 3082, 3085, 3088, 3091, 3094, 3097, 3100, 3103, 3106, 3109, 3112, ++ 3115, 3118, 3121, 3124, 3127, 3130, 3133, 3136, 3139, 3142, 3145, 3148, ++ 3151, 3154, 3157, 3160, 3163, 3166, 3169, 3172, 3175, 3178, 3181, 3184, ++ 3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3214, 3217, 3220, ++ 3223, 3226, 3229, 3232, 3235, 3238, 3241, 3244, 3247, 3250, 3253, 3256, ++ 3259, 3262, 3265, 3268, 3271, 3274, 3277, 3280, 3283, 3286, 3289, 3292, ++ 3295, 3298, 3301, 3304, 3307, 3310, 3313, 3316, 3319, 3322, 3325, 3328, ++ 3331, 3334, 3337, 3340, 3343, 3346, 3349, 3352, 3355, 3358, 3361, 3364, ++ 3367, 3370, 3373, 3376, 3379, 3382, 3385, 3388, 3391, 3394, 3397, 3400, ++ 3403, 3406, 3409, 3412, 3415, 3418, 3421, 3424, 3427, 3430, 3433, 3436, ++ 3439, 3442, 3445, 3448, 3451, 3454, 3457, 3460, 3463, 3466, 3469, 3472, ++ 3475, 3478, 3481, 3484, 3487, 3490, 3493, 3496, 3499, 3502, 3505, 3508, ++ 3511, 3514, 3517, 3520, 3523, 3526, 3529, 3532, 3535, 3538, 3541, 3544, ++ 3547, 3550, 3553, 3556, 3559, 3562, 3565, 3568, 3571, 3574, 3577, 3580, ++ 3583, 3586, 3589, 3592, 3595, 3598, 3601, 3604, 3607, 3610, 3613, 3616, ++ 3619, 3622, 3625, 3628, 3631, 3634, 3637, 3640, 3643, 3646, 3649, 3652, ++ 3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3682, 3685, 3688, ++ 3691, 3694, 3697, 3700, 3703, 3706, 3709, 3712, 3715, 3718, 3721, 3724, ++ 3727, 3730, 3733, 3736, 3739, 3742, 3745, 3748, 3751, 3754, 3757, 3760, ++ 3763, 3766, 3769, 3772, 3775, 3778, 3781, 3784, 3787, 3790, 3793, 3796, ++ 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3820, 3823, 3826, 3829, 3832, ++ 3835, 3838, 3841, 3844, 3847, 3850, 3853, 3856, 3859, 3862, 3865, 3868, ++ 3871, 3874, 3877, 3880, 3883, 3886, 3889, 3892, 3895, 3898, 3901, 3904, ++ 3907, 3910, 3913, 3916, 3919, 3922, 3925, 3928, 3931, 3934, 3937, 3940, ++ 3943, 3946, 3949, 3952, 3955, 3958, 3961, 3964, 3967, 3970, 3973, 3976, ++ 3979, 3982, 3985, 3988, 3991, 3994, 3997, 4000, 4003, 4006, 4009, 4012, ++ 4015, 4018, 4021, 4024, 4027, 4030, 4033, 4036, 4039, 4042, 4045, 4048, ++ 4051, 4054, 4057, 4060, 4063, 4066, 4069, 4072, 4075, 4078, 4081, 4084, ++ 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4120, ++ 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156, ++ 4159, 4162, 4165, 4168, 4171, 4174, 4177, 4180, 4183, 4186, 4189, 4192, ++ 4195, 4198, 4201, 4204, 4207, 4210, 4213, 4216, 4219, 4222, 4225, 4228, ++ 4231, 4234, 4237, 4240, 4243, 4246, 4249, 4252, 4255, 4258, 4261, 4264, ++ 4267, 4270, 4273, 4276, 4279, 4282, 4285, 4288, 4291, 4294, 4297, 4300, ++ 4303, 4306, 4309, 4312, 4315, 4318, 4321, 4324, 4327, 4330, 4333, 4336, ++ 4339, 4342, 4345, 4348, 4351, 4354, 4357, 4360, 4363, 4366, 4369, 4372, ++ 4375, 4378, 4381, 4384, 4387, 4390, 4393, 4396, 4399, 4402, 4405, 4408, ++ 4411, 4414, 4417, 4420, 4423, 4426, 4429, 4432, 4435, 4438, 4441, 4444, ++ 4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, 4477, 4480, ++ 4483, 4486, 4489, 4492, 4495, 4498, 4501, 4504, 4507, 4510, 4513, 4516, ++ 4519, 4522, 4525, 4528, 4531, 4534, 4537, 4540, 4543, 4546, 4549, 4552, ++ 4555, 4558, 4561, 4564, 4567, 4570, 4573, 4576, 4579, 4582, 4585, 4588, ++ 4591, 4594, 4597, 4600, 4603, 4606, 4609, 4612, 4615, 4618, 4621, 4624, ++ 4627, 4630, 4633, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 4657, 4660, ++ 4663, 4666, 4669, 4672, 4675, 4678, 4681, 4684, 4687, 4690, 4693, 4696, ++ 4699, 4702, 4705, 4708, 4711, 4714, 4717, 4720, 4723, 4726, 4729, 4732, ++ 4735, 4738, 4741, 4744, 4747, 4750, 4753, 4756, 4759, 4762, 4765, 4768, ++ 4771, 4774, 4777, 4780, 4783, 4786, 4789, 4792, 4795, 4798 + }; + static const wchar_t translit_to_tbl[] = + L" \0" L"\0" L"(C)\0" L"\0" L"<<\0" L"\0" L"-\0" L"\0" L"(R)\0" L"\0" L"u\0" +@@ -594,73 +594,73 @@ static const wchar_t translit_to_tbl[] = + L"\0" L"..\0" L"\0" L"...\0" L"\0" L" \0" L"\0" L"`\0" L"\0" L"``\0" L"\0" + L"```\0" L"\0" L"<\0" L"\0" L">\0" L"\0" L"!!\0" L"\0" L"/\0" L"\0" L"??\0" + L"\0" L"?!\0" L"\0" L"!?\0" L"\0" L" \0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" +- L"\0" L"\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"a/c\0" L"\0" L"a/s\0" L"\0" +- L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0" L"H\0" L"\0" L"H\0" +- L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0" L"\0" L"L\0" L"\0" +- L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" +- L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0" L"\0" L"Z\0" L"\0" +- L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"e\0" L"\0" L"e\0" +- L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0" L"\0" L"i\0" L"\0" +- L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L" 1/3 \0" +- L"\0" L" 2/3 \0" L"\0" L" 1/5 \0" L"\0" L" 2/5 \0" L"\0" L" 3/5 \0" L"\0" +- L" 4/5 \0" L"\0" L" 1/6 \0" L"\0" L" 5/6 \0" L"\0" L" 1/8 \0" L"\0" +- L" 3/8 \0" L"\0" L" 5/8 \0" L"\0" L" 7/8 \0" L"\0" L" 1/\0" L"\0" L"I\0" +- L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0" L"VI\0" L"\0" +- L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0" L"XI\0" L"\0" +- L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0" L"\0" L"i\0" +- L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0" L"vi\0" L"\0" +- L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0" L"xi\0" L"\0" +- L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0" L"\0" L"<-\0" +- L"\0" L"->\0" L"\0" L"<->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0" L"<=>\0" +- L"\0" L"-\0" L"\0" L"/\0" L"\0" L"\\0" L"\0" L"*\0" L"\0" L"|\0" L"\0" +- L":\0" L"\0" L"~\0" L"\0" L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0" L">>\0" +- L"\0" L"<<<\0" L"\0" L">>>\0" L"\0" L"NUL\0" L"\0" L"SOH\0" L"\0" L"STX\0" +- L"\0" L"ETX\0" L"\0" L"EOT\0" L"\0" L"ENQ\0" L"\0" L"ACK\0" L"\0" L"BEL\0" +- L"\0" L"BS\0" L"\0" L"HT\0" L"\0" L"LF\0" L"\0" L"VT\0" L"\0" L"FF\0" L"\0" +- L"CR\0" L"\0" L"SO\0" L"\0" L"SI\0" L"\0" L"DLE\0" L"\0" L"DC1\0" L"\0" +- L"DC2\0" L"\0" L"DC3\0" L"\0" L"DC4\0" L"\0" L"NAK\0" L"\0" L"SYN\0" L"\0" +- L"ETB\0" L"\0" L"CAN\0" L"\0" L"EM\0" L"\0" L"SUB\0" L"\0" L"ESC\0" L"\0" +- L"FS\0" L"\0" L"GS\0" L"\0" L"RS\0" L"\0" L"US\0" L"\0" L"SP\0" L"\0" +- L"DEL\0" L"\0" L"_\0" L"\0" L"NL\0" L"\0" L"(1)\0" L"\0" L"(2)\0" L"\0" +- L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0" L"(7)\0" L"\0" +- L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0" L"(12)\0" +- L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0" L"\0" +- L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0" L"(1)\0" +- L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" +- L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" +- L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" +- L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" +- L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0" L"5.\0" L"\0" +- L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0" L"10.\0" L"\0" +- L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0" L"15.\0" L"\0" +- L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0" L"20.\0" L"\0" +- L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0" +- L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0" +- L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0" +- L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0" +- L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0" +- L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0" L"(D)\0" L"\0" +- L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0" L"(I)\0" L"\0" +- L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0" L"(N)\0" L"\0" +- L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0" L"(S)\0" L"\0" +- L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0" L"(X)\0" L"\0" +- L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" +- L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" +- L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" +- L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" +- L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" +- L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0" L"-\0" L"\0" +- L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" +- L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"o\0" L"\0" +- L"::=\0" L"\0" L"==\0" L"\0" L"===\0" L"\0" L" \0" L"\0" L"=\0" L"\0" +- L"(21)\0" L"\0" L"(22)\0" L"\0" L"(23)\0" L"\0" L"(24)\0" L"\0" L"(25)\0" +- L"\0" L"(26)\0" L"\0" L"(27)\0" L"\0" L"(28)\0" L"\0" L"(29)\0" L"\0" +- L"(30)\0" L"\0" L"(31)\0" L"\0" L"(32)\0" L"\0" L"(33)\0" L"\0" L"(34)\0" +- L"\0" L"(35)\0" L"\0" L"(36)\0" L"\0" L"(37)\0" L"\0" L"(38)\0" L"\0" +- L"(39)\0" L"\0" L"(40)\0" L"\0" L"(41)\0" L"\0" L"(42)\0" L"\0" L"(43)\0" +- L"\0" L"(44)\0" L"\0" L"(45)\0" L"\0" L"(46)\0" L"\0" L"(47)\0" L"\0" +- L"(48)\0" L"\0" L"(49)\0" L"\0" L"(50)\0" L"\0" L"hPa\0" L"\0" L"da\0" L"\0" +- L"AU\0" L"\0" L"bar\0" L"\0" L"oV\0" L"\0" L"pc\0" L"\0" L"pA\0" L"\0" ++ L"\0" L"\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"INR\0" L"\0" L"a/c\0" L"\0" ++ L"a/s\0" L"\0" L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0" ++ L"H\0" L"\0" L"H\0" L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0" ++ L"\0" L"L\0" L"\0" L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0" ++ L"Q\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0" ++ L"\0" L"Z\0" L"\0" L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" ++ L"e\0" L"\0" L"e\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0" ++ L"\0" L"i\0" L"\0" L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0" ++ L"j\0" L"\0" L" 1/3 \0" L"\0" L" 2/3 \0" L"\0" L" 1/5 \0" L"\0" L" 2/5 \0" ++ L"\0" L" 3/5 \0" L"\0" L" 4/5 \0" L"\0" L" 1/6 \0" L"\0" L" 5/6 \0" L"\0" ++ L" 1/8 \0" L"\0" L" 3/8 \0" L"\0" L" 5/8 \0" L"\0" L" 7/8 \0" L"\0" L" 1/\0" ++ L"\0" L"I\0" L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0" ++ L"VI\0" L"\0" L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0" ++ L"XI\0" L"\0" L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0" ++ L"\0" L"i\0" L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0" ++ L"vi\0" L"\0" L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0" ++ L"xi\0" L"\0" L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0" ++ L"\0" L"<-\0" L"\0" L"->\0" L"\0" L"<->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0" ++ L"<=>\0" L"\0" L"-\0" L"\0" L"/\0" L"\0" L"\\0" L"\0" L"*\0" L"\0" L"|\0" ++ L"\0" L":\0" L"\0" L"~\0" L"\0" L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0" ++ L">>\0" L"\0" L"<<<\0" L"\0" L">>>\0" L"\0" L"NUL\0" L"\0" L"SOH\0" L"\0" ++ L"STX\0" L"\0" L"ETX\0" L"\0" L"EOT\0" L"\0" L"ENQ\0" L"\0" L"ACK\0" L"\0" ++ L"BEL\0" L"\0" L"BS\0" L"\0" L"HT\0" L"\0" L"LF\0" L"\0" L"VT\0" L"\0" ++ L"FF\0" L"\0" L"CR\0" L"\0" L"SO\0" L"\0" L"SI\0" L"\0" L"DLE\0" L"\0" ++ L"DC1\0" L"\0" L"DC2\0" L"\0" L"DC3\0" L"\0" L"DC4\0" L"\0" L"NAK\0" L"\0" ++ L"SYN\0" L"\0" L"ETB\0" L"\0" L"CAN\0" L"\0" L"EM\0" L"\0" L"SUB\0" L"\0" ++ L"ESC\0" L"\0" L"FS\0" L"\0" L"GS\0" L"\0" L"RS\0" L"\0" L"US\0" L"\0" ++ L"SP\0" L"\0" L"DEL\0" L"\0" L"_\0" L"\0" L"NL\0" L"\0" L"(1)\0" L"\0" ++ L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0" ++ L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0" ++ L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0" ++ L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0" ++ L"(1)\0" L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" ++ L"(6)\0" L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" ++ L"(11)\0" L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" ++ L"\0" L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" ++ L"(20)\0" L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0" ++ L"5.\0" L"\0" L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0" ++ L"10.\0" L"\0" L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0" ++ L"15.\0" L"\0" L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0" ++ L"20.\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0" ++ L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0" ++ L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0" ++ L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0" ++ L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0" ++ L"(y)\0" L"\0" L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0" ++ L"(D)\0" L"\0" L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0" ++ L"(I)\0" L"\0" L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0" ++ L"(N)\0" L"\0" L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0" ++ L"(S)\0" L"\0" L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0" ++ L"(X)\0" L"\0" L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" ++ L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" ++ L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" ++ L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" ++ L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" ++ L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0" ++ L"-\0" L"\0" L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" ++ L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" ++ L"o\0" L"\0" L"::=\0" L"\0" L"==\0" L"\0" L"===\0" L"\0" L" \0" L"\0" L"=\0" ++ L"\0" L"(21)\0" L"\0" L"(22)\0" L"\0" L"(23)\0" L"\0" L"(24)\0" L"\0" ++ L"(25)\0" L"\0" L"(26)\0" L"\0" L"(27)\0" L"\0" L"(28)\0" L"\0" L"(29)\0" ++ L"\0" L"(30)\0" L"\0" L"(31)\0" L"\0" L"(32)\0" L"\0" L"(33)\0" L"\0" ++ L"(34)\0" L"\0" L"(35)\0" L"\0" L"(36)\0" L"\0" L"(37)\0" L"\0" L"(38)\0" ++ L"\0" L"(39)\0" L"\0" L"(40)\0" L"\0" L"(41)\0" L"\0" L"(42)\0" L"\0" ++ L"(43)\0" L"\0" L"(44)\0" L"\0" L"(45)\0" L"\0" L"(46)\0" L"\0" L"(47)\0" ++ L"\0" L"(48)\0" L"\0" L"(49)\0" L"\0" L"(50)\0" L"\0" L"hPa\0" L"\0" L"da\0" ++ L"\0" L"AU\0" L"\0" L"bar\0" L"\0" L"oV\0" L"\0" L"pc\0" L"\0" L"pA\0" L"\0" + L"nA\0" L"\0" L"uA\0" L"\0" L"mA\0" L"\0" L"kA\0" L"\0" L"KB\0" L"\0" + L"MB\0" L"\0" L"GB\0" L"\0" L"cal\0" L"\0" L"kcal\0" L"\0" L"pF\0" L"\0" + L"nF\0" L"\0" L"uF\0" L"\0" L"ug\0" L"\0" L"mg\0" L"\0" L"kg\0" L"\0" +Index: glibc-2.12-2-gc4ccff1/locale/C-translit.h.in +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/locale/C-translit.h.in ++++ glibc-2.12-2-gc4ccff1/locale/C-translit.h.in +@@ -105,6 +105,7 @@ + "\x2063" "" /* <U2063> INVISIBLE SEPARATOR */ + "\x20a8" "Rs" /* <U20A8> RUPEE SIGN */ + "\x20ac" "EUR" /* <U20AC> EURO SIGN */ ++"\x20b9" "INR" /* <U20B9> INDIAN RUPEE SIGN */ + "\x2100" "a/c" /* <U2100> ACCOUNT OF */ + "\x2101" "a/s" /* <U2101> ADDRESSED TO THE SUBJECT */ + "\x2102" "C" /* <U2102> DOUBLE-STRUCK CAPITAL C */ +Index: glibc-2.12-2-gc4ccff1/localedata/charmaps/UTF-8 +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/charmaps/UTF-8 ++++ glibc-2.12-2-gc4ccff1/localedata/charmaps/UTF-8 +@@ -1312,6 +1312,10 @@ CHARMAP + <U0521> /xd4/xa1 CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK + <U0522> /xd4/xa2 CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK + <U0523> /xd4/xa3 CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK ++<U0524> /xd4/xa4 CYRILLIC CAPITAL LETTER PE WITH DESCENDER ++<U0525> /xd4/xa5 CYRILLIC SMALL LETTER PE WITH DESCENDER ++<U0526> /xd4/xa6 CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER ++<U0527> /xd4/xa7 CYRILLIC SMALL LETTER SHHA WITH DESCENDER + <U0531> /xd4/xb1 ARMENIAN CAPITAL LETTER AYB + <U0532> /xd4/xb2 ARMENIAN CAPITAL LETTER BEN + <U0533> /xd4/xb3 ARMENIAN CAPITAL LETTER GIM +@@ -1513,6 +1517,7 @@ CHARMAP + <U061B> /xd8/x9b ARABIC SEMICOLON + <U061E> /xd8/x9e ARABIC TRIPLE DOT PUNCTUATION MARK + <U061F> /xd8/x9f ARABIC QUESTION MARK ++<U0620> /xd8/xa0 ARABIC LETTER KASHMIRI YEH + <U0621> /xd8/xa1 ARABIC LETTER HAMZA + <U0622> /xd8/xa2 ARABIC LETTER ALEF WITH MADDA ABOVE + <U0623> /xd8/xa3 ARABIC LETTER ALEF WITH HAMZA ABOVE +@@ -1575,6 +1580,7 @@ CHARMAP + <U065C> /xd9/x9c ARABIC VOWEL SIGN DOT BELOW + <U065D> /xd9/x9d ARABIC REVERSED DAMMA + <U065E> /xd9/x9e ARABIC FATHA WITH TWO DOTS ++<U065F> /xd9/x9f ARABIC WAVY HAMZA BELOW + <U0660> /xd9/xa0 ARABIC-INDIC DIGIT ZERO + <U0661> /xd9/xa1 ARABIC-INDIC DIGIT ONE + <U0662> /xd9/xa2 ARABIC-INDIC DIGIT TWO +@@ -1969,6 +1975,97 @@ CHARMAP + <U07F8> /xdf/xb8 NKO COMMA + <U07F9> /xdf/xb9 NKO EXCLAMATION MARK + <U07FA> /xdf/xba NKO LAJANYALAN ++<U0800> /xe0/xa0/x80 SAMARITAN LETTER ALAF ++<U0801> /xe0/xa0/x81 SAMARITAN LETTER BIT ++<U0802> /xe0/xa0/x82 SAMARITAN LETTER GAMAN ++<U0803> /xe0/xa0/x83 SAMARITAN LETTER DALAT ++<U0804> /xe0/xa0/x84 SAMARITAN LETTER IY ++<U0805> /xe0/xa0/x85 SAMARITAN LETTER BAA ++<U0806> /xe0/xa0/x86 SAMARITAN LETTER ZEN ++<U0807> /xe0/xa0/x87 SAMARITAN LETTER IT ++<U0808> /xe0/xa0/x88 SAMARITAN LETTER TIT ++<U0809> /xe0/xa0/x89 SAMARITAN LETTER YUT ++<U080A> /xe0/xa0/x8a SAMARITAN LETTER KAAF ++<U080B> /xe0/xa0/x8b SAMARITAN LETTER LABAT ++<U080C> /xe0/xa0/x8c SAMARITAN LETTER MIM ++<U080D> /xe0/xa0/x8d SAMARITAN LETTER NUN ++<U080E> /xe0/xa0/x8e SAMARITAN LETTER SINGAAT ++<U080F> /xe0/xa0/x8f SAMARITAN LETTER IN ++<U0810> /xe0/xa0/x90 SAMARITAN LETTER FI ++<U0811> /xe0/xa0/x91 SAMARITAN LETTER TSAADIY ++<U0812> /xe0/xa0/x92 SAMARITAN LETTER QUF ++<U0813> /xe0/xa0/x93 SAMARITAN LETTER RISH ++<U0814> /xe0/xa0/x94 SAMARITAN LETTER SHAN ++<U0815> /xe0/xa0/x95 SAMARITAN LETTER TAAF ++<U0816> /xe0/xa0/x96 SAMARITAN MARK IN ++<U0817> /xe0/xa0/x97 SAMARITAN MARK IN-ALAF ++<U0818> /xe0/xa0/x98 SAMARITAN MARK OCCLUSION ++<U0819> /xe0/xa0/x99 SAMARITAN MARK DAGESH ++<U081A> /xe0/xa0/x9a SAMARITAN MODIFIER LETTER EPENTHETIC YUT ++<U081B> /xe0/xa0/x9b SAMARITAN MARK EPENTHETIC YUT ++<U081C> /xe0/xa0/x9c SAMARITAN VOWEL SIGN LONG E ++<U081D> /xe0/xa0/x9d SAMARITAN VOWEL SIGN E ++<U081E> /xe0/xa0/x9e SAMARITAN VOWEL SIGN OVERLONG AA ++<U081F> /xe0/xa0/x9f SAMARITAN VOWEL SIGN LONG AA ++<U0820> /xe0/xa0/xa0 SAMARITAN VOWEL SIGN AA ++<U0821> /xe0/xa0/xa1 SAMARITAN VOWEL SIGN OVERLONG A ++<U0822> /xe0/xa0/xa2 SAMARITAN VOWEL SIGN LONG A ++<U0823> /xe0/xa0/xa3 SAMARITAN VOWEL SIGN A ++<U0824> /xe0/xa0/xa4 SAMARITAN MODIFIER LETTER SHORT A ++<U0825> /xe0/xa0/xa5 SAMARITAN VOWEL SIGN SHORT A ++<U0826> /xe0/xa0/xa6 SAMARITAN VOWEL SIGN LONG U ++<U0827> /xe0/xa0/xa7 SAMARITAN VOWEL SIGN U ++<U0828> /xe0/xa0/xa8 SAMARITAN MODIFIER LETTER I ++<U0829> /xe0/xa0/xa9 SAMARITAN VOWEL SIGN LONG I ++<U082A> /xe0/xa0/xaa SAMARITAN VOWEL SIGN I ++<U082B> /xe0/xa0/xab SAMARITAN VOWEL SIGN O ++<U082C> /xe0/xa0/xac SAMARITAN VOWEL SIGN SUKUN ++<U082D> /xe0/xa0/xad SAMARITAN MARK NEQUDAA ++<U0830> /xe0/xa0/xb0 SAMARITAN PUNCTUATION NEQUDAA ++<U0831> /xe0/xa0/xb1 SAMARITAN PUNCTUATION AFSAAQ ++<U0832> /xe0/xa0/xb2 SAMARITAN PUNCTUATION ANGED ++<U0833> /xe0/xa0/xb3 SAMARITAN PUNCTUATION BAU ++<U0834> /xe0/xa0/xb4 SAMARITAN PUNCTUATION ATMAAU ++<U0835> /xe0/xa0/xb5 SAMARITAN PUNCTUATION SHIYYAALAA ++<U0836> /xe0/xa0/xb6 SAMARITAN ABBREVIATION MARK ++<U0837> /xe0/xa0/xb7 SAMARITAN PUNCTUATION MELODIC QITSA ++<U0838> /xe0/xa0/xb8 SAMARITAN PUNCTUATION ZIQAA ++<U0839> /xe0/xa0/xb9 SAMARITAN PUNCTUATION QITSA ++<U083A> /xe0/xa0/xba SAMARITAN PUNCTUATION ZAEF ++<U083B> /xe0/xa0/xbb SAMARITAN PUNCTUATION TURU ++<U083C> /xe0/xa0/xbc SAMARITAN PUNCTUATION ARKAANU ++<U083D> /xe0/xa0/xbd SAMARITAN PUNCTUATION SOF MASHFAAT ++<U083E> /xe0/xa0/xbe SAMARITAN PUNCTUATION ANNAAU ++<U0840> /xe0/xa1/x80 MANDAIC LETTER HALQA ++<U0841> /xe0/xa1/x81 MANDAIC LETTER AB ++<U0842> /xe0/xa1/x82 MANDAIC LETTER AG ++<U0843> /xe0/xa1/x83 MANDAIC LETTER AD ++<U0844> /xe0/xa1/x84 MANDAIC LETTER AH ++<U0845> /xe0/xa1/x85 MANDAIC LETTER USHENNA ++<U0846> /xe0/xa1/x86 MANDAIC LETTER AZ ++<U0847> /xe0/xa1/x87 MANDAIC LETTER IT ++<U0848> /xe0/xa1/x88 MANDAIC LETTER ATT ++<U0849> /xe0/xa1/x89 MANDAIC LETTER AKSA ++<U084A> /xe0/xa1/x8a MANDAIC LETTER AK ++<U084B> /xe0/xa1/x8b MANDAIC LETTER AL ++<U084C> /xe0/xa1/x8c MANDAIC LETTER AM ++<U084D> /xe0/xa1/x8d MANDAIC LETTER AN ++<U084E> /xe0/xa1/x8e MANDAIC LETTER AS ++<U084F> /xe0/xa1/x8f MANDAIC LETTER IN ++<U0850> /xe0/xa1/x90 MANDAIC LETTER AP ++<U0851> /xe0/xa1/x91 MANDAIC LETTER ASZ ++<U0852> /xe0/xa1/x92 MANDAIC LETTER AQ ++<U0853> /xe0/xa1/x93 MANDAIC LETTER AR ++<U0854> /xe0/xa1/x94 MANDAIC LETTER ASH ++<U0855> /xe0/xa1/x95 MANDAIC LETTER AT ++<U0856> /xe0/xa1/x96 MANDAIC LETTER DUSHENNA ++<U0857> /xe0/xa1/x97 MANDAIC LETTER KAD ++<U0858> /xe0/xa1/x98 MANDAIC LETTER AIN ++<U0859> /xe0/xa1/x99 MANDAIC AFFRICATION MARK ++<U085A> /xe0/xa1/x9a MANDAIC VOCALIZATION MARK ++<U085B> /xe0/xa1/x9b MANDAIC GEMINATION MARK ++<U085E> /xe0/xa1/x9e MANDAIC PUNCTUATION ++<U0900> /xe0/xa4/x80 DEVANAGARI SIGN INVERTED CANDRABINDU + <U0901> /xe0/xa4/x81 DEVANAGARI SIGN CANDRABINDU + <U0902> /xe0/xa4/x82 DEVANAGARI SIGN ANUSVARA + <U0903> /xe0/xa4/x83 DEVANAGARI SIGN VISARGA +@@ -2026,6 +2123,8 @@ CHARMAP + <U0937> /xe0/xa4/xb7 DEVANAGARI LETTER SSA + <U0938> /xe0/xa4/xb8 DEVANAGARI LETTER SA + <U0939> /xe0/xa4/xb9 DEVANAGARI LETTER HA ++<U093A> /xe0/xa4/xba DEVANAGARI VOWEL SIGN OE ++<U093B> /xe0/xa4/xbb DEVANAGARI VOWEL SIGN OOE + <U093C> /xe0/xa4/xbc DEVANAGARI SIGN NUKTA + <U093D> /xe0/xa4/xbd DEVANAGARI SIGN AVAGRAHA + <U093E> /xe0/xa4/xbe DEVANAGARI VOWEL SIGN AA +@@ -2044,11 +2143,16 @@ CHARMAP + <U094B> /xe0/xa5/x8b DEVANAGARI VOWEL SIGN O + <U094C> /xe0/xa5/x8c DEVANAGARI VOWEL SIGN AU + <U094D> /xe0/xa5/x8d DEVANAGARI SIGN VIRAMA ++<U094E> /xe0/xa5/x8e DEVANAGARI VOWEL SIGN PRISHTHAMATRA E ++<U094F> /xe0/xa5/x8f DEVANAGARI VOWEL SIGN AW + <U0950> /xe0/xa5/x90 DEVANAGARI OM + <U0951> /xe0/xa5/x91 DEVANAGARI STRESS SIGN UDATTA + <U0952> /xe0/xa5/x92 DEVANAGARI STRESS SIGN ANUDATTA + <U0953> /xe0/xa5/x93 DEVANAGARI GRAVE ACCENT + <U0954> /xe0/xa5/x94 DEVANAGARI ACUTE ACCENT ++<U0955> /xe0/xa5/x95 DEVANAGARI VOWEL SIGN CANDRA LONG E ++<U0956> /xe0/xa5/x96 DEVANAGARI VOWEL SIGN UE ++<U0957> /xe0/xa5/x97 DEVANAGARI VOWEL SIGN UUE + <U0958> /xe0/xa5/x98 DEVANAGARI LETTER QA + <U0959> /xe0/xa5/x99 DEVANAGARI LETTER KHHA + <U095A> /xe0/xa5/x9a DEVANAGARI LETTER GHHA +@@ -2076,6 +2180,13 @@ CHARMAP + <U0970> /xe0/xa5/xb0 DEVANAGARI ABBREVIATION SIGN + <U0971> /xe0/xa5/xb1 DEVANAGARI SIGN HIGH SPACING DOT + <U0972> /xe0/xa5/xb2 DEVANAGARI LETTER CANDRA A ++<U0973> /xe0/xa5/xb3 DEVANAGARI LETTER OE ++<U0974> /xe0/xa5/xb4 DEVANAGARI LETTER OOE ++<U0975> /xe0/xa5/xb5 DEVANAGARI LETTER AW ++<U0976> /xe0/xa5/xb6 DEVANAGARI LETTER UE ++<U0977> /xe0/xa5/xb7 DEVANAGARI LETTER UUE ++<U0979> /xe0/xa5/xb9 DEVANAGARI LETTER ZHA ++<U097A> /xe0/xa5/xba DEVANAGARI LETTER HEAVY YA + <U097B> /xe0/xa5/xbb DEVANAGARI LETTER GGA + <U097C> /xe0/xa5/xbc DEVANAGARI LETTER JJA + <U097D> /xe0/xa5/xbd DEVANAGARI LETTER GLOTTAL STOP +@@ -2172,6 +2283,7 @@ CHARMAP + <U09F8> /xe0/xa7/xb8 BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR + <U09F9> /xe0/xa7/xb9 BENGALI CURRENCY DENOMINATOR SIXTEEN + <U09FA> /xe0/xa7/xba BENGALI ISSHAR ++<U09FB> /xe0/xa7/xbb BENGALI GANDA MARK + <U0A01> /xe0/xa8/x81 GURMUKHI SIGN ADAK BINDI + <U0A02> /xe0/xa8/x82 GURMUKHI SIGN BINDI + <U0A03> /xe0/xa8/x83 GURMUKHI SIGN VISARGA +@@ -2418,6 +2530,12 @@ CHARMAP + <U0B6F> /xe0/xad/xaf ORIYA DIGIT NINE + <U0B70> /xe0/xad/xb0 ORIYA ISSHAR + <U0B71> /xe0/xad/xb1 ORIYA LETTER WA ++<U0B72> /xe0/xad/xb2 ORIYA FRACTION ONE QUARTER ++<U0B73> /xe0/xad/xb3 ORIYA FRACTION ONE HALF ++<U0B74> /xe0/xad/xb4 ORIYA FRACTION THREE QUARTERS ++<U0B75> /xe0/xad/xb5 ORIYA FRACTION ONE SIXTEENTH ++<U0B76> /xe0/xad/xb6 ORIYA FRACTION ONE EIGHTH ++<U0B77> /xe0/xad/xb7 ORIYA FRACTION THREE SIXTEENTHS + <U0B82> /xe0/xae/x82 TAMIL SIGN ANUSVARA + <U0B83> /xe0/xae/x83 TAMIL SIGN VISARGA + <U0B85> /xe0/xae/x85 TAMIL LETTER A +@@ -2705,6 +2823,7 @@ CHARMAP + <U0D26> /xe0/xb4/xa6 MALAYALAM LETTER DA + <U0D27> /xe0/xb4/xa7 MALAYALAM LETTER DHA + <U0D28> /xe0/xb4/xa8 MALAYALAM LETTER NA ++<U0D29> /xe0/xb4/xa9 MALAYALAM LETTER NNNA + <U0D2A> /xe0/xb4/xaa MALAYALAM LETTER PA + <U0D2B> /xe0/xb4/xab MALAYALAM LETTER PHA + <U0D2C> /xe0/xb4/xac MALAYALAM LETTER BA +@@ -2721,6 +2840,7 @@ CHARMAP + <U0D37> /xe0/xb4/xb7 MALAYALAM LETTER SSA + <U0D38> /xe0/xb4/xb8 MALAYALAM LETTER SA + <U0D39> /xe0/xb4/xb9 MALAYALAM LETTER HA ++<U0D3A> /xe0/xb4/xba MALAYALAM LETTER TTTA + <U0D3D> /xe0/xb4/xbd MALAYALAM SIGN AVAGRAHA + <U0D3E> /xe0/xb4/xbe MALAYALAM VOWEL SIGN AA + <U0D3F> /xe0/xb4/xbf MALAYALAM VOWEL SIGN I +@@ -2736,6 +2856,7 @@ CHARMAP + <U0D4B> /xe0/xb5/x8b MALAYALAM VOWEL SIGN OO + <U0D4C> /xe0/xb5/x8c MALAYALAM VOWEL SIGN AU + <U0D4D> /xe0/xb5/x8d MALAYALAM SIGN VIRAMA ++<U0D4E> /xe0/xb5/x8e MALAYALAM LETTER DOT REPH + <U0D57> /xe0/xb5/x97 MALAYALAM AU LENGTH MARK + <U0D60> /xe0/xb5/xa0 MALAYALAM LETTER VOCALIC RR + <U0D61> /xe0/xb5/xa1 MALAYALAM LETTER VOCALIC LL +@@ -3131,6 +3252,10 @@ CHARMAP + <U0F89> /xe0/xbe/x89 TIBETAN SIGN MCHU CAN + <U0F8A> /xe0/xbe/x8a TIBETAN SIGN GRU CAN RGYINGS + <U0F8B> /xe0/xbe/x8b TIBETAN SIGN GRU MED RGYINGS ++<U0F8C> /xe0/xbe/x8c TIBETAN SIGN INVERTED MCHU CAN ++<U0F8D> /xe0/xbe/x8d TIBETAN SUBJOINED SIGN LCE TSA CAN ++<U0F8E> /xe0/xbe/x8e TIBETAN SUBJOINED SIGN MCHU CAN ++<U0F8F> /xe0/xbe/x8f TIBETAN SUBJOINED SIGN INVERTED MCHU CAN + <U0F90> /xe0/xbe/x90 TIBETAN SUBJOINED LETTER KA + <U0F91> /xe0/xbe/x91 TIBETAN SUBJOINED LETTER KHA + <U0F92> /xe0/xbe/x92 TIBETAN SUBJOINED LETTER GA +@@ -3197,6 +3322,12 @@ CHARMAP + <U0FD2> /xe0/xbf/x92 TIBETAN MARK NYIS TSHEG + <U0FD3> /xe0/xbf/x93 TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA + <U0FD4> /xe0/xbf/x94 TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA ++<U0FD5> /xe0/xbf/x95 RIGHT-FACING SVASTI SIGN ++<U0FD6> /xe0/xbf/x96 LEFT-FACING SVASTI SIGN ++<U0FD7> /xe0/xbf/x97 RIGHT-FACING SVASTI SIGN WITH DOTS ++<U0FD8> /xe0/xbf/x98 LEFT-FACING SVASTI SIGN WITH DOTS ++<U0FD9> /xe0/xbf/x99 TIBETAN MARK LEADING MCHAN RTAGS ++<U0FDA> /xe0/xbf/x9a TIBETAN MARK TRAILING MCHAN RTAGS + <U1000> /xe1/x80/x80 MYANMAR LETTER KA + <U1001> /xe1/x80/x81 MYANMAR LETTER KHA + <U1002> /xe1/x80/x82 MYANMAR LETTER GA +@@ -3351,6 +3482,10 @@ CHARMAP + <U1097> /xe1/x82/x97 MYANMAR SHAN DIGIT SEVEN + <U1098> /xe1/x82/x98 MYANMAR SHAN DIGIT EIGHT + <U1099> /xe1/x82/x99 MYANMAR SHAN DIGIT NINE ++<U109A> /xe1/x82/x9a MYANMAR SIGN KHAMTI TONE-1 ++<U109B> /xe1/x82/x9b MYANMAR SIGN KHAMTI TONE-3 ++<U109C> /xe1/x82/x9c MYANMAR VOWEL SIGN AITON A ++<U109D> /xe1/x82/x9d MYANMAR VOWEL SIGN AITON AI + <U109E> /xe1/x82/x9e MYANMAR SYMBOL SHAN ONE + <U109F> /xe1/x82/x9f MYANMAR SYMBOL SHAN EXCLAMATION + <U10A0> /xe1/x82/xa0 GEORGIAN CAPITAL LETTER AN +@@ -3526,6 +3661,11 @@ CHARMAP + <U1157> /xe1/x85/x97 HANGUL CHOSEONG KAPYEOUNPHIEUPH + <U1158> /xe1/x85/x98 HANGUL CHOSEONG SSANGHIEUH + <U1159> /xe1/x85/x99 HANGUL CHOSEONG YEORINHIEUH ++<U115A> /xe1/x85/x9a HANGUL CHOSEONG KIYEOK-TIKEUT ++<U115B> /xe1/x85/x9b HANGUL CHOSEONG NIEUN-SIOS ++<U115C> /xe1/x85/x9c HANGUL CHOSEONG NIEUN-CIEUC ++<U115D> /xe1/x85/x9d HANGUL CHOSEONG NIEUN-HIEUH ++<U115E> /xe1/x85/x9e HANGUL CHOSEONG TIKEUT-RIEUL + <U115F> /xe1/x85/x9f HANGUL CHOSEONG FILLER + <U1160> /xe1/x85/xa0 HANGUL JUNGSEONG FILLER + <U1161> /xe1/x85/xa1 HANGUL JUNGSEONG A +@@ -3594,6 +3734,11 @@ CHARMAP + <U11A0> /xe1/x86/xa0 HANGUL JUNGSEONG ARAEA-U + <U11A1> /xe1/x86/xa1 HANGUL JUNGSEONG ARAEA-I + <U11A2> /xe1/x86/xa2 HANGUL JUNGSEONG SSANGARAEA ++<U11A3> /xe1/x86/xa3 HANGUL JUNGSEONG A-EU ++<U11A4> /xe1/x86/xa4 HANGUL JUNGSEONG YA-U ++<U11A5> /xe1/x86/xa5 HANGUL JUNGSEONG YEO-YA ++<U11A6> /xe1/x86/xa6 HANGUL JUNGSEONG O-YA ++<U11A7> /xe1/x86/xa7 HANGUL JUNGSEONG O-YAE + <U11A8> /xe1/x86/xa8 HANGUL JONGSEONG KIYEOK + <U11A9> /xe1/x86/xa9 HANGUL JONGSEONG SSANGKIYEOK + <U11AA> /xe1/x86/xaa HANGUL JONGSEONG KIYEOK-SIOS +@@ -3676,6 +3821,12 @@ CHARMAP + <U11F7> /xe1/x87/xb7 HANGUL JONGSEONG HIEUH-MIEUM + <U11F8> /xe1/x87/xb8 HANGUL JONGSEONG HIEUH-PIEUP + <U11F9> /xe1/x87/xb9 HANGUL JONGSEONG YEORINHIEUH ++<U11FA> /xe1/x87/xba HANGUL JONGSEONG KIYEOK-NIEUN ++<U11FB> /xe1/x87/xbb HANGUL JONGSEONG KIYEOK-PIEUP ++<U11FC> /xe1/x87/xbc HANGUL JONGSEONG KIYEOK-CHIEUCH ++<U11FD> /xe1/x87/xbd HANGUL JONGSEONG KIYEOK-KHIEUKH ++<U11FE> /xe1/x87/xbe HANGUL JONGSEONG KIYEOK-HIEUH ++<U11FF> /xe1/x87/xbf HANGUL JONGSEONG SSANGNIEUN + <U1200> /xe1/x88/x80 ETHIOPIC SYLLABLE HA + <U1201> /xe1/x88/x81 ETHIOPIC SYLLABLE HU + <U1202> /xe1/x88/x82 ETHIOPIC SYLLABLE HI +@@ -4002,6 +4153,8 @@ CHARMAP + <U1358> /xe1/x8d/x98 ETHIOPIC SYLLABLE RYA + <U1359> /xe1/x8d/x99 ETHIOPIC SYLLABLE MYA + <U135A> /xe1/x8d/x9a ETHIOPIC SYLLABLE FYA ++<U135D> /xe1/x8d/x9d ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK ++<U135E> /xe1/x8d/x9e ETHIOPIC COMBINING VOWEL LENGTH MARK + <U135F> /xe1/x8d/x9f ETHIOPIC COMBINING GEMINATION MARK + <U1360> /xe1/x8d/xa0 ETHIOPIC SECTION MARK + <U1361> /xe1/x8d/xa1 ETHIOPIC WORDSPACE +@@ -4143,6 +4296,7 @@ CHARMAP + <U13F2> /xe1/x8f/xb2 CHEROKEE LETTER YO + <U13F3> /xe1/x8f/xb3 CHEROKEE LETTER YU + <U13F4> /xe1/x8f/xb4 CHEROKEE LETTER YV ++<U1400> /xe1/x90/x80 CANADIAN SYLLABICS HYPHEN + <U1401> /xe1/x90/x81 CANADIAN SYLLABICS E + <U1402> /xe1/x90/x82 CANADIAN SYLLABICS AAI + <U1403> /xe1/x90/x83 CANADIAN SYLLABICS I +@@ -4773,6 +4927,15 @@ CHARMAP + <U1674> /xe1/x99/xb4 CANADIAN SYLLABICS NNGOO + <U1675> /xe1/x99/xb5 CANADIAN SYLLABICS NNGA + <U1676> /xe1/x99/xb6 CANADIAN SYLLABICS NNGAA ++<U1677> /xe1/x99/xb7 CANADIAN SYLLABICS WOODS-CREE THWEE ++<U1678> /xe1/x99/xb8 CANADIAN SYLLABICS WOODS-CREE THWI ++<U1679> /xe1/x99/xb9 CANADIAN SYLLABICS WOODS-CREE THWII ++<U167A> /xe1/x99/xba CANADIAN SYLLABICS WOODS-CREE THWO ++<U167B> /xe1/x99/xbb CANADIAN SYLLABICS WOODS-CREE THWOO ++<U167C> /xe1/x99/xbc CANADIAN SYLLABICS WOODS-CREE THWA ++<U167D> /xe1/x99/xbd CANADIAN SYLLABICS WOODS-CREE THWAA ++<U167E> /xe1/x99/xbe CANADIAN SYLLABICS WOODS-CREE FINAL TH ++<U167F> /xe1/x99/xbf CANADIAN SYLLABICS BLACKFOOT W + <U1680> /xe1/x9a/x80 OGHAM SPACE MARK + <U1681> /xe1/x9a/x81 OGHAM LETTER BEITH + <U1682> /xe1/x9a/x82 OGHAM LETTER LUIS +@@ -5234,6 +5397,76 @@ CHARMAP + <U18A8> /xe1/xa2/xa8 MONGOLIAN LETTER MANCHU ALI GALI BHA + <U18A9> /xe1/xa2/xa9 MONGOLIAN LETTER ALI GALI DAGALGA + <U18AA> /xe1/xa2/xaa MONGOLIAN LETTER MANCHU ALI GALI LHA ++<U18B0> /xe1/xa2/xb0 CANADIAN SYLLABICS OY ++<U18B1> /xe1/xa2/xb1 CANADIAN SYLLABICS AY ++<U18B2> /xe1/xa2/xb2 CANADIAN SYLLABICS AAY ++<U18B3> /xe1/xa2/xb3 CANADIAN SYLLABICS WAY ++<U18B4> /xe1/xa2/xb4 CANADIAN SYLLABICS POY ++<U18B5> /xe1/xa2/xb5 CANADIAN SYLLABICS PAY ++<U18B6> /xe1/xa2/xb6 CANADIAN SYLLABICS PWOY ++<U18B7> /xe1/xa2/xb7 CANADIAN SYLLABICS TAY ++<U18B8> /xe1/xa2/xb8 CANADIAN SYLLABICS KAY ++<U18B9> /xe1/xa2/xb9 CANADIAN SYLLABICS KWAY ++<U18BA> /xe1/xa2/xba CANADIAN SYLLABICS MAY ++<U18BB> /xe1/xa2/xbb CANADIAN SYLLABICS NOY ++<U18BC> /xe1/xa2/xbc CANADIAN SYLLABICS NAY ++<U18BD> /xe1/xa2/xbd CANADIAN SYLLABICS LAY ++<U18BE> /xe1/xa2/xbe CANADIAN SYLLABICS SOY ++<U18BF> /xe1/xa2/xbf CANADIAN SYLLABICS SAY ++<U18C0> /xe1/xa3/x80 CANADIAN SYLLABICS SHOY ++<U18C1> /xe1/xa3/x81 CANADIAN SYLLABICS SHAY ++<U18C2> /xe1/xa3/x82 CANADIAN SYLLABICS SHWOY ++<U18C3> /xe1/xa3/x83 CANADIAN SYLLABICS YOY ++<U18C4> /xe1/xa3/x84 CANADIAN SYLLABICS YAY ++<U18C5> /xe1/xa3/x85 CANADIAN SYLLABICS RAY ++<U18C6> /xe1/xa3/x86 CANADIAN SYLLABICS NWI ++<U18C7> /xe1/xa3/x87 CANADIAN SYLLABICS OJIBWAY NWI ++<U18C8> /xe1/xa3/x88 CANADIAN SYLLABICS NWII ++<U18C9> /xe1/xa3/x89 CANADIAN SYLLABICS OJIBWAY NWII ++<U18CA> /xe1/xa3/x8a CANADIAN SYLLABICS NWO ++<U18CB> /xe1/xa3/x8b CANADIAN SYLLABICS OJIBWAY NWO ++<U18CC> /xe1/xa3/x8c CANADIAN SYLLABICS NWOO ++<U18CD> /xe1/xa3/x8d CANADIAN SYLLABICS OJIBWAY NWOO ++<U18CE> /xe1/xa3/x8e CANADIAN SYLLABICS RWEE ++<U18CF> /xe1/xa3/x8f CANADIAN SYLLABICS RWI ++<U18D0> /xe1/xa3/x90 CANADIAN SYLLABICS RWII ++<U18D1> /xe1/xa3/x91 CANADIAN SYLLABICS RWO ++<U18D2> /xe1/xa3/x92 CANADIAN SYLLABICS RWOO ++<U18D3> /xe1/xa3/x93 CANADIAN SYLLABICS RWA ++<U18D4> /xe1/xa3/x94 CANADIAN SYLLABICS OJIBWAY P ++<U18D5> /xe1/xa3/x95 CANADIAN SYLLABICS OJIBWAY T ++<U18D6> /xe1/xa3/x96 CANADIAN SYLLABICS OJIBWAY K ++<U18D7> /xe1/xa3/x97 CANADIAN SYLLABICS OJIBWAY C ++<U18D8> /xe1/xa3/x98 CANADIAN SYLLABICS OJIBWAY M ++<U18D9> /xe1/xa3/x99 CANADIAN SYLLABICS OJIBWAY N ++<U18DA> /xe1/xa3/x9a CANADIAN SYLLABICS OJIBWAY S ++<U18DB> /xe1/xa3/x9b CANADIAN SYLLABICS OJIBWAY SH ++<U18DC> /xe1/xa3/x9c CANADIAN SYLLABICS EASTERN W ++<U18DD> /xe1/xa3/x9d CANADIAN SYLLABICS WESTERN W ++<U18DE> /xe1/xa3/x9e CANADIAN SYLLABICS FINAL SMALL RING ++<U18DF> /xe1/xa3/x9f CANADIAN SYLLABICS FINAL RAISED DOT ++<U18E0> /xe1/xa3/xa0 CANADIAN SYLLABICS R-CREE RWE ++<U18E1> /xe1/xa3/xa1 CANADIAN SYLLABICS WEST-CREE LOO ++<U18E2> /xe1/xa3/xa2 CANADIAN SYLLABICS WEST-CREE LAA ++<U18E3> /xe1/xa3/xa3 CANADIAN SYLLABICS THWE ++<U18E4> /xe1/xa3/xa4 CANADIAN SYLLABICS THWA ++<U18E5> /xe1/xa3/xa5 CANADIAN SYLLABICS TTHWE ++<U18E6> /xe1/xa3/xa6 CANADIAN SYLLABICS TTHOO ++<U18E7> /xe1/xa3/xa7 CANADIAN SYLLABICS TTHAA ++<U18E8> /xe1/xa3/xa8 CANADIAN SYLLABICS TLHWE ++<U18E9> /xe1/xa3/xa9 CANADIAN SYLLABICS TLHOO ++<U18EA> /xe1/xa3/xaa CANADIAN SYLLABICS SAYISI SHWE ++<U18EB> /xe1/xa3/xab CANADIAN SYLLABICS SAYISI SHOO ++<U18EC> /xe1/xa3/xac CANADIAN SYLLABICS SAYISI HOO ++<U18ED> /xe1/xa3/xad CANADIAN SYLLABICS CARRIER GWU ++<U18EE> /xe1/xa3/xae CANADIAN SYLLABICS CARRIER DENE GEE ++<U18EF> /xe1/xa3/xaf CANADIAN SYLLABICS CARRIER GAA ++<U18F0> /xe1/xa3/xb0 CANADIAN SYLLABICS CARRIER GWA ++<U18F1> /xe1/xa3/xb1 CANADIAN SYLLABICS SAYISI JUU ++<U18F2> /xe1/xa3/xb2 CANADIAN SYLLABICS CARRIER JWA ++<U18F3> /xe1/xa3/xb3 CANADIAN SYLLABICS BEAVER DENE L ++<U18F4> /xe1/xa3/xb4 CANADIAN SYLLABICS BEAVER DENE R ++<U18F5> /xe1/xa3/xb5 CANADIAN SYLLABICS CARRIER DENTAL S + <U1900> /xe1/xa4/x80 LIMBU VOWEL-CARRIER LETTER + <U1901> /xe1/xa4/x81 LIMBU LETTER KA + <U1902> /xe1/xa4/x82 LIMBU LETTER KHA +@@ -5377,6 +5610,8 @@ CHARMAP + <U19A7> /xe1/xa6/xa7 NEW TAI LUE LETTER HIGH XVA + <U19A8> /xe1/xa6/xa8 NEW TAI LUE LETTER LOW KVA + <U19A9> /xe1/xa6/xa9 NEW TAI LUE LETTER LOW XVA ++<U19AA> /xe1/xa6/xaa NEW TAI LUE LETTER HIGH SUA ++<U19AB> /xe1/xa6/xab NEW TAI LUE LETTER LOW SUA + <U19B0> /xe1/xa6/xb0 NEW TAI LUE VOWEL SIGN VOWEL SHORTENER + <U19B1> /xe1/xa6/xb1 NEW TAI LUE VOWEL SIGN AA + <U19B2> /xe1/xa6/xb2 NEW TAI LUE VOWEL SIGN II +@@ -5413,6 +5648,7 @@ CHARMAP + <U19D7> /xe1/xa7/x97 NEW TAI LUE DIGIT SEVEN + <U19D8> /xe1/xa7/x98 NEW TAI LUE DIGIT EIGHT + <U19D9> /xe1/xa7/x99 NEW TAI LUE DIGIT NINE ++<U19DA> /xe1/xa7/x9a NEW TAI LUE THAM DIGIT ONE + <U19DE> /xe1/xa7/x9e NEW TAI LUE SIGN LAE + <U19DF> /xe1/xa7/x9f NEW TAI LUE SIGN LAEV + <U19E0> /xe1/xa7/xa0 KHMER SYMBOL PATHAMASAT +@@ -5477,6 +5713,133 @@ CHARMAP + <U1A1B> /xe1/xa8/x9b BUGINESE VOWEL SIGN AE + <U1A1E> /xe1/xa8/x9e BUGINESE PALLAWA + <U1A1F> /xe1/xa8/x9f BUGINESE END OF SECTION ++<U1A20> /xe1/xa8/xa0 TAI THAM LETTER HIGH KA ++<U1A21> /xe1/xa8/xa1 TAI THAM LETTER HIGH KHA ++<U1A22> /xe1/xa8/xa2 TAI THAM LETTER HIGH KXA ++<U1A23> /xe1/xa8/xa3 TAI THAM LETTER LOW KA ++<U1A24> /xe1/xa8/xa4 TAI THAM LETTER LOW KXA ++<U1A25> /xe1/xa8/xa5 TAI THAM LETTER LOW KHA ++<U1A26> /xe1/xa8/xa6 TAI THAM LETTER NGA ++<U1A27> /xe1/xa8/xa7 TAI THAM LETTER HIGH CA ++<U1A28> /xe1/xa8/xa8 TAI THAM LETTER HIGH CHA ++<U1A29> /xe1/xa8/xa9 TAI THAM LETTER LOW CA ++<U1A2A> /xe1/xa8/xaa TAI THAM LETTER LOW SA ++<U1A2B> /xe1/xa8/xab TAI THAM LETTER LOW CHA ++<U1A2C> /xe1/xa8/xac TAI THAM LETTER NYA ++<U1A2D> /xe1/xa8/xad TAI THAM LETTER RATA ++<U1A2E> /xe1/xa8/xae TAI THAM LETTER HIGH RATHA ++<U1A2F> /xe1/xa8/xaf TAI THAM LETTER DA ++<U1A30> /xe1/xa8/xb0 TAI THAM LETTER LOW RATHA ++<U1A31> /xe1/xa8/xb1 TAI THAM LETTER RANA ++<U1A32> /xe1/xa8/xb2 TAI THAM LETTER HIGH TA ++<U1A33> /xe1/xa8/xb3 TAI THAM LETTER HIGH THA ++<U1A34> /xe1/xa8/xb4 TAI THAM LETTER LOW TA ++<U1A35> /xe1/xa8/xb5 TAI THAM LETTER LOW THA ++<U1A36> /xe1/xa8/xb6 TAI THAM LETTER NA ++<U1A37> /xe1/xa8/xb7 TAI THAM LETTER BA ++<U1A38> /xe1/xa8/xb8 TAI THAM LETTER HIGH PA ++<U1A39> /xe1/xa8/xb9 TAI THAM LETTER HIGH PHA ++<U1A3A> /xe1/xa8/xba TAI THAM LETTER HIGH FA ++<U1A3B> /xe1/xa8/xbb TAI THAM LETTER LOW PA ++<U1A3C> /xe1/xa8/xbc TAI THAM LETTER LOW FA ++<U1A3D> /xe1/xa8/xbd TAI THAM LETTER LOW PHA ++<U1A3E> /xe1/xa8/xbe TAI THAM LETTER MA ++<U1A3F> /xe1/xa8/xbf TAI THAM LETTER LOW YA ++<U1A40> /xe1/xa9/x80 TAI THAM LETTER HIGH YA ++<U1A41> /xe1/xa9/x81 TAI THAM LETTER RA ++<U1A42> /xe1/xa9/x82 TAI THAM LETTER RUE ++<U1A43> /xe1/xa9/x83 TAI THAM LETTER LA ++<U1A44> /xe1/xa9/x84 TAI THAM LETTER LUE ++<U1A45> /xe1/xa9/x85 TAI THAM LETTER WA ++<U1A46> /xe1/xa9/x86 TAI THAM LETTER HIGH SHA ++<U1A47> /xe1/xa9/x87 TAI THAM LETTER HIGH SSA ++<U1A48> /xe1/xa9/x88 TAI THAM LETTER HIGH SA ++<U1A49> /xe1/xa9/x89 TAI THAM LETTER HIGH HA ++<U1A4A> /xe1/xa9/x8a TAI THAM LETTER LLA ++<U1A4B> /xe1/xa9/x8b TAI THAM LETTER A ++<U1A4C> /xe1/xa9/x8c TAI THAM LETTER LOW HA ++<U1A4D> /xe1/xa9/x8d TAI THAM LETTER I ++<U1A4E> /xe1/xa9/x8e TAI THAM LETTER II ++<U1A4F> /xe1/xa9/x8f TAI THAM LETTER U ++<U1A50> /xe1/xa9/x90 TAI THAM LETTER UU ++<U1A51> /xe1/xa9/x91 TAI THAM LETTER EE ++<U1A52> /xe1/xa9/x92 TAI THAM LETTER OO ++<U1A53> /xe1/xa9/x93 TAI THAM LETTER LAE ++<U1A54> /xe1/xa9/x94 TAI THAM LETTER GREAT SA ++<U1A55> /xe1/xa9/x95 TAI THAM CONSONANT SIGN MEDIAL RA ++<U1A56> /xe1/xa9/x96 TAI THAM CONSONANT SIGN MEDIAL LA ++<U1A57> /xe1/xa9/x97 TAI THAM CONSONANT SIGN LA TANG LAI ++<U1A58> /xe1/xa9/x98 TAI THAM SIGN MAI KANG LAI ++<U1A59> /xe1/xa9/x99 TAI THAM CONSONANT SIGN FINAL NGA ++<U1A5A> /xe1/xa9/x9a TAI THAM CONSONANT SIGN LOW PA ++<U1A5B> /xe1/xa9/x9b TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA ++<U1A5C> /xe1/xa9/x9c TAI THAM CONSONANT SIGN MA ++<U1A5D> /xe1/xa9/x9d TAI THAM CONSONANT SIGN BA ++<U1A5E> /xe1/xa9/x9e TAI THAM CONSONANT SIGN SA ++<U1A60> /xe1/xa9/xa0 TAI THAM SIGN SAKOT ++<U1A61> /xe1/xa9/xa1 TAI THAM VOWEL SIGN A ++<U1A62> /xe1/xa9/xa2 TAI THAM VOWEL SIGN MAI SAT ++<U1A63> /xe1/xa9/xa3 TAI THAM VOWEL SIGN AA ++<U1A64> /xe1/xa9/xa4 TAI THAM VOWEL SIGN TALL AA ++<U1A65> /xe1/xa9/xa5 TAI THAM VOWEL SIGN I ++<U1A66> /xe1/xa9/xa6 TAI THAM VOWEL SIGN II ++<U1A67> /xe1/xa9/xa7 TAI THAM VOWEL SIGN UE ++<U1A68> /xe1/xa9/xa8 TAI THAM VOWEL SIGN UUE ++<U1A69> /xe1/xa9/xa9 TAI THAM VOWEL SIGN U ++<U1A6A> /xe1/xa9/xaa TAI THAM VOWEL SIGN UU ++<U1A6B> /xe1/xa9/xab TAI THAM VOWEL SIGN O ++<U1A6C> /xe1/xa9/xac TAI THAM VOWEL SIGN OA BELOW ++<U1A6D> /xe1/xa9/xad TAI THAM VOWEL SIGN OY ++<U1A6E> /xe1/xa9/xae TAI THAM VOWEL SIGN E ++<U1A6F> /xe1/xa9/xaf TAI THAM VOWEL SIGN AE ++<U1A70> /xe1/xa9/xb0 TAI THAM VOWEL SIGN OO ++<U1A71> /xe1/xa9/xb1 TAI THAM VOWEL SIGN AI ++<U1A72> /xe1/xa9/xb2 TAI THAM VOWEL SIGN THAM AI ++<U1A73> /xe1/xa9/xb3 TAI THAM VOWEL SIGN OA ABOVE ++<U1A74> /xe1/xa9/xb4 TAI THAM SIGN MAI KANG ++<U1A75> /xe1/xa9/xb5 TAI THAM SIGN TONE-1 ++<U1A76> /xe1/xa9/xb6 TAI THAM SIGN TONE-2 ++<U1A77> /xe1/xa9/xb7 TAI THAM SIGN KHUEN TONE-3 ++<U1A78> /xe1/xa9/xb8 TAI THAM SIGN KHUEN TONE-4 ++<U1A79> /xe1/xa9/xb9 TAI THAM SIGN KHUEN TONE-5 ++<U1A7A> /xe1/xa9/xba TAI THAM SIGN RA HAAM ++<U1A7B> /xe1/xa9/xbb TAI THAM SIGN MAI SAM ++<U1A7C> /xe1/xa9/xbc TAI THAM SIGN KHUEN-LUE KARAN ++<U1A7F> /xe1/xa9/xbf TAI THAM COMBINING CRYPTOGRAMMIC DOT ++<U1A80> /xe1/xaa/x80 TAI THAM HORA DIGIT ZERO ++<U1A81> /xe1/xaa/x81 TAI THAM HORA DIGIT ONE ++<U1A82> /xe1/xaa/x82 TAI THAM HORA DIGIT TWO ++<U1A83> /xe1/xaa/x83 TAI THAM HORA DIGIT THREE ++<U1A84> /xe1/xaa/x84 TAI THAM HORA DIGIT FOUR ++<U1A85> /xe1/xaa/x85 TAI THAM HORA DIGIT FIVE ++<U1A86> /xe1/xaa/x86 TAI THAM HORA DIGIT SIX ++<U1A87> /xe1/xaa/x87 TAI THAM HORA DIGIT SEVEN ++<U1A88> /xe1/xaa/x88 TAI THAM HORA DIGIT EIGHT ++<U1A89> /xe1/xaa/x89 TAI THAM HORA DIGIT NINE ++<U1A90> /xe1/xaa/x90 TAI THAM THAM DIGIT ZERO ++<U1A91> /xe1/xaa/x91 TAI THAM THAM DIGIT ONE ++<U1A92> /xe1/xaa/x92 TAI THAM THAM DIGIT TWO ++<U1A93> /xe1/xaa/x93 TAI THAM THAM DIGIT THREE ++<U1A94> /xe1/xaa/x94 TAI THAM THAM DIGIT FOUR ++<U1A95> /xe1/xaa/x95 TAI THAM THAM DIGIT FIVE ++<U1A96> /xe1/xaa/x96 TAI THAM THAM DIGIT SIX ++<U1A97> /xe1/xaa/x97 TAI THAM THAM DIGIT SEVEN ++<U1A98> /xe1/xaa/x98 TAI THAM THAM DIGIT EIGHT ++<U1A99> /xe1/xaa/x99 TAI THAM THAM DIGIT NINE ++<U1AA0> /xe1/xaa/xa0 TAI THAM SIGN WIANG ++<U1AA1> /xe1/xaa/xa1 TAI THAM SIGN WIANGWAAK ++<U1AA2> /xe1/xaa/xa2 TAI THAM SIGN SAWAN ++<U1AA3> /xe1/xaa/xa3 TAI THAM SIGN KEOW ++<U1AA4> /xe1/xaa/xa4 TAI THAM SIGN HOY ++<U1AA5> /xe1/xaa/xa5 TAI THAM SIGN DOKMAI ++<U1AA6> /xe1/xaa/xa6 TAI THAM SIGN REVERSED ROTATED RANA ++<U1AA7> /xe1/xaa/xa7 TAI THAM SIGN MAI YAMOK ++<U1AA8> /xe1/xaa/xa8 TAI THAM SIGN KAAN ++<U1AA9> /xe1/xaa/xa9 TAI THAM SIGN KAANKUU ++<U1AAA> /xe1/xaa/xaa TAI THAM SIGN SATKAAN ++<U1AAB> /xe1/xaa/xab TAI THAM SIGN SATKAANKUU ++<U1AAC> /xe1/xaa/xac TAI THAM SIGN HANG ++<U1AAD> /xe1/xaa/xad TAI THAM SIGN CAANG + <U1B00> /xe1/xac/x80 BALINESE SIGN ULU RICEM + <U1B01> /xe1/xac/x81 BALINESE SIGN ULU CANDRA + <U1B02> /xe1/xac/x82 BALINESE SIGN CECEK +@@ -5653,6 +6016,62 @@ CHARMAP + <U1BB7> /xe1/xae/xb7 SUNDANESE DIGIT SEVEN + <U1BB8> /xe1/xae/xb8 SUNDANESE DIGIT EIGHT + <U1BB9> /xe1/xae/xb9 SUNDANESE DIGIT NINE ++<U1BC0> /xe1/xaf/x80 BATAK LETTER A ++<U1BC1> /xe1/xaf/x81 BATAK LETTER SIMALUNGUN A ++<U1BC2> /xe1/xaf/x82 BATAK LETTER HA ++<U1BC3> /xe1/xaf/x83 BATAK LETTER SIMALUNGUN HA ++<U1BC4> /xe1/xaf/x84 BATAK LETTER MANDAILING HA ++<U1BC5> /xe1/xaf/x85 BATAK LETTER BA ++<U1BC6> /xe1/xaf/x86 BATAK LETTER KARO BA ++<U1BC7> /xe1/xaf/x87 BATAK LETTER PA ++<U1BC8> /xe1/xaf/x88 BATAK LETTER SIMALUNGUN PA ++<U1BC9> /xe1/xaf/x89 BATAK LETTER NA ++<U1BCA> /xe1/xaf/x8a BATAK LETTER MANDAILING NA ++<U1BCB> /xe1/xaf/x8b BATAK LETTER WA ++<U1BCC> /xe1/xaf/x8c BATAK LETTER SIMALUNGUN WA ++<U1BCD> /xe1/xaf/x8d BATAK LETTER PAKPAK WA ++<U1BCE> /xe1/xaf/x8e BATAK LETTER GA ++<U1BCF> /xe1/xaf/x8f BATAK LETTER SIMALUNGUN GA ++<U1BD0> /xe1/xaf/x90 BATAK LETTER JA ++<U1BD1> /xe1/xaf/x91 BATAK LETTER DA ++<U1BD2> /xe1/xaf/x92 BATAK LETTER RA ++<U1BD3> /xe1/xaf/x93 BATAK LETTER SIMALUNGUN RA ++<U1BD4> /xe1/xaf/x94 BATAK LETTER MA ++<U1BD5> /xe1/xaf/x95 BATAK LETTER SIMALUNGUN MA ++<U1BD6> /xe1/xaf/x96 BATAK LETTER SOUTHERN TA ++<U1BD7> /xe1/xaf/x97 BATAK LETTER NORTHERN TA ++<U1BD8> /xe1/xaf/x98 BATAK LETTER SA ++<U1BD9> /xe1/xaf/x99 BATAK LETTER SIMALUNGUN SA ++<U1BDA> /xe1/xaf/x9a BATAK LETTER MANDAILING SA ++<U1BDB> /xe1/xaf/x9b BATAK LETTER YA ++<U1BDC> /xe1/xaf/x9c BATAK LETTER SIMALUNGUN YA ++<U1BDD> /xe1/xaf/x9d BATAK LETTER NGA ++<U1BDE> /xe1/xaf/x9e BATAK LETTER LA ++<U1BDF> /xe1/xaf/x9f BATAK LETTER SIMALUNGUN LA ++<U1BE0> /xe1/xaf/xa0 BATAK LETTER NYA ++<U1BE1> /xe1/xaf/xa1 BATAK LETTER CA ++<U1BE2> /xe1/xaf/xa2 BATAK LETTER NDA ++<U1BE3> /xe1/xaf/xa3 BATAK LETTER MBA ++<U1BE4> /xe1/xaf/xa4 BATAK LETTER I ++<U1BE5> /xe1/xaf/xa5 BATAK LETTER U ++<U1BE6> /xe1/xaf/xa6 BATAK SIGN TOMPI ++<U1BE7> /xe1/xaf/xa7 BATAK VOWEL SIGN E ++<U1BE8> /xe1/xaf/xa8 BATAK VOWEL SIGN PAKPAK E ++<U1BE9> /xe1/xaf/xa9 BATAK VOWEL SIGN EE ++<U1BEA> /xe1/xaf/xaa BATAK VOWEL SIGN I ++<U1BEB> /xe1/xaf/xab BATAK VOWEL SIGN KARO I ++<U1BEC> /xe1/xaf/xac BATAK VOWEL SIGN O ++<U1BED> /xe1/xaf/xad BATAK VOWEL SIGN KARO O ++<U1BEE> /xe1/xaf/xae BATAK VOWEL SIGN U ++<U1BEF> /xe1/xaf/xaf BATAK VOWEL SIGN U FOR SIMALUNGUN SA ++<U1BF0> /xe1/xaf/xb0 BATAK CONSONANT SIGN NG ++<U1BF1> /xe1/xaf/xb1 BATAK CONSONANT SIGN H ++<U1BF2> /xe1/xaf/xb2 BATAK PANGOLAT ++<U1BF3> /xe1/xaf/xb3 BATAK PANONGONAN ++<U1BFC> /xe1/xaf/xbc BATAK SYMBOL BINDU NA METEK ++<U1BFD> /xe1/xaf/xbd BATAK SYMBOL BINDU PINARBORAS ++<U1BFE> /xe1/xaf/xbe BATAK SYMBOL BINDU JUDUL ++<U1BFF> /xe1/xaf/xbf BATAK SYMBOL BINDU PANGOLAT + <U1C00> /xe1/xb0/x80 LEPCHA LETTER KA + <U1C01> /xe1/xb0/x81 LEPCHA LETTER KLA + <U1C02> /xe1/xb0/x82 LEPCHA LETTER KHA +@@ -5775,6 +6194,41 @@ CHARMAP + <U1C7D> /xe1/xb1/xbd OL CHIKI AHAD + <U1C7E> /xe1/xb1/xbe OL CHIKI PUNCTUATION MUCAAD + <U1C7F> /xe1/xb1/xbf OL CHIKI PUNCTUATION DOUBLE MUCAAD ++<U1CD0> /xe1/xb3/x90 VEDIC TONE KARSHANA ++<U1CD1> /xe1/xb3/x91 VEDIC TONE SHARA ++<U1CD2> /xe1/xb3/x92 VEDIC TONE PRENKHA ++<U1CD3> /xe1/xb3/x93 VEDIC SIGN NIHSHVASA ++<U1CD4> /xe1/xb3/x94 VEDIC SIGN YAJURVEDIC MIDLINE SVARITA ++<U1CD5> /xe1/xb3/x95 VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA ++<U1CD6> /xe1/xb3/x96 VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA ++<U1CD7> /xe1/xb3/x97 VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA ++<U1CD8> /xe1/xb3/x98 VEDIC TONE CANDRA BELOW ++<U1CD9> /xe1/xb3/x99 VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER ++<U1CDA> /xe1/xb3/x9a VEDIC TONE DOUBLE SVARITA ++<U1CDB> /xe1/xb3/x9b VEDIC TONE TRIPLE SVARITA ++<U1CDC> /xe1/xb3/x9c VEDIC TONE KATHAKA ANUDATTA ++<U1CDD> /xe1/xb3/x9d VEDIC TONE DOT BELOW ++<U1CDE> /xe1/xb3/x9e VEDIC TONE TWO DOTS BELOW ++<U1CDF> /xe1/xb3/x9f VEDIC TONE THREE DOTS BELOW ++<U1CE0> /xe1/xb3/xa0 VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA ++<U1CE1> /xe1/xb3/xa1 VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA ++<U1CE2> /xe1/xb3/xa2 VEDIC SIGN VISARGA SVARITA ++<U1CE3> /xe1/xb3/xa3 VEDIC SIGN VISARGA UDATTA ++<U1CE4> /xe1/xb3/xa4 VEDIC SIGN REVERSED VISARGA UDATTA ++<U1CE5> /xe1/xb3/xa5 VEDIC SIGN VISARGA ANUDATTA ++<U1CE6> /xe1/xb3/xa6 VEDIC SIGN REVERSED VISARGA ANUDATTA ++<U1CE7> /xe1/xb3/xa7 VEDIC SIGN VISARGA UDATTA WITH TAIL ++<U1CE8> /xe1/xb3/xa8 VEDIC SIGN VISARGA ANUDATTA WITH TAIL ++<U1CE9> /xe1/xb3/xa9 VEDIC SIGN ANUSVARA ANTARGOMUKHA ++<U1CEA> /xe1/xb3/xaa VEDIC SIGN ANUSVARA BAHIRGOMUKHA ++<U1CEB> /xe1/xb3/xab VEDIC SIGN ANUSVARA VAMAGOMUKHA ++<U1CEC> /xe1/xb3/xac VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL ++<U1CED> /xe1/xb3/xad VEDIC SIGN TIRYAK ++<U1CEE> /xe1/xb3/xae VEDIC SIGN HEXIFORM LONG ANUSVARA ++<U1CEF> /xe1/xb3/xaf VEDIC SIGN LONG ANUSVARA ++<U1CF0> /xe1/xb3/xb0 VEDIC SIGN RTHANG LONG ANUSVARA ++<U1CF1> /xe1/xb3/xb1 VEDIC SIGN ANUSVARA UBHAYATO MUKHA ++<U1CF2> /xe1/xb3/xb2 VEDIC SIGN ARDHAVISARGA + <U1D00> /xe1/xb4/x80 LATIN LETTER SMALL CAPITAL A + <U1D01> /xe1/xb4/x81 LATIN LETTER SMALL CAPITAL AE + <U1D02> /xe1/xb4/x82 LATIN SMALL LETTER TURNED AE +@@ -6006,6 +6460,8 @@ CHARMAP + <U1DE4> /xe1/xb7/xa4 COMBINING LATIN SMALL LETTER S + <U1DE5> /xe1/xb7/xa5 COMBINING LATIN SMALL LETTER LONG S + <U1DE6> /xe1/xb7/xa6 COMBINING LATIN SMALL LETTER Z ++<U1DFC> /xe1/xb7/xbc COMBINING DOUBLE INVERTED BREVE BELOW ++<U1DFD> /xe1/xb7/xbd COMBINING ALMOST EQUAL TO BELOW + <U1DFE> /xe1/xb7/xbe COMBINING LEFT ARROWHEAD ABOVE + <U1DFF> /xe1/xb7/xbf COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW + <U1E00> /xe1/xb8/x80 LATIN CAPITAL LETTER A WITH RING BELOW +@@ -6638,6 +7094,14 @@ CHARMAP + <U2092> /xe2/x82/x92 LATIN SUBSCRIPT SMALL LETTER O + <U2093> /xe2/x82/x93 LATIN SUBSCRIPT SMALL LETTER X + <U2094> /xe2/x82/x94 LATIN SUBSCRIPT SMALL LETTER SCHWA ++<U2095> /xe2/x82/x95 LATIN SUBSCRIPT SMALL LETTER H ++<U2096> /xe2/x82/x96 LATIN SUBSCRIPT SMALL LETTER K ++<U2097> /xe2/x82/x97 LATIN SUBSCRIPT SMALL LETTER L ++<U2098> /xe2/x82/x98 LATIN SUBSCRIPT SMALL LETTER M ++<U2099> /xe2/x82/x99 LATIN SUBSCRIPT SMALL LETTER N ++<U209A> /xe2/x82/x9a LATIN SUBSCRIPT SMALL LETTER P ++<U209B> /xe2/x82/x9b LATIN SUBSCRIPT SMALL LETTER S ++<U209C> /xe2/x82/x9c LATIN SUBSCRIPT SMALL LETTER T + <U20A0> /xe2/x82/xa0 EURO-CURRENCY SIGN + <U20A1> /xe2/x82/xa1 COLON SIGN + <U20A2> /xe2/x82/xa2 CRUZEIRO SIGN +@@ -6660,6 +7124,10 @@ CHARMAP + <U20B3> /xe2/x82/xb3 AUSTRAL SIGN + <U20B4> /xe2/x82/xb4 HRYVNIA SIGN + <U20B5> /xe2/x82/xb5 CEDI SIGN ++<U20B6> /xe2/x82/xb6 LIVRE TOURNOIS SIGN ++<U20B7> /xe2/x82/xb7 SPESMILO SIGN ++<U20B8> /xe2/x82/xb8 TENGE SIGN ++<U20B9> /xe2/x82/xb9 INDIAN RUPEE SIGN + <U20D0> /xe2/x83/x90 COMBINING LEFT HARPOON ABOVE + <U20D1> /xe2/x83/x91 COMBINING RIGHT HARPOON ABOVE + <U20D2> /xe2/x83/x92 COMBINING LONG VERTICAL LINE OVERLAY +@@ -6773,6 +7241,9 @@ CHARMAP + <U214D> /xe2/x85/x8d AKTIESELSKAB + <U214E> /xe2/x85/x8e TURNED SMALL F + <U214F> /xe2/x85/x8f SYMBOL FOR SAMARITAN SOURCE ++<U2150> /xe2/x85/x90 VULGAR FRACTION ONE SEVENTH ++<U2151> /xe2/x85/x91 VULGAR FRACTION ONE NINTH ++<U2152> /xe2/x85/x92 VULGAR FRACTION ONE TENTH + <U2153> /xe2/x85/x93 VULGAR FRACTION ONE THIRD + <U2154> /xe2/x85/x94 VULGAR FRACTION TWO THIRDS + <U2155> /xe2/x85/x95 VULGAR FRACTION ONE FIFTH +@@ -6827,6 +7298,7 @@ CHARMAP + <U2186> /xe2/x86/x86 ROMAN NUMERAL FIFTY EARLY FORM + <U2187> /xe2/x86/x87 ROMAN NUMERAL FIFTY THOUSAND + <U2188> /xe2/x86/x88 ROMAN NUMERAL ONE HUNDRED THOUSAND ++<U2189> /xe2/x86/x89 VULGAR FRACTION ZERO THIRDS + <U2190> /xe2/x86/x90 LEFTWARDS ARROW + <U2191> /xe2/x86/x91 UPWARDS ARROW + <U2192> /xe2/x86/x92 RIGHTWARDS ARROW +@@ -7427,6 +7899,18 @@ CHARMAP + <U23E5> /xe2/x8f/xa5 FLATNESS + <U23E6> /xe2/x8f/xa6 AC CURRENT + <U23E7> /xe2/x8f/xa7 ELECTRICAL INTERSECTION ++<U23E8> /xe2/x8f/xa8 DECIMAL EXPONENT SYMBOL ++<U23E9> /xe2/x8f/xa9 BLACK RIGHT-POINTING DOUBLE TRIANGLE ++<U23EA> /xe2/x8f/xaa BLACK LEFT-POINTING DOUBLE TRIANGLE ++<U23EB> /xe2/x8f/xab BLACK UP-POINTING DOUBLE TRIANGLE ++<U23EC> /xe2/x8f/xac BLACK DOWN-POINTING DOUBLE TRIANGLE ++<U23ED> /xe2/x8f/xad BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR ++<U23EE> /xe2/x8f/xae BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR ++<U23EF> /xe2/x8f/xaf BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR ++<U23F0> /xe2/x8f/xb0 ALARM CLOCK ++<U23F1> /xe2/x8f/xb1 STOPWATCH ++<U23F2> /xe2/x8f/xb2 TIMER CLOCK ++<U23F3> /xe2/x8f/xb3 HOURGLASS WITH FLOWING SAND + <U2400> /xe2/x90/x80 SYMBOL FOR NULL + <U2401> /xe2/x90/x81 SYMBOL FOR START OF HEADING + <U2402> /xe2/x90/x82 SYMBOL FOR START OF TEXT +@@ -8051,6 +8535,8 @@ CHARMAP + <U269B> /xe2/x9a/x9b ATOM SYMBOL + <U269C> /xe2/x9a/x9c FLEUR-DE-LIS + <U269D> /xe2/x9a/x9d OUTLINED WHITE STAR ++<U269E> /xe2/x9a/x9e THREE LINES CONVERGING RIGHT ++<U269F> /xe2/x9a/x9f THREE LINES CONVERGING LEFT + <U26A0> /xe2/x9a/xa0 WARNING SIGN + <U26A1> /xe2/x9a/xa1 HIGH VOLTAGE SIGN + <U26A2> /xe2/x9a/xa2 DOUBLED FEMALE SIGN +@@ -8080,18 +8566,84 @@ CHARMAP + <U26BA> /xe2/x9a/xba SEMISEXTILE + <U26BB> /xe2/x9a/xbb QUINCUNX + <U26BC> /xe2/x9a/xbc SESQUIQUADRATE ++<U26BD> /xe2/x9a/xbd SOCCER BALL ++<U26BE> /xe2/x9a/xbe BASEBALL ++<U26BF> /xe2/x9a/xbf SQUARED KEY + <U26C0> /xe2/x9b/x80 WHITE DRAUGHTS MAN + <U26C1> /xe2/x9b/x81 WHITE DRAUGHTS KING + <U26C2> /xe2/x9b/x82 BLACK DRAUGHTS MAN + <U26C3> /xe2/x9b/x83 BLACK DRAUGHTS KING ++<U26C4> /xe2/x9b/x84 SNOWMAN WITHOUT SNOW ++<U26C5> /xe2/x9b/x85 SUN BEHIND CLOUD ++<U26C6> /xe2/x9b/x86 RAIN ++<U26C7> /xe2/x9b/x87 BLACK SNOWMAN ++<U26C8> /xe2/x9b/x88 THUNDER CLOUD AND RAIN ++<U26C9> /xe2/x9b/x89 TURNED WHITE SHOGI PIECE ++<U26CA> /xe2/x9b/x8a TURNED BLACK SHOGI PIECE ++<U26CB> /xe2/x9b/x8b WHITE DIAMOND IN SQUARE ++<U26CC> /xe2/x9b/x8c CROSSING LANES ++<U26CD> /xe2/x9b/x8d DISABLED CAR ++<U26CE> /xe2/x9b/x8e OPHIUCHUS ++<U26CF> /xe2/x9b/x8f PICK ++<U26D0> /xe2/x9b/x90 CAR SLIDING ++<U26D1> /xe2/x9b/x91 HELMET WITH WHITE CROSS ++<U26D2> /xe2/x9b/x92 CIRCLED CROSSING LANES ++<U26D3> /xe2/x9b/x93 CHAINS ++<U26D4> /xe2/x9b/x94 NO ENTRY ++<U26D5> /xe2/x9b/x95 ALTERNATE ONE-WAY LEFT WAY TRAFFIC ++<U26D6> /xe2/x9b/x96 BLACK TWO-WAY LEFT WAY TRAFFIC ++<U26D7> /xe2/x9b/x97 WHITE TWO-WAY LEFT WAY TRAFFIC ++<U26D8> /xe2/x9b/x98 BLACK LEFT LANE MERGE ++<U26D9> /xe2/x9b/x99 WHITE LEFT LANE MERGE ++<U26DA> /xe2/x9b/x9a DRIVE SLOW SIGN ++<U26DB> /xe2/x9b/x9b HEAVY WHITE DOWN-POINTING TRIANGLE ++<U26DC> /xe2/x9b/x9c LEFT CLOSED ENTRY ++<U26DD> /xe2/x9b/x9d SQUARED SALTIRE ++<U26DE> /xe2/x9b/x9e FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE ++<U26DF> /xe2/x9b/x9f BLACK TRUCK ++<U26E0> /xe2/x9b/xa0 RESTRICTED LEFT ENTRY-1 ++<U26E1> /xe2/x9b/xa1 RESTRICTED LEFT ENTRY-2 ++<U26E2> /xe2/x9b/xa2 ASTRONOMICAL SYMBOL FOR URANUS ++<U26E3> /xe2/x9b/xa3 HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE ++<U26E4> /xe2/x9b/xa4 PENTAGRAM ++<U26E5> /xe2/x9b/xa5 RIGHT-HANDED INTERLACED PENTAGRAM ++<U26E6> /xe2/x9b/xa6 LEFT-HANDED INTERLACED PENTAGRAM ++<U26E7> /xe2/x9b/xa7 INVERTED PENTAGRAM ++<U26E8> /xe2/x9b/xa8 BLACK CROSS ON SHIELD ++<U26E9> /xe2/x9b/xa9 SHINTO SHRINE ++<U26EA> /xe2/x9b/xaa CHURCH ++<U26EB> /xe2/x9b/xab CASTLE ++<U26EC> /xe2/x9b/xac HISTORIC SITE ++<U26ED> /xe2/x9b/xad GEAR WITHOUT HUB ++<U26EE> /xe2/x9b/xae GEAR WITH HANDLES ++<U26EF> /xe2/x9b/xaf MAP SYMBOL FOR LIGHTHOUSE ++<U26F0> /xe2/x9b/xb0 MOUNTAIN ++<U26F1> /xe2/x9b/xb1 UMBRELLA ON GROUND ++<U26F2> /xe2/x9b/xb2 FOUNTAIN ++<U26F3> /xe2/x9b/xb3 FLAG IN HOLE ++<U26F4> /xe2/x9b/xb4 FERRY ++<U26F5> /xe2/x9b/xb5 SAILBOAT ++<U26F6> /xe2/x9b/xb6 SQUARE FOUR CORNERS ++<U26F7> /xe2/x9b/xb7 SKIER ++<U26F8> /xe2/x9b/xb8 ICE SKATE ++<U26F9> /xe2/x9b/xb9 PERSON WITH BALL ++<U26FA> /xe2/x9b/xba TENT ++<U26FB> /xe2/x9b/xbb JAPANESE BANK SYMBOL ++<U26FC> /xe2/x9b/xbc HEADSTONE GRAVEYARD SYMBOL ++<U26FD> /xe2/x9b/xbd FUEL PUMP ++<U26FE> /xe2/x9b/xbe CUP ON BLACK SQUARE ++<U26FF> /xe2/x9b/xbf WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE + <U2701> /xe2/x9c/x81 UPPER BLADE SCISSORS + <U2702> /xe2/x9c/x82 BLACK SCISSORS + <U2703> /xe2/x9c/x83 LOWER BLADE SCISSORS + <U2704> /xe2/x9c/x84 WHITE SCISSORS ++<U2705> /xe2/x9c/x85 WHITE HEAVY CHECK MARK + <U2706> /xe2/x9c/x86 TELEPHONE LOCATION SIGN + <U2707> /xe2/x9c/x87 TAPE DRIVE + <U2708> /xe2/x9c/x88 AIRPLANE + <U2709> /xe2/x9c/x89 ENVELOPE ++<U270A> /xe2/x9c/x8a RAISED FIST ++<U270B> /xe2/x9c/x8b RAISED HAND + <U270C> /xe2/x9c/x8c VICTORY HAND + <U270D> /xe2/x9c/x8d WRITING HAND + <U270E> /xe2/x9c/x8e LOWER RIGHT PENCIL +@@ -8120,6 +8672,7 @@ CHARMAP + <U2725> /xe2/x9c/xa5 FOUR CLUB-SPOKED ASTERISK + <U2726> /xe2/x9c/xa6 BLACK FOUR POINTED STAR + <U2727> /xe2/x9c/xa7 WHITE FOUR POINTED STAR ++<U2728> /xe2/x9c/xa8 SPARKLES + <U2729> /xe2/x9c/xa9 STRESS OUTLINED WHITE STAR + <U272A> /xe2/x9c/xaa CIRCLED WHITE STAR + <U272B> /xe2/x9c/xab OPEN CENTRE BLACK STAR +@@ -8155,12 +8708,18 @@ CHARMAP + <U2749> /xe2/x9d/x89 BALLOON-SPOKED ASTERISK + <U274A> /xe2/x9d/x8a EIGHT TEARDROP-SPOKED PROPELLER ASTERISK + <U274B> /xe2/x9d/x8b HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK ++<U274C> /xe2/x9d/x8c CROSS MARK + <U274D> /xe2/x9d/x8d SHADOWED WHITE CIRCLE ++<U274E> /xe2/x9d/x8e NEGATIVE SQUARED CROSS MARK + <U274F> /xe2/x9d/x8f LOWER RIGHT DROP-SHADOWED WHITE SQUARE + <U2750> /xe2/x9d/x90 UPPER RIGHT DROP-SHADOWED WHITE SQUARE + <U2751> /xe2/x9d/x91 LOWER RIGHT SHADOWED WHITE SQUARE + <U2752> /xe2/x9d/x92 UPPER RIGHT SHADOWED WHITE SQUARE ++<U2753> /xe2/x9d/x93 BLACK QUESTION MARK ORNAMENT ++<U2754> /xe2/x9d/x94 WHITE QUESTION MARK ORNAMENT ++<U2755> /xe2/x9d/x95 WHITE EXCLAMATION MARK ORNAMENT + <U2756> /xe2/x9d/x96 BLACK DIAMOND MINUS WHITE X ++<U2757> /xe2/x9d/x97 HEAVY EXCLAMATION MARK SYMBOL + <U2758> /xe2/x9d/x98 LIGHT VERTICAL BAR + <U2759> /xe2/x9d/x99 MEDIUM VERTICAL BAR + <U275A> /xe2/x9d/x9a HEAVY VERTICAL BAR +@@ -8168,6 +8727,8 @@ CHARMAP + <U275C> /xe2/x9d/x9c HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT + <U275D> /xe2/x9d/x9d HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT + <U275E> /xe2/x9d/x9e HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT ++<U275F> /xe2/x9d/x9f HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT ++<U2760> /xe2/x9d/xa0 HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT + <U2761> /xe2/x9d/xa1 CURVED STEM PARAGRAPH SIGN ORNAMENT + <U2762> /xe2/x9d/xa2 HEAVY EXCLAMATION MARK ORNAMENT + <U2763> /xe2/x9d/xa3 HEAVY HEART EXCLAMATION MARK ORNAMENT +@@ -8220,6 +8781,9 @@ CHARMAP + <U2792> /xe2/x9e/x92 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE + <U2793> /xe2/x9e/x93 DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN + <U2794> /xe2/x9e/x94 HEAVY WIDE-HEADED RIGHTWARDS ARROW ++<U2795> /xe2/x9e/x95 HEAVY PLUS SIGN ++<U2796> /xe2/x9e/x96 HEAVY MINUS SIGN ++<U2797> /xe2/x9e/x97 HEAVY DIVISION SIGN + <U2798> /xe2/x9e/x98 HEAVY SOUTH EAST ARROW + <U2799> /xe2/x9e/x99 HEAVY RIGHTWARDS ARROW + <U279A> /xe2/x9e/x9a HEAVY NORTH EAST ARROW +@@ -8244,6 +8808,7 @@ CHARMAP + <U27AD> /xe2/x9e/xad HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW + <U27AE> /xe2/x9e/xae HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW + <U27AF> /xe2/x9e/xaf NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW ++<U27B0> /xe2/x9e/xb0 CURLY LOOP + <U27B1> /xe2/x9e/xb1 NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW + <U27B2> /xe2/x9e/xb2 CIRCLED HEAVY WHITE RIGHTWARDS ARROW + <U27B3> /xe2/x9e/xb3 WHITE-FEATHERED RIGHTWARDS ARROW +@@ -8258,6 +8823,7 @@ CHARMAP + <U27BC> /xe2/x9e/xbc WEDGE-TAILED RIGHTWARDS ARROW + <U27BD> /xe2/x9e/xbd HEAVY WEDGE-TAILED RIGHTWARDS ARROW + <U27BE> /xe2/x9e/xbe OPEN-OUTLINED RIGHTWARDS ARROW ++<U27BF> /xe2/x9e/xbf DOUBLE CURLY LOOP + <U27C0> /xe2/x9f/x80 THREE DIMENSIONAL ANGLE + <U27C1> /xe2/x9f/x81 WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE + <U27C2> /xe2/x9f/x82 PERPENDICULAR +@@ -8270,6 +8836,8 @@ CHARMAP + <U27C9> /xe2/x9f/x89 SUPERSET PRECEDING SOLIDUS + <U27CA> /xe2/x9f/x8a VERTICAL BAR WITH HORIZONTAL STROKE + <U27CC> /xe2/x9f/x8c LONG DIVISION ++<U27CE> /xe2/x9f/x8e SQUARED LOGICAL AND ++<U27CF> /xe2/x9f/x8f SQUARED LOGICAL OR + <U27D0> /xe2/x9f/x90 WHITE DIAMOND WITH CENTRED DOT + <U27D1> /xe2/x9f/x91 AND WITH DOT + <U27D2> /xe2/x9f/x92 ELEMENT OF OPENING UPWARDS +@@ -9168,6 +9736,11 @@ CHARMAP + <U2B52> /xe2/xad/x92 WHITE SMALL STAR + <U2B53> /xe2/xad/x93 BLACK RIGHT-POINTING PENTAGON + <U2B54> /xe2/xad/x94 WHITE RIGHT-POINTING PENTAGON ++<U2B55> /xe2/xad/x95 HEAVY LARGE CIRCLE ++<U2B56> /xe2/xad/x96 HEAVY OVAL WITH OVAL INSIDE ++<U2B57> /xe2/xad/x97 HEAVY CIRCLE WITH CIRCLE INSIDE ++<U2B58> /xe2/xad/x98 HEAVY CIRCLE ++<U2B59> /xe2/xad/x99 HEAVY CIRCLED SALTIRE + <U2C00> /xe2/xb0/x80 GLAGOLITIC CAPITAL LETTER AZU + <U2C01> /xe2/xb0/x81 GLAGOLITIC CAPITAL LETTER BUKY + <U2C02> /xe2/xb0/x82 GLAGOLITIC CAPITAL LETTER VEDE +@@ -9278,6 +9851,7 @@ CHARMAP + <U2C6D> /xe2/xb1/xad LATIN CAPITAL LETTER ALPHA + <U2C6E> /xe2/xb1/xae LATIN CAPITAL LETTER M WITH HOOK + <U2C6F> /xe2/xb1/xaf LATIN CAPITAL LETTER TURNED A ++<U2C70> /xe2/xb1/xb0 LATIN CAPITAL LETTER TURNED ALPHA + <U2C71> /xe2/xb1/xb1 LATIN SMALL LETTER V WITH RIGHT HOOK + <U2C72> /xe2/xb1/xb2 LATIN CAPITAL LETTER W WITH HOOK + <U2C73> /xe2/xb1/xb3 LATIN SMALL LETTER W WITH HOOK +@@ -9291,6 +9865,8 @@ CHARMAP + <U2C7B> /xe2/xb1/xbb LATIN LETTER SMALL CAPITAL TURNED E + <U2C7C> /xe2/xb1/xbc LATIN SUBSCRIPT SMALL LETTER J + <U2C7D> /xe2/xb1/xbd MODIFIER LETTER CAPITAL V ++<U2C7E> /xe2/xb1/xbe LATIN CAPITAL LETTER S WITH SWASH TAIL ++<U2C7F> /xe2/xb1/xbf LATIN CAPITAL LETTER Z WITH SWASH TAIL + <U2C80> /xe2/xb2/x80 COPTIC CAPITAL LETTER ALFA + <U2C81> /xe2/xb2/x81 COPTIC SMALL LETTER ALFA + <U2C82> /xe2/xb2/x82 COPTIC CAPITAL LETTER VIDA +@@ -9398,6 +9974,13 @@ CHARMAP + <U2CE8> /xe2/xb3/xa8 COPTIC SYMBOL TAU RO + <U2CE9> /xe2/xb3/xa9 COPTIC SYMBOL KHI RO + <U2CEA> /xe2/xb3/xaa COPTIC SYMBOL SHIMA SIMA ++<U2CEB> /xe2/xb3/xab COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI ++<U2CEC> /xe2/xb3/xac COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI ++<U2CED> /xe2/xb3/xad COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA ++<U2CEE> /xe2/xb3/xae COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA ++<U2CEF> /xe2/xb3/xaf COPTIC COMBINING NI ABOVE ++<U2CF0> /xe2/xb3/xb0 COPTIC COMBINING SPIRITUS ASPER ++<U2CF1> /xe2/xb3/xb1 COPTIC COMBINING SPIRITUS LENIS + <U2CF9> /xe2/xb3/xb9 COPTIC OLD NUBIAN FULL STOP + <U2CFA> /xe2/xb3/xba COPTIC OLD NUBIAN DIRECT QUESTION MARK + <U2CFB> /xe2/xb3/xbb COPTIC OLD NUBIAN INDIRECT QUESTION MARK +@@ -9498,6 +10081,8 @@ CHARMAP + <U2D64> /xe2/xb5/xa4 TIFINAGH LETTER TAWELLEMET YAZ + <U2D65> /xe2/xb5/xa5 TIFINAGH LETTER YAZZ + <U2D6F> /xe2/xb5/xaf TIFINAGH MODIFIER LETTER LABIALIZATION MARK ++<U2D70> /xe2/xb5/xb0 TIFINAGH SEPARATOR MARK ++<U2D7F> /xe2/xb5/xbf TIFINAGH CONSONANT JOINER + <U2D80> /xe2/xb6/x80 ETHIOPIC SYLLABLE LOA + <U2D81> /xe2/xb6/x81 ETHIOPIC SYLLABLE MOA + <U2D82> /xe2/xb6/x82 ETHIOPIC SYLLABLE ROA +@@ -9658,6 +10243,7 @@ CHARMAP + <U2E2E> /xe2/xb8/xae REVERSED QUESTION MARK + <U2E2F> /xe2/xb8/xaf VERTICAL TILDE + <U2E30> /xe2/xb8/xb0 RING POINT ++<U2E31> /xe2/xb8/xb1 WORD SEPARATOR MIDDLE DOT + <U2E80> /xe2/xba/x80 CJK RADICAL REPEAT + <U2E81> /xe2/xba/x81 CJK RADICAL CLIFF + <U2E82> /xe2/xba/x82 CJK RADICAL SECOND ONE +@@ -10427,6 +11013,9 @@ CHARMAP + <U31B5> /xe3/x86/xb5 BOPOMOFO FINAL LETTER T + <U31B6> /xe3/x86/xb6 BOPOMOFO FINAL LETTER K + <U31B7> /xe3/x86/xb7 BOPOMOFO FINAL LETTER H ++<U31B8> /xe3/x86/xb8 BOPOMOFO LETTER GH ++<U31B9> /xe3/x86/xb9 BOPOMOFO LETTER LH ++<U31BA> /xe3/x86/xba BOPOMOFO LETTER ZY + <U31C0> /xe3/x87/x80 CJK STROKE T + <U31C1> /xe3/x87/x81 CJK STROKE WG + <U31C2> /xe3/x87/x82 CJK STROKE XG +@@ -10546,6 +11135,18 @@ CHARMAP + <U3241> /xe3/x89/x81 PARENTHESIZED IDEOGRAPH REST + <U3242> /xe3/x89/x82 PARENTHESIZED IDEOGRAPH SELF + <U3243> /xe3/x89/x83 PARENTHESIZED IDEOGRAPH REACH ++<U3244> /xe3/x89/x84 CIRCLED IDEOGRAPH QUESTION ++<U3245> /xe3/x89/x85 CIRCLED IDEOGRAPH KINDERGARTEN ++<U3246> /xe3/x89/x86 CIRCLED IDEOGRAPH SCHOOL ++<U3247> /xe3/x89/x87 CIRCLED IDEOGRAPH KOTO ++<U3248> /xe3/x89/x88 CIRCLED NUMBER TEN ON BLACK SQUARE ++<U3249> /xe3/x89/x89 CIRCLED NUMBER TWENTY ON BLACK SQUARE ++<U324A> /xe3/x89/x8a CIRCLED NUMBER THIRTY ON BLACK SQUARE ++<U324B> /xe3/x89/x8b CIRCLED NUMBER FORTY ON BLACK SQUARE ++<U324C> /xe3/x89/x8c CIRCLED NUMBER FIFTY ON BLACK SQUARE ++<U324D> /xe3/x89/x8d CIRCLED NUMBER SIXTY ON BLACK SQUARE ++<U324E> /xe3/x89/x8e CIRCLED NUMBER SEVENTY ON BLACK SQUARE ++<U324F> /xe3/x89/x8f CIRCLED NUMBER EIGHTY ON BLACK SQUARE + <U3250> /xe3/x89/x90 PARTNERSHIP SIGN + <U3251> /xe3/x89/x91 CIRCLED NUMBER TWENTY ONE + <U3252> /xe3/x89/x92 CIRCLED NUMBER TWENTY TWO +@@ -12691,6 +13292,54 @@ CHARMAP + <UA4C4> /xea/x93/x84 YI RADICAL ZZIET + <UA4C5> /xea/x93/x85 YI RADICAL NBIE + <UA4C6> /xea/x93/x86 YI RADICAL KE ++<UA4D0> /xea/x93/x90 LISU LETTER BA ++<UA4D1> /xea/x93/x91 LISU LETTER PA ++<UA4D2> /xea/x93/x92 LISU LETTER PHA ++<UA4D3> /xea/x93/x93 LISU LETTER DA ++<UA4D4> /xea/x93/x94 LISU LETTER TA ++<UA4D5> /xea/x93/x95 LISU LETTER THA ++<UA4D6> /xea/x93/x96 LISU LETTER GA ++<UA4D7> /xea/x93/x97 LISU LETTER KA ++<UA4D8> /xea/x93/x98 LISU LETTER KHA ++<UA4D9> /xea/x93/x99 LISU LETTER JA ++<UA4DA> /xea/x93/x9a LISU LETTER CA ++<UA4DB> /xea/x93/x9b LISU LETTER CHA ++<UA4DC> /xea/x93/x9c LISU LETTER DZA ++<UA4DD> /xea/x93/x9d LISU LETTER TSA ++<UA4DE> /xea/x93/x9e LISU LETTER TSHA ++<UA4DF> /xea/x93/x9f LISU LETTER MA ++<UA4E0> /xea/x93/xa0 LISU LETTER NA ++<UA4E1> /xea/x93/xa1 LISU LETTER LA ++<UA4E2> /xea/x93/xa2 LISU LETTER SA ++<UA4E3> /xea/x93/xa3 LISU LETTER ZHA ++<UA4E4> /xea/x93/xa4 LISU LETTER ZA ++<UA4E5> /xea/x93/xa5 LISU LETTER NGA ++<UA4E6> /xea/x93/xa6 LISU LETTER HA ++<UA4E7> /xea/x93/xa7 LISU LETTER XA ++<UA4E8> /xea/x93/xa8 LISU LETTER HHA ++<UA4E9> /xea/x93/xa9 LISU LETTER FA ++<UA4EA> /xea/x93/xaa LISU LETTER WA ++<UA4EB> /xea/x93/xab LISU LETTER SHA ++<UA4EC> /xea/x93/xac LISU LETTER YA ++<UA4ED> /xea/x93/xad LISU LETTER GHA ++<UA4EE> /xea/x93/xae LISU LETTER A ++<UA4EF> /xea/x93/xaf LISU LETTER AE ++<UA4F0> /xea/x93/xb0 LISU LETTER E ++<UA4F1> /xea/x93/xb1 LISU LETTER EU ++<UA4F2> /xea/x93/xb2 LISU LETTER I ++<UA4F3> /xea/x93/xb3 LISU LETTER O ++<UA4F4> /xea/x93/xb4 LISU LETTER U ++<UA4F5> /xea/x93/xb5 LISU LETTER UE ++<UA4F6> /xea/x93/xb6 LISU LETTER UH ++<UA4F7> /xea/x93/xb7 LISU LETTER OE ++<UA4F8> /xea/x93/xb8 LISU LETTER TONE MYA TI ++<UA4F9> /xea/x93/xb9 LISU LETTER TONE NA PO ++<UA4FA> /xea/x93/xba LISU LETTER TONE MYA CYA ++<UA4FB> /xea/x93/xbb LISU LETTER TONE MYA BO ++<UA4FC> /xea/x93/xbc LISU LETTER TONE MYA NA ++<UA4FD> /xea/x93/xbd LISU LETTER TONE MYA JEU ++<UA4FE> /xea/x93/xbe LISU PUNCTUATION COMMA ++<UA4FF> /xea/x93/xbf LISU PUNCTUATION FULL STOP + <UA500> /xea/x94/x80 VAI SYLLABLE EE + <UA501> /xea/x94/x81 VAI SYLLABLE EEN + <UA502> /xea/x94/x82 VAI SYLLABLE HEE +@@ -13023,6 +13672,8 @@ CHARMAP + <UA65D> /xea/x99/x9d CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS + <UA65E> /xea/x99/x9e CYRILLIC CAPITAL LETTER YN + <UA65F> /xea/x99/x9f CYRILLIC SMALL LETTER YN ++<UA660> /xea/x99/xa0 CYRILLIC CAPITAL LETTER REVERSED TSE ++<UA661> /xea/x99/xa1 CYRILLIC SMALL LETTER REVERSED TSE + <UA662> /xea/x99/xa2 CYRILLIC CAPITAL LETTER SOFT DE + <UA663> /xea/x99/xa3 CYRILLIC SMALL LETTER SOFT DE + <UA664> /xea/x99/xa4 CYRILLIC CAPITAL LETTER SOFT EL +@@ -13069,6 +13720,94 @@ CHARMAP + <UA695> /xea/x9a/x95 CYRILLIC SMALL LETTER HWE + <UA696> /xea/x9a/x96 CYRILLIC CAPITAL LETTER SHWE + <UA697> /xea/x9a/x97 CYRILLIC SMALL LETTER SHWE ++<UA6A0> /xea/x9a/xa0 BAMUM LETTER A ++<UA6A1> /xea/x9a/xa1 BAMUM LETTER KA ++<UA6A2> /xea/x9a/xa2 BAMUM LETTER U ++<UA6A3> /xea/x9a/xa3 BAMUM LETTER KU ++<UA6A4> /xea/x9a/xa4 BAMUM LETTER EE ++<UA6A5> /xea/x9a/xa5 BAMUM LETTER REE ++<UA6A6> /xea/x9a/xa6 BAMUM LETTER TAE ++<UA6A7> /xea/x9a/xa7 BAMUM LETTER O ++<UA6A8> /xea/x9a/xa8 BAMUM LETTER NYI ++<UA6A9> /xea/x9a/xa9 BAMUM LETTER I ++<UA6AA> /xea/x9a/xaa BAMUM LETTER LA ++<UA6AB> /xea/x9a/xab BAMUM LETTER PA ++<UA6AC> /xea/x9a/xac BAMUM LETTER RII ++<UA6AD> /xea/x9a/xad BAMUM LETTER RIEE ++<UA6AE> /xea/x9a/xae BAMUM LETTER LEEEE ++<UA6AF> /xea/x9a/xaf BAMUM LETTER MEEEE ++<UA6B0> /xea/x9a/xb0 BAMUM LETTER TAA ++<UA6B1> /xea/x9a/xb1 BAMUM LETTER NDAA ++<UA6B2> /xea/x9a/xb2 BAMUM LETTER NJAEM ++<UA6B3> /xea/x9a/xb3 BAMUM LETTER M ++<UA6B4> /xea/x9a/xb4 BAMUM LETTER SUU ++<UA6B5> /xea/x9a/xb5 BAMUM LETTER MU ++<UA6B6> /xea/x9a/xb6 BAMUM LETTER SHII ++<UA6B7> /xea/x9a/xb7 BAMUM LETTER SI ++<UA6B8> /xea/x9a/xb8 BAMUM LETTER SHEUX ++<UA6B9> /xea/x9a/xb9 BAMUM LETTER SEUX ++<UA6BA> /xea/x9a/xba BAMUM LETTER KYEE ++<UA6BB> /xea/x9a/xbb BAMUM LETTER KET ++<UA6BC> /xea/x9a/xbc BAMUM LETTER NUAE ++<UA6BD> /xea/x9a/xbd BAMUM LETTER NU ++<UA6BE> /xea/x9a/xbe BAMUM LETTER NJUAE ++<UA6BF> /xea/x9a/xbf BAMUM LETTER YOQ ++<UA6C0> /xea/x9b/x80 BAMUM LETTER SHU ++<UA6C1> /xea/x9b/x81 BAMUM LETTER YUQ ++<UA6C2> /xea/x9b/x82 BAMUM LETTER YA ++<UA6C3> /xea/x9b/x83 BAMUM LETTER NSHA ++<UA6C4> /xea/x9b/x84 BAMUM LETTER KEUX ++<UA6C5> /xea/x9b/x85 BAMUM LETTER PEUX ++<UA6C6> /xea/x9b/x86 BAMUM LETTER NJEE ++<UA6C7> /xea/x9b/x87 BAMUM LETTER NTEE ++<UA6C8> /xea/x9b/x88 BAMUM LETTER PUE ++<UA6C9> /xea/x9b/x89 BAMUM LETTER WUE ++<UA6CA> /xea/x9b/x8a BAMUM LETTER PEE ++<UA6CB> /xea/x9b/x8b BAMUM LETTER FEE ++<UA6CC> /xea/x9b/x8c BAMUM LETTER RU ++<UA6CD> /xea/x9b/x8d BAMUM LETTER LU ++<UA6CE> /xea/x9b/x8e BAMUM LETTER MI ++<UA6CF> /xea/x9b/x8f BAMUM LETTER NI ++<UA6D0> /xea/x9b/x90 BAMUM LETTER REUX ++<UA6D1> /xea/x9b/x91 BAMUM LETTER RAE ++<UA6D2> /xea/x9b/x92 BAMUM LETTER KEN ++<UA6D3> /xea/x9b/x93 BAMUM LETTER NGKWAEN ++<UA6D4> /xea/x9b/x94 BAMUM LETTER NGGA ++<UA6D5> /xea/x9b/x95 BAMUM LETTER NGA ++<UA6D6> /xea/x9b/x96 BAMUM LETTER SHO ++<UA6D7> /xea/x9b/x97 BAMUM LETTER PUAE ++<UA6D8> /xea/x9b/x98 BAMUM LETTER FU ++<UA6D9> /xea/x9b/x99 BAMUM LETTER FOM ++<UA6DA> /xea/x9b/x9a BAMUM LETTER WA ++<UA6DB> /xea/x9b/x9b BAMUM LETTER NA ++<UA6DC> /xea/x9b/x9c BAMUM LETTER LI ++<UA6DD> /xea/x9b/x9d BAMUM LETTER PI ++<UA6DE> /xea/x9b/x9e BAMUM LETTER LOQ ++<UA6DF> /xea/x9b/x9f BAMUM LETTER KO ++<UA6E0> /xea/x9b/xa0 BAMUM LETTER MBEN ++<UA6E1> /xea/x9b/xa1 BAMUM LETTER REN ++<UA6E2> /xea/x9b/xa2 BAMUM LETTER MEN ++<UA6E3> /xea/x9b/xa3 BAMUM LETTER MA ++<UA6E4> /xea/x9b/xa4 BAMUM LETTER TI ++<UA6E5> /xea/x9b/xa5 BAMUM LETTER KI ++<UA6E6> /xea/x9b/xa6 BAMUM LETTER MO ++<UA6E7> /xea/x9b/xa7 BAMUM LETTER MBAA ++<UA6E8> /xea/x9b/xa8 BAMUM LETTER TET ++<UA6E9> /xea/x9b/xa9 BAMUM LETTER KPA ++<UA6EA> /xea/x9b/xaa BAMUM LETTER TEN ++<UA6EB> /xea/x9b/xab BAMUM LETTER NTUU ++<UA6EC> /xea/x9b/xac BAMUM LETTER SAMBA ++<UA6ED> /xea/x9b/xad BAMUM LETTER FAAMAE ++<UA6EE> /xea/x9b/xae BAMUM LETTER KOVUU ++<UA6EF> /xea/x9b/xaf BAMUM LETTER KOGHOM ++<UA6F0> /xea/x9b/xb0 BAMUM COMBINING MARK KOQNDON ++<UA6F1> /xea/x9b/xb1 BAMUM COMBINING MARK TUKWENTIS ++<UA6F2> /xea/x9b/xb2 BAMUM NJAEMLI ++<UA6F3> /xea/x9b/xb3 BAMUM FULL STOP ++<UA6F4> /xea/x9b/xb4 BAMUM COLON ++<UA6F5> /xea/x9b/xb5 BAMUM COMMA ++<UA6F6> /xea/x9b/xb6 BAMUM SEMICOLON ++<UA6F7> /xea/x9b/xb7 BAMUM QUESTION MARK + <UA700> /xea/x9c/x80 MODIFIER LETTER CHINESE TONE YIN PING + <UA701> /xea/x9c/x81 MODIFIER LETTER CHINESE TONE YANG PING + <UA702> /xea/x9c/x82 MODIFIER LETTER CHINESE TONE YIN SHANG +@@ -13210,6 +13949,21 @@ CHARMAP + <UA78A> /xea/x9e/x8a MODIFIER LETTER SHORT EQUALS SIGN + <UA78B> /xea/x9e/x8b LATIN CAPITAL LETTER SALTILLO + <UA78C> /xea/x9e/x8c LATIN SMALL LETTER SALTILLO ++<UA78D> /xea/x9e/x8d LATIN CAPITAL LETTER TURNED H ++<UA78E> /xea/x9e/x8e LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT ++<UA790> /xea/x9e/x90 LATIN CAPITAL LETTER N WITH DESCENDER ++<UA791> /xea/x9e/x91 LATIN SMALL LETTER N WITH DESCENDER ++<UA7A0> /xea/x9e/xa0 LATIN CAPITAL LETTER G WITH OBLIQUE STROKE ++<UA7A1> /xea/x9e/xa1 LATIN SMALL LETTER G WITH OBLIQUE STROKE ++<UA7A2> /xea/x9e/xa2 LATIN CAPITAL LETTER K WITH OBLIQUE STROKE ++<UA7A3> /xea/x9e/xa3 LATIN SMALL LETTER K WITH OBLIQUE STROKE ++<UA7A4> /xea/x9e/xa4 LATIN CAPITAL LETTER N WITH OBLIQUE STROKE ++<UA7A5> /xea/x9e/xa5 LATIN SMALL LETTER N WITH OBLIQUE STROKE ++<UA7A6> /xea/x9e/xa6 LATIN CAPITAL LETTER R WITH OBLIQUE STROKE ++<UA7A7> /xea/x9e/xa7 LATIN SMALL LETTER R WITH OBLIQUE STROKE ++<UA7A8> /xea/x9e/xa8 LATIN CAPITAL LETTER S WITH OBLIQUE STROKE ++<UA7A9> /xea/x9e/xa9 LATIN SMALL LETTER S WITH OBLIQUE STROKE ++<UA7FA> /xea/x9f/xba LATIN LETTER SMALL CAPITAL TURNED M + <UA7FB> /xea/x9f/xbb LATIN EPIGRAPHIC LETTER REVERSED F + <UA7FC> /xea/x9f/xbc LATIN EPIGRAPHIC LETTER REVERSED P + <UA7FD> /xea/x9f/xbd LATIN EPIGRAPHIC LETTER INVERTED M +@@ -13259,6 +14013,16 @@ CHARMAP + <UA829> /xea/xa0/xa9 SYLOTI NAGRI POETRY MARK-2 + <UA82A> /xea/xa0/xaa SYLOTI NAGRI POETRY MARK-3 + <UA82B> /xea/xa0/xab SYLOTI NAGRI POETRY MARK-4 ++<UA830> /xea/xa0/xb0 NORTH INDIC FRACTION ONE QUARTER ++<UA831> /xea/xa0/xb1 NORTH INDIC FRACTION ONE HALF ++<UA832> /xea/xa0/xb2 NORTH INDIC FRACTION THREE QUARTERS ++<UA833> /xea/xa0/xb3 NORTH INDIC FRACTION ONE SIXTEENTH ++<UA834> /xea/xa0/xb4 NORTH INDIC FRACTION ONE EIGHTH ++<UA835> /xea/xa0/xb5 NORTH INDIC FRACTION THREE SIXTEENTHS ++<UA836> /xea/xa0/xb6 NORTH INDIC QUARTER MARK ++<UA837> /xea/xa0/xb7 NORTH INDIC PLACEHOLDER MARK ++<UA838> /xea/xa0/xb8 NORTH INDIC RUPEE MARK ++<UA839> /xea/xa0/xb9 NORTH INDIC QUANTITY MARK + <UA840> /xea/xa1/x80 PHAGS-PA LETTER KA + <UA841> /xea/xa1/x81 PHAGS-PA LETTER KHA + <UA842> /xea/xa1/x82 PHAGS-PA LETTER GA +@@ -13396,6 +14160,34 @@ CHARMAP + <UA8D7> /xea/xa3/x97 SAURASHTRA DIGIT SEVEN + <UA8D8> /xea/xa3/x98 SAURASHTRA DIGIT EIGHT + <UA8D9> /xea/xa3/x99 SAURASHTRA DIGIT NINE ++<UA8E0> /xea/xa3/xa0 COMBINING DEVANAGARI DIGIT ZERO ++<UA8E1> /xea/xa3/xa1 COMBINING DEVANAGARI DIGIT ONE ++<UA8E2> /xea/xa3/xa2 COMBINING DEVANAGARI DIGIT TWO ++<UA8E3> /xea/xa3/xa3 COMBINING DEVANAGARI DIGIT THREE ++<UA8E4> /xea/xa3/xa4 COMBINING DEVANAGARI DIGIT FOUR ++<UA8E5> /xea/xa3/xa5 COMBINING DEVANAGARI DIGIT FIVE ++<UA8E6> /xea/xa3/xa6 COMBINING DEVANAGARI DIGIT SIX ++<UA8E7> /xea/xa3/xa7 COMBINING DEVANAGARI DIGIT SEVEN ++<UA8E8> /xea/xa3/xa8 COMBINING DEVANAGARI DIGIT EIGHT ++<UA8E9> /xea/xa3/xa9 COMBINING DEVANAGARI DIGIT NINE ++<UA8EA> /xea/xa3/xaa COMBINING DEVANAGARI LETTER A ++<UA8EB> /xea/xa3/xab COMBINING DEVANAGARI LETTER U ++<UA8EC> /xea/xa3/xac COMBINING DEVANAGARI LETTER KA ++<UA8ED> /xea/xa3/xad COMBINING DEVANAGARI LETTER NA ++<UA8EE> /xea/xa3/xae COMBINING DEVANAGARI LETTER PA ++<UA8EF> /xea/xa3/xaf COMBINING DEVANAGARI LETTER RA ++<UA8F0> /xea/xa3/xb0 COMBINING DEVANAGARI LETTER VI ++<UA8F1> /xea/xa3/xb1 COMBINING DEVANAGARI SIGN AVAGRAHA ++<UA8F2> /xea/xa3/xb2 DEVANAGARI SIGN SPACING CANDRABINDU ++<UA8F3> /xea/xa3/xb3 DEVANAGARI SIGN CANDRABINDU VIRAMA ++<UA8F4> /xea/xa3/xb4 DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA ++<UA8F5> /xea/xa3/xb5 DEVANAGARI SIGN CANDRABINDU TWO ++<UA8F6> /xea/xa3/xb6 DEVANAGARI SIGN CANDRABINDU THREE ++<UA8F7> /xea/xa3/xb7 DEVANAGARI SIGN CANDRABINDU AVAGRAHA ++<UA8F8> /xea/xa3/xb8 DEVANAGARI SIGN PUSHPIKA ++<UA8F9> /xea/xa3/xb9 DEVANAGARI GAP FILLER ++<UA8FA> /xea/xa3/xba DEVANAGARI CARET ++<UA8FB> /xea/xa3/xbb DEVANAGARI HEADSTROKE + <UA900> /xea/xa4/x80 KAYAH LI DIGIT ZERO + <UA901> /xea/xa4/x81 KAYAH LI DIGIT ONE + <UA902> /xea/xa4/x82 KAYAH LI DIGIT TWO +@@ -13481,6 +14273,126 @@ CHARMAP + <UA952> /xea/xa5/x92 REJANG CONSONANT SIGN H + <UA953> /xea/xa5/x93 REJANG VIRAMA + <UA95F> /xea/xa5/x9f REJANG SECTION MARK ++<UA960> /xea/xa5/xa0 HANGUL CHOSEONG TIKEUT-MIEUM ++<UA961> /xea/xa5/xa1 HANGUL CHOSEONG TIKEUT-PIEUP ++<UA962> /xea/xa5/xa2 HANGUL CHOSEONG TIKEUT-SIOS ++<UA963> /xea/xa5/xa3 HANGUL CHOSEONG TIKEUT-CIEUC ++<UA964> /xea/xa5/xa4 HANGUL CHOSEONG RIEUL-KIYEOK ++<UA965> /xea/xa5/xa5 HANGUL CHOSEONG RIEUL-SSANGKIYEOK ++<UA966> /xea/xa5/xa6 HANGUL CHOSEONG RIEUL-TIKEUT ++<UA967> /xea/xa5/xa7 HANGUL CHOSEONG RIEUL-SSANGTIKEUT ++<UA968> /xea/xa5/xa8 HANGUL CHOSEONG RIEUL-MIEUM ++<UA969> /xea/xa5/xa9 HANGUL CHOSEONG RIEUL-PIEUP ++<UA96A> /xea/xa5/xaa HANGUL CHOSEONG RIEUL-SSANGPIEUP ++<UA96B> /xea/xa5/xab HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP ++<UA96C> /xea/xa5/xac HANGUL CHOSEONG RIEUL-SIOS ++<UA96D> /xea/xa5/xad HANGUL CHOSEONG RIEUL-CIEUC ++<UA96E> /xea/xa5/xae HANGUL CHOSEONG RIEUL-KHIEUKH ++<UA96F> /xea/xa5/xaf HANGUL CHOSEONG MIEUM-KIYEOK ++<UA970> /xea/xa5/xb0 HANGUL CHOSEONG MIEUM-TIKEUT ++<UA971> /xea/xa5/xb1 HANGUL CHOSEONG MIEUM-SIOS ++<UA972> /xea/xa5/xb2 HANGUL CHOSEONG PIEUP-SIOS-THIEUTH ++<UA973> /xea/xa5/xb3 HANGUL CHOSEONG PIEUP-KHIEUKH ++<UA974> /xea/xa5/xb4 HANGUL CHOSEONG PIEUP-HIEUH ++<UA975> /xea/xa5/xb5 HANGUL CHOSEONG SSANGSIOS-PIEUP ++<UA976> /xea/xa5/xb6 HANGUL CHOSEONG IEUNG-RIEUL ++<UA977> /xea/xa5/xb7 HANGUL CHOSEONG IEUNG-HIEUH ++<UA978> /xea/xa5/xb8 HANGUL CHOSEONG SSANGCIEUC-HIEUH ++<UA979> /xea/xa5/xb9 HANGUL CHOSEONG SSANGTHIEUTH ++<UA97A> /xea/xa5/xba HANGUL CHOSEONG PHIEUPH-HIEUH ++<UA97B> /xea/xa5/xbb HANGUL CHOSEONG HIEUH-SIOS ++<UA97C> /xea/xa5/xbc HANGUL CHOSEONG SSANGYEORINHIEUH ++<UA980> /xea/xa6/x80 JAVANESE SIGN PANYANGGA ++<UA981> /xea/xa6/x81 JAVANESE SIGN CECAK ++<UA982> /xea/xa6/x82 JAVANESE SIGN LAYAR ++<UA983> /xea/xa6/x83 JAVANESE SIGN WIGNYAN ++<UA984> /xea/xa6/x84 JAVANESE LETTER A ++<UA985> /xea/xa6/x85 JAVANESE LETTER I KAWI ++<UA986> /xea/xa6/x86 JAVANESE LETTER I ++<UA987> /xea/xa6/x87 JAVANESE LETTER II ++<UA988> /xea/xa6/x88 JAVANESE LETTER U ++<UA989> /xea/xa6/x89 JAVANESE LETTER PA CEREK ++<UA98A> /xea/xa6/x8a JAVANESE LETTER NGA LELET ++<UA98B> /xea/xa6/x8b JAVANESE LETTER NGA LELET RASWADI ++<UA98C> /xea/xa6/x8c JAVANESE LETTER E ++<UA98D> /xea/xa6/x8d JAVANESE LETTER AI ++<UA98E> /xea/xa6/x8e JAVANESE LETTER O ++<UA98F> /xea/xa6/x8f JAVANESE LETTER KA ++<UA990> /xea/xa6/x90 JAVANESE LETTER KA SASAK ++<UA991> /xea/xa6/x91 JAVANESE LETTER KA MURDA ++<UA992> /xea/xa6/x92 JAVANESE LETTER GA ++<UA993> /xea/xa6/x93 JAVANESE LETTER GA MURDA ++<UA994> /xea/xa6/x94 JAVANESE LETTER NGA ++<UA995> /xea/xa6/x95 JAVANESE LETTER CA ++<UA996> /xea/xa6/x96 JAVANESE LETTER CA MURDA ++<UA997> /xea/xa6/x97 JAVANESE LETTER JA ++<UA998> /xea/xa6/x98 JAVANESE LETTER NYA MURDA ++<UA999> /xea/xa6/x99 JAVANESE LETTER JA MAHAPRANA ++<UA99A> /xea/xa6/x9a JAVANESE LETTER NYA ++<UA99B> /xea/xa6/x9b JAVANESE LETTER TTA ++<UA99C> /xea/xa6/x9c JAVANESE LETTER TTA MAHAPRANA ++<UA99D> /xea/xa6/x9d JAVANESE LETTER DDA ++<UA99E> /xea/xa6/x9e JAVANESE LETTER DDA MAHAPRANA ++<UA99F> /xea/xa6/x9f JAVANESE LETTER NA MURDA ++<UA9A0> /xea/xa6/xa0 JAVANESE LETTER TA ++<UA9A1> /xea/xa6/xa1 JAVANESE LETTER TA MURDA ++<UA9A2> /xea/xa6/xa2 JAVANESE LETTER DA ++<UA9A3> /xea/xa6/xa3 JAVANESE LETTER DA MAHAPRANA ++<UA9A4> /xea/xa6/xa4 JAVANESE LETTER NA ++<UA9A5> /xea/xa6/xa5 JAVANESE LETTER PA ++<UA9A6> /xea/xa6/xa6 JAVANESE LETTER PA MURDA ++<UA9A7> /xea/xa6/xa7 JAVANESE LETTER BA ++<UA9A8> /xea/xa6/xa8 JAVANESE LETTER BA MURDA ++<UA9A9> /xea/xa6/xa9 JAVANESE LETTER MA ++<UA9AA> /xea/xa6/xaa JAVANESE LETTER YA ++<UA9AB> /xea/xa6/xab JAVANESE LETTER RA ++<UA9AC> /xea/xa6/xac JAVANESE LETTER RA AGUNG ++<UA9AD> /xea/xa6/xad JAVANESE LETTER LA ++<UA9AE> /xea/xa6/xae JAVANESE LETTER WA ++<UA9AF> /xea/xa6/xaf JAVANESE LETTER SA MURDA ++<UA9B0> /xea/xa6/xb0 JAVANESE LETTER SA MAHAPRANA ++<UA9B1> /xea/xa6/xb1 JAVANESE LETTER SA ++<UA9B2> /xea/xa6/xb2 JAVANESE LETTER HA ++<UA9B3> /xea/xa6/xb3 JAVANESE SIGN CECAK TELU ++<UA9B4> /xea/xa6/xb4 JAVANESE VOWEL SIGN TARUNG ++<UA9B5> /xea/xa6/xb5 JAVANESE VOWEL SIGN TOLONG ++<UA9B6> /xea/xa6/xb6 JAVANESE VOWEL SIGN WULU ++<UA9B7> /xea/xa6/xb7 JAVANESE VOWEL SIGN WULU MELIK ++<UA9B8> /xea/xa6/xb8 JAVANESE VOWEL SIGN SUKU ++<UA9B9> /xea/xa6/xb9 JAVANESE VOWEL SIGN SUKU MENDUT ++<UA9BA> /xea/xa6/xba JAVANESE VOWEL SIGN TALING ++<UA9BB> /xea/xa6/xbb JAVANESE VOWEL SIGN DIRGA MURE ++<UA9BC> /xea/xa6/xbc JAVANESE VOWEL SIGN PEPET ++<UA9BD> /xea/xa6/xbd JAVANESE CONSONANT SIGN KERET ++<UA9BE> /xea/xa6/xbe JAVANESE CONSONANT SIGN PENGKAL ++<UA9BF> /xea/xa6/xbf JAVANESE CONSONANT SIGN CAKRA ++<UA9C0> /xea/xa7/x80 JAVANESE PANGKON ++<UA9C1> /xea/xa7/x81 JAVANESE LEFT RERENGGAN ++<UA9C2> /xea/xa7/x82 JAVANESE RIGHT RERENGGAN ++<UA9C3> /xea/xa7/x83 JAVANESE PADA ANDAP ++<UA9C4> /xea/xa7/x84 JAVANESE PADA MADYA ++<UA9C5> /xea/xa7/x85 JAVANESE PADA LUHUR ++<UA9C6> /xea/xa7/x86 JAVANESE PADA WINDU ++<UA9C7> /xea/xa7/x87 JAVANESE PADA PANGKAT ++<UA9C8> /xea/xa7/x88 JAVANESE PADA LINGSA ++<UA9C9> /xea/xa7/x89 JAVANESE PADA LUNGSI ++<UA9CA> /xea/xa7/x8a JAVANESE PADA ADEG ++<UA9CB> /xea/xa7/x8b JAVANESE PADA ADEG ADEG ++<UA9CC> /xea/xa7/x8c JAVANESE PADA PISELEH ++<UA9CD> /xea/xa7/x8d JAVANESE TURNED PADA PISELEH ++<UA9CF> /xea/xa7/x8f JAVANESE PANGRANGKEP ++<UA9D0> /xea/xa7/x90 JAVANESE DIGIT ZERO ++<UA9D1> /xea/xa7/x91 JAVANESE DIGIT ONE ++<UA9D2> /xea/xa7/x92 JAVANESE DIGIT TWO ++<UA9D3> /xea/xa7/x93 JAVANESE DIGIT THREE ++<UA9D4> /xea/xa7/x94 JAVANESE DIGIT FOUR ++<UA9D5> /xea/xa7/x95 JAVANESE DIGIT FIVE ++<UA9D6> /xea/xa7/x96 JAVANESE DIGIT SIX ++<UA9D7> /xea/xa7/x97 JAVANESE DIGIT SEVEN ++<UA9D8> /xea/xa7/x98 JAVANESE DIGIT EIGHT ++<UA9D9> /xea/xa7/x99 JAVANESE DIGIT NINE ++<UA9DE> /xea/xa7/x9e JAVANESE PADA TIRTA TUMETES ++<UA9DF> /xea/xa7/x9f JAVANESE PADA ISEN-ISEN + <UAA00> /xea/xa8/x80 CHAM LETTER A + <UAA01> /xea/xa8/x81 CHAM LETTER I + <UAA02> /xea/xa8/x82 CHAM LETTER U +@@ -13564,6 +14476,194 @@ CHARMAP + <UAA5D> /xea/xa9/x9d CHAM PUNCTUATION DANDA + <UAA5E> /xea/xa9/x9e CHAM PUNCTUATION DOUBLE DANDA + <UAA5F> /xea/xa9/x9f CHAM PUNCTUATION TRIPLE DANDA ++<UAA60> /xea/xa9/xa0 MYANMAR LETTER KHAMTI GA ++<UAA61> /xea/xa9/xa1 MYANMAR LETTER KHAMTI CA ++<UAA62> /xea/xa9/xa2 MYANMAR LETTER KHAMTI CHA ++<UAA63> /xea/xa9/xa3 MYANMAR LETTER KHAMTI JA ++<UAA64> /xea/xa9/xa4 MYANMAR LETTER KHAMTI JHA ++<UAA65> /xea/xa9/xa5 MYANMAR LETTER KHAMTI NYA ++<UAA66> /xea/xa9/xa6 MYANMAR LETTER KHAMTI TTA ++<UAA67> /xea/xa9/xa7 MYANMAR LETTER KHAMTI TTHA ++<UAA68> /xea/xa9/xa8 MYANMAR LETTER KHAMTI DDA ++<UAA69> /xea/xa9/xa9 MYANMAR LETTER KHAMTI DDHA ++<UAA6A> /xea/xa9/xaa MYANMAR LETTER KHAMTI DHA ++<UAA6B> /xea/xa9/xab MYANMAR LETTER KHAMTI NA ++<UAA6C> /xea/xa9/xac MYANMAR LETTER KHAMTI SA ++<UAA6D> /xea/xa9/xad MYANMAR LETTER KHAMTI HA ++<UAA6E> /xea/xa9/xae MYANMAR LETTER KHAMTI HHA ++<UAA6F> /xea/xa9/xaf MYANMAR LETTER KHAMTI FA ++<UAA70> /xea/xa9/xb0 MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION ++<UAA71> /xea/xa9/xb1 MYANMAR LETTER KHAMTI XA ++<UAA72> /xea/xa9/xb2 MYANMAR LETTER KHAMTI ZA ++<UAA73> /xea/xa9/xb3 MYANMAR LETTER KHAMTI RA ++<UAA74> /xea/xa9/xb4 MYANMAR LOGOGRAM KHAMTI OAY ++<UAA75> /xea/xa9/xb5 MYANMAR LOGOGRAM KHAMTI QN ++<UAA76> /xea/xa9/xb6 MYANMAR LOGOGRAM KHAMTI HM ++<UAA77> /xea/xa9/xb7 MYANMAR SYMBOL AITON EXCLAMATION ++<UAA78> /xea/xa9/xb8 MYANMAR SYMBOL AITON ONE ++<UAA79> /xea/xa9/xb9 MYANMAR SYMBOL AITON TWO ++<UAA7A> /xea/xa9/xba MYANMAR LETTER AITON RA ++<UAA7B> /xea/xa9/xbb MYANMAR SIGN PAO KAREN TONE ++<UAA80> /xea/xaa/x80 TAI VIET LETTER LOW KO ++<UAA81> /xea/xaa/x81 TAI VIET LETTER HIGH KO ++<UAA82> /xea/xaa/x82 TAI VIET LETTER LOW KHO ++<UAA83> /xea/xaa/x83 TAI VIET LETTER HIGH KHO ++<UAA84> /xea/xaa/x84 TAI VIET LETTER LOW KHHO ++<UAA85> /xea/xaa/x85 TAI VIET LETTER HIGH KHHO ++<UAA86> /xea/xaa/x86 TAI VIET LETTER LOW GO ++<UAA87> /xea/xaa/x87 TAI VIET LETTER HIGH GO ++<UAA88> /xea/xaa/x88 TAI VIET LETTER LOW NGO ++<UAA89> /xea/xaa/x89 TAI VIET LETTER HIGH NGO ++<UAA8A> /xea/xaa/x8a TAI VIET LETTER LOW CO ++<UAA8B> /xea/xaa/x8b TAI VIET LETTER HIGH CO ++<UAA8C> /xea/xaa/x8c TAI VIET LETTER LOW CHO ++<UAA8D> /xea/xaa/x8d TAI VIET LETTER HIGH CHO ++<UAA8E> /xea/xaa/x8e TAI VIET LETTER LOW SO ++<UAA8F> /xea/xaa/x8f TAI VIET LETTER HIGH SO ++<UAA90> /xea/xaa/x90 TAI VIET LETTER LOW NYO ++<UAA91> /xea/xaa/x91 TAI VIET LETTER HIGH NYO ++<UAA92> /xea/xaa/x92 TAI VIET LETTER LOW DO ++<UAA93> /xea/xaa/x93 TAI VIET LETTER HIGH DO ++<UAA94> /xea/xaa/x94 TAI VIET LETTER LOW TO ++<UAA95> /xea/xaa/x95 TAI VIET LETTER HIGH TO ++<UAA96> /xea/xaa/x96 TAI VIET LETTER LOW THO ++<UAA97> /xea/xaa/x97 TAI VIET LETTER HIGH THO ++<UAA98> /xea/xaa/x98 TAI VIET LETTER LOW NO ++<UAA99> /xea/xaa/x99 TAI VIET LETTER HIGH NO ++<UAA9A> /xea/xaa/x9a TAI VIET LETTER LOW BO ++<UAA9B> /xea/xaa/x9b TAI VIET LETTER HIGH BO ++<UAA9C> /xea/xaa/x9c TAI VIET LETTER LOW PO ++<UAA9D> /xea/xaa/x9d TAI VIET LETTER HIGH PO ++<UAA9E> /xea/xaa/x9e TAI VIET LETTER LOW PHO ++<UAA9F> /xea/xaa/x9f TAI VIET LETTER HIGH PHO ++<UAAA0> /xea/xaa/xa0 TAI VIET LETTER LOW FO ++<UAAA1> /xea/xaa/xa1 TAI VIET LETTER HIGH FO ++<UAAA2> /xea/xaa/xa2 TAI VIET LETTER LOW MO ++<UAAA3> /xea/xaa/xa3 TAI VIET LETTER HIGH MO ++<UAAA4> /xea/xaa/xa4 TAI VIET LETTER LOW YO ++<UAAA5> /xea/xaa/xa5 TAI VIET LETTER HIGH YO ++<UAAA6> /xea/xaa/xa6 TAI VIET LETTER LOW RO ++<UAAA7> /xea/xaa/xa7 TAI VIET LETTER HIGH RO ++<UAAA8> /xea/xaa/xa8 TAI VIET LETTER LOW LO ++<UAAA9> /xea/xaa/xa9 TAI VIET LETTER HIGH LO ++<UAAAA> /xea/xaa/xaa TAI VIET LETTER LOW VO ++<UAAAB> /xea/xaa/xab TAI VIET LETTER HIGH VO ++<UAAAC> /xea/xaa/xac TAI VIET LETTER LOW HO ++<UAAAD> /xea/xaa/xad TAI VIET LETTER HIGH HO ++<UAAAE> /xea/xaa/xae TAI VIET LETTER LOW O ++<UAAAF> /xea/xaa/xaf TAI VIET LETTER HIGH O ++<UAAB0> /xea/xaa/xb0 TAI VIET MAI KANG ++<UAAB1> /xea/xaa/xb1 TAI VIET VOWEL AA ++<UAAB2> /xea/xaa/xb2 TAI VIET VOWEL I ++<UAAB3> /xea/xaa/xb3 TAI VIET VOWEL UE ++<UAAB4> /xea/xaa/xb4 TAI VIET VOWEL U ++<UAAB5> /xea/xaa/xb5 TAI VIET VOWEL E ++<UAAB6> /xea/xaa/xb6 TAI VIET VOWEL O ++<UAAB7> /xea/xaa/xb7 TAI VIET MAI KHIT ++<UAAB8> /xea/xaa/xb8 TAI VIET VOWEL IA ++<UAAB9> /xea/xaa/xb9 TAI VIET VOWEL UEA ++<UAABA> /xea/xaa/xba TAI VIET VOWEL UA ++<UAABB> /xea/xaa/xbb TAI VIET VOWEL AUE ++<UAABC> /xea/xaa/xbc TAI VIET VOWEL AY ++<UAABD> /xea/xaa/xbd TAI VIET VOWEL AN ++<UAABE> /xea/xaa/xbe TAI VIET VOWEL AM ++<UAABF> /xea/xaa/xbf TAI VIET TONE MAI EK ++<UAAC0> /xea/xab/x80 TAI VIET TONE MAI NUENG ++<UAAC1> /xea/xab/x81 TAI VIET TONE MAI THO ++<UAAC2> /xea/xab/x82 TAI VIET TONE MAI SONG ++<UAADB> /xea/xab/x9b TAI VIET SYMBOL KON ++<UAADC> /xea/xab/x9c TAI VIET SYMBOL NUENG ++<UAADD> /xea/xab/x9d TAI VIET SYMBOL SAM ++<UAADE> /xea/xab/x9e TAI VIET SYMBOL HO HOI ++<UAADF> /xea/xab/x9f TAI VIET SYMBOL KOI KOI ++<UAB01> /xea/xac/x81 ETHIOPIC SYLLABLE TTHU ++<UAB02> /xea/xac/x82 ETHIOPIC SYLLABLE TTHI ++<UAB03> /xea/xac/x83 ETHIOPIC SYLLABLE TTHAA ++<UAB04> /xea/xac/x84 ETHIOPIC SYLLABLE TTHEE ++<UAB05> /xea/xac/x85 ETHIOPIC SYLLABLE TTHE ++<UAB06> /xea/xac/x86 ETHIOPIC SYLLABLE TTHO ++<UAB09> /xea/xac/x89 ETHIOPIC SYLLABLE DDHU ++<UAB0A> /xea/xac/x8a ETHIOPIC SYLLABLE DDHI ++<UAB0B> /xea/xac/x8b ETHIOPIC SYLLABLE DDHAA ++<UAB0C> /xea/xac/x8c ETHIOPIC SYLLABLE DDHEE ++<UAB0D> /xea/xac/x8d ETHIOPIC SYLLABLE DDHE ++<UAB0E> /xea/xac/x8e ETHIOPIC SYLLABLE DDHO ++<UAB11> /xea/xac/x91 ETHIOPIC SYLLABLE DZU ++<UAB12> /xea/xac/x92 ETHIOPIC SYLLABLE DZI ++<UAB13> /xea/xac/x93 ETHIOPIC SYLLABLE DZAA ++<UAB14> /xea/xac/x94 ETHIOPIC SYLLABLE DZEE ++<UAB15> /xea/xac/x95 ETHIOPIC SYLLABLE DZE ++<UAB16> /xea/xac/x96 ETHIOPIC SYLLABLE DZO ++<UAB20> /xea/xac/xa0 ETHIOPIC SYLLABLE CCHHA ++<UAB21> /xea/xac/xa1 ETHIOPIC SYLLABLE CCHHU ++<UAB22> /xea/xac/xa2 ETHIOPIC SYLLABLE CCHHI ++<UAB23> /xea/xac/xa3 ETHIOPIC SYLLABLE CCHHAA ++<UAB24> /xea/xac/xa4 ETHIOPIC SYLLABLE CCHHEE ++<UAB25> /xea/xac/xa5 ETHIOPIC SYLLABLE CCHHE ++<UAB26> /xea/xac/xa6 ETHIOPIC SYLLABLE CCHHO ++<UAB28> /xea/xac/xa8 ETHIOPIC SYLLABLE BBA ++<UAB29> /xea/xac/xa9 ETHIOPIC SYLLABLE BBU ++<UAB2A> /xea/xac/xaa ETHIOPIC SYLLABLE BBI ++<UAB2B> /xea/xac/xab ETHIOPIC SYLLABLE BBAA ++<UAB2C> /xea/xac/xac ETHIOPIC SYLLABLE BBEE ++<UAB2D> /xea/xac/xad ETHIOPIC SYLLABLE BBE ++<UAB2E> /xea/xac/xae ETHIOPIC SYLLABLE BBO ++<UABC0> /xea/xaf/x80 MEETEI MAYEK LETTER KOK ++<UABC1> /xea/xaf/x81 MEETEI MAYEK LETTER SAM ++<UABC2> /xea/xaf/x82 MEETEI MAYEK LETTER LAI ++<UABC3> /xea/xaf/x83 MEETEI MAYEK LETTER MIT ++<UABC4> /xea/xaf/x84 MEETEI MAYEK LETTER PA ++<UABC5> /xea/xaf/x85 MEETEI MAYEK LETTER NA ++<UABC6> /xea/xaf/x86 MEETEI MAYEK LETTER CHIL ++<UABC7> /xea/xaf/x87 MEETEI MAYEK LETTER TIL ++<UABC8> /xea/xaf/x88 MEETEI MAYEK LETTER KHOU ++<UABC9> /xea/xaf/x89 MEETEI MAYEK LETTER NGOU ++<UABCA> /xea/xaf/x8a MEETEI MAYEK LETTER THOU ++<UABCB> /xea/xaf/x8b MEETEI MAYEK LETTER WAI ++<UABCC> /xea/xaf/x8c MEETEI MAYEK LETTER YANG ++<UABCD> /xea/xaf/x8d MEETEI MAYEK LETTER HUK ++<UABCE> /xea/xaf/x8e MEETEI MAYEK LETTER UN ++<UABCF> /xea/xaf/x8f MEETEI MAYEK LETTER I ++<UABD0> /xea/xaf/x90 MEETEI MAYEK LETTER PHAM ++<UABD1> /xea/xaf/x91 MEETEI MAYEK LETTER ATIYA ++<UABD2> /xea/xaf/x92 MEETEI MAYEK LETTER GOK ++<UABD3> /xea/xaf/x93 MEETEI MAYEK LETTER JHAM ++<UABD4> /xea/xaf/x94 MEETEI MAYEK LETTER RAI ++<UABD5> /xea/xaf/x95 MEETEI MAYEK LETTER BA ++<UABD6> /xea/xaf/x96 MEETEI MAYEK LETTER JIL ++<UABD7> /xea/xaf/x97 MEETEI MAYEK LETTER DIL ++<UABD8> /xea/xaf/x98 MEETEI MAYEK LETTER GHOU ++<UABD9> /xea/xaf/x99 MEETEI MAYEK LETTER DHOU ++<UABDA> /xea/xaf/x9a MEETEI MAYEK LETTER BHAM ++<UABDB> /xea/xaf/x9b MEETEI MAYEK LETTER KOK LONSUM ++<UABDC> /xea/xaf/x9c MEETEI MAYEK LETTER LAI LONSUM ++<UABDD> /xea/xaf/x9d MEETEI MAYEK LETTER MIT LONSUM ++<UABDE> /xea/xaf/x9e MEETEI MAYEK LETTER PA LONSUM ++<UABDF> /xea/xaf/x9f MEETEI MAYEK LETTER NA LONSUM ++<UABE0> /xea/xaf/xa0 MEETEI MAYEK LETTER TIL LONSUM ++<UABE1> /xea/xaf/xa1 MEETEI MAYEK LETTER NGOU LONSUM ++<UABE2> /xea/xaf/xa2 MEETEI MAYEK LETTER I LONSUM ++<UABE3> /xea/xaf/xa3 MEETEI MAYEK VOWEL SIGN ONAP ++<UABE4> /xea/xaf/xa4 MEETEI MAYEK VOWEL SIGN INAP ++<UABE5> /xea/xaf/xa5 MEETEI MAYEK VOWEL SIGN ANAP ++<UABE6> /xea/xaf/xa6 MEETEI MAYEK VOWEL SIGN YENAP ++<UABE7> /xea/xaf/xa7 MEETEI MAYEK VOWEL SIGN SOUNAP ++<UABE8> /xea/xaf/xa8 MEETEI MAYEK VOWEL SIGN UNAP ++<UABE9> /xea/xaf/xa9 MEETEI MAYEK VOWEL SIGN CHEINAP ++<UABEA> /xea/xaf/xaa MEETEI MAYEK VOWEL SIGN NUNG ++<UABEB> /xea/xaf/xab MEETEI MAYEK CHEIKHEI ++<UABEC> /xea/xaf/xac MEETEI MAYEK LUM IYEK ++<UABED> /xea/xaf/xad MEETEI MAYEK APUN IYEK ++<UABF0> /xea/xaf/xb0 MEETEI MAYEK DIGIT ZERO ++<UABF1> /xea/xaf/xb1 MEETEI MAYEK DIGIT ONE ++<UABF2> /xea/xaf/xb2 MEETEI MAYEK DIGIT TWO ++<UABF3> /xea/xaf/xb3 MEETEI MAYEK DIGIT THREE ++<UABF4> /xea/xaf/xb4 MEETEI MAYEK DIGIT FOUR ++<UABF5> /xea/xaf/xb5 MEETEI MAYEK DIGIT FIVE ++<UABF6> /xea/xaf/xb6 MEETEI MAYEK DIGIT SIX ++<UABF7> /xea/xaf/xb7 MEETEI MAYEK DIGIT SEVEN ++<UABF8> /xea/xaf/xb8 MEETEI MAYEK DIGIT EIGHT ++<UABF9> /xea/xaf/xb9 MEETEI MAYEK DIGIT NINE + <UAC00> /xea/xb0/x80 HANGUL SYLLABLE GA + <UAC01> /xea/xb0/x81 HANGUL SYLLABLE GAG + <UAC02> /xea/xb0/x82 HANGUL SYLLABLE GAGG +@@ -24736,6 +25836,78 @@ CHARMAP + <UD7A1> /xed/x9e/xa1 HANGUL SYLLABLE HIT + <UD7A2> /xed/x9e/xa2 HANGUL SYLLABLE HIP + <UD7A3> /xed/x9e/xa3 HANGUL SYLLABLE HIH ++<UD7B0> /xed/x9e/xb0 HANGUL JUNGSEONG O-YEO ++<UD7B1> /xed/x9e/xb1 HANGUL JUNGSEONG O-O-I ++<UD7B2> /xed/x9e/xb2 HANGUL JUNGSEONG YO-A ++<UD7B3> /xed/x9e/xb3 HANGUL JUNGSEONG YO-AE ++<UD7B4> /xed/x9e/xb4 HANGUL JUNGSEONG YO-EO ++<UD7B5> /xed/x9e/xb5 HANGUL JUNGSEONG U-YEO ++<UD7B6> /xed/x9e/xb6 HANGUL JUNGSEONG U-I-I ++<UD7B7> /xed/x9e/xb7 HANGUL JUNGSEONG YU-AE ++<UD7B8> /xed/x9e/xb8 HANGUL JUNGSEONG YU-O ++<UD7B9> /xed/x9e/xb9 HANGUL JUNGSEONG EU-A ++<UD7BA> /xed/x9e/xba HANGUL JUNGSEONG EU-EO ++<UD7BB> /xed/x9e/xbb HANGUL JUNGSEONG EU-E ++<UD7BC> /xed/x9e/xbc HANGUL JUNGSEONG EU-O ++<UD7BD> /xed/x9e/xbd HANGUL JUNGSEONG I-YA-O ++<UD7BE> /xed/x9e/xbe HANGUL JUNGSEONG I-YAE ++<UD7BF> /xed/x9e/xbf HANGUL JUNGSEONG I-YEO ++<UD7C0> /xed/x9f/x80 HANGUL JUNGSEONG I-YE ++<UD7C1> /xed/x9f/x81 HANGUL JUNGSEONG I-O-I ++<UD7C2> /xed/x9f/x82 HANGUL JUNGSEONG I-YO ++<UD7C3> /xed/x9f/x83 HANGUL JUNGSEONG I-YU ++<UD7C4> /xed/x9f/x84 HANGUL JUNGSEONG I-I ++<UD7C5> /xed/x9f/x85 HANGUL JUNGSEONG ARAEA-A ++<UD7C6> /xed/x9f/x86 HANGUL JUNGSEONG ARAEA-E ++<UD7CB> /xed/x9f/x8b HANGUL JONGSEONG NIEUN-RIEUL ++<UD7CC> /xed/x9f/x8c HANGUL JONGSEONG NIEUN-CHIEUCH ++<UD7CD> /xed/x9f/x8d HANGUL JONGSEONG SSANGTIKEUT ++<UD7CE> /xed/x9f/x8e HANGUL JONGSEONG SSANGTIKEUT-PIEUP ++<UD7CF> /xed/x9f/x8f HANGUL JONGSEONG TIKEUT-PIEUP ++<UD7D0> /xed/x9f/x90 HANGUL JONGSEONG TIKEUT-SIOS ++<UD7D1> /xed/x9f/x91 HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK ++<UD7D2> /xed/x9f/x92 HANGUL JONGSEONG TIKEUT-CIEUC ++<UD7D3> /xed/x9f/x93 HANGUL JONGSEONG TIKEUT-CHIEUCH ++<UD7D4> /xed/x9f/x94 HANGUL JONGSEONG TIKEUT-THIEUTH ++<UD7D5> /xed/x9f/x95 HANGUL JONGSEONG RIEUL-SSANGKIYEOK ++<UD7D6> /xed/x9f/x96 HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH ++<UD7D7> /xed/x9f/x97 HANGUL JONGSEONG SSANGRIEUL-KHIEUKH ++<UD7D8> /xed/x9f/x98 HANGUL JONGSEONG RIEUL-MIEUM-HIEUH ++<UD7D9> /xed/x9f/x99 HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT ++<UD7DA> /xed/x9f/x9a HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH ++<UD7DB> /xed/x9f/x9b HANGUL JONGSEONG RIEUL-YESIEUNG ++<UD7DC> /xed/x9f/x9c HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH ++<UD7DD> /xed/x9f/x9d HANGUL JONGSEONG KAPYEOUNRIEUL ++<UD7DE> /xed/x9f/x9e HANGUL JONGSEONG MIEUM-NIEUN ++<UD7DF> /xed/x9f/x9f HANGUL JONGSEONG MIEUM-SSANGNIEUN ++<UD7E0> /xed/x9f/xa0 HANGUL JONGSEONG SSANGMIEUM ++<UD7E1> /xed/x9f/xa1 HANGUL JONGSEONG MIEUM-PIEUP-SIOS ++<UD7E2> /xed/x9f/xa2 HANGUL JONGSEONG MIEUM-CIEUC ++<UD7E3> /xed/x9f/xa3 HANGUL JONGSEONG PIEUP-TIKEUT ++<UD7E4> /xed/x9f/xa4 HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH ++<UD7E5> /xed/x9f/xa5 HANGUL JONGSEONG PIEUP-MIEUM ++<UD7E6> /xed/x9f/xa6 HANGUL JONGSEONG SSANGPIEUP ++<UD7E7> /xed/x9f/xa7 HANGUL JONGSEONG PIEUP-SIOS-TIKEUT ++<UD7E8> /xed/x9f/xa8 HANGUL JONGSEONG PIEUP-CIEUC ++<UD7E9> /xed/x9f/xa9 HANGUL JONGSEONG PIEUP-CHIEUCH ++<UD7EA> /xed/x9f/xaa HANGUL JONGSEONG SIOS-MIEUM ++<UD7EB> /xed/x9f/xab HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP ++<UD7EC> /xed/x9f/xac HANGUL JONGSEONG SSANGSIOS-KIYEOK ++<UD7ED> /xed/x9f/xad HANGUL JONGSEONG SSANGSIOS-TIKEUT ++<UD7EE> /xed/x9f/xae HANGUL JONGSEONG SIOS-PANSIOS ++<UD7EF> /xed/x9f/xaf HANGUL JONGSEONG SIOS-CIEUC ++<UD7F0> /xed/x9f/xb0 HANGUL JONGSEONG SIOS-CHIEUCH ++<UD7F1> /xed/x9f/xb1 HANGUL JONGSEONG SIOS-THIEUTH ++<UD7F2> /xed/x9f/xb2 HANGUL JONGSEONG SIOS-HIEUH ++<UD7F3> /xed/x9f/xb3 HANGUL JONGSEONG PANSIOS-PIEUP ++<UD7F4> /xed/x9f/xb4 HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP ++<UD7F5> /xed/x9f/xb5 HANGUL JONGSEONG YESIEUNG-MIEUM ++<UD7F6> /xed/x9f/xb6 HANGUL JONGSEONG YESIEUNG-HIEUH ++<UD7F7> /xed/x9f/xb7 HANGUL JONGSEONG CIEUC-PIEUP ++<UD7F8> /xed/x9f/xb8 HANGUL JONGSEONG CIEUC-SSANGPIEUP ++<UD7F9> /xed/x9f/xb9 HANGUL JONGSEONG SSANGCIEUC ++<UD7FA> /xed/x9f/xba HANGUL JONGSEONG PHIEUPH-SIOS ++<UD7FB> /xed/x9f/xbb HANGUL JONGSEONG PHIEUPH-THIEUTH + % <UD800> /xed/xa0/x80 <Non Private Use High Surrogate, First> + % <UDB7F> /xed/xad/xbf <Non Private Use High Surrogate, Last> + % <UDB80> /xed/xae/x80 <Private Use High Surrogate, First> +@@ -25203,6 +26375,9 @@ CHARMAP + <UFA68> /xef/xa9/xa8 CJK COMPATIBILITY IDEOGRAPH-FA68 + <UFA69> /xef/xa9/xa9 CJK COMPATIBILITY IDEOGRAPH-FA69 + <UFA6A> /xef/xa9/xaa CJK COMPATIBILITY IDEOGRAPH-FA6A ++<UFA6B> /xef/xa9/xab CJK COMPATIBILITY IDEOGRAPH-FA6B ++<UFA6C> /xef/xa9/xac CJK COMPATIBILITY IDEOGRAPH-FA6C ++<UFA6D> /xef/xa9/xad CJK COMPATIBILITY IDEOGRAPH-FA6D + <UFA70> /xef/xa9/xb0 CJK COMPATIBILITY IDEOGRAPH-FA70 + <UFA71> /xef/xa9/xb1 CJK COMPATIBILITY IDEOGRAPH-FA71 + <UFA72> /xef/xa9/xb2 CJK COMPATIBILITY IDEOGRAPH-FA72 +@@ -25465,6 +26640,22 @@ CHARMAP + <UFBAF> /xef/xae/xaf ARABIC LETTER YEH BARREE FINAL FORM + <UFBB0> /xef/xae/xb0 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM + <UFBB1> /xef/xae/xb1 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM ++<UFBB2> /xef/xae/xb2 ARABIC SYMBOL DOT ABOVE ++<UFBB3> /xef/xae/xb3 ARABIC SYMBOL DOT BELOW ++<UFBB4> /xef/xae/xb4 ARABIC SYMBOL TWO DOTS ABOVE ++<UFBB5> /xef/xae/xb5 ARABIC SYMBOL TWO DOTS BELOW ++<UFBB6> /xef/xae/xb6 ARABIC SYMBOL THREE DOTS ABOVE ++<UFBB7> /xef/xae/xb7 ARABIC SYMBOL THREE DOTS BELOW ++<UFBB8> /xef/xae/xb8 ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE ++<UFBB9> /xef/xae/xb9 ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW ++<UFBBA> /xef/xae/xba ARABIC SYMBOL FOUR DOTS ABOVE ++<UFBBB> /xef/xae/xbb ARABIC SYMBOL FOUR DOTS BELOW ++<UFBBC> /xef/xae/xbc ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW ++<UFBBD> /xef/xae/xbd ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE ++<UFBBE> /xef/xae/xbe ARABIC SYMBOL TWO DOTS VERTICALLY BELOW ++<UFBBF> /xef/xae/xbf ARABIC SYMBOL RING ++<UFBC0> /xef/xaf/x80 ARABIC SYMBOL SMALL TAH ABOVE ++<UFBC1> /xef/xaf/x81 ARABIC SYMBOL SMALL TAH BELOW + <UFBD3> /xef/xaf/x93 ARABIC LETTER NG ISOLATED FORM + <UFBD4> /xef/xaf/x94 ARABIC LETTER NG FINAL FORM + <UFBD5> /xef/xaf/x95 ARABIC LETTER NG INITIAL FORM +@@ -27269,6 +28460,37 @@ CHARMAP + <U00010838> /xf0/x90/xa0/xb8 CYPRIOT SYLLABLE XE + <U0001083C> /xf0/x90/xa0/xbc CYPRIOT SYLLABLE ZA + <U0001083F> /xf0/x90/xa0/xbf CYPRIOT SYLLABLE ZO ++<U00010840> /xf0/x90/xa1/x80 IMPERIAL ARAMAIC LETTER ALEPH ++<U00010841> /xf0/x90/xa1/x81 IMPERIAL ARAMAIC LETTER BETH ++<U00010842> /xf0/x90/xa1/x82 IMPERIAL ARAMAIC LETTER GIMEL ++<U00010843> /xf0/x90/xa1/x83 IMPERIAL ARAMAIC LETTER DALETH ++<U00010844> /xf0/x90/xa1/x84 IMPERIAL ARAMAIC LETTER HE ++<U00010845> /xf0/x90/xa1/x85 IMPERIAL ARAMAIC LETTER WAW ++<U00010846> /xf0/x90/xa1/x86 IMPERIAL ARAMAIC LETTER ZAYIN ++<U00010847> /xf0/x90/xa1/x87 IMPERIAL ARAMAIC LETTER HETH ++<U00010848> /xf0/x90/xa1/x88 IMPERIAL ARAMAIC LETTER TETH ++<U00010849> /xf0/x90/xa1/x89 IMPERIAL ARAMAIC LETTER YODH ++<U0001084A> /xf0/x90/xa1/x8a IMPERIAL ARAMAIC LETTER KAPH ++<U0001084B> /xf0/x90/xa1/x8b IMPERIAL ARAMAIC LETTER LAMEDH ++<U0001084C> /xf0/x90/xa1/x8c IMPERIAL ARAMAIC LETTER MEM ++<U0001084D> /xf0/x90/xa1/x8d IMPERIAL ARAMAIC LETTER NUN ++<U0001084E> /xf0/x90/xa1/x8e IMPERIAL ARAMAIC LETTER SAMEKH ++<U0001084F> /xf0/x90/xa1/x8f IMPERIAL ARAMAIC LETTER AYIN ++<U00010850> /xf0/x90/xa1/x90 IMPERIAL ARAMAIC LETTER PE ++<U00010851> /xf0/x90/xa1/x91 IMPERIAL ARAMAIC LETTER SADHE ++<U00010852> /xf0/x90/xa1/x92 IMPERIAL ARAMAIC LETTER QOPH ++<U00010853> /xf0/x90/xa1/x93 IMPERIAL ARAMAIC LETTER RESH ++<U00010854> /xf0/x90/xa1/x94 IMPERIAL ARAMAIC LETTER SHIN ++<U00010855> /xf0/x90/xa1/x95 IMPERIAL ARAMAIC LETTER TAW ++<U00010857> /xf0/x90/xa1/x97 IMPERIAL ARAMAIC SECTION SIGN ++<U00010858> /xf0/x90/xa1/x98 IMPERIAL ARAMAIC NUMBER ONE ++<U00010859> /xf0/x90/xa1/x99 IMPERIAL ARAMAIC NUMBER TWO ++<U0001085A> /xf0/x90/xa1/x9a IMPERIAL ARAMAIC NUMBER THREE ++<U0001085B> /xf0/x90/xa1/x9b IMPERIAL ARAMAIC NUMBER TEN ++<U0001085C> /xf0/x90/xa1/x9c IMPERIAL ARAMAIC NUMBER TWENTY ++<U0001085D> /xf0/x90/xa1/x9d IMPERIAL ARAMAIC NUMBER ONE HUNDRED ++<U0001085E> /xf0/x90/xa1/x9e IMPERIAL ARAMAIC NUMBER ONE THOUSAND ++<U0001085F> /xf0/x90/xa1/x9f IMPERIAL ARAMAIC NUMBER TEN THOUSAND + <U00010900> /xf0/x90/xa4/x80 PHOENICIAN LETTER ALF + <U00010901> /xf0/x90/xa4/x81 PHOENICIAN LETTER BET + <U00010902> /xf0/x90/xa4/x82 PHOENICIAN LETTER GAML +@@ -27295,6 +28517,8 @@ CHARMAP + <U00010917> /xf0/x90/xa4/x97 PHOENICIAN NUMBER TEN + <U00010918> /xf0/x90/xa4/x98 PHOENICIAN NUMBER TWENTY + <U00010919> /xf0/x90/xa4/x99 PHOENICIAN NUMBER ONE HUNDRED ++<U0001091A> /xf0/x90/xa4/x9a PHOENICIAN NUMBER TWO ++<U0001091B> /xf0/x90/xa4/x9b PHOENICIAN NUMBER THREE + <U0001091F> /xf0/x90/xa4/x9f PHOENICIAN WORD SEPARATOR + <U00010920> /xf0/x90/xa4/xa0 LYDIAN LETTER A + <U00010921> /xf0/x90/xa4/xa1 LYDIAN LETTER B +@@ -27388,6 +28612,434 @@ CHARMAP + <U00010A56> /xf0/x90/xa9/x96 KHAROSHTHI PUNCTUATION DANDA + <U00010A57> /xf0/x90/xa9/x97 KHAROSHTHI PUNCTUATION DOUBLE DANDA + <U00010A58> /xf0/x90/xa9/x98 KHAROSHTHI PUNCTUATION LINES ++<U00010A60> /xf0/x90/xa9/xa0 OLD SOUTH ARABIAN LETTER HE ++<U00010A61> /xf0/x90/xa9/xa1 OLD SOUTH ARABIAN LETTER LAMEDH ++<U00010A62> /xf0/x90/xa9/xa2 OLD SOUTH ARABIAN LETTER HETH ++<U00010A63> /xf0/x90/xa9/xa3 OLD SOUTH ARABIAN LETTER MEM ++<U00010A64> /xf0/x90/xa9/xa4 OLD SOUTH ARABIAN LETTER QOPH ++<U00010A65> /xf0/x90/xa9/xa5 OLD SOUTH ARABIAN LETTER WAW ++<U00010A66> /xf0/x90/xa9/xa6 OLD SOUTH ARABIAN LETTER SHIN ++<U00010A67> /xf0/x90/xa9/xa7 OLD SOUTH ARABIAN LETTER RESH ++<U00010A68> /xf0/x90/xa9/xa8 OLD SOUTH ARABIAN LETTER BETH ++<U00010A69> /xf0/x90/xa9/xa9 OLD SOUTH ARABIAN LETTER TAW ++<U00010A6A> /xf0/x90/xa9/xaa OLD SOUTH ARABIAN LETTER SAT ++<U00010A6B> /xf0/x90/xa9/xab OLD SOUTH ARABIAN LETTER KAPH ++<U00010A6C> /xf0/x90/xa9/xac OLD SOUTH ARABIAN LETTER NUN ++<U00010A6D> /xf0/x90/xa9/xad OLD SOUTH ARABIAN LETTER KHETH ++<U00010A6E> /xf0/x90/xa9/xae OLD SOUTH ARABIAN LETTER SADHE ++<U00010A6F> /xf0/x90/xa9/xaf OLD SOUTH ARABIAN LETTER SAMEKH ++<U00010A70> /xf0/x90/xa9/xb0 OLD SOUTH ARABIAN LETTER FE ++<U00010A71> /xf0/x90/xa9/xb1 OLD SOUTH ARABIAN LETTER ALEF ++<U00010A72> /xf0/x90/xa9/xb2 OLD SOUTH ARABIAN LETTER AYN ++<U00010A73> /xf0/x90/xa9/xb3 OLD SOUTH ARABIAN LETTER DHADHE ++<U00010A74> /xf0/x90/xa9/xb4 OLD SOUTH ARABIAN LETTER GIMEL ++<U00010A75> /xf0/x90/xa9/xb5 OLD SOUTH ARABIAN LETTER DALETH ++<U00010A76> /xf0/x90/xa9/xb6 OLD SOUTH ARABIAN LETTER GHAYN ++<U00010A77> /xf0/x90/xa9/xb7 OLD SOUTH ARABIAN LETTER TETH ++<U00010A78> /xf0/x90/xa9/xb8 OLD SOUTH ARABIAN LETTER ZAYN ++<U00010A79> /xf0/x90/xa9/xb9 OLD SOUTH ARABIAN LETTER DHALETH ++<U00010A7A> /xf0/x90/xa9/xba OLD SOUTH ARABIAN LETTER YODH ++<U00010A7B> /xf0/x90/xa9/xbb OLD SOUTH ARABIAN LETTER THAW ++<U00010A7C> /xf0/x90/xa9/xbc OLD SOUTH ARABIAN LETTER THETH ++<U00010A7D> /xf0/x90/xa9/xbd OLD SOUTH ARABIAN NUMBER ONE ++<U00010A7E> /xf0/x90/xa9/xbe OLD SOUTH ARABIAN NUMBER FIFTY ++<U00010A7F> /xf0/x90/xa9/xbf OLD SOUTH ARABIAN NUMERIC INDICATOR ++<U00010B00> /xf0/x90/xac/x80 AVESTAN LETTER A ++<U00010B01> /xf0/x90/xac/x81 AVESTAN LETTER AA ++<U00010B02> /xf0/x90/xac/x82 AVESTAN LETTER AO ++<U00010B03> /xf0/x90/xac/x83 AVESTAN LETTER AAO ++<U00010B04> /xf0/x90/xac/x84 AVESTAN LETTER AN ++<U00010B05> /xf0/x90/xac/x85 AVESTAN LETTER AAN ++<U00010B06> /xf0/x90/xac/x86 AVESTAN LETTER AE ++<U00010B07> /xf0/x90/xac/x87 AVESTAN LETTER AEE ++<U00010B08> /xf0/x90/xac/x88 AVESTAN LETTER E ++<U00010B09> /xf0/x90/xac/x89 AVESTAN LETTER EE ++<U00010B0A> /xf0/x90/xac/x8a AVESTAN LETTER O ++<U00010B0B> /xf0/x90/xac/x8b AVESTAN LETTER OO ++<U00010B0C> /xf0/x90/xac/x8c AVESTAN LETTER I ++<U00010B0D> /xf0/x90/xac/x8d AVESTAN LETTER II ++<U00010B0E> /xf0/x90/xac/x8e AVESTAN LETTER U ++<U00010B0F> /xf0/x90/xac/x8f AVESTAN LETTER UU ++<U00010B10> /xf0/x90/xac/x90 AVESTAN LETTER KE ++<U00010B11> /xf0/x90/xac/x91 AVESTAN LETTER XE ++<U00010B12> /xf0/x90/xac/x92 AVESTAN LETTER XYE ++<U00010B13> /xf0/x90/xac/x93 AVESTAN LETTER XVE ++<U00010B14> /xf0/x90/xac/x94 AVESTAN LETTER GE ++<U00010B15> /xf0/x90/xac/x95 AVESTAN LETTER GGE ++<U00010B16> /xf0/x90/xac/x96 AVESTAN LETTER GHE ++<U00010B17> /xf0/x90/xac/x97 AVESTAN LETTER CE ++<U00010B18> /xf0/x90/xac/x98 AVESTAN LETTER JE ++<U00010B19> /xf0/x90/xac/x99 AVESTAN LETTER TE ++<U00010B1A> /xf0/x90/xac/x9a AVESTAN LETTER THE ++<U00010B1B> /xf0/x90/xac/x9b AVESTAN LETTER DE ++<U00010B1C> /xf0/x90/xac/x9c AVESTAN LETTER DHE ++<U00010B1D> /xf0/x90/xac/x9d AVESTAN LETTER TTE ++<U00010B1E> /xf0/x90/xac/x9e AVESTAN LETTER PE ++<U00010B1F> /xf0/x90/xac/x9f AVESTAN LETTER FE ++<U00010B20> /xf0/x90/xac/xa0 AVESTAN LETTER BE ++<U00010B21> /xf0/x90/xac/xa1 AVESTAN LETTER BHE ++<U00010B22> /xf0/x90/xac/xa2 AVESTAN LETTER NGE ++<U00010B23> /xf0/x90/xac/xa3 AVESTAN LETTER NGYE ++<U00010B24> /xf0/x90/xac/xa4 AVESTAN LETTER NGVE ++<U00010B25> /xf0/x90/xac/xa5 AVESTAN LETTER NE ++<U00010B26> /xf0/x90/xac/xa6 AVESTAN LETTER NYE ++<U00010B27> /xf0/x90/xac/xa7 AVESTAN LETTER NNE ++<U00010B28> /xf0/x90/xac/xa8 AVESTAN LETTER ME ++<U00010B29> /xf0/x90/xac/xa9 AVESTAN LETTER HME ++<U00010B2A> /xf0/x90/xac/xaa AVESTAN LETTER YYE ++<U00010B2B> /xf0/x90/xac/xab AVESTAN LETTER YE ++<U00010B2C> /xf0/x90/xac/xac AVESTAN LETTER VE ++<U00010B2D> /xf0/x90/xac/xad AVESTAN LETTER RE ++<U00010B2E> /xf0/x90/xac/xae AVESTAN LETTER LE ++<U00010B2F> /xf0/x90/xac/xaf AVESTAN LETTER SE ++<U00010B30> /xf0/x90/xac/xb0 AVESTAN LETTER ZE ++<U00010B31> /xf0/x90/xac/xb1 AVESTAN LETTER SHE ++<U00010B32> /xf0/x90/xac/xb2 AVESTAN LETTER ZHE ++<U00010B33> /xf0/x90/xac/xb3 AVESTAN LETTER SHYE ++<U00010B34> /xf0/x90/xac/xb4 AVESTAN LETTER SSHE ++<U00010B35> /xf0/x90/xac/xb5 AVESTAN LETTER HE ++<U00010B39> /xf0/x90/xac/xb9 AVESTAN ABBREVIATION MARK ++<U00010B3A> /xf0/x90/xac/xba TINY TWO DOTS OVER ONE DOT PUNCTUATION ++<U00010B3B> /xf0/x90/xac/xbb SMALL TWO DOTS OVER ONE DOT PUNCTUATION ++<U00010B3C> /xf0/x90/xac/xbc LARGE TWO DOTS OVER ONE DOT PUNCTUATION ++<U00010B3D> /xf0/x90/xac/xbd LARGE ONE DOT OVER TWO DOTS PUNCTUATION ++<U00010B3E> /xf0/x90/xac/xbe LARGE TWO RINGS OVER ONE RING PUNCTUATION ++<U00010B3F> /xf0/x90/xac/xbf LARGE ONE RING OVER TWO RINGS PUNCTUATION ++<U00010B40> /xf0/x90/xad/x80 INSCRIPTIONAL PARTHIAN LETTER ALEPH ++<U00010B41> /xf0/x90/xad/x81 INSCRIPTIONAL PARTHIAN LETTER BETH ++<U00010B42> /xf0/x90/xad/x82 INSCRIPTIONAL PARTHIAN LETTER GIMEL ++<U00010B43> /xf0/x90/xad/x83 INSCRIPTIONAL PARTHIAN LETTER DALETH ++<U00010B44> /xf0/x90/xad/x84 INSCRIPTIONAL PARTHIAN LETTER HE ++<U00010B45> /xf0/x90/xad/x85 INSCRIPTIONAL PARTHIAN LETTER WAW ++<U00010B46> /xf0/x90/xad/x86 INSCRIPTIONAL PARTHIAN LETTER ZAYIN ++<U00010B47> /xf0/x90/xad/x87 INSCRIPTIONAL PARTHIAN LETTER HETH ++<U00010B48> /xf0/x90/xad/x88 INSCRIPTIONAL PARTHIAN LETTER TETH ++<U00010B49> /xf0/x90/xad/x89 INSCRIPTIONAL PARTHIAN LETTER YODH ++<U00010B4A> /xf0/x90/xad/x8a INSCRIPTIONAL PARTHIAN LETTER KAPH ++<U00010B4B> /xf0/x90/xad/x8b INSCRIPTIONAL PARTHIAN LETTER LAMEDH ++<U00010B4C> /xf0/x90/xad/x8c INSCRIPTIONAL PARTHIAN LETTER MEM ++<U00010B4D> /xf0/x90/xad/x8d INSCRIPTIONAL PARTHIAN LETTER NUN ++<U00010B4E> /xf0/x90/xad/x8e INSCRIPTIONAL PARTHIAN LETTER SAMEKH ++<U00010B4F> /xf0/x90/xad/x8f INSCRIPTIONAL PARTHIAN LETTER AYIN ++<U00010B50> /xf0/x90/xad/x90 INSCRIPTIONAL PARTHIAN LETTER PE ++<U00010B51> /xf0/x90/xad/x91 INSCRIPTIONAL PARTHIAN LETTER SADHE ++<U00010B52> /xf0/x90/xad/x92 INSCRIPTIONAL PARTHIAN LETTER QOPH ++<U00010B53> /xf0/x90/xad/x93 INSCRIPTIONAL PARTHIAN LETTER RESH ++<U00010B54> /xf0/x90/xad/x94 INSCRIPTIONAL PARTHIAN LETTER SHIN ++<U00010B55> /xf0/x90/xad/x95 INSCRIPTIONAL PARTHIAN LETTER TAW ++<U00010B58> /xf0/x90/xad/x98 INSCRIPTIONAL PARTHIAN NUMBER ONE ++<U00010B59> /xf0/x90/xad/x99 INSCRIPTIONAL PARTHIAN NUMBER TWO ++<U00010B5A> /xf0/x90/xad/x9a INSCRIPTIONAL PARTHIAN NUMBER THREE ++<U00010B5B> /xf0/x90/xad/x9b INSCRIPTIONAL PARTHIAN NUMBER FOUR ++<U00010B5C> /xf0/x90/xad/x9c INSCRIPTIONAL PARTHIAN NUMBER TEN ++<U00010B5D> /xf0/x90/xad/x9d INSCRIPTIONAL PARTHIAN NUMBER TWENTY ++<U00010B5E> /xf0/x90/xad/x9e INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED ++<U00010B5F> /xf0/x90/xad/x9f INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND ++<U00010B60> /xf0/x90/xad/xa0 INSCRIPTIONAL PAHLAVI LETTER ALEPH ++<U00010B61> /xf0/x90/xad/xa1 INSCRIPTIONAL PAHLAVI LETTER BETH ++<U00010B62> /xf0/x90/xad/xa2 INSCRIPTIONAL PAHLAVI LETTER GIMEL ++<U00010B63> /xf0/x90/xad/xa3 INSCRIPTIONAL PAHLAVI LETTER DALETH ++<U00010B64> /xf0/x90/xad/xa4 INSCRIPTIONAL PAHLAVI LETTER HE ++<U00010B65> /xf0/x90/xad/xa5 INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH ++<U00010B66> /xf0/x90/xad/xa6 INSCRIPTIONAL PAHLAVI LETTER ZAYIN ++<U00010B67> /xf0/x90/xad/xa7 INSCRIPTIONAL PAHLAVI LETTER HETH ++<U00010B68> /xf0/x90/xad/xa8 INSCRIPTIONAL PAHLAVI LETTER TETH ++<U00010B69> /xf0/x90/xad/xa9 INSCRIPTIONAL PAHLAVI LETTER YODH ++<U00010B6A> /xf0/x90/xad/xaa INSCRIPTIONAL PAHLAVI LETTER KAPH ++<U00010B6B> /xf0/x90/xad/xab INSCRIPTIONAL PAHLAVI LETTER LAMEDH ++<U00010B6C> /xf0/x90/xad/xac INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH ++<U00010B6D> /xf0/x90/xad/xad INSCRIPTIONAL PAHLAVI LETTER NUN ++<U00010B6E> /xf0/x90/xad/xae INSCRIPTIONAL PAHLAVI LETTER SAMEKH ++<U00010B6F> /xf0/x90/xad/xaf INSCRIPTIONAL PAHLAVI LETTER PE ++<U00010B70> /xf0/x90/xad/xb0 INSCRIPTIONAL PAHLAVI LETTER SADHE ++<U00010B71> /xf0/x90/xad/xb1 INSCRIPTIONAL PAHLAVI LETTER SHIN ++<U00010B72> /xf0/x90/xad/xb2 INSCRIPTIONAL PAHLAVI LETTER TAW ++<U00010B78> /xf0/x90/xad/xb8 INSCRIPTIONAL PAHLAVI NUMBER ONE ++<U00010B79> /xf0/x90/xad/xb9 INSCRIPTIONAL PAHLAVI NUMBER TWO ++<U00010B7A> /xf0/x90/xad/xba INSCRIPTIONAL PAHLAVI NUMBER THREE ++<U00010B7B> /xf0/x90/xad/xbb INSCRIPTIONAL PAHLAVI NUMBER FOUR ++<U00010B7C> /xf0/x90/xad/xbc INSCRIPTIONAL PAHLAVI NUMBER TEN ++<U00010B7D> /xf0/x90/xad/xbd INSCRIPTIONAL PAHLAVI NUMBER TWENTY ++<U00010B7E> /xf0/x90/xad/xbe INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED ++<U00010B7F> /xf0/x90/xad/xbf INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND ++<U00010C00> /xf0/x90/xb0/x80 OLD TURKIC LETTER ORKHON A ++<U00010C01> /xf0/x90/xb0/x81 OLD TURKIC LETTER YENISEI A ++<U00010C02> /xf0/x90/xb0/x82 OLD TURKIC LETTER YENISEI AE ++<U00010C03> /xf0/x90/xb0/x83 OLD TURKIC LETTER ORKHON I ++<U00010C04> /xf0/x90/xb0/x84 OLD TURKIC LETTER YENISEI I ++<U00010C05> /xf0/x90/xb0/x85 OLD TURKIC LETTER YENISEI E ++<U00010C06> /xf0/x90/xb0/x86 OLD TURKIC LETTER ORKHON O ++<U00010C07> /xf0/x90/xb0/x87 OLD TURKIC LETTER ORKHON OE ++<U00010C08> /xf0/x90/xb0/x88 OLD TURKIC LETTER YENISEI OE ++<U00010C09> /xf0/x90/xb0/x89 OLD TURKIC LETTER ORKHON AB ++<U00010C0A> /xf0/x90/xb0/x8a OLD TURKIC LETTER YENISEI AB ++<U00010C0B> /xf0/x90/xb0/x8b OLD TURKIC LETTER ORKHON AEB ++<U00010C0C> /xf0/x90/xb0/x8c OLD TURKIC LETTER YENISEI AEB ++<U00010C0D> /xf0/x90/xb0/x8d OLD TURKIC LETTER ORKHON AG ++<U00010C0E> /xf0/x90/xb0/x8e OLD TURKIC LETTER YENISEI AG ++<U00010C0F> /xf0/x90/xb0/x8f OLD TURKIC LETTER ORKHON AEG ++<U00010C10> /xf0/x90/xb0/x90 OLD TURKIC LETTER YENISEI AEG ++<U00010C11> /xf0/x90/xb0/x91 OLD TURKIC LETTER ORKHON AD ++<U00010C12> /xf0/x90/xb0/x92 OLD TURKIC LETTER YENISEI AD ++<U00010C13> /xf0/x90/xb0/x93 OLD TURKIC LETTER ORKHON AED ++<U00010C14> /xf0/x90/xb0/x94 OLD TURKIC LETTER ORKHON EZ ++<U00010C15> /xf0/x90/xb0/x95 OLD TURKIC LETTER YENISEI EZ ++<U00010C16> /xf0/x90/xb0/x96 OLD TURKIC LETTER ORKHON AY ++<U00010C17> /xf0/x90/xb0/x97 OLD TURKIC LETTER YENISEI AY ++<U00010C18> /xf0/x90/xb0/x98 OLD TURKIC LETTER ORKHON AEY ++<U00010C19> /xf0/x90/xb0/x99 OLD TURKIC LETTER YENISEI AEY ++<U00010C1A> /xf0/x90/xb0/x9a OLD TURKIC LETTER ORKHON AEK ++<U00010C1B> /xf0/x90/xb0/x9b OLD TURKIC LETTER YENISEI AEK ++<U00010C1C> /xf0/x90/xb0/x9c OLD TURKIC LETTER ORKHON OEK ++<U00010C1D> /xf0/x90/xb0/x9d OLD TURKIC LETTER YENISEI OEK ++<U00010C1E> /xf0/x90/xb0/x9e OLD TURKIC LETTER ORKHON AL ++<U00010C1F> /xf0/x90/xb0/x9f OLD TURKIC LETTER YENISEI AL ++<U00010C20> /xf0/x90/xb0/xa0 OLD TURKIC LETTER ORKHON AEL ++<U00010C21> /xf0/x90/xb0/xa1 OLD TURKIC LETTER ORKHON ELT ++<U00010C22> /xf0/x90/xb0/xa2 OLD TURKIC LETTER ORKHON EM ++<U00010C23> /xf0/x90/xb0/xa3 OLD TURKIC LETTER ORKHON AN ++<U00010C24> /xf0/x90/xb0/xa4 OLD TURKIC LETTER ORKHON AEN ++<U00010C25> /xf0/x90/xb0/xa5 OLD TURKIC LETTER YENISEI AEN ++<U00010C26> /xf0/x90/xb0/xa6 OLD TURKIC LETTER ORKHON ENT ++<U00010C27> /xf0/x90/xb0/xa7 OLD TURKIC LETTER YENISEI ENT ++<U00010C28> /xf0/x90/xb0/xa8 OLD TURKIC LETTER ORKHON ENC ++<U00010C29> /xf0/x90/xb0/xa9 OLD TURKIC LETTER YENISEI ENC ++<U00010C2A> /xf0/x90/xb0/xaa OLD TURKIC LETTER ORKHON ENY ++<U00010C2B> /xf0/x90/xb0/xab OLD TURKIC LETTER YENISEI ENY ++<U00010C2C> /xf0/x90/xb0/xac OLD TURKIC LETTER YENISEI ANG ++<U00010C2D> /xf0/x90/xb0/xad OLD TURKIC LETTER ORKHON ENG ++<U00010C2E> /xf0/x90/xb0/xae OLD TURKIC LETTER YENISEI AENG ++<U00010C2F> /xf0/x90/xb0/xaf OLD TURKIC LETTER ORKHON EP ++<U00010C30> /xf0/x90/xb0/xb0 OLD TURKIC LETTER ORKHON OP ++<U00010C31> /xf0/x90/xb0/xb1 OLD TURKIC LETTER ORKHON IC ++<U00010C32> /xf0/x90/xb0/xb2 OLD TURKIC LETTER ORKHON EC ++<U00010C33> /xf0/x90/xb0/xb3 OLD TURKIC LETTER YENISEI EC ++<U00010C34> /xf0/x90/xb0/xb4 OLD TURKIC LETTER ORKHON AQ ++<U00010C35> /xf0/x90/xb0/xb5 OLD TURKIC LETTER YENISEI AQ ++<U00010C36> /xf0/x90/xb0/xb6 OLD TURKIC LETTER ORKHON IQ ++<U00010C37> /xf0/x90/xb0/xb7 OLD TURKIC LETTER YENISEI IQ ++<U00010C38> /xf0/x90/xb0/xb8 OLD TURKIC LETTER ORKHON OQ ++<U00010C39> /xf0/x90/xb0/xb9 OLD TURKIC LETTER YENISEI OQ ++<U00010C3A> /xf0/x90/xb0/xba OLD TURKIC LETTER ORKHON AR ++<U00010C3B> /xf0/x90/xb0/xbb OLD TURKIC LETTER YENISEI AR ++<U00010C3C> /xf0/x90/xb0/xbc OLD TURKIC LETTER ORKHON AER ++<U00010C3D> /xf0/x90/xb0/xbd OLD TURKIC LETTER ORKHON AS ++<U00010C3E> /xf0/x90/xb0/xbe OLD TURKIC LETTER ORKHON AES ++<U00010C3F> /xf0/x90/xb0/xbf OLD TURKIC LETTER ORKHON ASH ++<U00010C40> /xf0/x90/xb1/x80 OLD TURKIC LETTER YENISEI ASH ++<U00010C41> /xf0/x90/xb1/x81 OLD TURKIC LETTER ORKHON ESH ++<U00010C42> /xf0/x90/xb1/x82 OLD TURKIC LETTER YENISEI ESH ++<U00010C43> /xf0/x90/xb1/x83 OLD TURKIC LETTER ORKHON AT ++<U00010C44> /xf0/x90/xb1/x84 OLD TURKIC LETTER YENISEI AT ++<U00010C45> /xf0/x90/xb1/x85 OLD TURKIC LETTER ORKHON AET ++<U00010C46> /xf0/x90/xb1/x86 OLD TURKIC LETTER YENISEI AET ++<U00010C47> /xf0/x90/xb1/x87 OLD TURKIC LETTER ORKHON OT ++<U00010C48> /xf0/x90/xb1/x88 OLD TURKIC LETTER ORKHON BASH ++<U00010E60> /xf0/x90/xb9/xa0 RUMI DIGIT ONE ++<U00010E61> /xf0/x90/xb9/xa1 RUMI DIGIT TWO ++<U00010E62> /xf0/x90/xb9/xa2 RUMI DIGIT THREE ++<U00010E63> /xf0/x90/xb9/xa3 RUMI DIGIT FOUR ++<U00010E64> /xf0/x90/xb9/xa4 RUMI DIGIT FIVE ++<U00010E65> /xf0/x90/xb9/xa5 RUMI DIGIT SIX ++<U00010E66> /xf0/x90/xb9/xa6 RUMI DIGIT SEVEN ++<U00010E67> /xf0/x90/xb9/xa7 RUMI DIGIT EIGHT ++<U00010E68> /xf0/x90/xb9/xa8 RUMI DIGIT NINE ++<U00010E69> /xf0/x90/xb9/xa9 RUMI NUMBER TEN ++<U00010E6A> /xf0/x90/xb9/xaa RUMI NUMBER TWENTY ++<U00010E6B> /xf0/x90/xb9/xab RUMI NUMBER THIRTY ++<U00010E6C> /xf0/x90/xb9/xac RUMI NUMBER FORTY ++<U00010E6D> /xf0/x90/xb9/xad RUMI NUMBER FIFTY ++<U00010E6E> /xf0/x90/xb9/xae RUMI NUMBER SIXTY ++<U00010E6F> /xf0/x90/xb9/xaf RUMI NUMBER SEVENTY ++<U00010E70> /xf0/x90/xb9/xb0 RUMI NUMBER EIGHTY ++<U00010E71> /xf0/x90/xb9/xb1 RUMI NUMBER NINETY ++<U00010E72> /xf0/x90/xb9/xb2 RUMI NUMBER ONE HUNDRED ++<U00010E73> /xf0/x90/xb9/xb3 RUMI NUMBER TWO HUNDRED ++<U00010E74> /xf0/x90/xb9/xb4 RUMI NUMBER THREE HUNDRED ++<U00010E75> /xf0/x90/xb9/xb5 RUMI NUMBER FOUR HUNDRED ++<U00010E76> /xf0/x90/xb9/xb6 RUMI NUMBER FIVE HUNDRED ++<U00010E77> /xf0/x90/xb9/xb7 RUMI NUMBER SIX HUNDRED ++<U00010E78> /xf0/x90/xb9/xb8 RUMI NUMBER SEVEN HUNDRED ++<U00010E79> /xf0/x90/xb9/xb9 RUMI NUMBER EIGHT HUNDRED ++<U00010E7A> /xf0/x90/xb9/xba RUMI NUMBER NINE HUNDRED ++<U00010E7B> /xf0/x90/xb9/xbb RUMI FRACTION ONE HALF ++<U00010E7C> /xf0/x90/xb9/xbc RUMI FRACTION ONE QUARTER ++<U00010E7D> /xf0/x90/xb9/xbd RUMI FRACTION ONE THIRD ++<U00010E7E> /xf0/x90/xb9/xbe RUMI FRACTION TWO THIRDS ++<U00011000> /xf0/x91/x80/x80 BRAHMI SIGN CANDRABINDU ++<U00011001> /xf0/x91/x80/x81 BRAHMI SIGN ANUSVARA ++<U00011002> /xf0/x91/x80/x82 BRAHMI SIGN VISARGA ++<U00011003> /xf0/x91/x80/x83 BRAHMI SIGN JIHVAMULIYA ++<U00011004> /xf0/x91/x80/x84 BRAHMI SIGN UPADHMANIYA ++<U00011005> /xf0/x91/x80/x85 BRAHMI LETTER A ++<U00011006> /xf0/x91/x80/x86 BRAHMI LETTER AA ++<U00011007> /xf0/x91/x80/x87 BRAHMI LETTER I ++<U00011008> /xf0/x91/x80/x88 BRAHMI LETTER II ++<U00011009> /xf0/x91/x80/x89 BRAHMI LETTER U ++<U0001100A> /xf0/x91/x80/x8a BRAHMI LETTER UU ++<U0001100B> /xf0/x91/x80/x8b BRAHMI LETTER VOCALIC R ++<U0001100C> /xf0/x91/x80/x8c BRAHMI LETTER VOCALIC RR ++<U0001100D> /xf0/x91/x80/x8d BRAHMI LETTER VOCALIC L ++<U0001100E> /xf0/x91/x80/x8e BRAHMI LETTER VOCALIC LL ++<U0001100F> /xf0/x91/x80/x8f BRAHMI LETTER E ++<U00011010> /xf0/x91/x80/x90 BRAHMI LETTER AI ++<U00011011> /xf0/x91/x80/x91 BRAHMI LETTER O ++<U00011012> /xf0/x91/x80/x92 BRAHMI LETTER AU ++<U00011013> /xf0/x91/x80/x93 BRAHMI LETTER KA ++<U00011014> /xf0/x91/x80/x94 BRAHMI LETTER KHA ++<U00011015> /xf0/x91/x80/x95 BRAHMI LETTER GA ++<U00011016> /xf0/x91/x80/x96 BRAHMI LETTER GHA ++<U00011017> /xf0/x91/x80/x97 BRAHMI LETTER NGA ++<U00011018> /xf0/x91/x80/x98 BRAHMI LETTER CA ++<U00011019> /xf0/x91/x80/x99 BRAHMI LETTER CHA ++<U0001101A> /xf0/x91/x80/x9a BRAHMI LETTER JA ++<U0001101B> /xf0/x91/x80/x9b BRAHMI LETTER JHA ++<U0001101C> /xf0/x91/x80/x9c BRAHMI LETTER NYA ++<U0001101D> /xf0/x91/x80/x9d BRAHMI LETTER TTA ++<U0001101E> /xf0/x91/x80/x9e BRAHMI LETTER TTHA ++<U0001101F> /xf0/x91/x80/x9f BRAHMI LETTER DDA ++<U00011020> /xf0/x91/x80/xa0 BRAHMI LETTER DDHA ++<U00011021> /xf0/x91/x80/xa1 BRAHMI LETTER NNA ++<U00011022> /xf0/x91/x80/xa2 BRAHMI LETTER TA ++<U00011023> /xf0/x91/x80/xa3 BRAHMI LETTER THA ++<U00011024> /xf0/x91/x80/xa4 BRAHMI LETTER DA ++<U00011025> /xf0/x91/x80/xa5 BRAHMI LETTER DHA ++<U00011026> /xf0/x91/x80/xa6 BRAHMI LETTER NA ++<U00011027> /xf0/x91/x80/xa7 BRAHMI LETTER PA ++<U00011028> /xf0/x91/x80/xa8 BRAHMI LETTER PHA ++<U00011029> /xf0/x91/x80/xa9 BRAHMI LETTER BA ++<U0001102A> /xf0/x91/x80/xaa BRAHMI LETTER BHA ++<U0001102B> /xf0/x91/x80/xab BRAHMI LETTER MA ++<U0001102C> /xf0/x91/x80/xac BRAHMI LETTER YA ++<U0001102D> /xf0/x91/x80/xad BRAHMI LETTER RA ++<U0001102E> /xf0/x91/x80/xae BRAHMI LETTER LA ++<U0001102F> /xf0/x91/x80/xaf BRAHMI LETTER VA ++<U00011030> /xf0/x91/x80/xb0 BRAHMI LETTER SHA ++<U00011031> /xf0/x91/x80/xb1 BRAHMI LETTER SSA ++<U00011032> /xf0/x91/x80/xb2 BRAHMI LETTER SA ++<U00011033> /xf0/x91/x80/xb3 BRAHMI LETTER HA ++<U00011034> /xf0/x91/x80/xb4 BRAHMI LETTER LLA ++<U00011035> /xf0/x91/x80/xb5 BRAHMI LETTER OLD TAMIL LLLA ++<U00011036> /xf0/x91/x80/xb6 BRAHMI LETTER OLD TAMIL RRA ++<U00011037> /xf0/x91/x80/xb7 BRAHMI LETTER OLD TAMIL NNNA ++<U00011038> /xf0/x91/x80/xb8 BRAHMI VOWEL SIGN AA ++<U00011039> /xf0/x91/x80/xb9 BRAHMI VOWEL SIGN BHATTIPROLU AA ++<U0001103A> /xf0/x91/x80/xba BRAHMI VOWEL SIGN I ++<U0001103B> /xf0/x91/x80/xbb BRAHMI VOWEL SIGN II ++<U0001103C> /xf0/x91/x80/xbc BRAHMI VOWEL SIGN U ++<U0001103D> /xf0/x91/x80/xbd BRAHMI VOWEL SIGN UU ++<U0001103E> /xf0/x91/x80/xbe BRAHMI VOWEL SIGN VOCALIC R ++<U0001103F> /xf0/x91/x80/xbf BRAHMI VOWEL SIGN VOCALIC RR ++<U00011040> /xf0/x91/x81/x80 BRAHMI VOWEL SIGN VOCALIC L ++<U00011041> /xf0/x91/x81/x81 BRAHMI VOWEL SIGN VOCALIC LL ++<U00011042> /xf0/x91/x81/x82 BRAHMI VOWEL SIGN E ++<U00011043> /xf0/x91/x81/x83 BRAHMI VOWEL SIGN AI ++<U00011044> /xf0/x91/x81/x84 BRAHMI VOWEL SIGN O ++<U00011045> /xf0/x91/x81/x85 BRAHMI VOWEL SIGN AU ++<U00011046> /xf0/x91/x81/x86 BRAHMI VIRAMA ++<U00011047> /xf0/x91/x81/x87 BRAHMI DANDA ++<U00011048> /xf0/x91/x81/x88 BRAHMI DOUBLE DANDA ++<U00011049> /xf0/x91/x81/x89 BRAHMI PUNCTUATION DOT ++<U0001104A> /xf0/x91/x81/x8a BRAHMI PUNCTUATION DOUBLE DOT ++<U0001104B> /xf0/x91/x81/x8b BRAHMI PUNCTUATION LINE ++<U0001104C> /xf0/x91/x81/x8c BRAHMI PUNCTUATION CRESCENT BAR ++<U0001104D> /xf0/x91/x81/x8d BRAHMI PUNCTUATION LOTUS ++<U00011052> /xf0/x91/x81/x92 BRAHMI NUMBER ONE ++<U00011053> /xf0/x91/x81/x93 BRAHMI NUMBER TWO ++<U00011054> /xf0/x91/x81/x94 BRAHMI NUMBER THREE ++<U00011055> /xf0/x91/x81/x95 BRAHMI NUMBER FOUR ++<U00011056> /xf0/x91/x81/x96 BRAHMI NUMBER FIVE ++<U00011057> /xf0/x91/x81/x97 BRAHMI NUMBER SIX ++<U00011058> /xf0/x91/x81/x98 BRAHMI NUMBER SEVEN ++<U00011059> /xf0/x91/x81/x99 BRAHMI NUMBER EIGHT ++<U0001105A> /xf0/x91/x81/x9a BRAHMI NUMBER NINE ++<U0001105B> /xf0/x91/x81/x9b BRAHMI NUMBER TEN ++<U0001105C> /xf0/x91/x81/x9c BRAHMI NUMBER TWENTY ++<U0001105D> /xf0/x91/x81/x9d BRAHMI NUMBER THIRTY ++<U0001105E> /xf0/x91/x81/x9e BRAHMI NUMBER FORTY ++<U0001105F> /xf0/x91/x81/x9f BRAHMI NUMBER FIFTY ++<U00011060> /xf0/x91/x81/xa0 BRAHMI NUMBER SIXTY ++<U00011061> /xf0/x91/x81/xa1 BRAHMI NUMBER SEVENTY ++<U00011062> /xf0/x91/x81/xa2 BRAHMI NUMBER EIGHTY ++<U00011063> /xf0/x91/x81/xa3 BRAHMI NUMBER NINETY ++<U00011064> /xf0/x91/x81/xa4 BRAHMI NUMBER ONE HUNDRED ++<U00011065> /xf0/x91/x81/xa5 BRAHMI NUMBER ONE THOUSAND ++<U00011066> /xf0/x91/x81/xa6 BRAHMI DIGIT ZERO ++<U00011067> /xf0/x91/x81/xa7 BRAHMI DIGIT ONE ++<U00011068> /xf0/x91/x81/xa8 BRAHMI DIGIT TWO ++<U00011069> /xf0/x91/x81/xa9 BRAHMI DIGIT THREE ++<U0001106A> /xf0/x91/x81/xaa BRAHMI DIGIT FOUR ++<U0001106B> /xf0/x91/x81/xab BRAHMI DIGIT FIVE ++<U0001106C> /xf0/x91/x81/xac BRAHMI DIGIT SIX ++<U0001106D> /xf0/x91/x81/xad BRAHMI DIGIT SEVEN ++<U0001106E> /xf0/x91/x81/xae BRAHMI DIGIT EIGHT ++<U0001106F> /xf0/x91/x81/xaf BRAHMI DIGIT NINE ++<U00011080> /xf0/x91/x82/x80 KAITHI SIGN CANDRABINDU ++<U00011081> /xf0/x91/x82/x81 KAITHI SIGN ANUSVARA ++<U00011082> /xf0/x91/x82/x82 KAITHI SIGN VISARGA ++<U00011083> /xf0/x91/x82/x83 KAITHI LETTER A ++<U00011084> /xf0/x91/x82/x84 KAITHI LETTER AA ++<U00011085> /xf0/x91/x82/x85 KAITHI LETTER I ++<U00011086> /xf0/x91/x82/x86 KAITHI LETTER II ++<U00011087> /xf0/x91/x82/x87 KAITHI LETTER U ++<U00011088> /xf0/x91/x82/x88 KAITHI LETTER UU ++<U00011089> /xf0/x91/x82/x89 KAITHI LETTER E ++<U0001108A> /xf0/x91/x82/x8a KAITHI LETTER AI ++<U0001108B> /xf0/x91/x82/x8b KAITHI LETTER O ++<U0001108C> /xf0/x91/x82/x8c KAITHI LETTER AU ++<U0001108D> /xf0/x91/x82/x8d KAITHI LETTER KA ++<U0001108E> /xf0/x91/x82/x8e KAITHI LETTER KHA ++<U0001108F> /xf0/x91/x82/x8f KAITHI LETTER GA ++<U00011090> /xf0/x91/x82/x90 KAITHI LETTER GHA ++<U00011091> /xf0/x91/x82/x91 KAITHI LETTER NGA ++<U00011092> /xf0/x91/x82/x92 KAITHI LETTER CA ++<U00011093> /xf0/x91/x82/x93 KAITHI LETTER CHA ++<U00011094> /xf0/x91/x82/x94 KAITHI LETTER JA ++<U00011095> /xf0/x91/x82/x95 KAITHI LETTER JHA ++<U00011096> /xf0/x91/x82/x96 KAITHI LETTER NYA ++<U00011097> /xf0/x91/x82/x97 KAITHI LETTER TTA ++<U00011098> /xf0/x91/x82/x98 KAITHI LETTER TTHA ++<U00011099> /xf0/x91/x82/x99 KAITHI LETTER DDA ++<U0001109A> /xf0/x91/x82/x9a KAITHI LETTER DDDHA ++<U0001109B> /xf0/x91/x82/x9b KAITHI LETTER DDHA ++<U0001109C> /xf0/x91/x82/x9c KAITHI LETTER RHA ++<U0001109D> /xf0/x91/x82/x9d KAITHI LETTER NNA ++<U0001109E> /xf0/x91/x82/x9e KAITHI LETTER TA ++<U0001109F> /xf0/x91/x82/x9f KAITHI LETTER THA ++<U000110A0> /xf0/x91/x82/xa0 KAITHI LETTER DA ++<U000110A1> /xf0/x91/x82/xa1 KAITHI LETTER DHA ++<U000110A2> /xf0/x91/x82/xa2 KAITHI LETTER NA ++<U000110A3> /xf0/x91/x82/xa3 KAITHI LETTER PA ++<U000110A4> /xf0/x91/x82/xa4 KAITHI LETTER PHA ++<U000110A5> /xf0/x91/x82/xa5 KAITHI LETTER BA ++<U000110A6> /xf0/x91/x82/xa6 KAITHI LETTER BHA ++<U000110A7> /xf0/x91/x82/xa7 KAITHI LETTER MA ++<U000110A8> /xf0/x91/x82/xa8 KAITHI LETTER YA ++<U000110A9> /xf0/x91/x82/xa9 KAITHI LETTER RA ++<U000110AA> /xf0/x91/x82/xaa KAITHI LETTER LA ++<U000110AB> /xf0/x91/x82/xab KAITHI LETTER VA ++<U000110AC> /xf0/x91/x82/xac KAITHI LETTER SHA ++<U000110AD> /xf0/x91/x82/xad KAITHI LETTER SSA ++<U000110AE> /xf0/x91/x82/xae KAITHI LETTER SA ++<U000110AF> /xf0/x91/x82/xaf KAITHI LETTER HA ++<U000110B0> /xf0/x91/x82/xb0 KAITHI VOWEL SIGN AA ++<U000110B1> /xf0/x91/x82/xb1 KAITHI VOWEL SIGN I ++<U000110B2> /xf0/x91/x82/xb2 KAITHI VOWEL SIGN II ++<U000110B3> /xf0/x91/x82/xb3 KAITHI VOWEL SIGN U ++<U000110B4> /xf0/x91/x82/xb4 KAITHI VOWEL SIGN UU ++<U000110B5> /xf0/x91/x82/xb5 KAITHI VOWEL SIGN E ++<U000110B6> /xf0/x91/x82/xb6 KAITHI VOWEL SIGN AI ++<U000110B7> /xf0/x91/x82/xb7 KAITHI VOWEL SIGN O ++<U000110B8> /xf0/x91/x82/xb8 KAITHI VOWEL SIGN AU ++<U000110B9> /xf0/x91/x82/xb9 KAITHI SIGN VIRAMA ++<U000110BA> /xf0/x91/x82/xba KAITHI SIGN NUKTA ++<U000110BB> /xf0/x91/x82/xbb KAITHI ABBREVIATION SIGN ++<U000110BC> /xf0/x91/x82/xbc KAITHI ENUMERATION SIGN ++<U000110BD> /xf0/x91/x82/xbd KAITHI NUMBER SIGN ++<U000110BE> /xf0/x91/x82/xbe KAITHI SECTION MARK ++<U000110BF> /xf0/x91/x82/xbf KAITHI DOUBLE SECTION MARK ++<U000110C0> /xf0/x91/x83/x80 KAITHI DANDA ++<U000110C1> /xf0/x91/x83/x81 KAITHI DOUBLE DANDA + <U00012000> /xf0/x92/x80/x80 CUNEIFORM SIGN A + <U00012001> /xf0/x92/x80/x81 CUNEIFORM SIGN A TIMES A + <U00012002> /xf0/x92/x80/x82 CUNEIFORM SIGN A TIMES BAD +@@ -28370,6 +30022,1648 @@ CHARMAP + <U00012471> /xf0/x92/x91/xb1 CUNEIFORM PUNCTUATION SIGN VERTICAL COLON + <U00012472> /xf0/x92/x91/xb2 CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON + <U00012473> /xf0/x92/x91/xb3 CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON ++<U00013000> /xf0/x93/x80/x80 EGYPTIAN HIEROGLYPH A001 ++<U00013001> /xf0/x93/x80/x81 EGYPTIAN HIEROGLYPH A002 ++<U00013002> /xf0/x93/x80/x82 EGYPTIAN HIEROGLYPH A003 ++<U00013003> /xf0/x93/x80/x83 EGYPTIAN HIEROGLYPH A004 ++<U00013004> /xf0/x93/x80/x84 EGYPTIAN HIEROGLYPH A005 ++<U00013005> /xf0/x93/x80/x85 EGYPTIAN HIEROGLYPH A005A ++<U00013006> /xf0/x93/x80/x86 EGYPTIAN HIEROGLYPH A006 ++<U00013007> /xf0/x93/x80/x87 EGYPTIAN HIEROGLYPH A006A ++<U00013008> /xf0/x93/x80/x88 EGYPTIAN HIEROGLYPH A006B ++<U00013009> /xf0/x93/x80/x89 EGYPTIAN HIEROGLYPH A007 ++<U0001300A> /xf0/x93/x80/x8a EGYPTIAN HIEROGLYPH A008 ++<U0001300B> /xf0/x93/x80/x8b EGYPTIAN HIEROGLYPH A009 ++<U0001300C> /xf0/x93/x80/x8c EGYPTIAN HIEROGLYPH A010 ++<U0001300D> /xf0/x93/x80/x8d EGYPTIAN HIEROGLYPH A011 ++<U0001300E> /xf0/x93/x80/x8e EGYPTIAN HIEROGLYPH A012 ++<U0001300F> /xf0/x93/x80/x8f EGYPTIAN HIEROGLYPH A013 ++<U00013010> /xf0/x93/x80/x90 EGYPTIAN HIEROGLYPH A014 ++<U00013011> /xf0/x93/x80/x91 EGYPTIAN HIEROGLYPH A014A ++<U00013012> /xf0/x93/x80/x92 EGYPTIAN HIEROGLYPH A015 ++<U00013013> /xf0/x93/x80/x93 EGYPTIAN HIEROGLYPH A016 ++<U00013014> /xf0/x93/x80/x94 EGYPTIAN HIEROGLYPH A017 ++<U00013015> /xf0/x93/x80/x95 EGYPTIAN HIEROGLYPH A017A ++<U00013016> /xf0/x93/x80/x96 EGYPTIAN HIEROGLYPH A018 ++<U00013017> /xf0/x93/x80/x97 EGYPTIAN HIEROGLYPH A019 ++<U00013018> /xf0/x93/x80/x98 EGYPTIAN HIEROGLYPH A020 ++<U00013019> /xf0/x93/x80/x99 EGYPTIAN HIEROGLYPH A021 ++<U0001301A> /xf0/x93/x80/x9a EGYPTIAN HIEROGLYPH A022 ++<U0001301B> /xf0/x93/x80/x9b EGYPTIAN HIEROGLYPH A023 ++<U0001301C> /xf0/x93/x80/x9c EGYPTIAN HIEROGLYPH A024 ++<U0001301D> /xf0/x93/x80/x9d EGYPTIAN HIEROGLYPH A025 ++<U0001301E> /xf0/x93/x80/x9e EGYPTIAN HIEROGLYPH A026 ++<U0001301F> /xf0/x93/x80/x9f EGYPTIAN HIEROGLYPH A027 ++<U00013020> /xf0/x93/x80/xa0 EGYPTIAN HIEROGLYPH A028 ++<U00013021> /xf0/x93/x80/xa1 EGYPTIAN HIEROGLYPH A029 ++<U00013022> /xf0/x93/x80/xa2 EGYPTIAN HIEROGLYPH A030 ++<U00013023> /xf0/x93/x80/xa3 EGYPTIAN HIEROGLYPH A031 ++<U00013024> /xf0/x93/x80/xa4 EGYPTIAN HIEROGLYPH A032 ++<U00013025> /xf0/x93/x80/xa5 EGYPTIAN HIEROGLYPH A032A ++<U00013026> /xf0/x93/x80/xa6 EGYPTIAN HIEROGLYPH A033 ++<U00013027> /xf0/x93/x80/xa7 EGYPTIAN HIEROGLYPH A034 ++<U00013028> /xf0/x93/x80/xa8 EGYPTIAN HIEROGLYPH A035 ++<U00013029> /xf0/x93/x80/xa9 EGYPTIAN HIEROGLYPH A036 ++<U0001302A> /xf0/x93/x80/xaa EGYPTIAN HIEROGLYPH A037 ++<U0001302B> /xf0/x93/x80/xab EGYPTIAN HIEROGLYPH A038 ++<U0001302C> /xf0/x93/x80/xac EGYPTIAN HIEROGLYPH A039 ++<U0001302D> /xf0/x93/x80/xad EGYPTIAN HIEROGLYPH A040 ++<U0001302E> /xf0/x93/x80/xae EGYPTIAN HIEROGLYPH A040A ++<U0001302F> /xf0/x93/x80/xaf EGYPTIAN HIEROGLYPH A041 ++<U00013030> /xf0/x93/x80/xb0 EGYPTIAN HIEROGLYPH A042 ++<U00013031> /xf0/x93/x80/xb1 EGYPTIAN HIEROGLYPH A042A ++<U00013032> /xf0/x93/x80/xb2 EGYPTIAN HIEROGLYPH A043 ++<U00013033> /xf0/x93/x80/xb3 EGYPTIAN HIEROGLYPH A043A ++<U00013034> /xf0/x93/x80/xb4 EGYPTIAN HIEROGLYPH A044 ++<U00013035> /xf0/x93/x80/xb5 EGYPTIAN HIEROGLYPH A045 ++<U00013036> /xf0/x93/x80/xb6 EGYPTIAN HIEROGLYPH A045A ++<U00013037> /xf0/x93/x80/xb7 EGYPTIAN HIEROGLYPH A046 ++<U00013038> /xf0/x93/x80/xb8 EGYPTIAN HIEROGLYPH A047 ++<U00013039> /xf0/x93/x80/xb9 EGYPTIAN HIEROGLYPH A048 ++<U0001303A> /xf0/x93/x80/xba EGYPTIAN HIEROGLYPH A049 ++<U0001303B> /xf0/x93/x80/xbb EGYPTIAN HIEROGLYPH A050 ++<U0001303C> /xf0/x93/x80/xbc EGYPTIAN HIEROGLYPH A051 ++<U0001303D> /xf0/x93/x80/xbd EGYPTIAN HIEROGLYPH A052 ++<U0001303E> /xf0/x93/x80/xbe EGYPTIAN HIEROGLYPH A053 ++<U0001303F> /xf0/x93/x80/xbf EGYPTIAN HIEROGLYPH A054 ++<U00013040> /xf0/x93/x81/x80 EGYPTIAN HIEROGLYPH A055 ++<U00013041> /xf0/x93/x81/x81 EGYPTIAN HIEROGLYPH A056 ++<U00013042> /xf0/x93/x81/x82 EGYPTIAN HIEROGLYPH A057 ++<U00013043> /xf0/x93/x81/x83 EGYPTIAN HIEROGLYPH A058 ++<U00013044> /xf0/x93/x81/x84 EGYPTIAN HIEROGLYPH A059 ++<U00013045> /xf0/x93/x81/x85 EGYPTIAN HIEROGLYPH A060 ++<U00013046> /xf0/x93/x81/x86 EGYPTIAN HIEROGLYPH A061 ++<U00013047> /xf0/x93/x81/x87 EGYPTIAN HIEROGLYPH A062 ++<U00013048> /xf0/x93/x81/x88 EGYPTIAN HIEROGLYPH A063 ++<U00013049> /xf0/x93/x81/x89 EGYPTIAN HIEROGLYPH A064 ++<U0001304A> /xf0/x93/x81/x8a EGYPTIAN HIEROGLYPH A065 ++<U0001304B> /xf0/x93/x81/x8b EGYPTIAN HIEROGLYPH A066 ++<U0001304C> /xf0/x93/x81/x8c EGYPTIAN HIEROGLYPH A067 ++<U0001304D> /xf0/x93/x81/x8d EGYPTIAN HIEROGLYPH A068 ++<U0001304E> /xf0/x93/x81/x8e EGYPTIAN HIEROGLYPH A069 ++<U0001304F> /xf0/x93/x81/x8f EGYPTIAN HIEROGLYPH A070 ++<U00013050> /xf0/x93/x81/x90 EGYPTIAN HIEROGLYPH B001 ++<U00013051> /xf0/x93/x81/x91 EGYPTIAN HIEROGLYPH B002 ++<U00013052> /xf0/x93/x81/x92 EGYPTIAN HIEROGLYPH B003 ++<U00013053> /xf0/x93/x81/x93 EGYPTIAN HIEROGLYPH B004 ++<U00013054> /xf0/x93/x81/x94 EGYPTIAN HIEROGLYPH B005 ++<U00013055> /xf0/x93/x81/x95 EGYPTIAN HIEROGLYPH B005A ++<U00013056> /xf0/x93/x81/x96 EGYPTIAN HIEROGLYPH B006 ++<U00013057> /xf0/x93/x81/x97 EGYPTIAN HIEROGLYPH B007 ++<U00013058> /xf0/x93/x81/x98 EGYPTIAN HIEROGLYPH B008 ++<U00013059> /xf0/x93/x81/x99 EGYPTIAN HIEROGLYPH B009 ++<U0001305A> /xf0/x93/x81/x9a EGYPTIAN HIEROGLYPH C001 ++<U0001305B> /xf0/x93/x81/x9b EGYPTIAN HIEROGLYPH C002 ++<U0001305C> /xf0/x93/x81/x9c EGYPTIAN HIEROGLYPH C002A ++<U0001305D> /xf0/x93/x81/x9d EGYPTIAN HIEROGLYPH C002B ++<U0001305E> /xf0/x93/x81/x9e EGYPTIAN HIEROGLYPH C002C ++<U0001305F> /xf0/x93/x81/x9f EGYPTIAN HIEROGLYPH C003 ++<U00013060> /xf0/x93/x81/xa0 EGYPTIAN HIEROGLYPH C004 ++<U00013061> /xf0/x93/x81/xa1 EGYPTIAN HIEROGLYPH C005 ++<U00013062> /xf0/x93/x81/xa2 EGYPTIAN HIEROGLYPH C006 ++<U00013063> /xf0/x93/x81/xa3 EGYPTIAN HIEROGLYPH C007 ++<U00013064> /xf0/x93/x81/xa4 EGYPTIAN HIEROGLYPH C008 ++<U00013065> /xf0/x93/x81/xa5 EGYPTIAN HIEROGLYPH C009 ++<U00013066> /xf0/x93/x81/xa6 EGYPTIAN HIEROGLYPH C010 ++<U00013067> /xf0/x93/x81/xa7 EGYPTIAN HIEROGLYPH C010A ++<U00013068> /xf0/x93/x81/xa8 EGYPTIAN HIEROGLYPH C011 ++<U00013069> /xf0/x93/x81/xa9 EGYPTIAN HIEROGLYPH C012 ++<U0001306A> /xf0/x93/x81/xaa EGYPTIAN HIEROGLYPH C013 ++<U0001306B> /xf0/x93/x81/xab EGYPTIAN HIEROGLYPH C014 ++<U0001306C> /xf0/x93/x81/xac EGYPTIAN HIEROGLYPH C015 ++<U0001306D> /xf0/x93/x81/xad EGYPTIAN HIEROGLYPH C016 ++<U0001306E> /xf0/x93/x81/xae EGYPTIAN HIEROGLYPH C017 ++<U0001306F> /xf0/x93/x81/xaf EGYPTIAN HIEROGLYPH C018 ++<U00013070> /xf0/x93/x81/xb0 EGYPTIAN HIEROGLYPH C019 ++<U00013071> /xf0/x93/x81/xb1 EGYPTIAN HIEROGLYPH C020 ++<U00013072> /xf0/x93/x81/xb2 EGYPTIAN HIEROGLYPH C021 ++<U00013073> /xf0/x93/x81/xb3 EGYPTIAN HIEROGLYPH C022 ++<U00013074> /xf0/x93/x81/xb4 EGYPTIAN HIEROGLYPH C023 ++<U00013075> /xf0/x93/x81/xb5 EGYPTIAN HIEROGLYPH C024 ++<U00013076> /xf0/x93/x81/xb6 EGYPTIAN HIEROGLYPH D001 ++<U00013077> /xf0/x93/x81/xb7 EGYPTIAN HIEROGLYPH D002 ++<U00013078> /xf0/x93/x81/xb8 EGYPTIAN HIEROGLYPH D003 ++<U00013079> /xf0/x93/x81/xb9 EGYPTIAN HIEROGLYPH D004 ++<U0001307A> /xf0/x93/x81/xba EGYPTIAN HIEROGLYPH D005 ++<U0001307B> /xf0/x93/x81/xbb EGYPTIAN HIEROGLYPH D006 ++<U0001307C> /xf0/x93/x81/xbc EGYPTIAN HIEROGLYPH D007 ++<U0001307D> /xf0/x93/x81/xbd EGYPTIAN HIEROGLYPH D008 ++<U0001307E> /xf0/x93/x81/xbe EGYPTIAN HIEROGLYPH D008A ++<U0001307F> /xf0/x93/x81/xbf EGYPTIAN HIEROGLYPH D009 ++<U00013080> /xf0/x93/x82/x80 EGYPTIAN HIEROGLYPH D010 ++<U00013081> /xf0/x93/x82/x81 EGYPTIAN HIEROGLYPH D011 ++<U00013082> /xf0/x93/x82/x82 EGYPTIAN HIEROGLYPH D012 ++<U00013083> /xf0/x93/x82/x83 EGYPTIAN HIEROGLYPH D013 ++<U00013084> /xf0/x93/x82/x84 EGYPTIAN HIEROGLYPH D014 ++<U00013085> /xf0/x93/x82/x85 EGYPTIAN HIEROGLYPH D015 ++<U00013086> /xf0/x93/x82/x86 EGYPTIAN HIEROGLYPH D016 ++<U00013087> /xf0/x93/x82/x87 EGYPTIAN HIEROGLYPH D017 ++<U00013088> /xf0/x93/x82/x88 EGYPTIAN HIEROGLYPH D018 ++<U00013089> /xf0/x93/x82/x89 EGYPTIAN HIEROGLYPH D019 ++<U0001308A> /xf0/x93/x82/x8a EGYPTIAN HIEROGLYPH D020 ++<U0001308B> /xf0/x93/x82/x8b EGYPTIAN HIEROGLYPH D021 ++<U0001308C> /xf0/x93/x82/x8c EGYPTIAN HIEROGLYPH D022 ++<U0001308D> /xf0/x93/x82/x8d EGYPTIAN HIEROGLYPH D023 ++<U0001308E> /xf0/x93/x82/x8e EGYPTIAN HIEROGLYPH D024 ++<U0001308F> /xf0/x93/x82/x8f EGYPTIAN HIEROGLYPH D025 ++<U00013090> /xf0/x93/x82/x90 EGYPTIAN HIEROGLYPH D026 ++<U00013091> /xf0/x93/x82/x91 EGYPTIAN HIEROGLYPH D027 ++<U00013092> /xf0/x93/x82/x92 EGYPTIAN HIEROGLYPH D027A ++<U00013093> /xf0/x93/x82/x93 EGYPTIAN HIEROGLYPH D028 ++<U00013094> /xf0/x93/x82/x94 EGYPTIAN HIEROGLYPH D029 ++<U00013095> /xf0/x93/x82/x95 EGYPTIAN HIEROGLYPH D030 ++<U00013096> /xf0/x93/x82/x96 EGYPTIAN HIEROGLYPH D031 ++<U00013097> /xf0/x93/x82/x97 EGYPTIAN HIEROGLYPH D031A ++<U00013098> /xf0/x93/x82/x98 EGYPTIAN HIEROGLYPH D032 ++<U00013099> /xf0/x93/x82/x99 EGYPTIAN HIEROGLYPH D033 ++<U0001309A> /xf0/x93/x82/x9a EGYPTIAN HIEROGLYPH D034 ++<U0001309B> /xf0/x93/x82/x9b EGYPTIAN HIEROGLYPH D034A ++<U0001309C> /xf0/x93/x82/x9c EGYPTIAN HIEROGLYPH D035 ++<U0001309D> /xf0/x93/x82/x9d EGYPTIAN HIEROGLYPH D036 ++<U0001309E> /xf0/x93/x82/x9e EGYPTIAN HIEROGLYPH D037 ++<U0001309F> /xf0/x93/x82/x9f EGYPTIAN HIEROGLYPH D038 ++<U000130A0> /xf0/x93/x82/xa0 EGYPTIAN HIEROGLYPH D039 ++<U000130A1> /xf0/x93/x82/xa1 EGYPTIAN HIEROGLYPH D040 ++<U000130A2> /xf0/x93/x82/xa2 EGYPTIAN HIEROGLYPH D041 ++<U000130A3> /xf0/x93/x82/xa3 EGYPTIAN HIEROGLYPH D042 ++<U000130A4> /xf0/x93/x82/xa4 EGYPTIAN HIEROGLYPH D043 ++<U000130A5> /xf0/x93/x82/xa5 EGYPTIAN HIEROGLYPH D044 ++<U000130A6> /xf0/x93/x82/xa6 EGYPTIAN HIEROGLYPH D045 ++<U000130A7> /xf0/x93/x82/xa7 EGYPTIAN HIEROGLYPH D046 ++<U000130A8> /xf0/x93/x82/xa8 EGYPTIAN HIEROGLYPH D046A ++<U000130A9> /xf0/x93/x82/xa9 EGYPTIAN HIEROGLYPH D047 ++<U000130AA> /xf0/x93/x82/xaa EGYPTIAN HIEROGLYPH D048 ++<U000130AB> /xf0/x93/x82/xab EGYPTIAN HIEROGLYPH D048A ++<U000130AC> /xf0/x93/x82/xac EGYPTIAN HIEROGLYPH D049 ++<U000130AD> /xf0/x93/x82/xad EGYPTIAN HIEROGLYPH D050 ++<U000130AE> /xf0/x93/x82/xae EGYPTIAN HIEROGLYPH D050A ++<U000130AF> /xf0/x93/x82/xaf EGYPTIAN HIEROGLYPH D050B ++<U000130B0> /xf0/x93/x82/xb0 EGYPTIAN HIEROGLYPH D050C ++<U000130B1> /xf0/x93/x82/xb1 EGYPTIAN HIEROGLYPH D050D ++<U000130B2> /xf0/x93/x82/xb2 EGYPTIAN HIEROGLYPH D050E ++<U000130B3> /xf0/x93/x82/xb3 EGYPTIAN HIEROGLYPH D050F ++<U000130B4> /xf0/x93/x82/xb4 EGYPTIAN HIEROGLYPH D050G ++<U000130B5> /xf0/x93/x82/xb5 EGYPTIAN HIEROGLYPH D050H ++<U000130B6> /xf0/x93/x82/xb6 EGYPTIAN HIEROGLYPH D050I ++<U000130B7> /xf0/x93/x82/xb7 EGYPTIAN HIEROGLYPH D051 ++<U000130B8> /xf0/x93/x82/xb8 EGYPTIAN HIEROGLYPH D052 ++<U000130B9> /xf0/x93/x82/xb9 EGYPTIAN HIEROGLYPH D052A ++<U000130BA> /xf0/x93/x82/xba EGYPTIAN HIEROGLYPH D053 ++<U000130BB> /xf0/x93/x82/xbb EGYPTIAN HIEROGLYPH D054 ++<U000130BC> /xf0/x93/x82/xbc EGYPTIAN HIEROGLYPH D054A ++<U000130BD> /xf0/x93/x82/xbd EGYPTIAN HIEROGLYPH D055 ++<U000130BE> /xf0/x93/x82/xbe EGYPTIAN HIEROGLYPH D056 ++<U000130BF> /xf0/x93/x82/xbf EGYPTIAN HIEROGLYPH D057 ++<U000130C0> /xf0/x93/x83/x80 EGYPTIAN HIEROGLYPH D058 ++<U000130C1> /xf0/x93/x83/x81 EGYPTIAN HIEROGLYPH D059 ++<U000130C2> /xf0/x93/x83/x82 EGYPTIAN HIEROGLYPH D060 ++<U000130C3> /xf0/x93/x83/x83 EGYPTIAN HIEROGLYPH D061 ++<U000130C4> /xf0/x93/x83/x84 EGYPTIAN HIEROGLYPH D062 ++<U000130C5> /xf0/x93/x83/x85 EGYPTIAN HIEROGLYPH D063 ++<U000130C6> /xf0/x93/x83/x86 EGYPTIAN HIEROGLYPH D064 ++<U000130C7> /xf0/x93/x83/x87 EGYPTIAN HIEROGLYPH D065 ++<U000130C8> /xf0/x93/x83/x88 EGYPTIAN HIEROGLYPH D066 ++<U000130C9> /xf0/x93/x83/x89 EGYPTIAN HIEROGLYPH D067 ++<U000130CA> /xf0/x93/x83/x8a EGYPTIAN HIEROGLYPH D067A ++<U000130CB> /xf0/x93/x83/x8b EGYPTIAN HIEROGLYPH D067B ++<U000130CC> /xf0/x93/x83/x8c EGYPTIAN HIEROGLYPH D067C ++<U000130CD> /xf0/x93/x83/x8d EGYPTIAN HIEROGLYPH D067D ++<U000130CE> /xf0/x93/x83/x8e EGYPTIAN HIEROGLYPH D067E ++<U000130CF> /xf0/x93/x83/x8f EGYPTIAN HIEROGLYPH D067F ++<U000130D0> /xf0/x93/x83/x90 EGYPTIAN HIEROGLYPH D067G ++<U000130D1> /xf0/x93/x83/x91 EGYPTIAN HIEROGLYPH D067H ++<U000130D2> /xf0/x93/x83/x92 EGYPTIAN HIEROGLYPH E001 ++<U000130D3> /xf0/x93/x83/x93 EGYPTIAN HIEROGLYPH E002 ++<U000130D4> /xf0/x93/x83/x94 EGYPTIAN HIEROGLYPH E003 ++<U000130D5> /xf0/x93/x83/x95 EGYPTIAN HIEROGLYPH E004 ++<U000130D6> /xf0/x93/x83/x96 EGYPTIAN HIEROGLYPH E005 ++<U000130D7> /xf0/x93/x83/x97 EGYPTIAN HIEROGLYPH E006 ++<U000130D8> /xf0/x93/x83/x98 EGYPTIAN HIEROGLYPH E007 ++<U000130D9> /xf0/x93/x83/x99 EGYPTIAN HIEROGLYPH E008 ++<U000130DA> /xf0/x93/x83/x9a EGYPTIAN HIEROGLYPH E008A ++<U000130DB> /xf0/x93/x83/x9b EGYPTIAN HIEROGLYPH E009 ++<U000130DC> /xf0/x93/x83/x9c EGYPTIAN HIEROGLYPH E009A ++<U000130DD> /xf0/x93/x83/x9d EGYPTIAN HIEROGLYPH E010 ++<U000130DE> /xf0/x93/x83/x9e EGYPTIAN HIEROGLYPH E011 ++<U000130DF> /xf0/x93/x83/x9f EGYPTIAN HIEROGLYPH E012 ++<U000130E0> /xf0/x93/x83/xa0 EGYPTIAN HIEROGLYPH E013 ++<U000130E1> /xf0/x93/x83/xa1 EGYPTIAN HIEROGLYPH E014 ++<U000130E2> /xf0/x93/x83/xa2 EGYPTIAN HIEROGLYPH E015 ++<U000130E3> /xf0/x93/x83/xa3 EGYPTIAN HIEROGLYPH E016 ++<U000130E4> /xf0/x93/x83/xa4 EGYPTIAN HIEROGLYPH E016A ++<U000130E5> /xf0/x93/x83/xa5 EGYPTIAN HIEROGLYPH E017 ++<U000130E6> /xf0/x93/x83/xa6 EGYPTIAN HIEROGLYPH E017A ++<U000130E7> /xf0/x93/x83/xa7 EGYPTIAN HIEROGLYPH E018 ++<U000130E8> /xf0/x93/x83/xa8 EGYPTIAN HIEROGLYPH E019 ++<U000130E9> /xf0/x93/x83/xa9 EGYPTIAN HIEROGLYPH E020 ++<U000130EA> /xf0/x93/x83/xaa EGYPTIAN HIEROGLYPH E020A ++<U000130EB> /xf0/x93/x83/xab EGYPTIAN HIEROGLYPH E021 ++<U000130EC> /xf0/x93/x83/xac EGYPTIAN HIEROGLYPH E022 ++<U000130ED> /xf0/x93/x83/xad EGYPTIAN HIEROGLYPH E023 ++<U000130EE> /xf0/x93/x83/xae EGYPTIAN HIEROGLYPH E024 ++<U000130EF> /xf0/x93/x83/xaf EGYPTIAN HIEROGLYPH E025 ++<U000130F0> /xf0/x93/x83/xb0 EGYPTIAN HIEROGLYPH E026 ++<U000130F1> /xf0/x93/x83/xb1 EGYPTIAN HIEROGLYPH E027 ++<U000130F2> /xf0/x93/x83/xb2 EGYPTIAN HIEROGLYPH E028 ++<U000130F3> /xf0/x93/x83/xb3 EGYPTIAN HIEROGLYPH E028A ++<U000130F4> /xf0/x93/x83/xb4 EGYPTIAN HIEROGLYPH E029 ++<U000130F5> /xf0/x93/x83/xb5 EGYPTIAN HIEROGLYPH E030 ++<U000130F6> /xf0/x93/x83/xb6 EGYPTIAN HIEROGLYPH E031 ++<U000130F7> /xf0/x93/x83/xb7 EGYPTIAN HIEROGLYPH E032 ++<U000130F8> /xf0/x93/x83/xb8 EGYPTIAN HIEROGLYPH E033 ++<U000130F9> /xf0/x93/x83/xb9 EGYPTIAN HIEROGLYPH E034 ++<U000130FA> /xf0/x93/x83/xba EGYPTIAN HIEROGLYPH E034A ++<U000130FB> /xf0/x93/x83/xbb EGYPTIAN HIEROGLYPH E036 ++<U000130FC> /xf0/x93/x83/xbc EGYPTIAN HIEROGLYPH E037 ++<U000130FD> /xf0/x93/x83/xbd EGYPTIAN HIEROGLYPH E038 ++<U000130FE> /xf0/x93/x83/xbe EGYPTIAN HIEROGLYPH F001 ++<U000130FF> /xf0/x93/x83/xbf EGYPTIAN HIEROGLYPH F001A ++<U00013100> /xf0/x93/x84/x80 EGYPTIAN HIEROGLYPH F002 ++<U00013101> /xf0/x93/x84/x81 EGYPTIAN HIEROGLYPH F003 ++<U00013102> /xf0/x93/x84/x82 EGYPTIAN HIEROGLYPH F004 ++<U00013103> /xf0/x93/x84/x83 EGYPTIAN HIEROGLYPH F005 ++<U00013104> /xf0/x93/x84/x84 EGYPTIAN HIEROGLYPH F006 ++<U00013105> /xf0/x93/x84/x85 EGYPTIAN HIEROGLYPH F007 ++<U00013106> /xf0/x93/x84/x86 EGYPTIAN HIEROGLYPH F008 ++<U00013107> /xf0/x93/x84/x87 EGYPTIAN HIEROGLYPH F009 ++<U00013108> /xf0/x93/x84/x88 EGYPTIAN HIEROGLYPH F010 ++<U00013109> /xf0/x93/x84/x89 EGYPTIAN HIEROGLYPH F011 ++<U0001310A> /xf0/x93/x84/x8a EGYPTIAN HIEROGLYPH F012 ++<U0001310B> /xf0/x93/x84/x8b EGYPTIAN HIEROGLYPH F013 ++<U0001310C> /xf0/x93/x84/x8c EGYPTIAN HIEROGLYPH F013A ++<U0001310D> /xf0/x93/x84/x8d EGYPTIAN HIEROGLYPH F014 ++<U0001310E> /xf0/x93/x84/x8e EGYPTIAN HIEROGLYPH F015 ++<U0001310F> /xf0/x93/x84/x8f EGYPTIAN HIEROGLYPH F016 ++<U00013110> /xf0/x93/x84/x90 EGYPTIAN HIEROGLYPH F017 ++<U00013111> /xf0/x93/x84/x91 EGYPTIAN HIEROGLYPH F018 ++<U00013112> /xf0/x93/x84/x92 EGYPTIAN HIEROGLYPH F019 ++<U00013113> /xf0/x93/x84/x93 EGYPTIAN HIEROGLYPH F020 ++<U00013114> /xf0/x93/x84/x94 EGYPTIAN HIEROGLYPH F021 ++<U00013115> /xf0/x93/x84/x95 EGYPTIAN HIEROGLYPH F021A ++<U00013116> /xf0/x93/x84/x96 EGYPTIAN HIEROGLYPH F022 ++<U00013117> /xf0/x93/x84/x97 EGYPTIAN HIEROGLYPH F023 ++<U00013118> /xf0/x93/x84/x98 EGYPTIAN HIEROGLYPH F024 ++<U00013119> /xf0/x93/x84/x99 EGYPTIAN HIEROGLYPH F025 ++<U0001311A> /xf0/x93/x84/x9a EGYPTIAN HIEROGLYPH F026 ++<U0001311B> /xf0/x93/x84/x9b EGYPTIAN HIEROGLYPH F027 ++<U0001311C> /xf0/x93/x84/x9c EGYPTIAN HIEROGLYPH F028 ++<U0001311D> /xf0/x93/x84/x9d EGYPTIAN HIEROGLYPH F029 ++<U0001311E> /xf0/x93/x84/x9e EGYPTIAN HIEROGLYPH F030 ++<U0001311F> /xf0/x93/x84/x9f EGYPTIAN HIEROGLYPH F031 ++<U00013120> /xf0/x93/x84/xa0 EGYPTIAN HIEROGLYPH F031A ++<U00013121> /xf0/x93/x84/xa1 EGYPTIAN HIEROGLYPH F032 ++<U00013122> /xf0/x93/x84/xa2 EGYPTIAN HIEROGLYPH F033 ++<U00013123> /xf0/x93/x84/xa3 EGYPTIAN HIEROGLYPH F034 ++<U00013124> /xf0/x93/x84/xa4 EGYPTIAN HIEROGLYPH F035 ++<U00013125> /xf0/x93/x84/xa5 EGYPTIAN HIEROGLYPH F036 ++<U00013126> /xf0/x93/x84/xa6 EGYPTIAN HIEROGLYPH F037 ++<U00013127> /xf0/x93/x84/xa7 EGYPTIAN HIEROGLYPH F037A ++<U00013128> /xf0/x93/x84/xa8 EGYPTIAN HIEROGLYPH F038 ++<U00013129> /xf0/x93/x84/xa9 EGYPTIAN HIEROGLYPH F038A ++<U0001312A> /xf0/x93/x84/xaa EGYPTIAN HIEROGLYPH F039 ++<U0001312B> /xf0/x93/x84/xab EGYPTIAN HIEROGLYPH F040 ++<U0001312C> /xf0/x93/x84/xac EGYPTIAN HIEROGLYPH F041 ++<U0001312D> /xf0/x93/x84/xad EGYPTIAN HIEROGLYPH F042 ++<U0001312E> /xf0/x93/x84/xae EGYPTIAN HIEROGLYPH F043 ++<U0001312F> /xf0/x93/x84/xaf EGYPTIAN HIEROGLYPH F044 ++<U00013130> /xf0/x93/x84/xb0 EGYPTIAN HIEROGLYPH F045 ++<U00013131> /xf0/x93/x84/xb1 EGYPTIAN HIEROGLYPH F045A ++<U00013132> /xf0/x93/x84/xb2 EGYPTIAN HIEROGLYPH F046 ++<U00013133> /xf0/x93/x84/xb3 EGYPTIAN HIEROGLYPH F046A ++<U00013134> /xf0/x93/x84/xb4 EGYPTIAN HIEROGLYPH F047 ++<U00013135> /xf0/x93/x84/xb5 EGYPTIAN HIEROGLYPH F047A ++<U00013136> /xf0/x93/x84/xb6 EGYPTIAN HIEROGLYPH F048 ++<U00013137> /xf0/x93/x84/xb7 EGYPTIAN HIEROGLYPH F049 ++<U00013138> /xf0/x93/x84/xb8 EGYPTIAN HIEROGLYPH F050 ++<U00013139> /xf0/x93/x84/xb9 EGYPTIAN HIEROGLYPH F051 ++<U0001313A> /xf0/x93/x84/xba EGYPTIAN HIEROGLYPH F051A ++<U0001313B> /xf0/x93/x84/xbb EGYPTIAN HIEROGLYPH F051B ++<U0001313C> /xf0/x93/x84/xbc EGYPTIAN HIEROGLYPH F051C ++<U0001313D> /xf0/x93/x84/xbd EGYPTIAN HIEROGLYPH F052 ++<U0001313E> /xf0/x93/x84/xbe EGYPTIAN HIEROGLYPH F053 ++<U0001313F> /xf0/x93/x84/xbf EGYPTIAN HIEROGLYPH G001 ++<U00013140> /xf0/x93/x85/x80 EGYPTIAN HIEROGLYPH G002 ++<U00013141> /xf0/x93/x85/x81 EGYPTIAN HIEROGLYPH G003 ++<U00013142> /xf0/x93/x85/x82 EGYPTIAN HIEROGLYPH G004 ++<U00013143> /xf0/x93/x85/x83 EGYPTIAN HIEROGLYPH G005 ++<U00013144> /xf0/x93/x85/x84 EGYPTIAN HIEROGLYPH G006 ++<U00013145> /xf0/x93/x85/x85 EGYPTIAN HIEROGLYPH G006A ++<U00013146> /xf0/x93/x85/x86 EGYPTIAN HIEROGLYPH G007 ++<U00013147> /xf0/x93/x85/x87 EGYPTIAN HIEROGLYPH G007A ++<U00013148> /xf0/x93/x85/x88 EGYPTIAN HIEROGLYPH G007B ++<U00013149> /xf0/x93/x85/x89 EGYPTIAN HIEROGLYPH G008 ++<U0001314A> /xf0/x93/x85/x8a EGYPTIAN HIEROGLYPH G009 ++<U0001314B> /xf0/x93/x85/x8b EGYPTIAN HIEROGLYPH G010 ++<U0001314C> /xf0/x93/x85/x8c EGYPTIAN HIEROGLYPH G011 ++<U0001314D> /xf0/x93/x85/x8d EGYPTIAN HIEROGLYPH G011A ++<U0001314E> /xf0/x93/x85/x8e EGYPTIAN HIEROGLYPH G012 ++<U0001314F> /xf0/x93/x85/x8f EGYPTIAN HIEROGLYPH G013 ++<U00013150> /xf0/x93/x85/x90 EGYPTIAN HIEROGLYPH G014 ++<U00013151> /xf0/x93/x85/x91 EGYPTIAN HIEROGLYPH G015 ++<U00013152> /xf0/x93/x85/x92 EGYPTIAN HIEROGLYPH G016 ++<U00013153> /xf0/x93/x85/x93 EGYPTIAN HIEROGLYPH G017 ++<U00013154> /xf0/x93/x85/x94 EGYPTIAN HIEROGLYPH G018 ++<U00013155> /xf0/x93/x85/x95 EGYPTIAN HIEROGLYPH G019 ++<U00013156> /xf0/x93/x85/x96 EGYPTIAN HIEROGLYPH G020 ++<U00013157> /xf0/x93/x85/x97 EGYPTIAN HIEROGLYPH G020A ++<U00013158> /xf0/x93/x85/x98 EGYPTIAN HIEROGLYPH G021 ++<U00013159> /xf0/x93/x85/x99 EGYPTIAN HIEROGLYPH G022 ++<U0001315A> /xf0/x93/x85/x9a EGYPTIAN HIEROGLYPH G023 ++<U0001315B> /xf0/x93/x85/x9b EGYPTIAN HIEROGLYPH G024 ++<U0001315C> /xf0/x93/x85/x9c EGYPTIAN HIEROGLYPH G025 ++<U0001315D> /xf0/x93/x85/x9d EGYPTIAN HIEROGLYPH G026 ++<U0001315E> /xf0/x93/x85/x9e EGYPTIAN HIEROGLYPH G026A ++<U0001315F> /xf0/x93/x85/x9f EGYPTIAN HIEROGLYPH G027 ++<U00013160> /xf0/x93/x85/xa0 EGYPTIAN HIEROGLYPH G028 ++<U00013161> /xf0/x93/x85/xa1 EGYPTIAN HIEROGLYPH G029 ++<U00013162> /xf0/x93/x85/xa2 EGYPTIAN HIEROGLYPH G030 ++<U00013163> /xf0/x93/x85/xa3 EGYPTIAN HIEROGLYPH G031 ++<U00013164> /xf0/x93/x85/xa4 EGYPTIAN HIEROGLYPH G032 ++<U00013165> /xf0/x93/x85/xa5 EGYPTIAN HIEROGLYPH G033 ++<U00013166> /xf0/x93/x85/xa6 EGYPTIAN HIEROGLYPH G034 ++<U00013167> /xf0/x93/x85/xa7 EGYPTIAN HIEROGLYPH G035 ++<U00013168> /xf0/x93/x85/xa8 EGYPTIAN HIEROGLYPH G036 ++<U00013169> /xf0/x93/x85/xa9 EGYPTIAN HIEROGLYPH G036A ++<U0001316A> /xf0/x93/x85/xaa EGYPTIAN HIEROGLYPH G037 ++<U0001316B> /xf0/x93/x85/xab EGYPTIAN HIEROGLYPH G037A ++<U0001316C> /xf0/x93/x85/xac EGYPTIAN HIEROGLYPH G038 ++<U0001316D> /xf0/x93/x85/xad EGYPTIAN HIEROGLYPH G039 ++<U0001316E> /xf0/x93/x85/xae EGYPTIAN HIEROGLYPH G040 ++<U0001316F> /xf0/x93/x85/xaf EGYPTIAN HIEROGLYPH G041 ++<U00013170> /xf0/x93/x85/xb0 EGYPTIAN HIEROGLYPH G042 ++<U00013171> /xf0/x93/x85/xb1 EGYPTIAN HIEROGLYPH G043 ++<U00013172> /xf0/x93/x85/xb2 EGYPTIAN HIEROGLYPH G043A ++<U00013173> /xf0/x93/x85/xb3 EGYPTIAN HIEROGLYPH G044 ++<U00013174> /xf0/x93/x85/xb4 EGYPTIAN HIEROGLYPH G045 ++<U00013175> /xf0/x93/x85/xb5 EGYPTIAN HIEROGLYPH G045A ++<U00013176> /xf0/x93/x85/xb6 EGYPTIAN HIEROGLYPH G046 ++<U00013177> /xf0/x93/x85/xb7 EGYPTIAN HIEROGLYPH G047 ++<U00013178> /xf0/x93/x85/xb8 EGYPTIAN HIEROGLYPH G048 ++<U00013179> /xf0/x93/x85/xb9 EGYPTIAN HIEROGLYPH G049 ++<U0001317A> /xf0/x93/x85/xba EGYPTIAN HIEROGLYPH G050 ++<U0001317B> /xf0/x93/x85/xbb EGYPTIAN HIEROGLYPH G051 ++<U0001317C> /xf0/x93/x85/xbc EGYPTIAN HIEROGLYPH G052 ++<U0001317D> /xf0/x93/x85/xbd EGYPTIAN HIEROGLYPH G053 ++<U0001317E> /xf0/x93/x85/xbe EGYPTIAN HIEROGLYPH G054 ++<U0001317F> /xf0/x93/x85/xbf EGYPTIAN HIEROGLYPH H001 ++<U00013180> /xf0/x93/x86/x80 EGYPTIAN HIEROGLYPH H002 ++<U00013181> /xf0/x93/x86/x81 EGYPTIAN HIEROGLYPH H003 ++<U00013182> /xf0/x93/x86/x82 EGYPTIAN HIEROGLYPH H004 ++<U00013183> /xf0/x93/x86/x83 EGYPTIAN HIEROGLYPH H005 ++<U00013184> /xf0/x93/x86/x84 EGYPTIAN HIEROGLYPH H006 ++<U00013185> /xf0/x93/x86/x85 EGYPTIAN HIEROGLYPH H006A ++<U00013186> /xf0/x93/x86/x86 EGYPTIAN HIEROGLYPH H007 ++<U00013187> /xf0/x93/x86/x87 EGYPTIAN HIEROGLYPH H008 ++<U00013188> /xf0/x93/x86/x88 EGYPTIAN HIEROGLYPH I001 ++<U00013189> /xf0/x93/x86/x89 EGYPTIAN HIEROGLYPH I002 ++<U0001318A> /xf0/x93/x86/x8a EGYPTIAN HIEROGLYPH I003 ++<U0001318B> /xf0/x93/x86/x8b EGYPTIAN HIEROGLYPH I004 ++<U0001318C> /xf0/x93/x86/x8c EGYPTIAN HIEROGLYPH I005 ++<U0001318D> /xf0/x93/x86/x8d EGYPTIAN HIEROGLYPH I005A ++<U0001318E> /xf0/x93/x86/x8e EGYPTIAN HIEROGLYPH I006 ++<U0001318F> /xf0/x93/x86/x8f EGYPTIAN HIEROGLYPH I007 ++<U00013190> /xf0/x93/x86/x90 EGYPTIAN HIEROGLYPH I008 ++<U00013191> /xf0/x93/x86/x91 EGYPTIAN HIEROGLYPH I009 ++<U00013192> /xf0/x93/x86/x92 EGYPTIAN HIEROGLYPH I009A ++<U00013193> /xf0/x93/x86/x93 EGYPTIAN HIEROGLYPH I010 ++<U00013194> /xf0/x93/x86/x94 EGYPTIAN HIEROGLYPH I010A ++<U00013195> /xf0/x93/x86/x95 EGYPTIAN HIEROGLYPH I011 ++<U00013196> /xf0/x93/x86/x96 EGYPTIAN HIEROGLYPH I011A ++<U00013197> /xf0/x93/x86/x97 EGYPTIAN HIEROGLYPH I012 ++<U00013198> /xf0/x93/x86/x98 EGYPTIAN HIEROGLYPH I013 ++<U00013199> /xf0/x93/x86/x99 EGYPTIAN HIEROGLYPH I014 ++<U0001319A> /xf0/x93/x86/x9a EGYPTIAN HIEROGLYPH I015 ++<U0001319B> /xf0/x93/x86/x9b EGYPTIAN HIEROGLYPH K001 ++<U0001319C> /xf0/x93/x86/x9c EGYPTIAN HIEROGLYPH K002 ++<U0001319D> /xf0/x93/x86/x9d EGYPTIAN HIEROGLYPH K003 ++<U0001319E> /xf0/x93/x86/x9e EGYPTIAN HIEROGLYPH K004 ++<U0001319F> /xf0/x93/x86/x9f EGYPTIAN HIEROGLYPH K005 ++<U000131A0> /xf0/x93/x86/xa0 EGYPTIAN HIEROGLYPH K006 ++<U000131A1> /xf0/x93/x86/xa1 EGYPTIAN HIEROGLYPH K007 ++<U000131A2> /xf0/x93/x86/xa2 EGYPTIAN HIEROGLYPH K008 ++<U000131A3> /xf0/x93/x86/xa3 EGYPTIAN HIEROGLYPH L001 ++<U000131A4> /xf0/x93/x86/xa4 EGYPTIAN HIEROGLYPH L002 ++<U000131A5> /xf0/x93/x86/xa5 EGYPTIAN HIEROGLYPH L002A ++<U000131A6> /xf0/x93/x86/xa6 EGYPTIAN HIEROGLYPH L003 ++<U000131A7> /xf0/x93/x86/xa7 EGYPTIAN HIEROGLYPH L004 ++<U000131A8> /xf0/x93/x86/xa8 EGYPTIAN HIEROGLYPH L005 ++<U000131A9> /xf0/x93/x86/xa9 EGYPTIAN HIEROGLYPH L006 ++<U000131AA> /xf0/x93/x86/xaa EGYPTIAN HIEROGLYPH L006A ++<U000131AB> /xf0/x93/x86/xab EGYPTIAN HIEROGLYPH L007 ++<U000131AC> /xf0/x93/x86/xac EGYPTIAN HIEROGLYPH L008 ++<U000131AD> /xf0/x93/x86/xad EGYPTIAN HIEROGLYPH M001 ++<U000131AE> /xf0/x93/x86/xae EGYPTIAN HIEROGLYPH M001A ++<U000131AF> /xf0/x93/x86/xaf EGYPTIAN HIEROGLYPH M001B ++<U000131B0> /xf0/x93/x86/xb0 EGYPTIAN HIEROGLYPH M002 ++<U000131B1> /xf0/x93/x86/xb1 EGYPTIAN HIEROGLYPH M003 ++<U000131B2> /xf0/x93/x86/xb2 EGYPTIAN HIEROGLYPH M003A ++<U000131B3> /xf0/x93/x86/xb3 EGYPTIAN HIEROGLYPH M004 ++<U000131B4> /xf0/x93/x86/xb4 EGYPTIAN HIEROGLYPH M005 ++<U000131B5> /xf0/x93/x86/xb5 EGYPTIAN HIEROGLYPH M006 ++<U000131B6> /xf0/x93/x86/xb6 EGYPTIAN HIEROGLYPH M007 ++<U000131B7> /xf0/x93/x86/xb7 EGYPTIAN HIEROGLYPH M008 ++<U000131B8> /xf0/x93/x86/xb8 EGYPTIAN HIEROGLYPH M009 ++<U000131B9> /xf0/x93/x86/xb9 EGYPTIAN HIEROGLYPH M010 ++<U000131BA> /xf0/x93/x86/xba EGYPTIAN HIEROGLYPH M010A ++<U000131BB> /xf0/x93/x86/xbb EGYPTIAN HIEROGLYPH M011 ++<U000131BC> /xf0/x93/x86/xbc EGYPTIAN HIEROGLYPH M012 ++<U000131BD> /xf0/x93/x86/xbd EGYPTIAN HIEROGLYPH M012A ++<U000131BE> /xf0/x93/x86/xbe EGYPTIAN HIEROGLYPH M012B ++<U000131BF> /xf0/x93/x86/xbf EGYPTIAN HIEROGLYPH M012C ++<U000131C0> /xf0/x93/x87/x80 EGYPTIAN HIEROGLYPH M012D ++<U000131C1> /xf0/x93/x87/x81 EGYPTIAN HIEROGLYPH M012E ++<U000131C2> /xf0/x93/x87/x82 EGYPTIAN HIEROGLYPH M012F ++<U000131C3> /xf0/x93/x87/x83 EGYPTIAN HIEROGLYPH M012G ++<U000131C4> /xf0/x93/x87/x84 EGYPTIAN HIEROGLYPH M012H ++<U000131C5> /xf0/x93/x87/x85 EGYPTIAN HIEROGLYPH M013 ++<U000131C6> /xf0/x93/x87/x86 EGYPTIAN HIEROGLYPH M014 ++<U000131C7> /xf0/x93/x87/x87 EGYPTIAN HIEROGLYPH M015 ++<U000131C8> /xf0/x93/x87/x88 EGYPTIAN HIEROGLYPH M015A ++<U000131C9> /xf0/x93/x87/x89 EGYPTIAN HIEROGLYPH M016 ++<U000131CA> /xf0/x93/x87/x8a EGYPTIAN HIEROGLYPH M016A ++<U000131CB> /xf0/x93/x87/x8b EGYPTIAN HIEROGLYPH M017 ++<U000131CC> /xf0/x93/x87/x8c EGYPTIAN HIEROGLYPH M017A ++<U000131CD> /xf0/x93/x87/x8d EGYPTIAN HIEROGLYPH M018 ++<U000131CE> /xf0/x93/x87/x8e EGYPTIAN HIEROGLYPH M019 ++<U000131CF> /xf0/x93/x87/x8f EGYPTIAN HIEROGLYPH M020 ++<U000131D0> /xf0/x93/x87/x90 EGYPTIAN HIEROGLYPH M021 ++<U000131D1> /xf0/x93/x87/x91 EGYPTIAN HIEROGLYPH M022 ++<U000131D2> /xf0/x93/x87/x92 EGYPTIAN HIEROGLYPH M022A ++<U000131D3> /xf0/x93/x87/x93 EGYPTIAN HIEROGLYPH M023 ++<U000131D4> /xf0/x93/x87/x94 EGYPTIAN HIEROGLYPH M024 ++<U000131D5> /xf0/x93/x87/x95 EGYPTIAN HIEROGLYPH M024A ++<U000131D6> /xf0/x93/x87/x96 EGYPTIAN HIEROGLYPH M025 ++<U000131D7> /xf0/x93/x87/x97 EGYPTIAN HIEROGLYPH M026 ++<U000131D8> /xf0/x93/x87/x98 EGYPTIAN HIEROGLYPH M027 ++<U000131D9> /xf0/x93/x87/x99 EGYPTIAN HIEROGLYPH M028 ++<U000131DA> /xf0/x93/x87/x9a EGYPTIAN HIEROGLYPH M028A ++<U000131DB> /xf0/x93/x87/x9b EGYPTIAN HIEROGLYPH M029 ++<U000131DC> /xf0/x93/x87/x9c EGYPTIAN HIEROGLYPH M030 ++<U000131DD> /xf0/x93/x87/x9d EGYPTIAN HIEROGLYPH M031 ++<U000131DE> /xf0/x93/x87/x9e EGYPTIAN HIEROGLYPH M031A ++<U000131DF> /xf0/x93/x87/x9f EGYPTIAN HIEROGLYPH M032 ++<U000131E0> /xf0/x93/x87/xa0 EGYPTIAN HIEROGLYPH M033 ++<U000131E1> /xf0/x93/x87/xa1 EGYPTIAN HIEROGLYPH M033A ++<U000131E2> /xf0/x93/x87/xa2 EGYPTIAN HIEROGLYPH M033B ++<U000131E3> /xf0/x93/x87/xa3 EGYPTIAN HIEROGLYPH M034 ++<U000131E4> /xf0/x93/x87/xa4 EGYPTIAN HIEROGLYPH M035 ++<U000131E5> /xf0/x93/x87/xa5 EGYPTIAN HIEROGLYPH M036 ++<U000131E6> /xf0/x93/x87/xa6 EGYPTIAN HIEROGLYPH M037 ++<U000131E7> /xf0/x93/x87/xa7 EGYPTIAN HIEROGLYPH M038 ++<U000131E8> /xf0/x93/x87/xa8 EGYPTIAN HIEROGLYPH M039 ++<U000131E9> /xf0/x93/x87/xa9 EGYPTIAN HIEROGLYPH M040 ++<U000131EA> /xf0/x93/x87/xaa EGYPTIAN HIEROGLYPH M040A ++<U000131EB> /xf0/x93/x87/xab EGYPTIAN HIEROGLYPH M041 ++<U000131EC> /xf0/x93/x87/xac EGYPTIAN HIEROGLYPH M042 ++<U000131ED> /xf0/x93/x87/xad EGYPTIAN HIEROGLYPH M043 ++<U000131EE> /xf0/x93/x87/xae EGYPTIAN HIEROGLYPH M044 ++<U000131EF> /xf0/x93/x87/xaf EGYPTIAN HIEROGLYPH N001 ++<U000131F0> /xf0/x93/x87/xb0 EGYPTIAN HIEROGLYPH N002 ++<U000131F1> /xf0/x93/x87/xb1 EGYPTIAN HIEROGLYPH N003 ++<U000131F2> /xf0/x93/x87/xb2 EGYPTIAN HIEROGLYPH N004 ++<U000131F3> /xf0/x93/x87/xb3 EGYPTIAN HIEROGLYPH N005 ++<U000131F4> /xf0/x93/x87/xb4 EGYPTIAN HIEROGLYPH N006 ++<U000131F5> /xf0/x93/x87/xb5 EGYPTIAN HIEROGLYPH N007 ++<U000131F6> /xf0/x93/x87/xb6 EGYPTIAN HIEROGLYPH N008 ++<U000131F7> /xf0/x93/x87/xb7 EGYPTIAN HIEROGLYPH N009 ++<U000131F8> /xf0/x93/x87/xb8 EGYPTIAN HIEROGLYPH N010 ++<U000131F9> /xf0/x93/x87/xb9 EGYPTIAN HIEROGLYPH N011 ++<U000131FA> /xf0/x93/x87/xba EGYPTIAN HIEROGLYPH N012 ++<U000131FB> /xf0/x93/x87/xbb EGYPTIAN HIEROGLYPH N013 ++<U000131FC> /xf0/x93/x87/xbc EGYPTIAN HIEROGLYPH N014 ++<U000131FD> /xf0/x93/x87/xbd EGYPTIAN HIEROGLYPH N015 ++<U000131FE> /xf0/x93/x87/xbe EGYPTIAN HIEROGLYPH N016 ++<U000131FF> /xf0/x93/x87/xbf EGYPTIAN HIEROGLYPH N017 ++<U00013200> /xf0/x93/x88/x80 EGYPTIAN HIEROGLYPH N018 ++<U00013201> /xf0/x93/x88/x81 EGYPTIAN HIEROGLYPH N018A ++<U00013202> /xf0/x93/x88/x82 EGYPTIAN HIEROGLYPH N018B ++<U00013203> /xf0/x93/x88/x83 EGYPTIAN HIEROGLYPH N019 ++<U00013204> /xf0/x93/x88/x84 EGYPTIAN HIEROGLYPH N020 ++<U00013205> /xf0/x93/x88/x85 EGYPTIAN HIEROGLYPH N021 ++<U00013206> /xf0/x93/x88/x86 EGYPTIAN HIEROGLYPH N022 ++<U00013207> /xf0/x93/x88/x87 EGYPTIAN HIEROGLYPH N023 ++<U00013208> /xf0/x93/x88/x88 EGYPTIAN HIEROGLYPH N024 ++<U00013209> /xf0/x93/x88/x89 EGYPTIAN HIEROGLYPH N025 ++<U0001320A> /xf0/x93/x88/x8a EGYPTIAN HIEROGLYPH N025A ++<U0001320B> /xf0/x93/x88/x8b EGYPTIAN HIEROGLYPH N026 ++<U0001320C> /xf0/x93/x88/x8c EGYPTIAN HIEROGLYPH N027 ++<U0001320D> /xf0/x93/x88/x8d EGYPTIAN HIEROGLYPH N028 ++<U0001320E> /xf0/x93/x88/x8e EGYPTIAN HIEROGLYPH N029 ++<U0001320F> /xf0/x93/x88/x8f EGYPTIAN HIEROGLYPH N030 ++<U00013210> /xf0/x93/x88/x90 EGYPTIAN HIEROGLYPH N031 ++<U00013211> /xf0/x93/x88/x91 EGYPTIAN HIEROGLYPH N032 ++<U00013212> /xf0/x93/x88/x92 EGYPTIAN HIEROGLYPH N033 ++<U00013213> /xf0/x93/x88/x93 EGYPTIAN HIEROGLYPH N033A ++<U00013214> /xf0/x93/x88/x94 EGYPTIAN HIEROGLYPH N034 ++<U00013215> /xf0/x93/x88/x95 EGYPTIAN HIEROGLYPH N034A ++<U00013216> /xf0/x93/x88/x96 EGYPTIAN HIEROGLYPH N035 ++<U00013217> /xf0/x93/x88/x97 EGYPTIAN HIEROGLYPH N035A ++<U00013218> /xf0/x93/x88/x98 EGYPTIAN HIEROGLYPH N036 ++<U00013219> /xf0/x93/x88/x99 EGYPTIAN HIEROGLYPH N037 ++<U0001321A> /xf0/x93/x88/x9a EGYPTIAN HIEROGLYPH N037A ++<U0001321B> /xf0/x93/x88/x9b EGYPTIAN HIEROGLYPH N038 ++<U0001321C> /xf0/x93/x88/x9c EGYPTIAN HIEROGLYPH N039 ++<U0001321D> /xf0/x93/x88/x9d EGYPTIAN HIEROGLYPH N040 ++<U0001321E> /xf0/x93/x88/x9e EGYPTIAN HIEROGLYPH N041 ++<U0001321F> /xf0/x93/x88/x9f EGYPTIAN HIEROGLYPH N042 ++<U00013220> /xf0/x93/x88/xa0 EGYPTIAN HIEROGLYPH NL001 ++<U00013221> /xf0/x93/x88/xa1 EGYPTIAN HIEROGLYPH NL002 ++<U00013222> /xf0/x93/x88/xa2 EGYPTIAN HIEROGLYPH NL003 ++<U00013223> /xf0/x93/x88/xa3 EGYPTIAN HIEROGLYPH NL004 ++<U00013224> /xf0/x93/x88/xa4 EGYPTIAN HIEROGLYPH NL005 ++<U00013225> /xf0/x93/x88/xa5 EGYPTIAN HIEROGLYPH NL005A ++<U00013226> /xf0/x93/x88/xa6 EGYPTIAN HIEROGLYPH NL006 ++<U00013227> /xf0/x93/x88/xa7 EGYPTIAN HIEROGLYPH NL007 ++<U00013228> /xf0/x93/x88/xa8 EGYPTIAN HIEROGLYPH NL008 ++<U00013229> /xf0/x93/x88/xa9 EGYPTIAN HIEROGLYPH NL009 ++<U0001322A> /xf0/x93/x88/xaa EGYPTIAN HIEROGLYPH NL010 ++<U0001322B> /xf0/x93/x88/xab EGYPTIAN HIEROGLYPH NL011 ++<U0001322C> /xf0/x93/x88/xac EGYPTIAN HIEROGLYPH NL012 ++<U0001322D> /xf0/x93/x88/xad EGYPTIAN HIEROGLYPH NL013 ++<U0001322E> /xf0/x93/x88/xae EGYPTIAN HIEROGLYPH NL014 ++<U0001322F> /xf0/x93/x88/xaf EGYPTIAN HIEROGLYPH NL015 ++<U00013230> /xf0/x93/x88/xb0 EGYPTIAN HIEROGLYPH NL016 ++<U00013231> /xf0/x93/x88/xb1 EGYPTIAN HIEROGLYPH NL017 ++<U00013232> /xf0/x93/x88/xb2 EGYPTIAN HIEROGLYPH NL017A ++<U00013233> /xf0/x93/x88/xb3 EGYPTIAN HIEROGLYPH NL018 ++<U00013234> /xf0/x93/x88/xb4 EGYPTIAN HIEROGLYPH NL019 ++<U00013235> /xf0/x93/x88/xb5 EGYPTIAN HIEROGLYPH NL020 ++<U00013236> /xf0/x93/x88/xb6 EGYPTIAN HIEROGLYPH NU001 ++<U00013237> /xf0/x93/x88/xb7 EGYPTIAN HIEROGLYPH NU002 ++<U00013238> /xf0/x93/x88/xb8 EGYPTIAN HIEROGLYPH NU003 ++<U00013239> /xf0/x93/x88/xb9 EGYPTIAN HIEROGLYPH NU004 ++<U0001323A> /xf0/x93/x88/xba EGYPTIAN HIEROGLYPH NU005 ++<U0001323B> /xf0/x93/x88/xbb EGYPTIAN HIEROGLYPH NU006 ++<U0001323C> /xf0/x93/x88/xbc EGYPTIAN HIEROGLYPH NU007 ++<U0001323D> /xf0/x93/x88/xbd EGYPTIAN HIEROGLYPH NU008 ++<U0001323E> /xf0/x93/x88/xbe EGYPTIAN HIEROGLYPH NU009 ++<U0001323F> /xf0/x93/x88/xbf EGYPTIAN HIEROGLYPH NU010 ++<U00013240> /xf0/x93/x89/x80 EGYPTIAN HIEROGLYPH NU010A ++<U00013241> /xf0/x93/x89/x81 EGYPTIAN HIEROGLYPH NU011 ++<U00013242> /xf0/x93/x89/x82 EGYPTIAN HIEROGLYPH NU011A ++<U00013243> /xf0/x93/x89/x83 EGYPTIAN HIEROGLYPH NU012 ++<U00013244> /xf0/x93/x89/x84 EGYPTIAN HIEROGLYPH NU013 ++<U00013245> /xf0/x93/x89/x85 EGYPTIAN HIEROGLYPH NU014 ++<U00013246> /xf0/x93/x89/x86 EGYPTIAN HIEROGLYPH NU015 ++<U00013247> /xf0/x93/x89/x87 EGYPTIAN HIEROGLYPH NU016 ++<U00013248> /xf0/x93/x89/x88 EGYPTIAN HIEROGLYPH NU017 ++<U00013249> /xf0/x93/x89/x89 EGYPTIAN HIEROGLYPH NU018 ++<U0001324A> /xf0/x93/x89/x8a EGYPTIAN HIEROGLYPH NU018A ++<U0001324B> /xf0/x93/x89/x8b EGYPTIAN HIEROGLYPH NU019 ++<U0001324C> /xf0/x93/x89/x8c EGYPTIAN HIEROGLYPH NU020 ++<U0001324D> /xf0/x93/x89/x8d EGYPTIAN HIEROGLYPH NU021 ++<U0001324E> /xf0/x93/x89/x8e EGYPTIAN HIEROGLYPH NU022 ++<U0001324F> /xf0/x93/x89/x8f EGYPTIAN HIEROGLYPH NU022A ++<U00013250> /xf0/x93/x89/x90 EGYPTIAN HIEROGLYPH O001 ++<U00013251> /xf0/x93/x89/x91 EGYPTIAN HIEROGLYPH O001A ++<U00013252> /xf0/x93/x89/x92 EGYPTIAN HIEROGLYPH O002 ++<U00013253> /xf0/x93/x89/x93 EGYPTIAN HIEROGLYPH O003 ++<U00013254> /xf0/x93/x89/x94 EGYPTIAN HIEROGLYPH O004 ++<U00013255> /xf0/x93/x89/x95 EGYPTIAN HIEROGLYPH O005 ++<U00013256> /xf0/x93/x89/x96 EGYPTIAN HIEROGLYPH O005A ++<U00013257> /xf0/x93/x89/x97 EGYPTIAN HIEROGLYPH O006 ++<U00013258> /xf0/x93/x89/x98 EGYPTIAN HIEROGLYPH O006A ++<U00013259> /xf0/x93/x89/x99 EGYPTIAN HIEROGLYPH O006B ++<U0001325A> /xf0/x93/x89/x9a EGYPTIAN HIEROGLYPH O006C ++<U0001325B> /xf0/x93/x89/x9b EGYPTIAN HIEROGLYPH O006D ++<U0001325C> /xf0/x93/x89/x9c EGYPTIAN HIEROGLYPH O006E ++<U0001325D> /xf0/x93/x89/x9d EGYPTIAN HIEROGLYPH O006F ++<U0001325E> /xf0/x93/x89/x9e EGYPTIAN HIEROGLYPH O007 ++<U0001325F> /xf0/x93/x89/x9f EGYPTIAN HIEROGLYPH O008 ++<U00013260> /xf0/x93/x89/xa0 EGYPTIAN HIEROGLYPH O009 ++<U00013261> /xf0/x93/x89/xa1 EGYPTIAN HIEROGLYPH O010 ++<U00013262> /xf0/x93/x89/xa2 EGYPTIAN HIEROGLYPH O010A ++<U00013263> /xf0/x93/x89/xa3 EGYPTIAN HIEROGLYPH O010B ++<U00013264> /xf0/x93/x89/xa4 EGYPTIAN HIEROGLYPH O010C ++<U00013265> /xf0/x93/x89/xa5 EGYPTIAN HIEROGLYPH O011 ++<U00013266> /xf0/x93/x89/xa6 EGYPTIAN HIEROGLYPH O012 ++<U00013267> /xf0/x93/x89/xa7 EGYPTIAN HIEROGLYPH O013 ++<U00013268> /xf0/x93/x89/xa8 EGYPTIAN HIEROGLYPH O014 ++<U00013269> /xf0/x93/x89/xa9 EGYPTIAN HIEROGLYPH O015 ++<U0001326A> /xf0/x93/x89/xaa EGYPTIAN HIEROGLYPH O016 ++<U0001326B> /xf0/x93/x89/xab EGYPTIAN HIEROGLYPH O017 ++<U0001326C> /xf0/x93/x89/xac EGYPTIAN HIEROGLYPH O018 ++<U0001326D> /xf0/x93/x89/xad EGYPTIAN HIEROGLYPH O019 ++<U0001326E> /xf0/x93/x89/xae EGYPTIAN HIEROGLYPH O019A ++<U0001326F> /xf0/x93/x89/xaf EGYPTIAN HIEROGLYPH O020 ++<U00013270> /xf0/x93/x89/xb0 EGYPTIAN HIEROGLYPH O020A ++<U00013271> /xf0/x93/x89/xb1 EGYPTIAN HIEROGLYPH O021 ++<U00013272> /xf0/x93/x89/xb2 EGYPTIAN HIEROGLYPH O022 ++<U00013273> /xf0/x93/x89/xb3 EGYPTIAN HIEROGLYPH O023 ++<U00013274> /xf0/x93/x89/xb4 EGYPTIAN HIEROGLYPH O024 ++<U00013275> /xf0/x93/x89/xb5 EGYPTIAN HIEROGLYPH O024A ++<U00013276> /xf0/x93/x89/xb6 EGYPTIAN HIEROGLYPH O025 ++<U00013277> /xf0/x93/x89/xb7 EGYPTIAN HIEROGLYPH O025A ++<U00013278> /xf0/x93/x89/xb8 EGYPTIAN HIEROGLYPH O026 ++<U00013279> /xf0/x93/x89/xb9 EGYPTIAN HIEROGLYPH O027 ++<U0001327A> /xf0/x93/x89/xba EGYPTIAN HIEROGLYPH O028 ++<U0001327B> /xf0/x93/x89/xbb EGYPTIAN HIEROGLYPH O029 ++<U0001327C> /xf0/x93/x89/xbc EGYPTIAN HIEROGLYPH O029A ++<U0001327D> /xf0/x93/x89/xbd EGYPTIAN HIEROGLYPH O030 ++<U0001327E> /xf0/x93/x89/xbe EGYPTIAN HIEROGLYPH O030A ++<U0001327F> /xf0/x93/x89/xbf EGYPTIAN HIEROGLYPH O031 ++<U00013280> /xf0/x93/x8a/x80 EGYPTIAN HIEROGLYPH O032 ++<U00013281> /xf0/x93/x8a/x81 EGYPTIAN HIEROGLYPH O033 ++<U00013282> /xf0/x93/x8a/x82 EGYPTIAN HIEROGLYPH O033A ++<U00013283> /xf0/x93/x8a/x83 EGYPTIAN HIEROGLYPH O034 ++<U00013284> /xf0/x93/x8a/x84 EGYPTIAN HIEROGLYPH O035 ++<U00013285> /xf0/x93/x8a/x85 EGYPTIAN HIEROGLYPH O036 ++<U00013286> /xf0/x93/x8a/x86 EGYPTIAN HIEROGLYPH O036A ++<U00013287> /xf0/x93/x8a/x87 EGYPTIAN HIEROGLYPH O036B ++<U00013288> /xf0/x93/x8a/x88 EGYPTIAN HIEROGLYPH O036C ++<U00013289> /xf0/x93/x8a/x89 EGYPTIAN HIEROGLYPH O036D ++<U0001328A> /xf0/x93/x8a/x8a EGYPTIAN HIEROGLYPH O037 ++<U0001328B> /xf0/x93/x8a/x8b EGYPTIAN HIEROGLYPH O038 ++<U0001328C> /xf0/x93/x8a/x8c EGYPTIAN HIEROGLYPH O039 ++<U0001328D> /xf0/x93/x8a/x8d EGYPTIAN HIEROGLYPH O040 ++<U0001328E> /xf0/x93/x8a/x8e EGYPTIAN HIEROGLYPH O041 ++<U0001328F> /xf0/x93/x8a/x8f EGYPTIAN HIEROGLYPH O042 ++<U00013290> /xf0/x93/x8a/x90 EGYPTIAN HIEROGLYPH O043 ++<U00013291> /xf0/x93/x8a/x91 EGYPTIAN HIEROGLYPH O044 ++<U00013292> /xf0/x93/x8a/x92 EGYPTIAN HIEROGLYPH O045 ++<U00013293> /xf0/x93/x8a/x93 EGYPTIAN HIEROGLYPH O046 ++<U00013294> /xf0/x93/x8a/x94 EGYPTIAN HIEROGLYPH O047 ++<U00013295> /xf0/x93/x8a/x95 EGYPTIAN HIEROGLYPH O048 ++<U00013296> /xf0/x93/x8a/x96 EGYPTIAN HIEROGLYPH O049 ++<U00013297> /xf0/x93/x8a/x97 EGYPTIAN HIEROGLYPH O050 ++<U00013298> /xf0/x93/x8a/x98 EGYPTIAN HIEROGLYPH O050A ++<U00013299> /xf0/x93/x8a/x99 EGYPTIAN HIEROGLYPH O050B ++<U0001329A> /xf0/x93/x8a/x9a EGYPTIAN HIEROGLYPH O051 ++<U0001329B> /xf0/x93/x8a/x9b EGYPTIAN HIEROGLYPH P001 ++<U0001329C> /xf0/x93/x8a/x9c EGYPTIAN HIEROGLYPH P001A ++<U0001329D> /xf0/x93/x8a/x9d EGYPTIAN HIEROGLYPH P002 ++<U0001329E> /xf0/x93/x8a/x9e EGYPTIAN HIEROGLYPH P003 ++<U0001329F> /xf0/x93/x8a/x9f EGYPTIAN HIEROGLYPH P003A ++<U000132A0> /xf0/x93/x8a/xa0 EGYPTIAN HIEROGLYPH P004 ++<U000132A1> /xf0/x93/x8a/xa1 EGYPTIAN HIEROGLYPH P005 ++<U000132A2> /xf0/x93/x8a/xa2 EGYPTIAN HIEROGLYPH P006 ++<U000132A3> /xf0/x93/x8a/xa3 EGYPTIAN HIEROGLYPH P007 ++<U000132A4> /xf0/x93/x8a/xa4 EGYPTIAN HIEROGLYPH P008 ++<U000132A5> /xf0/x93/x8a/xa5 EGYPTIAN HIEROGLYPH P009 ++<U000132A6> /xf0/x93/x8a/xa6 EGYPTIAN HIEROGLYPH P010 ++<U000132A7> /xf0/x93/x8a/xa7 EGYPTIAN HIEROGLYPH P011 ++<U000132A8> /xf0/x93/x8a/xa8 EGYPTIAN HIEROGLYPH Q001 ++<U000132A9> /xf0/x93/x8a/xa9 EGYPTIAN HIEROGLYPH Q002 ++<U000132AA> /xf0/x93/x8a/xaa EGYPTIAN HIEROGLYPH Q003 ++<U000132AB> /xf0/x93/x8a/xab EGYPTIAN HIEROGLYPH Q004 ++<U000132AC> /xf0/x93/x8a/xac EGYPTIAN HIEROGLYPH Q005 ++<U000132AD> /xf0/x93/x8a/xad EGYPTIAN HIEROGLYPH Q006 ++<U000132AE> /xf0/x93/x8a/xae EGYPTIAN HIEROGLYPH Q007 ++<U000132AF> /xf0/x93/x8a/xaf EGYPTIAN HIEROGLYPH R001 ++<U000132B0> /xf0/x93/x8a/xb0 EGYPTIAN HIEROGLYPH R002 ++<U000132B1> /xf0/x93/x8a/xb1 EGYPTIAN HIEROGLYPH R002A ++<U000132B2> /xf0/x93/x8a/xb2 EGYPTIAN HIEROGLYPH R003 ++<U000132B3> /xf0/x93/x8a/xb3 EGYPTIAN HIEROGLYPH R003A ++<U000132B4> /xf0/x93/x8a/xb4 EGYPTIAN HIEROGLYPH R003B ++<U000132B5> /xf0/x93/x8a/xb5 EGYPTIAN HIEROGLYPH R004 ++<U000132B6> /xf0/x93/x8a/xb6 EGYPTIAN HIEROGLYPH R005 ++<U000132B7> /xf0/x93/x8a/xb7 EGYPTIAN HIEROGLYPH R006 ++<U000132B8> /xf0/x93/x8a/xb8 EGYPTIAN HIEROGLYPH R007 ++<U000132B9> /xf0/x93/x8a/xb9 EGYPTIAN HIEROGLYPH R008 ++<U000132BA> /xf0/x93/x8a/xba EGYPTIAN HIEROGLYPH R009 ++<U000132BB> /xf0/x93/x8a/xbb EGYPTIAN HIEROGLYPH R010 ++<U000132BC> /xf0/x93/x8a/xbc EGYPTIAN HIEROGLYPH R010A ++<U000132BD> /xf0/x93/x8a/xbd EGYPTIAN HIEROGLYPH R011 ++<U000132BE> /xf0/x93/x8a/xbe EGYPTIAN HIEROGLYPH R012 ++<U000132BF> /xf0/x93/x8a/xbf EGYPTIAN HIEROGLYPH R013 ++<U000132C0> /xf0/x93/x8b/x80 EGYPTIAN HIEROGLYPH R014 ++<U000132C1> /xf0/x93/x8b/x81 EGYPTIAN HIEROGLYPH R015 ++<U000132C2> /xf0/x93/x8b/x82 EGYPTIAN HIEROGLYPH R016 ++<U000132C3> /xf0/x93/x8b/x83 EGYPTIAN HIEROGLYPH R016A ++<U000132C4> /xf0/x93/x8b/x84 EGYPTIAN HIEROGLYPH R017 ++<U000132C5> /xf0/x93/x8b/x85 EGYPTIAN HIEROGLYPH R018 ++<U000132C6> /xf0/x93/x8b/x86 EGYPTIAN HIEROGLYPH R019 ++<U000132C7> /xf0/x93/x8b/x87 EGYPTIAN HIEROGLYPH R020 ++<U000132C8> /xf0/x93/x8b/x88 EGYPTIAN HIEROGLYPH R021 ++<U000132C9> /xf0/x93/x8b/x89 EGYPTIAN HIEROGLYPH R022 ++<U000132CA> /xf0/x93/x8b/x8a EGYPTIAN HIEROGLYPH R023 ++<U000132CB> /xf0/x93/x8b/x8b EGYPTIAN HIEROGLYPH R024 ++<U000132CC> /xf0/x93/x8b/x8c EGYPTIAN HIEROGLYPH R025 ++<U000132CD> /xf0/x93/x8b/x8d EGYPTIAN HIEROGLYPH R026 ++<U000132CE> /xf0/x93/x8b/x8e EGYPTIAN HIEROGLYPH R027 ++<U000132CF> /xf0/x93/x8b/x8f EGYPTIAN HIEROGLYPH R028 ++<U000132D0> /xf0/x93/x8b/x90 EGYPTIAN HIEROGLYPH R029 ++<U000132D1> /xf0/x93/x8b/x91 EGYPTIAN HIEROGLYPH S001 ++<U000132D2> /xf0/x93/x8b/x92 EGYPTIAN HIEROGLYPH S002 ++<U000132D3> /xf0/x93/x8b/x93 EGYPTIAN HIEROGLYPH S002A ++<U000132D4> /xf0/x93/x8b/x94 EGYPTIAN HIEROGLYPH S003 ++<U000132D5> /xf0/x93/x8b/x95 EGYPTIAN HIEROGLYPH S004 ++<U000132D6> /xf0/x93/x8b/x96 EGYPTIAN HIEROGLYPH S005 ++<U000132D7> /xf0/x93/x8b/x97 EGYPTIAN HIEROGLYPH S006 ++<U000132D8> /xf0/x93/x8b/x98 EGYPTIAN HIEROGLYPH S006A ++<U000132D9> /xf0/x93/x8b/x99 EGYPTIAN HIEROGLYPH S007 ++<U000132DA> /xf0/x93/x8b/x9a EGYPTIAN HIEROGLYPH S008 ++<U000132DB> /xf0/x93/x8b/x9b EGYPTIAN HIEROGLYPH S009 ++<U000132DC> /xf0/x93/x8b/x9c EGYPTIAN HIEROGLYPH S010 ++<U000132DD> /xf0/x93/x8b/x9d EGYPTIAN HIEROGLYPH S011 ++<U000132DE> /xf0/x93/x8b/x9e EGYPTIAN HIEROGLYPH S012 ++<U000132DF> /xf0/x93/x8b/x9f EGYPTIAN HIEROGLYPH S013 ++<U000132E0> /xf0/x93/x8b/xa0 EGYPTIAN HIEROGLYPH S014 ++<U000132E1> /xf0/x93/x8b/xa1 EGYPTIAN HIEROGLYPH S014A ++<U000132E2> /xf0/x93/x8b/xa2 EGYPTIAN HIEROGLYPH S014B ++<U000132E3> /xf0/x93/x8b/xa3 EGYPTIAN HIEROGLYPH S015 ++<U000132E4> /xf0/x93/x8b/xa4 EGYPTIAN HIEROGLYPH S016 ++<U000132E5> /xf0/x93/x8b/xa5 EGYPTIAN HIEROGLYPH S017 ++<U000132E6> /xf0/x93/x8b/xa6 EGYPTIAN HIEROGLYPH S017A ++<U000132E7> /xf0/x93/x8b/xa7 EGYPTIAN HIEROGLYPH S018 ++<U000132E8> /xf0/x93/x8b/xa8 EGYPTIAN HIEROGLYPH S019 ++<U000132E9> /xf0/x93/x8b/xa9 EGYPTIAN HIEROGLYPH S020 ++<U000132EA> /xf0/x93/x8b/xaa EGYPTIAN HIEROGLYPH S021 ++<U000132EB> /xf0/x93/x8b/xab EGYPTIAN HIEROGLYPH S022 ++<U000132EC> /xf0/x93/x8b/xac EGYPTIAN HIEROGLYPH S023 ++<U000132ED> /xf0/x93/x8b/xad EGYPTIAN HIEROGLYPH S024 ++<U000132EE> /xf0/x93/x8b/xae EGYPTIAN HIEROGLYPH S025 ++<U000132EF> /xf0/x93/x8b/xaf EGYPTIAN HIEROGLYPH S026 ++<U000132F0> /xf0/x93/x8b/xb0 EGYPTIAN HIEROGLYPH S026A ++<U000132F1> /xf0/x93/x8b/xb1 EGYPTIAN HIEROGLYPH S026B ++<U000132F2> /xf0/x93/x8b/xb2 EGYPTIAN HIEROGLYPH S027 ++<U000132F3> /xf0/x93/x8b/xb3 EGYPTIAN HIEROGLYPH S028 ++<U000132F4> /xf0/x93/x8b/xb4 EGYPTIAN HIEROGLYPH S029 ++<U000132F5> /xf0/x93/x8b/xb5 EGYPTIAN HIEROGLYPH S030 ++<U000132F6> /xf0/x93/x8b/xb6 EGYPTIAN HIEROGLYPH S031 ++<U000132F7> /xf0/x93/x8b/xb7 EGYPTIAN HIEROGLYPH S032 ++<U000132F8> /xf0/x93/x8b/xb8 EGYPTIAN HIEROGLYPH S033 ++<U000132F9> /xf0/x93/x8b/xb9 EGYPTIAN HIEROGLYPH S034 ++<U000132FA> /xf0/x93/x8b/xba EGYPTIAN HIEROGLYPH S035 ++<U000132FB> /xf0/x93/x8b/xbb EGYPTIAN HIEROGLYPH S035A ++<U000132FC> /xf0/x93/x8b/xbc EGYPTIAN HIEROGLYPH S036 ++<U000132FD> /xf0/x93/x8b/xbd EGYPTIAN HIEROGLYPH S037 ++<U000132FE> /xf0/x93/x8b/xbe EGYPTIAN HIEROGLYPH S038 ++<U000132FF> /xf0/x93/x8b/xbf EGYPTIAN HIEROGLYPH S039 ++<U00013300> /xf0/x93/x8c/x80 EGYPTIAN HIEROGLYPH S040 ++<U00013301> /xf0/x93/x8c/x81 EGYPTIAN HIEROGLYPH S041 ++<U00013302> /xf0/x93/x8c/x82 EGYPTIAN HIEROGLYPH S042 ++<U00013303> /xf0/x93/x8c/x83 EGYPTIAN HIEROGLYPH S043 ++<U00013304> /xf0/x93/x8c/x84 EGYPTIAN HIEROGLYPH S044 ++<U00013305> /xf0/x93/x8c/x85 EGYPTIAN HIEROGLYPH S045 ++<U00013306> /xf0/x93/x8c/x86 EGYPTIAN HIEROGLYPH S046 ++<U00013307> /xf0/x93/x8c/x87 EGYPTIAN HIEROGLYPH T001 ++<U00013308> /xf0/x93/x8c/x88 EGYPTIAN HIEROGLYPH T002 ++<U00013309> /xf0/x93/x8c/x89 EGYPTIAN HIEROGLYPH T003 ++<U0001330A> /xf0/x93/x8c/x8a EGYPTIAN HIEROGLYPH T003A ++<U0001330B> /xf0/x93/x8c/x8b EGYPTIAN HIEROGLYPH T004 ++<U0001330C> /xf0/x93/x8c/x8c EGYPTIAN HIEROGLYPH T005 ++<U0001330D> /xf0/x93/x8c/x8d EGYPTIAN HIEROGLYPH T006 ++<U0001330E> /xf0/x93/x8c/x8e EGYPTIAN HIEROGLYPH T007 ++<U0001330F> /xf0/x93/x8c/x8f EGYPTIAN HIEROGLYPH T007A ++<U00013310> /xf0/x93/x8c/x90 EGYPTIAN HIEROGLYPH T008 ++<U00013311> /xf0/x93/x8c/x91 EGYPTIAN HIEROGLYPH T008A ++<U00013312> /xf0/x93/x8c/x92 EGYPTIAN HIEROGLYPH T009 ++<U00013313> /xf0/x93/x8c/x93 EGYPTIAN HIEROGLYPH T009A ++<U00013314> /xf0/x93/x8c/x94 EGYPTIAN HIEROGLYPH T010 ++<U00013315> /xf0/x93/x8c/x95 EGYPTIAN HIEROGLYPH T011 ++<U00013316> /xf0/x93/x8c/x96 EGYPTIAN HIEROGLYPH T011A ++<U00013317> /xf0/x93/x8c/x97 EGYPTIAN HIEROGLYPH T012 ++<U00013318> /xf0/x93/x8c/x98 EGYPTIAN HIEROGLYPH T013 ++<U00013319> /xf0/x93/x8c/x99 EGYPTIAN HIEROGLYPH T014 ++<U0001331A> /xf0/x93/x8c/x9a EGYPTIAN HIEROGLYPH T015 ++<U0001331B> /xf0/x93/x8c/x9b EGYPTIAN HIEROGLYPH T016 ++<U0001331C> /xf0/x93/x8c/x9c EGYPTIAN HIEROGLYPH T016A ++<U0001331D> /xf0/x93/x8c/x9d EGYPTIAN HIEROGLYPH T017 ++<U0001331E> /xf0/x93/x8c/x9e EGYPTIAN HIEROGLYPH T018 ++<U0001331F> /xf0/x93/x8c/x9f EGYPTIAN HIEROGLYPH T019 ++<U00013320> /xf0/x93/x8c/xa0 EGYPTIAN HIEROGLYPH T020 ++<U00013321> /xf0/x93/x8c/xa1 EGYPTIAN HIEROGLYPH T021 ++<U00013322> /xf0/x93/x8c/xa2 EGYPTIAN HIEROGLYPH T022 ++<U00013323> /xf0/x93/x8c/xa3 EGYPTIAN HIEROGLYPH T023 ++<U00013324> /xf0/x93/x8c/xa4 EGYPTIAN HIEROGLYPH T024 ++<U00013325> /xf0/x93/x8c/xa5 EGYPTIAN HIEROGLYPH T025 ++<U00013326> /xf0/x93/x8c/xa6 EGYPTIAN HIEROGLYPH T026 ++<U00013327> /xf0/x93/x8c/xa7 EGYPTIAN HIEROGLYPH T027 ++<U00013328> /xf0/x93/x8c/xa8 EGYPTIAN HIEROGLYPH T028 ++<U00013329> /xf0/x93/x8c/xa9 EGYPTIAN HIEROGLYPH T029 ++<U0001332A> /xf0/x93/x8c/xaa EGYPTIAN HIEROGLYPH T030 ++<U0001332B> /xf0/x93/x8c/xab EGYPTIAN HIEROGLYPH T031 ++<U0001332C> /xf0/x93/x8c/xac EGYPTIAN HIEROGLYPH T032 ++<U0001332D> /xf0/x93/x8c/xad EGYPTIAN HIEROGLYPH T032A ++<U0001332E> /xf0/x93/x8c/xae EGYPTIAN HIEROGLYPH T033 ++<U0001332F> /xf0/x93/x8c/xaf EGYPTIAN HIEROGLYPH T033A ++<U00013330> /xf0/x93/x8c/xb0 EGYPTIAN HIEROGLYPH T034 ++<U00013331> /xf0/x93/x8c/xb1 EGYPTIAN HIEROGLYPH T035 ++<U00013332> /xf0/x93/x8c/xb2 EGYPTIAN HIEROGLYPH T036 ++<U00013333> /xf0/x93/x8c/xb3 EGYPTIAN HIEROGLYPH U001 ++<U00013334> /xf0/x93/x8c/xb4 EGYPTIAN HIEROGLYPH U002 ++<U00013335> /xf0/x93/x8c/xb5 EGYPTIAN HIEROGLYPH U003 ++<U00013336> /xf0/x93/x8c/xb6 EGYPTIAN HIEROGLYPH U004 ++<U00013337> /xf0/x93/x8c/xb7 EGYPTIAN HIEROGLYPH U005 ++<U00013338> /xf0/x93/x8c/xb8 EGYPTIAN HIEROGLYPH U006 ++<U00013339> /xf0/x93/x8c/xb9 EGYPTIAN HIEROGLYPH U006A ++<U0001333A> /xf0/x93/x8c/xba EGYPTIAN HIEROGLYPH U006B ++<U0001333B> /xf0/x93/x8c/xbb EGYPTIAN HIEROGLYPH U007 ++<U0001333C> /xf0/x93/x8c/xbc EGYPTIAN HIEROGLYPH U008 ++<U0001333D> /xf0/x93/x8c/xbd EGYPTIAN HIEROGLYPH U009 ++<U0001333E> /xf0/x93/x8c/xbe EGYPTIAN HIEROGLYPH U010 ++<U0001333F> /xf0/x93/x8c/xbf EGYPTIAN HIEROGLYPH U011 ++<U00013340> /xf0/x93/x8d/x80 EGYPTIAN HIEROGLYPH U012 ++<U00013341> /xf0/x93/x8d/x81 EGYPTIAN HIEROGLYPH U013 ++<U00013342> /xf0/x93/x8d/x82 EGYPTIAN HIEROGLYPH U014 ++<U00013343> /xf0/x93/x8d/x83 EGYPTIAN HIEROGLYPH U015 ++<U00013344> /xf0/x93/x8d/x84 EGYPTIAN HIEROGLYPH U016 ++<U00013345> /xf0/x93/x8d/x85 EGYPTIAN HIEROGLYPH U017 ++<U00013346> /xf0/x93/x8d/x86 EGYPTIAN HIEROGLYPH U018 ++<U00013347> /xf0/x93/x8d/x87 EGYPTIAN HIEROGLYPH U019 ++<U00013348> /xf0/x93/x8d/x88 EGYPTIAN HIEROGLYPH U020 ++<U00013349> /xf0/x93/x8d/x89 EGYPTIAN HIEROGLYPH U021 ++<U0001334A> /xf0/x93/x8d/x8a EGYPTIAN HIEROGLYPH U022 ++<U0001334B> /xf0/x93/x8d/x8b EGYPTIAN HIEROGLYPH U023 ++<U0001334C> /xf0/x93/x8d/x8c EGYPTIAN HIEROGLYPH U023A ++<U0001334D> /xf0/x93/x8d/x8d EGYPTIAN HIEROGLYPH U024 ++<U0001334E> /xf0/x93/x8d/x8e EGYPTIAN HIEROGLYPH U025 ++<U0001334F> /xf0/x93/x8d/x8f EGYPTIAN HIEROGLYPH U026 ++<U00013350> /xf0/x93/x8d/x90 EGYPTIAN HIEROGLYPH U027 ++<U00013351> /xf0/x93/x8d/x91 EGYPTIAN HIEROGLYPH U028 ++<U00013352> /xf0/x93/x8d/x92 EGYPTIAN HIEROGLYPH U029 ++<U00013353> /xf0/x93/x8d/x93 EGYPTIAN HIEROGLYPH U029A ++<U00013354> /xf0/x93/x8d/x94 EGYPTIAN HIEROGLYPH U030 ++<U00013355> /xf0/x93/x8d/x95 EGYPTIAN HIEROGLYPH U031 ++<U00013356> /xf0/x93/x8d/x96 EGYPTIAN HIEROGLYPH U032 ++<U00013357> /xf0/x93/x8d/x97 EGYPTIAN HIEROGLYPH U032A ++<U00013358> /xf0/x93/x8d/x98 EGYPTIAN HIEROGLYPH U033 ++<U00013359> /xf0/x93/x8d/x99 EGYPTIAN HIEROGLYPH U034 ++<U0001335A> /xf0/x93/x8d/x9a EGYPTIAN HIEROGLYPH U035 ++<U0001335B> /xf0/x93/x8d/x9b EGYPTIAN HIEROGLYPH U036 ++<U0001335C> /xf0/x93/x8d/x9c EGYPTIAN HIEROGLYPH U037 ++<U0001335D> /xf0/x93/x8d/x9d EGYPTIAN HIEROGLYPH U038 ++<U0001335E> /xf0/x93/x8d/x9e EGYPTIAN HIEROGLYPH U039 ++<U0001335F> /xf0/x93/x8d/x9f EGYPTIAN HIEROGLYPH U040 ++<U00013360> /xf0/x93/x8d/xa0 EGYPTIAN HIEROGLYPH U041 ++<U00013361> /xf0/x93/x8d/xa1 EGYPTIAN HIEROGLYPH U042 ++<U00013362> /xf0/x93/x8d/xa2 EGYPTIAN HIEROGLYPH V001 ++<U00013363> /xf0/x93/x8d/xa3 EGYPTIAN HIEROGLYPH V001A ++<U00013364> /xf0/x93/x8d/xa4 EGYPTIAN HIEROGLYPH V001B ++<U00013365> /xf0/x93/x8d/xa5 EGYPTIAN HIEROGLYPH V001C ++<U00013366> /xf0/x93/x8d/xa6 EGYPTIAN HIEROGLYPH V001D ++<U00013367> /xf0/x93/x8d/xa7 EGYPTIAN HIEROGLYPH V001E ++<U00013368> /xf0/x93/x8d/xa8 EGYPTIAN HIEROGLYPH V001F ++<U00013369> /xf0/x93/x8d/xa9 EGYPTIAN HIEROGLYPH V001G ++<U0001336A> /xf0/x93/x8d/xaa EGYPTIAN HIEROGLYPH V001H ++<U0001336B> /xf0/x93/x8d/xab EGYPTIAN HIEROGLYPH V001I ++<U0001336C> /xf0/x93/x8d/xac EGYPTIAN HIEROGLYPH V002 ++<U0001336D> /xf0/x93/x8d/xad EGYPTIAN HIEROGLYPH V002A ++<U0001336E> /xf0/x93/x8d/xae EGYPTIAN HIEROGLYPH V003 ++<U0001336F> /xf0/x93/x8d/xaf EGYPTIAN HIEROGLYPH V004 ++<U00013370> /xf0/x93/x8d/xb0 EGYPTIAN HIEROGLYPH V005 ++<U00013371> /xf0/x93/x8d/xb1 EGYPTIAN HIEROGLYPH V006 ++<U00013372> /xf0/x93/x8d/xb2 EGYPTIAN HIEROGLYPH V007 ++<U00013373> /xf0/x93/x8d/xb3 EGYPTIAN HIEROGLYPH V007A ++<U00013374> /xf0/x93/x8d/xb4 EGYPTIAN HIEROGLYPH V007B ++<U00013375> /xf0/x93/x8d/xb5 EGYPTIAN HIEROGLYPH V008 ++<U00013376> /xf0/x93/x8d/xb6 EGYPTIAN HIEROGLYPH V009 ++<U00013377> /xf0/x93/x8d/xb7 EGYPTIAN HIEROGLYPH V010 ++<U00013378> /xf0/x93/x8d/xb8 EGYPTIAN HIEROGLYPH V011 ++<U00013379> /xf0/x93/x8d/xb9 EGYPTIAN HIEROGLYPH V011A ++<U0001337A> /xf0/x93/x8d/xba EGYPTIAN HIEROGLYPH V011B ++<U0001337B> /xf0/x93/x8d/xbb EGYPTIAN HIEROGLYPH V011C ++<U0001337C> /xf0/x93/x8d/xbc EGYPTIAN HIEROGLYPH V012 ++<U0001337D> /xf0/x93/x8d/xbd EGYPTIAN HIEROGLYPH V012A ++<U0001337E> /xf0/x93/x8d/xbe EGYPTIAN HIEROGLYPH V012B ++<U0001337F> /xf0/x93/x8d/xbf EGYPTIAN HIEROGLYPH V013 ++<U00013380> /xf0/x93/x8e/x80 EGYPTIAN HIEROGLYPH V014 ++<U00013381> /xf0/x93/x8e/x81 EGYPTIAN HIEROGLYPH V015 ++<U00013382> /xf0/x93/x8e/x82 EGYPTIAN HIEROGLYPH V016 ++<U00013383> /xf0/x93/x8e/x83 EGYPTIAN HIEROGLYPH V017 ++<U00013384> /xf0/x93/x8e/x84 EGYPTIAN HIEROGLYPH V018 ++<U00013385> /xf0/x93/x8e/x85 EGYPTIAN HIEROGLYPH V019 ++<U00013386> /xf0/x93/x8e/x86 EGYPTIAN HIEROGLYPH V020 ++<U00013387> /xf0/x93/x8e/x87 EGYPTIAN HIEROGLYPH V020A ++<U00013388> /xf0/x93/x8e/x88 EGYPTIAN HIEROGLYPH V020B ++<U00013389> /xf0/x93/x8e/x89 EGYPTIAN HIEROGLYPH V020C ++<U0001338A> /xf0/x93/x8e/x8a EGYPTIAN HIEROGLYPH V020D ++<U0001338B> /xf0/x93/x8e/x8b EGYPTIAN HIEROGLYPH V020E ++<U0001338C> /xf0/x93/x8e/x8c EGYPTIAN HIEROGLYPH V020F ++<U0001338D> /xf0/x93/x8e/x8d EGYPTIAN HIEROGLYPH V020G ++<U0001338E> /xf0/x93/x8e/x8e EGYPTIAN HIEROGLYPH V020H ++<U0001338F> /xf0/x93/x8e/x8f EGYPTIAN HIEROGLYPH V020I ++<U00013390> /xf0/x93/x8e/x90 EGYPTIAN HIEROGLYPH V020J ++<U00013391> /xf0/x93/x8e/x91 EGYPTIAN HIEROGLYPH V020K ++<U00013392> /xf0/x93/x8e/x92 EGYPTIAN HIEROGLYPH V020L ++<U00013393> /xf0/x93/x8e/x93 EGYPTIAN HIEROGLYPH V021 ++<U00013394> /xf0/x93/x8e/x94 EGYPTIAN HIEROGLYPH V022 ++<U00013395> /xf0/x93/x8e/x95 EGYPTIAN HIEROGLYPH V023 ++<U00013396> /xf0/x93/x8e/x96 EGYPTIAN HIEROGLYPH V023A ++<U00013397> /xf0/x93/x8e/x97 EGYPTIAN HIEROGLYPH V024 ++<U00013398> /xf0/x93/x8e/x98 EGYPTIAN HIEROGLYPH V025 ++<U00013399> /xf0/x93/x8e/x99 EGYPTIAN HIEROGLYPH V026 ++<U0001339A> /xf0/x93/x8e/x9a EGYPTIAN HIEROGLYPH V027 ++<U0001339B> /xf0/x93/x8e/x9b EGYPTIAN HIEROGLYPH V028 ++<U0001339C> /xf0/x93/x8e/x9c EGYPTIAN HIEROGLYPH V028A ++<U0001339D> /xf0/x93/x8e/x9d EGYPTIAN HIEROGLYPH V029 ++<U0001339E> /xf0/x93/x8e/x9e EGYPTIAN HIEROGLYPH V029A ++<U0001339F> /xf0/x93/x8e/x9f EGYPTIAN HIEROGLYPH V030 ++<U000133A0> /xf0/x93/x8e/xa0 EGYPTIAN HIEROGLYPH V030A ++<U000133A1> /xf0/x93/x8e/xa1 EGYPTIAN HIEROGLYPH V031 ++<U000133A2> /xf0/x93/x8e/xa2 EGYPTIAN HIEROGLYPH V031A ++<U000133A3> /xf0/x93/x8e/xa3 EGYPTIAN HIEROGLYPH V032 ++<U000133A4> /xf0/x93/x8e/xa4 EGYPTIAN HIEROGLYPH V033 ++<U000133A5> /xf0/x93/x8e/xa5 EGYPTIAN HIEROGLYPH V033A ++<U000133A6> /xf0/x93/x8e/xa6 EGYPTIAN HIEROGLYPH V034 ++<U000133A7> /xf0/x93/x8e/xa7 EGYPTIAN HIEROGLYPH V035 ++<U000133A8> /xf0/x93/x8e/xa8 EGYPTIAN HIEROGLYPH V036 ++<U000133A9> /xf0/x93/x8e/xa9 EGYPTIAN HIEROGLYPH V037 ++<U000133AA> /xf0/x93/x8e/xaa EGYPTIAN HIEROGLYPH V037A ++<U000133AB> /xf0/x93/x8e/xab EGYPTIAN HIEROGLYPH V038 ++<U000133AC> /xf0/x93/x8e/xac EGYPTIAN HIEROGLYPH V039 ++<U000133AD> /xf0/x93/x8e/xad EGYPTIAN HIEROGLYPH V040 ++<U000133AE> /xf0/x93/x8e/xae EGYPTIAN HIEROGLYPH V040A ++<U000133AF> /xf0/x93/x8e/xaf EGYPTIAN HIEROGLYPH W001 ++<U000133B0> /xf0/x93/x8e/xb0 EGYPTIAN HIEROGLYPH W002 ++<U000133B1> /xf0/x93/x8e/xb1 EGYPTIAN HIEROGLYPH W003 ++<U000133B2> /xf0/x93/x8e/xb2 EGYPTIAN HIEROGLYPH W003A ++<U000133B3> /xf0/x93/x8e/xb3 EGYPTIAN HIEROGLYPH W004 ++<U000133B4> /xf0/x93/x8e/xb4 EGYPTIAN HIEROGLYPH W005 ++<U000133B5> /xf0/x93/x8e/xb5 EGYPTIAN HIEROGLYPH W006 ++<U000133B6> /xf0/x93/x8e/xb6 EGYPTIAN HIEROGLYPH W007 ++<U000133B7> /xf0/x93/x8e/xb7 EGYPTIAN HIEROGLYPH W008 ++<U000133B8> /xf0/x93/x8e/xb8 EGYPTIAN HIEROGLYPH W009 ++<U000133B9> /xf0/x93/x8e/xb9 EGYPTIAN HIEROGLYPH W009A ++<U000133BA> /xf0/x93/x8e/xba EGYPTIAN HIEROGLYPH W010 ++<U000133BB> /xf0/x93/x8e/xbb EGYPTIAN HIEROGLYPH W010A ++<U000133BC> /xf0/x93/x8e/xbc EGYPTIAN HIEROGLYPH W011 ++<U000133BD> /xf0/x93/x8e/xbd EGYPTIAN HIEROGLYPH W012 ++<U000133BE> /xf0/x93/x8e/xbe EGYPTIAN HIEROGLYPH W013 ++<U000133BF> /xf0/x93/x8e/xbf EGYPTIAN HIEROGLYPH W014 ++<U000133C0> /xf0/x93/x8f/x80 EGYPTIAN HIEROGLYPH W014A ++<U000133C1> /xf0/x93/x8f/x81 EGYPTIAN HIEROGLYPH W015 ++<U000133C2> /xf0/x93/x8f/x82 EGYPTIAN HIEROGLYPH W016 ++<U000133C3> /xf0/x93/x8f/x83 EGYPTIAN HIEROGLYPH W017 ++<U000133C4> /xf0/x93/x8f/x84 EGYPTIAN HIEROGLYPH W017A ++<U000133C5> /xf0/x93/x8f/x85 EGYPTIAN HIEROGLYPH W018 ++<U000133C6> /xf0/x93/x8f/x86 EGYPTIAN HIEROGLYPH W018A ++<U000133C7> /xf0/x93/x8f/x87 EGYPTIAN HIEROGLYPH W019 ++<U000133C8> /xf0/x93/x8f/x88 EGYPTIAN HIEROGLYPH W020 ++<U000133C9> /xf0/x93/x8f/x89 EGYPTIAN HIEROGLYPH W021 ++<U000133CA> /xf0/x93/x8f/x8a EGYPTIAN HIEROGLYPH W022 ++<U000133CB> /xf0/x93/x8f/x8b EGYPTIAN HIEROGLYPH W023 ++<U000133CC> /xf0/x93/x8f/x8c EGYPTIAN HIEROGLYPH W024 ++<U000133CD> /xf0/x93/x8f/x8d EGYPTIAN HIEROGLYPH W024A ++<U000133CE> /xf0/x93/x8f/x8e EGYPTIAN HIEROGLYPH W025 ++<U000133CF> /xf0/x93/x8f/x8f EGYPTIAN HIEROGLYPH X001 ++<U000133D0> /xf0/x93/x8f/x90 EGYPTIAN HIEROGLYPH X002 ++<U000133D1> /xf0/x93/x8f/x91 EGYPTIAN HIEROGLYPH X003 ++<U000133D2> /xf0/x93/x8f/x92 EGYPTIAN HIEROGLYPH X004 ++<U000133D3> /xf0/x93/x8f/x93 EGYPTIAN HIEROGLYPH X004A ++<U000133D4> /xf0/x93/x8f/x94 EGYPTIAN HIEROGLYPH X004B ++<U000133D5> /xf0/x93/x8f/x95 EGYPTIAN HIEROGLYPH X005 ++<U000133D6> /xf0/x93/x8f/x96 EGYPTIAN HIEROGLYPH X006 ++<U000133D7> /xf0/x93/x8f/x97 EGYPTIAN HIEROGLYPH X006A ++<U000133D8> /xf0/x93/x8f/x98 EGYPTIAN HIEROGLYPH X007 ++<U000133D9> /xf0/x93/x8f/x99 EGYPTIAN HIEROGLYPH X008 ++<U000133DA> /xf0/x93/x8f/x9a EGYPTIAN HIEROGLYPH X008A ++<U000133DB> /xf0/x93/x8f/x9b EGYPTIAN HIEROGLYPH Y001 ++<U000133DC> /xf0/x93/x8f/x9c EGYPTIAN HIEROGLYPH Y001A ++<U000133DD> /xf0/x93/x8f/x9d EGYPTIAN HIEROGLYPH Y002 ++<U000133DE> /xf0/x93/x8f/x9e EGYPTIAN HIEROGLYPH Y003 ++<U000133DF> /xf0/x93/x8f/x9f EGYPTIAN HIEROGLYPH Y004 ++<U000133E0> /xf0/x93/x8f/xa0 EGYPTIAN HIEROGLYPH Y005 ++<U000133E1> /xf0/x93/x8f/xa1 EGYPTIAN HIEROGLYPH Y006 ++<U000133E2> /xf0/x93/x8f/xa2 EGYPTIAN HIEROGLYPH Y007 ++<U000133E3> /xf0/x93/x8f/xa3 EGYPTIAN HIEROGLYPH Y008 ++<U000133E4> /xf0/x93/x8f/xa4 EGYPTIAN HIEROGLYPH Z001 ++<U000133E5> /xf0/x93/x8f/xa5 EGYPTIAN HIEROGLYPH Z002 ++<U000133E6> /xf0/x93/x8f/xa6 EGYPTIAN HIEROGLYPH Z002A ++<U000133E7> /xf0/x93/x8f/xa7 EGYPTIAN HIEROGLYPH Z002B ++<U000133E8> /xf0/x93/x8f/xa8 EGYPTIAN HIEROGLYPH Z002C ++<U000133E9> /xf0/x93/x8f/xa9 EGYPTIAN HIEROGLYPH Z002D ++<U000133EA> /xf0/x93/x8f/xaa EGYPTIAN HIEROGLYPH Z003 ++<U000133EB> /xf0/x93/x8f/xab EGYPTIAN HIEROGLYPH Z003A ++<U000133EC> /xf0/x93/x8f/xac EGYPTIAN HIEROGLYPH Z003B ++<U000133ED> /xf0/x93/x8f/xad EGYPTIAN HIEROGLYPH Z004 ++<U000133EE> /xf0/x93/x8f/xae EGYPTIAN HIEROGLYPH Z004A ++<U000133EF> /xf0/x93/x8f/xaf EGYPTIAN HIEROGLYPH Z005 ++<U000133F0> /xf0/x93/x8f/xb0 EGYPTIAN HIEROGLYPH Z005A ++<U000133F1> /xf0/x93/x8f/xb1 EGYPTIAN HIEROGLYPH Z006 ++<U000133F2> /xf0/x93/x8f/xb2 EGYPTIAN HIEROGLYPH Z007 ++<U000133F3> /xf0/x93/x8f/xb3 EGYPTIAN HIEROGLYPH Z008 ++<U000133F4> /xf0/x93/x8f/xb4 EGYPTIAN HIEROGLYPH Z009 ++<U000133F5> /xf0/x93/x8f/xb5 EGYPTIAN HIEROGLYPH Z010 ++<U000133F6> /xf0/x93/x8f/xb6 EGYPTIAN HIEROGLYPH Z011 ++<U000133F7> /xf0/x93/x8f/xb7 EGYPTIAN HIEROGLYPH Z012 ++<U000133F8> /xf0/x93/x8f/xb8 EGYPTIAN HIEROGLYPH Z013 ++<U000133F9> /xf0/x93/x8f/xb9 EGYPTIAN HIEROGLYPH Z014 ++<U000133FA> /xf0/x93/x8f/xba EGYPTIAN HIEROGLYPH Z015 ++<U000133FB> /xf0/x93/x8f/xbb EGYPTIAN HIEROGLYPH Z015A ++<U000133FC> /xf0/x93/x8f/xbc EGYPTIAN HIEROGLYPH Z015B ++<U000133FD> /xf0/x93/x8f/xbd EGYPTIAN HIEROGLYPH Z015C ++<U000133FE> /xf0/x93/x8f/xbe EGYPTIAN HIEROGLYPH Z015D ++<U000133FF> /xf0/x93/x8f/xbf EGYPTIAN HIEROGLYPH Z015E ++<U00013400> /xf0/x93/x90/x80 EGYPTIAN HIEROGLYPH Z015F ++<U00013401> /xf0/x93/x90/x81 EGYPTIAN HIEROGLYPH Z015G ++<U00013402> /xf0/x93/x90/x82 EGYPTIAN HIEROGLYPH Z015H ++<U00013403> /xf0/x93/x90/x83 EGYPTIAN HIEROGLYPH Z015I ++<U00013404> /xf0/x93/x90/x84 EGYPTIAN HIEROGLYPH Z016 ++<U00013405> /xf0/x93/x90/x85 EGYPTIAN HIEROGLYPH Z016A ++<U00013406> /xf0/x93/x90/x86 EGYPTIAN HIEROGLYPH Z016B ++<U00013407> /xf0/x93/x90/x87 EGYPTIAN HIEROGLYPH Z016C ++<U00013408> /xf0/x93/x90/x88 EGYPTIAN HIEROGLYPH Z016D ++<U00013409> /xf0/x93/x90/x89 EGYPTIAN HIEROGLYPH Z016E ++<U0001340A> /xf0/x93/x90/x8a EGYPTIAN HIEROGLYPH Z016F ++<U0001340B> /xf0/x93/x90/x8b EGYPTIAN HIEROGLYPH Z016G ++<U0001340C> /xf0/x93/x90/x8c EGYPTIAN HIEROGLYPH Z016H ++<U0001340D> /xf0/x93/x90/x8d EGYPTIAN HIEROGLYPH AA001 ++<U0001340E> /xf0/x93/x90/x8e EGYPTIAN HIEROGLYPH AA002 ++<U0001340F> /xf0/x93/x90/x8f EGYPTIAN HIEROGLYPH AA003 ++<U00013410> /xf0/x93/x90/x90 EGYPTIAN HIEROGLYPH AA004 ++<U00013411> /xf0/x93/x90/x91 EGYPTIAN HIEROGLYPH AA005 ++<U00013412> /xf0/x93/x90/x92 EGYPTIAN HIEROGLYPH AA006 ++<U00013413> /xf0/x93/x90/x93 EGYPTIAN HIEROGLYPH AA007 ++<U00013414> /xf0/x93/x90/x94 EGYPTIAN HIEROGLYPH AA007A ++<U00013415> /xf0/x93/x90/x95 EGYPTIAN HIEROGLYPH AA007B ++<U00013416> /xf0/x93/x90/x96 EGYPTIAN HIEROGLYPH AA008 ++<U00013417> /xf0/x93/x90/x97 EGYPTIAN HIEROGLYPH AA009 ++<U00013418> /xf0/x93/x90/x98 EGYPTIAN HIEROGLYPH AA010 ++<U00013419> /xf0/x93/x90/x99 EGYPTIAN HIEROGLYPH AA011 ++<U0001341A> /xf0/x93/x90/x9a EGYPTIAN HIEROGLYPH AA012 ++<U0001341B> /xf0/x93/x90/x9b EGYPTIAN HIEROGLYPH AA013 ++<U0001341C> /xf0/x93/x90/x9c EGYPTIAN HIEROGLYPH AA014 ++<U0001341D> /xf0/x93/x90/x9d EGYPTIAN HIEROGLYPH AA015 ++<U0001341E> /xf0/x93/x90/x9e EGYPTIAN HIEROGLYPH AA016 ++<U0001341F> /xf0/x93/x90/x9f EGYPTIAN HIEROGLYPH AA017 ++<U00013420> /xf0/x93/x90/xa0 EGYPTIAN HIEROGLYPH AA018 ++<U00013421> /xf0/x93/x90/xa1 EGYPTIAN HIEROGLYPH AA019 ++<U00013422> /xf0/x93/x90/xa2 EGYPTIAN HIEROGLYPH AA020 ++<U00013423> /xf0/x93/x90/xa3 EGYPTIAN HIEROGLYPH AA021 ++<U00013424> /xf0/x93/x90/xa4 EGYPTIAN HIEROGLYPH AA022 ++<U00013425> /xf0/x93/x90/xa5 EGYPTIAN HIEROGLYPH AA023 ++<U00013426> /xf0/x93/x90/xa6 EGYPTIAN HIEROGLYPH AA024 ++<U00013427> /xf0/x93/x90/xa7 EGYPTIAN HIEROGLYPH AA025 ++<U00013428> /xf0/x93/x90/xa8 EGYPTIAN HIEROGLYPH AA026 ++<U00013429> /xf0/x93/x90/xa9 EGYPTIAN HIEROGLYPH AA027 ++<U0001342A> /xf0/x93/x90/xaa EGYPTIAN HIEROGLYPH AA028 ++<U0001342B> /xf0/x93/x90/xab EGYPTIAN HIEROGLYPH AA029 ++<U0001342C> /xf0/x93/x90/xac EGYPTIAN HIEROGLYPH AA030 ++<U0001342D> /xf0/x93/x90/xad EGYPTIAN HIEROGLYPH AA031 ++<U0001342E> /xf0/x93/x90/xae EGYPTIAN HIEROGLYPH AA032 ++<U00016800> /xf0/x96/xa0/x80 BAMUM LETTER PHASE-A NGKUE MFON ++<U00016801> /xf0/x96/xa0/x81 BAMUM LETTER PHASE-A GBIEE FON ++<U00016802> /xf0/x96/xa0/x82 BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE ++<U00016803> /xf0/x96/xa0/x83 BAMUM LETTER PHASE-A PON MFON PIPAEMBA ++<U00016804> /xf0/x96/xa0/x84 BAMUM LETTER PHASE-A NAA MFON ++<U00016805> /xf0/x96/xa0/x85 BAMUM LETTER PHASE-A SHUENSHUET ++<U00016806> /xf0/x96/xa0/x86 BAMUM LETTER PHASE-A TITA MFON ++<U00016807> /xf0/x96/xa0/x87 BAMUM LETTER PHASE-A NZA MFON ++<U00016808> /xf0/x96/xa0/x88 BAMUM LETTER PHASE-A SHINDA PA NJI ++<U00016809> /xf0/x96/xa0/x89 BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE ++<U0001680A> /xf0/x96/xa0/x8a BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA ++<U0001680B> /xf0/x96/xa0/x8b BAMUM LETTER PHASE-A MAEMBGBIEE ++<U0001680C> /xf0/x96/xa0/x8c BAMUM LETTER PHASE-A TU MAEMBA ++<U0001680D> /xf0/x96/xa0/x8d BAMUM LETTER PHASE-A NGANGU ++<U0001680E> /xf0/x96/xa0/x8e BAMUM LETTER PHASE-A MAEMVEUX ++<U0001680F> /xf0/x96/xa0/x8f BAMUM LETTER PHASE-A MANSUAE ++<U00016810> /xf0/x96/xa0/x90 BAMUM LETTER PHASE-A MVEUAENGAM ++<U00016811> /xf0/x96/xa0/x91 BAMUM LETTER PHASE-A SEUNYAM ++<U00016812> /xf0/x96/xa0/x92 BAMUM LETTER PHASE-A NTOQPEN ++<U00016813> /xf0/x96/xa0/x93 BAMUM LETTER PHASE-A KEUKEUTNDA ++<U00016814> /xf0/x96/xa0/x94 BAMUM LETTER PHASE-A NKINDI ++<U00016815> /xf0/x96/xa0/x95 BAMUM LETTER PHASE-A SUU ++<U00016816> /xf0/x96/xa0/x96 BAMUM LETTER PHASE-A NGKUENZEUM ++<U00016817> /xf0/x96/xa0/x97 BAMUM LETTER PHASE-A LAPAQ ++<U00016818> /xf0/x96/xa0/x98 BAMUM LETTER PHASE-A LET KUT ++<U00016819> /xf0/x96/xa0/x99 BAMUM LETTER PHASE-A NTAP MFAA ++<U0001681A> /xf0/x96/xa0/x9a BAMUM LETTER PHASE-A MAEKEUP ++<U0001681B> /xf0/x96/xa0/x9b BAMUM LETTER PHASE-A PASHAE ++<U0001681C> /xf0/x96/xa0/x9c BAMUM LETTER PHASE-A GHEUAERAE ++<U0001681D> /xf0/x96/xa0/x9d BAMUM LETTER PHASE-A PAMSHAE ++<U0001681E> /xf0/x96/xa0/x9e BAMUM LETTER PHASE-A MON NGGEUAET ++<U0001681F> /xf0/x96/xa0/x9f BAMUM LETTER PHASE-A NZUN MEUT ++<U00016820> /xf0/x96/xa0/xa0 BAMUM LETTER PHASE-A U YUQ NAE ++<U00016821> /xf0/x96/xa0/xa1 BAMUM LETTER PHASE-A GHEUAEGHEUAE ++<U00016822> /xf0/x96/xa0/xa2 BAMUM LETTER PHASE-A NTAP NTAA ++<U00016823> /xf0/x96/xa0/xa3 BAMUM LETTER PHASE-A SISA ++<U00016824> /xf0/x96/xa0/xa4 BAMUM LETTER PHASE-A MGBASA ++<U00016825> /xf0/x96/xa0/xa5 BAMUM LETTER PHASE-A MEUNJOMNDEUQ ++<U00016826> /xf0/x96/xa0/xa6 BAMUM LETTER PHASE-A MOOMPUQ ++<U00016827> /xf0/x96/xa0/xa7 BAMUM LETTER PHASE-A KAFA ++<U00016828> /xf0/x96/xa0/xa8 BAMUM LETTER PHASE-A PA LEERAEWA ++<U00016829> /xf0/x96/xa0/xa9 BAMUM LETTER PHASE-A NDA LEERAEWA ++<U0001682A> /xf0/x96/xa0/xaa BAMUM LETTER PHASE-A PET ++<U0001682B> /xf0/x96/xa0/xab BAMUM LETTER PHASE-A MAEMKPEN ++<U0001682C> /xf0/x96/xa0/xac BAMUM LETTER PHASE-A NIKA ++<U0001682D> /xf0/x96/xa0/xad BAMUM LETTER PHASE-A PUP ++<U0001682E> /xf0/x96/xa0/xae BAMUM LETTER PHASE-A TUAEP ++<U0001682F> /xf0/x96/xa0/xaf BAMUM LETTER PHASE-A LUAEP ++<U00016830> /xf0/x96/xa0/xb0 BAMUM LETTER PHASE-A SONJAM ++<U00016831> /xf0/x96/xa0/xb1 BAMUM LETTER PHASE-A TEUTEUWEN ++<U00016832> /xf0/x96/xa0/xb2 BAMUM LETTER PHASE-A MAENYI ++<U00016833> /xf0/x96/xa0/xb3 BAMUM LETTER PHASE-A KET ++<U00016834> /xf0/x96/xa0/xb4 BAMUM LETTER PHASE-A NDAANGGEUAET ++<U00016835> /xf0/x96/xa0/xb5 BAMUM LETTER PHASE-A KUOQ ++<U00016836> /xf0/x96/xa0/xb6 BAMUM LETTER PHASE-A MOOMEUT ++<U00016837> /xf0/x96/xa0/xb7 BAMUM LETTER PHASE-A SHUM ++<U00016838> /xf0/x96/xa0/xb8 BAMUM LETTER PHASE-A LOMMAE ++<U00016839> /xf0/x96/xa0/xb9 BAMUM LETTER PHASE-A FIRI ++<U0001683A> /xf0/x96/xa0/xba BAMUM LETTER PHASE-A ROM ++<U0001683B> /xf0/x96/xa0/xbb BAMUM LETTER PHASE-A KPOQ ++<U0001683C> /xf0/x96/xa0/xbc BAMUM LETTER PHASE-A SOQ ++<U0001683D> /xf0/x96/xa0/xbd BAMUM LETTER PHASE-A MAP PIEET ++<U0001683E> /xf0/x96/xa0/xbe BAMUM LETTER PHASE-A SHIRAE ++<U0001683F> /xf0/x96/xa0/xbf BAMUM LETTER PHASE-A NTAP ++<U00016840> /xf0/x96/xa1/x80 BAMUM LETTER PHASE-A SHOQ NSHUT YUM ++<U00016841> /xf0/x96/xa1/x81 BAMUM LETTER PHASE-A NYIT MONGKEUAEQ ++<U00016842> /xf0/x96/xa1/x82 BAMUM LETTER PHASE-A PAARAE ++<U00016843> /xf0/x96/xa1/x83 BAMUM LETTER PHASE-A NKAARAE ++<U00016844> /xf0/x96/xa1/x84 BAMUM LETTER PHASE-A UNKNOWN ++<U00016845> /xf0/x96/xa1/x85 BAMUM LETTER PHASE-A NGGEN ++<U00016846> /xf0/x96/xa1/x86 BAMUM LETTER PHASE-A MAESI ++<U00016847> /xf0/x96/xa1/x87 BAMUM LETTER PHASE-A NJAM ++<U00016848> /xf0/x96/xa1/x88 BAMUM LETTER PHASE-A MBANYI ++<U00016849> /xf0/x96/xa1/x89 BAMUM LETTER PHASE-A NYET ++<U0001684A> /xf0/x96/xa1/x8a BAMUM LETTER PHASE-A TEUAEN ++<U0001684B> /xf0/x96/xa1/x8b BAMUM LETTER PHASE-A SOT ++<U0001684C> /xf0/x96/xa1/x8c BAMUM LETTER PHASE-A PAAM ++<U0001684D> /xf0/x96/xa1/x8d BAMUM LETTER PHASE-A NSHIEE ++<U0001684E> /xf0/x96/xa1/x8e BAMUM LETTER PHASE-A MAEM ++<U0001684F> /xf0/x96/xa1/x8f BAMUM LETTER PHASE-A NYI ++<U00016850> /xf0/x96/xa1/x90 BAMUM LETTER PHASE-A KAQ ++<U00016851> /xf0/x96/xa1/x91 BAMUM LETTER PHASE-A NSHA ++<U00016852> /xf0/x96/xa1/x92 BAMUM LETTER PHASE-A VEE ++<U00016853> /xf0/x96/xa1/x93 BAMUM LETTER PHASE-A LU ++<U00016854> /xf0/x96/xa1/x94 BAMUM LETTER PHASE-A NEN ++<U00016855> /xf0/x96/xa1/x95 BAMUM LETTER PHASE-A NAQ ++<U00016856> /xf0/x96/xa1/x96 BAMUM LETTER PHASE-A MBAQ ++<U00016857> /xf0/x96/xa1/x97 BAMUM LETTER PHASE-B NSHUET ++<U00016858> /xf0/x96/xa1/x98 BAMUM LETTER PHASE-B TU MAEMGBIEE ++<U00016859> /xf0/x96/xa1/x99 BAMUM LETTER PHASE-B SIEE ++<U0001685A> /xf0/x96/xa1/x9a BAMUM LETTER PHASE-B SET TU ++<U0001685B> /xf0/x96/xa1/x9b BAMUM LETTER PHASE-B LOM NTEUM ++<U0001685C> /xf0/x96/xa1/x9c BAMUM LETTER PHASE-B MBA MAELEE ++<U0001685D> /xf0/x96/xa1/x9d BAMUM LETTER PHASE-B KIEEM ++<U0001685E> /xf0/x96/xa1/x9e BAMUM LETTER PHASE-B YEURAE ++<U0001685F> /xf0/x96/xa1/x9f BAMUM LETTER PHASE-B MBAARAE ++<U00016860> /xf0/x96/xa1/xa0 BAMUM LETTER PHASE-B KAM ++<U00016861> /xf0/x96/xa1/xa1 BAMUM LETTER PHASE-B PEESHI ++<U00016862> /xf0/x96/xa1/xa2 BAMUM LETTER PHASE-B YAFU LEERAEWA ++<U00016863> /xf0/x96/xa1/xa3 BAMUM LETTER PHASE-B LAM NSHUT NYAM ++<U00016864> /xf0/x96/xa1/xa4 BAMUM LETTER PHASE-B NTIEE SHEUOQ ++<U00016865> /xf0/x96/xa1/xa5 BAMUM LETTER PHASE-B NDU NJAA ++<U00016866> /xf0/x96/xa1/xa6 BAMUM LETTER PHASE-B GHEUGHEUAEM ++<U00016867> /xf0/x96/xa1/xa7 BAMUM LETTER PHASE-B PIT ++<U00016868> /xf0/x96/xa1/xa8 BAMUM LETTER PHASE-B TU NSIEE ++<U00016869> /xf0/x96/xa1/xa9 BAMUM LETTER PHASE-B SHET NJAQ ++<U0001686A> /xf0/x96/xa1/xaa BAMUM LETTER PHASE-B SHEUAEQTU ++<U0001686B> /xf0/x96/xa1/xab BAMUM LETTER PHASE-B MFON TEUAEQ ++<U0001686C> /xf0/x96/xa1/xac BAMUM LETTER PHASE-B MBIT MBAAKET ++<U0001686D> /xf0/x96/xa1/xad BAMUM LETTER PHASE-B NYI NTEUM ++<U0001686E> /xf0/x96/xa1/xae BAMUM LETTER PHASE-B KEUPUQ ++<U0001686F> /xf0/x96/xa1/xaf BAMUM LETTER PHASE-B GHEUGHEN ++<U00016870> /xf0/x96/xa1/xb0 BAMUM LETTER PHASE-B KEUYEUX ++<U00016871> /xf0/x96/xa1/xb1 BAMUM LETTER PHASE-B LAANAE ++<U00016872> /xf0/x96/xa1/xb2 BAMUM LETTER PHASE-B PARUM ++<U00016873> /xf0/x96/xa1/xb3 BAMUM LETTER PHASE-B VEUM ++<U00016874> /xf0/x96/xa1/xb4 BAMUM LETTER PHASE-B NGKINDI MVOP ++<U00016875> /xf0/x96/xa1/xb5 BAMUM LETTER PHASE-B NGGEU MBU ++<U00016876> /xf0/x96/xa1/xb6 BAMUM LETTER PHASE-B WUAET ++<U00016877> /xf0/x96/xa1/xb7 BAMUM LETTER PHASE-B SAKEUAE ++<U00016878> /xf0/x96/xa1/xb8 BAMUM LETTER PHASE-B TAAM ++<U00016879> /xf0/x96/xa1/xb9 BAMUM LETTER PHASE-B MEUQ ++<U0001687A> /xf0/x96/xa1/xba BAMUM LETTER PHASE-B NGGUOQ ++<U0001687B> /xf0/x96/xa1/xbb BAMUM LETTER PHASE-B NGGUOQ LARGE ++<U0001687C> /xf0/x96/xa1/xbc BAMUM LETTER PHASE-B MFIYAQ ++<U0001687D> /xf0/x96/xa1/xbd BAMUM LETTER PHASE-B SUE ++<U0001687E> /xf0/x96/xa1/xbe BAMUM LETTER PHASE-B MBEURI ++<U0001687F> /xf0/x96/xa1/xbf BAMUM LETTER PHASE-B MONTIEEN ++<U00016880> /xf0/x96/xa2/x80 BAMUM LETTER PHASE-B NYAEMAE ++<U00016881> /xf0/x96/xa2/x81 BAMUM LETTER PHASE-B PUNGAAM ++<U00016882> /xf0/x96/xa2/x82 BAMUM LETTER PHASE-B MEUT NGGEET ++<U00016883> /xf0/x96/xa2/x83 BAMUM LETTER PHASE-B FEUX ++<U00016884> /xf0/x96/xa2/x84 BAMUM LETTER PHASE-B MBUOQ ++<U00016885> /xf0/x96/xa2/x85 BAMUM LETTER PHASE-B FEE ++<U00016886> /xf0/x96/xa2/x86 BAMUM LETTER PHASE-B KEUAEM ++<U00016887> /xf0/x96/xa2/x87 BAMUM LETTER PHASE-B MA NJEUAENA ++<U00016888> /xf0/x96/xa2/x88 BAMUM LETTER PHASE-B MA NJUQA ++<U00016889> /xf0/x96/xa2/x89 BAMUM LETTER PHASE-B LET ++<U0001688A> /xf0/x96/xa2/x8a BAMUM LETTER PHASE-B NGGAAM ++<U0001688B> /xf0/x96/xa2/x8b BAMUM LETTER PHASE-B NSEN ++<U0001688C> /xf0/x96/xa2/x8c BAMUM LETTER PHASE-B MA ++<U0001688D> /xf0/x96/xa2/x8d BAMUM LETTER PHASE-B KIQ ++<U0001688E> /xf0/x96/xa2/x8e BAMUM LETTER PHASE-B NGOM ++<U0001688F> /xf0/x96/xa2/x8f BAMUM LETTER PHASE-C NGKUE MAEMBA ++<U00016890> /xf0/x96/xa2/x90 BAMUM LETTER PHASE-C NZA ++<U00016891> /xf0/x96/xa2/x91 BAMUM LETTER PHASE-C YUM ++<U00016892> /xf0/x96/xa2/x92 BAMUM LETTER PHASE-C WANGKUOQ ++<U00016893> /xf0/x96/xa2/x93 BAMUM LETTER PHASE-C NGGEN ++<U00016894> /xf0/x96/xa2/x94 BAMUM LETTER PHASE-C NDEUAEREE ++<U00016895> /xf0/x96/xa2/x95 BAMUM LETTER PHASE-C NGKAQ ++<U00016896> /xf0/x96/xa2/x96 BAMUM LETTER PHASE-C GHARAE ++<U00016897> /xf0/x96/xa2/x97 BAMUM LETTER PHASE-C MBEEKEET ++<U00016898> /xf0/x96/xa2/x98 BAMUM LETTER PHASE-C GBAYI ++<U00016899> /xf0/x96/xa2/x99 BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN ++<U0001689A> /xf0/x96/xa2/x9a BAMUM LETTER PHASE-C NTU MBIT ++<U0001689B> /xf0/x96/xa2/x9b BAMUM LETTER PHASE-C MBEUM ++<U0001689C> /xf0/x96/xa2/x9c BAMUM LETTER PHASE-C PIRIEEN ++<U0001689D> /xf0/x96/xa2/x9d BAMUM LETTER PHASE-C NDOMBU ++<U0001689E> /xf0/x96/xa2/x9e BAMUM LETTER PHASE-C MBAA CABBAGE-TREE ++<U0001689F> /xf0/x96/xa2/x9f BAMUM LETTER PHASE-C KEUSHEUAEP ++<U000168A0> /xf0/x96/xa2/xa0 BAMUM LETTER PHASE-C GHAP ++<U000168A1> /xf0/x96/xa2/xa1 BAMUM LETTER PHASE-C KEUKAQ ++<U000168A2> /xf0/x96/xa2/xa2 BAMUM LETTER PHASE-C YU MUOMAE ++<U000168A3> /xf0/x96/xa2/xa3 BAMUM LETTER PHASE-C NZEUM ++<U000168A4> /xf0/x96/xa2/xa4 BAMUM LETTER PHASE-C MBUE ++<U000168A5> /xf0/x96/xa2/xa5 BAMUM LETTER PHASE-C NSEUAEN ++<U000168A6> /xf0/x96/xa2/xa6 BAMUM LETTER PHASE-C MBIT ++<U000168A7> /xf0/x96/xa2/xa7 BAMUM LETTER PHASE-C YEUQ ++<U000168A8> /xf0/x96/xa2/xa8 BAMUM LETTER PHASE-C KPARAQ ++<U000168A9> /xf0/x96/xa2/xa9 BAMUM LETTER PHASE-C KAA ++<U000168AA> /xf0/x96/xa2/xaa BAMUM LETTER PHASE-C SEUX ++<U000168AB> /xf0/x96/xa2/xab BAMUM LETTER PHASE-C NDIDA ++<U000168AC> /xf0/x96/xa2/xac BAMUM LETTER PHASE-C TAASHAE ++<U000168AD> /xf0/x96/xa2/xad BAMUM LETTER PHASE-C NJUEQ ++<U000168AE> /xf0/x96/xa2/xae BAMUM LETTER PHASE-C TITA YUE ++<U000168AF> /xf0/x96/xa2/xaf BAMUM LETTER PHASE-C SUAET ++<U000168B0> /xf0/x96/xa2/xb0 BAMUM LETTER PHASE-C NGGUAEN NYAM ++<U000168B1> /xf0/x96/xa2/xb1 BAMUM LETTER PHASE-C VEUX ++<U000168B2> /xf0/x96/xa2/xb2 BAMUM LETTER PHASE-C NANSANAQ ++<U000168B3> /xf0/x96/xa2/xb3 BAMUM LETTER PHASE-C MA KEUAERI ++<U000168B4> /xf0/x96/xa2/xb4 BAMUM LETTER PHASE-C NTAA ++<U000168B5> /xf0/x96/xa2/xb5 BAMUM LETTER PHASE-C NGGUON ++<U000168B6> /xf0/x96/xa2/xb6 BAMUM LETTER PHASE-C LAP ++<U000168B7> /xf0/x96/xa2/xb7 BAMUM LETTER PHASE-C MBIRIEEN ++<U000168B8> /xf0/x96/xa2/xb8 BAMUM LETTER PHASE-C MGBASAQ ++<U000168B9> /xf0/x96/xa2/xb9 BAMUM LETTER PHASE-C NTEUNGBA ++<U000168BA> /xf0/x96/xa2/xba BAMUM LETTER PHASE-C TEUTEUX ++<U000168BB> /xf0/x96/xa2/xbb BAMUM LETTER PHASE-C NGGUM ++<U000168BC> /xf0/x96/xa2/xbc BAMUM LETTER PHASE-C FUE ++<U000168BD> /xf0/x96/xa2/xbd BAMUM LETTER PHASE-C NDEUT ++<U000168BE> /xf0/x96/xa2/xbe BAMUM LETTER PHASE-C NSA ++<U000168BF> /xf0/x96/xa2/xbf BAMUM LETTER PHASE-C NSHAQ ++<U000168C0> /xf0/x96/xa3/x80 BAMUM LETTER PHASE-C BUNG ++<U000168C1> /xf0/x96/xa3/x81 BAMUM LETTER PHASE-C VEUAEPEN ++<U000168C2> /xf0/x96/xa3/x82 BAMUM LETTER PHASE-C MBERAE ++<U000168C3> /xf0/x96/xa3/x83 BAMUM LETTER PHASE-C RU ++<U000168C4> /xf0/x96/xa3/x84 BAMUM LETTER PHASE-C NJAEM ++<U000168C5> /xf0/x96/xa3/x85 BAMUM LETTER PHASE-C LAM ++<U000168C6> /xf0/x96/xa3/x86 BAMUM LETTER PHASE-C TITUAEP ++<U000168C7> /xf0/x96/xa3/x87 BAMUM LETTER PHASE-C NSUOT NGOM ++<U000168C8> /xf0/x96/xa3/x88 BAMUM LETTER PHASE-C NJEEEE ++<U000168C9> /xf0/x96/xa3/x89 BAMUM LETTER PHASE-C KET ++<U000168CA> /xf0/x96/xa3/x8a BAMUM LETTER PHASE-C NGGU ++<U000168CB> /xf0/x96/xa3/x8b BAMUM LETTER PHASE-C MAESI ++<U000168CC> /xf0/x96/xa3/x8c BAMUM LETTER PHASE-C MBUAEM ++<U000168CD> /xf0/x96/xa3/x8d BAMUM LETTER PHASE-C LU ++<U000168CE> /xf0/x96/xa3/x8e BAMUM LETTER PHASE-C KUT ++<U000168CF> /xf0/x96/xa3/x8f BAMUM LETTER PHASE-C NJAM ++<U000168D0> /xf0/x96/xa3/x90 BAMUM LETTER PHASE-C NGOM ++<U000168D1> /xf0/x96/xa3/x91 BAMUM LETTER PHASE-C WUP ++<U000168D2> /xf0/x96/xa3/x92 BAMUM LETTER PHASE-C NGGUEET ++<U000168D3> /xf0/x96/xa3/x93 BAMUM LETTER PHASE-C NSOM ++<U000168D4> /xf0/x96/xa3/x94 BAMUM LETTER PHASE-C NTEN ++<U000168D5> /xf0/x96/xa3/x95 BAMUM LETTER PHASE-C KUOP NKAARAE ++<U000168D6> /xf0/x96/xa3/x96 BAMUM LETTER PHASE-C NSUN ++<U000168D7> /xf0/x96/xa3/x97 BAMUM LETTER PHASE-C NDAM ++<U000168D8> /xf0/x96/xa3/x98 BAMUM LETTER PHASE-C MA NSIEE ++<U000168D9> /xf0/x96/xa3/x99 BAMUM LETTER PHASE-C YAA ++<U000168DA> /xf0/x96/xa3/x9a BAMUM LETTER PHASE-C NDAP ++<U000168DB> /xf0/x96/xa3/x9b BAMUM LETTER PHASE-C SHUEQ ++<U000168DC> /xf0/x96/xa3/x9c BAMUM LETTER PHASE-C SETFON ++<U000168DD> /xf0/x96/xa3/x9d BAMUM LETTER PHASE-C MBI ++<U000168DE> /xf0/x96/xa3/x9e BAMUM LETTER PHASE-C MAEMBA ++<U000168DF> /xf0/x96/xa3/x9f BAMUM LETTER PHASE-C MBANYI ++<U000168E0> /xf0/x96/xa3/xa0 BAMUM LETTER PHASE-C KEUSEUX ++<U000168E1> /xf0/x96/xa3/xa1 BAMUM LETTER PHASE-C MBEUX ++<U000168E2> /xf0/x96/xa3/xa2 BAMUM LETTER PHASE-C KEUM ++<U000168E3> /xf0/x96/xa3/xa3 BAMUM LETTER PHASE-C MBAA PICKET ++<U000168E4> /xf0/x96/xa3/xa4 BAMUM LETTER PHASE-C YUWOQ ++<U000168E5> /xf0/x96/xa3/xa5 BAMUM LETTER PHASE-C NJEUX ++<U000168E6> /xf0/x96/xa3/xa6 BAMUM LETTER PHASE-C MIEE ++<U000168E7> /xf0/x96/xa3/xa7 BAMUM LETTER PHASE-C MUAE ++<U000168E8> /xf0/x96/xa3/xa8 BAMUM LETTER PHASE-C SHIQ ++<U000168E9> /xf0/x96/xa3/xa9 BAMUM LETTER PHASE-C KEN LAW ++<U000168EA> /xf0/x96/xa3/xaa BAMUM LETTER PHASE-C KEN FATIGUE ++<U000168EB> /xf0/x96/xa3/xab BAMUM LETTER PHASE-C NGAQ ++<U000168EC> /xf0/x96/xa3/xac BAMUM LETTER PHASE-C NAQ ++<U000168ED> /xf0/x96/xa3/xad BAMUM LETTER PHASE-C LIQ ++<U000168EE> /xf0/x96/xa3/xae BAMUM LETTER PHASE-C PIN ++<U000168EF> /xf0/x96/xa3/xaf BAMUM LETTER PHASE-C PEN ++<U000168F0> /xf0/x96/xa3/xb0 BAMUM LETTER PHASE-C TET ++<U000168F1> /xf0/x96/xa3/xb1 BAMUM LETTER PHASE-D MBUO ++<U000168F2> /xf0/x96/xa3/xb2 BAMUM LETTER PHASE-D WAP ++<U000168F3> /xf0/x96/xa3/xb3 BAMUM LETTER PHASE-D NJI ++<U000168F4> /xf0/x96/xa3/xb4 BAMUM LETTER PHASE-D MFON ++<U000168F5> /xf0/x96/xa3/xb5 BAMUM LETTER PHASE-D NJIEE ++<U000168F6> /xf0/x96/xa3/xb6 BAMUM LETTER PHASE-D LIEE ++<U000168F7> /xf0/x96/xa3/xb7 BAMUM LETTER PHASE-D NJEUT ++<U000168F8> /xf0/x96/xa3/xb8 BAMUM LETTER PHASE-D NSHEE ++<U000168F9> /xf0/x96/xa3/xb9 BAMUM LETTER PHASE-D NGGAAMAE ++<U000168FA> /xf0/x96/xa3/xba BAMUM LETTER PHASE-D NYAM ++<U000168FB> /xf0/x96/xa3/xbb BAMUM LETTER PHASE-D WUAEN ++<U000168FC> /xf0/x96/xa3/xbc BAMUM LETTER PHASE-D NGKUN ++<U000168FD> /xf0/x96/xa3/xbd BAMUM LETTER PHASE-D SHEE ++<U000168FE> /xf0/x96/xa3/xbe BAMUM LETTER PHASE-D NGKAP ++<U000168FF> /xf0/x96/xa3/xbf BAMUM LETTER PHASE-D KEUAETMEUN ++<U00016900> /xf0/x96/xa4/x80 BAMUM LETTER PHASE-D TEUT ++<U00016901> /xf0/x96/xa4/x81 BAMUM LETTER PHASE-D SHEUAE ++<U00016902> /xf0/x96/xa4/x82 BAMUM LETTER PHASE-D NJAP ++<U00016903> /xf0/x96/xa4/x83 BAMUM LETTER PHASE-D SUE ++<U00016904> /xf0/x96/xa4/x84 BAMUM LETTER PHASE-D KET ++<U00016905> /xf0/x96/xa4/x85 BAMUM LETTER PHASE-D YAEMMAE ++<U00016906> /xf0/x96/xa4/x86 BAMUM LETTER PHASE-D KUOM ++<U00016907> /xf0/x96/xa4/x87 BAMUM LETTER PHASE-D SAP ++<U00016908> /xf0/x96/xa4/x88 BAMUM LETTER PHASE-D MFEUT ++<U00016909> /xf0/x96/xa4/x89 BAMUM LETTER PHASE-D NDEUX ++<U0001690A> /xf0/x96/xa4/x8a BAMUM LETTER PHASE-D MALEERI ++<U0001690B> /xf0/x96/xa4/x8b BAMUM LETTER PHASE-D MEUT ++<U0001690C> /xf0/x96/xa4/x8c BAMUM LETTER PHASE-D SEUAEQ ++<U0001690D> /xf0/x96/xa4/x8d BAMUM LETTER PHASE-D YEN ++<U0001690E> /xf0/x96/xa4/x8e BAMUM LETTER PHASE-D NJEUAEM ++<U0001690F> /xf0/x96/xa4/x8f BAMUM LETTER PHASE-D KEUOT MBUAE ++<U00016910> /xf0/x96/xa4/x90 BAMUM LETTER PHASE-D NGKEURI ++<U00016911> /xf0/x96/xa4/x91 BAMUM LETTER PHASE-D TU ++<U00016912> /xf0/x96/xa4/x92 BAMUM LETTER PHASE-D GHAA ++<U00016913> /xf0/x96/xa4/x93 BAMUM LETTER PHASE-D NGKYEE ++<U00016914> /xf0/x96/xa4/x94 BAMUM LETTER PHASE-D FEUFEUAET ++<U00016915> /xf0/x96/xa4/x95 BAMUM LETTER PHASE-D NDEE ++<U00016916> /xf0/x96/xa4/x96 BAMUM LETTER PHASE-D MGBOFUM ++<U00016917> /xf0/x96/xa4/x97 BAMUM LETTER PHASE-D LEUAEP ++<U00016918> /xf0/x96/xa4/x98 BAMUM LETTER PHASE-D NDON ++<U00016919> /xf0/x96/xa4/x99 BAMUM LETTER PHASE-D MONI ++<U0001691A> /xf0/x96/xa4/x9a BAMUM LETTER PHASE-D MGBEUN ++<U0001691B> /xf0/x96/xa4/x9b BAMUM LETTER PHASE-D PUUT ++<U0001691C> /xf0/x96/xa4/x9c BAMUM LETTER PHASE-D MGBIEE ++<U0001691D> /xf0/x96/xa4/x9d BAMUM LETTER PHASE-D MFO ++<U0001691E> /xf0/x96/xa4/x9e BAMUM LETTER PHASE-D LUM ++<U0001691F> /xf0/x96/xa4/x9f BAMUM LETTER PHASE-D NSIEEP ++<U00016920> /xf0/x96/xa4/xa0 BAMUM LETTER PHASE-D MBAA ++<U00016921> /xf0/x96/xa4/xa1 BAMUM LETTER PHASE-D KWAET ++<U00016922> /xf0/x96/xa4/xa2 BAMUM LETTER PHASE-D NYET ++<U00016923> /xf0/x96/xa4/xa3 BAMUM LETTER PHASE-D TEUAEN ++<U00016924> /xf0/x96/xa4/xa4 BAMUM LETTER PHASE-D SOT ++<U00016925> /xf0/x96/xa4/xa5 BAMUM LETTER PHASE-D YUWOQ ++<U00016926> /xf0/x96/xa4/xa6 BAMUM LETTER PHASE-D KEUM ++<U00016927> /xf0/x96/xa4/xa7 BAMUM LETTER PHASE-D RAEM ++<U00016928> /xf0/x96/xa4/xa8 BAMUM LETTER PHASE-D TEEEE ++<U00016929> /xf0/x96/xa4/xa9 BAMUM LETTER PHASE-D NGKEUAEQ ++<U0001692A> /xf0/x96/xa4/xaa BAMUM LETTER PHASE-D MFEUAE ++<U0001692B> /xf0/x96/xa4/xab BAMUM LETTER PHASE-D NSIEET ++<U0001692C> /xf0/x96/xa4/xac BAMUM LETTER PHASE-D KEUP ++<U0001692D> /xf0/x96/xa4/xad BAMUM LETTER PHASE-D PIP ++<U0001692E> /xf0/x96/xa4/xae BAMUM LETTER PHASE-D PEUTAE ++<U0001692F> /xf0/x96/xa4/xaf BAMUM LETTER PHASE-D NYUE ++<U00016930> /xf0/x96/xa4/xb0 BAMUM LETTER PHASE-D LET ++<U00016931> /xf0/x96/xa4/xb1 BAMUM LETTER PHASE-D NGGAAM ++<U00016932> /xf0/x96/xa4/xb2 BAMUM LETTER PHASE-D MFIEE ++<U00016933> /xf0/x96/xa4/xb3 BAMUM LETTER PHASE-D NGGWAEN ++<U00016934> /xf0/x96/xa4/xb4 BAMUM LETTER PHASE-D YUOM ++<U00016935> /xf0/x96/xa4/xb5 BAMUM LETTER PHASE-D PAP ++<U00016936> /xf0/x96/xa4/xb6 BAMUM LETTER PHASE-D YUOP ++<U00016937> /xf0/x96/xa4/xb7 BAMUM LETTER PHASE-D NDAM ++<U00016938> /xf0/x96/xa4/xb8 BAMUM LETTER PHASE-D NTEUM ++<U00016939> /xf0/x96/xa4/xb9 BAMUM LETTER PHASE-D SUAE ++<U0001693A> /xf0/x96/xa4/xba BAMUM LETTER PHASE-D KUN ++<U0001693B> /xf0/x96/xa4/xbb BAMUM LETTER PHASE-D NGGEUX ++<U0001693C> /xf0/x96/xa4/xbc BAMUM LETTER PHASE-D NGKIEE ++<U0001693D> /xf0/x96/xa4/xbd BAMUM LETTER PHASE-D TUOT ++<U0001693E> /xf0/x96/xa4/xbe BAMUM LETTER PHASE-D MEUN ++<U0001693F> /xf0/x96/xa4/xbf BAMUM LETTER PHASE-D KUQ ++<U00016940> /xf0/x96/xa5/x80 BAMUM LETTER PHASE-D NSUM ++<U00016941> /xf0/x96/xa5/x81 BAMUM LETTER PHASE-D TEUN ++<U00016942> /xf0/x96/xa5/x82 BAMUM LETTER PHASE-D MAENJET ++<U00016943> /xf0/x96/xa5/x83 BAMUM LETTER PHASE-D NGGAP ++<U00016944> /xf0/x96/xa5/x84 BAMUM LETTER PHASE-D LEUM ++<U00016945> /xf0/x96/xa5/x85 BAMUM LETTER PHASE-D NGGUOM ++<U00016946> /xf0/x96/xa5/x86 BAMUM LETTER PHASE-D NSHUT ++<U00016947> /xf0/x96/xa5/x87 BAMUM LETTER PHASE-D NJUEQ ++<U00016948> /xf0/x96/xa5/x88 BAMUM LETTER PHASE-D GHEUAE ++<U00016949> /xf0/x96/xa5/x89 BAMUM LETTER PHASE-D KU ++<U0001694A> /xf0/x96/xa5/x8a BAMUM LETTER PHASE-D REN OLD ++<U0001694B> /xf0/x96/xa5/x8b BAMUM LETTER PHASE-D TAE ++<U0001694C> /xf0/x96/xa5/x8c BAMUM LETTER PHASE-D TOQ ++<U0001694D> /xf0/x96/xa5/x8d BAMUM LETTER PHASE-D NYI ++<U0001694E> /xf0/x96/xa5/x8e BAMUM LETTER PHASE-D RII ++<U0001694F> /xf0/x96/xa5/x8f BAMUM LETTER PHASE-D LEEEE ++<U00016950> /xf0/x96/xa5/x90 BAMUM LETTER PHASE-D MEEEE ++<U00016951> /xf0/x96/xa5/x91 BAMUM LETTER PHASE-D M ++<U00016952> /xf0/x96/xa5/x92 BAMUM LETTER PHASE-D SUU ++<U00016953> /xf0/x96/xa5/x93 BAMUM LETTER PHASE-D MU ++<U00016954> /xf0/x96/xa5/x94 BAMUM LETTER PHASE-D SHII ++<U00016955> /xf0/x96/xa5/x95 BAMUM LETTER PHASE-D SHEUX ++<U00016956> /xf0/x96/xa5/x96 BAMUM LETTER PHASE-D KYEE ++<U00016957> /xf0/x96/xa5/x97 BAMUM LETTER PHASE-D NU ++<U00016958> /xf0/x96/xa5/x98 BAMUM LETTER PHASE-D SHU ++<U00016959> /xf0/x96/xa5/x99 BAMUM LETTER PHASE-D NTEE ++<U0001695A> /xf0/x96/xa5/x9a BAMUM LETTER PHASE-D PEE ++<U0001695B> /xf0/x96/xa5/x9b BAMUM LETTER PHASE-D NI ++<U0001695C> /xf0/x96/xa5/x9c BAMUM LETTER PHASE-D SHOQ ++<U0001695D> /xf0/x96/xa5/x9d BAMUM LETTER PHASE-D PUQ ++<U0001695E> /xf0/x96/xa5/x9e BAMUM LETTER PHASE-D MVOP ++<U0001695F> /xf0/x96/xa5/x9f BAMUM LETTER PHASE-D LOQ ++<U00016960> /xf0/x96/xa5/xa0 BAMUM LETTER PHASE-D REN MUCH ++<U00016961> /xf0/x96/xa5/xa1 BAMUM LETTER PHASE-D TI ++<U00016962> /xf0/x96/xa5/xa2 BAMUM LETTER PHASE-D NTUU ++<U00016963> /xf0/x96/xa5/xa3 BAMUM LETTER PHASE-D MBAA SEVEN ++<U00016964> /xf0/x96/xa5/xa4 BAMUM LETTER PHASE-D SAQ ++<U00016965> /xf0/x96/xa5/xa5 BAMUM LETTER PHASE-D FAA ++<U00016966> /xf0/x96/xa5/xa6 BAMUM LETTER PHASE-E NDAP ++<U00016967> /xf0/x96/xa5/xa7 BAMUM LETTER PHASE-E TOON ++<U00016968> /xf0/x96/xa5/xa8 BAMUM LETTER PHASE-E MBEUM ++<U00016969> /xf0/x96/xa5/xa9 BAMUM LETTER PHASE-E LAP ++<U0001696A> /xf0/x96/xa5/xaa BAMUM LETTER PHASE-E VOM ++<U0001696B> /xf0/x96/xa5/xab BAMUM LETTER PHASE-E LOON ++<U0001696C> /xf0/x96/xa5/xac BAMUM LETTER PHASE-E PAA ++<U0001696D> /xf0/x96/xa5/xad BAMUM LETTER PHASE-E SOM ++<U0001696E> /xf0/x96/xa5/xae BAMUM LETTER PHASE-E RAQ ++<U0001696F> /xf0/x96/xa5/xaf BAMUM LETTER PHASE-E NSHUOP ++<U00016970> /xf0/x96/xa5/xb0 BAMUM LETTER PHASE-E NDUN ++<U00016971> /xf0/x96/xa5/xb1 BAMUM LETTER PHASE-E PUAE ++<U00016972> /xf0/x96/xa5/xb2 BAMUM LETTER PHASE-E TAM ++<U00016973> /xf0/x96/xa5/xb3 BAMUM LETTER PHASE-E NGKA ++<U00016974> /xf0/x96/xa5/xb4 BAMUM LETTER PHASE-E KPEUX ++<U00016975> /xf0/x96/xa5/xb5 BAMUM LETTER PHASE-E WUO ++<U00016976> /xf0/x96/xa5/xb6 BAMUM LETTER PHASE-E SEE ++<U00016977> /xf0/x96/xa5/xb7 BAMUM LETTER PHASE-E NGGEUAET ++<U00016978> /xf0/x96/xa5/xb8 BAMUM LETTER PHASE-E PAAM ++<U00016979> /xf0/x96/xa5/xb9 BAMUM LETTER PHASE-E TOO ++<U0001697A> /xf0/x96/xa5/xba BAMUM LETTER PHASE-E KUOP ++<U0001697B> /xf0/x96/xa5/xbb BAMUM LETTER PHASE-E LOM ++<U0001697C> /xf0/x96/xa5/xbc BAMUM LETTER PHASE-E NSHIEE ++<U0001697D> /xf0/x96/xa5/xbd BAMUM LETTER PHASE-E NGOP ++<U0001697E> /xf0/x96/xa5/xbe BAMUM LETTER PHASE-E MAEM ++<U0001697F> /xf0/x96/xa5/xbf BAMUM LETTER PHASE-E NGKEUX ++<U00016980> /xf0/x96/xa6/x80 BAMUM LETTER PHASE-E NGOQ ++<U00016981> /xf0/x96/xa6/x81 BAMUM LETTER PHASE-E NSHUE ++<U00016982> /xf0/x96/xa6/x82 BAMUM LETTER PHASE-E RIMGBA ++<U00016983> /xf0/x96/xa6/x83 BAMUM LETTER PHASE-E NJEUX ++<U00016984> /xf0/x96/xa6/x84 BAMUM LETTER PHASE-E PEEM ++<U00016985> /xf0/x96/xa6/x85 BAMUM LETTER PHASE-E SAA ++<U00016986> /xf0/x96/xa6/x86 BAMUM LETTER PHASE-E NGGURAE ++<U00016987> /xf0/x96/xa6/x87 BAMUM LETTER PHASE-E MGBA ++<U00016988> /xf0/x96/xa6/x88 BAMUM LETTER PHASE-E GHEUX ++<U00016989> /xf0/x96/xa6/x89 BAMUM LETTER PHASE-E NGKEUAEM ++<U0001698A> /xf0/x96/xa6/x8a BAMUM LETTER PHASE-E NJAEMLI ++<U0001698B> /xf0/x96/xa6/x8b BAMUM LETTER PHASE-E MAP ++<U0001698C> /xf0/x96/xa6/x8c BAMUM LETTER PHASE-E LOOT ++<U0001698D> /xf0/x96/xa6/x8d BAMUM LETTER PHASE-E NGGEEEE ++<U0001698E> /xf0/x96/xa6/x8e BAMUM LETTER PHASE-E NDIQ ++<U0001698F> /xf0/x96/xa6/x8f BAMUM LETTER PHASE-E TAEN NTEUM ++<U00016990> /xf0/x96/xa6/x90 BAMUM LETTER PHASE-E SET ++<U00016991> /xf0/x96/xa6/x91 BAMUM LETTER PHASE-E PUM ++<U00016992> /xf0/x96/xa6/x92 BAMUM LETTER PHASE-E NDAA SOFTNESS ++<U00016993> /xf0/x96/xa6/x93 BAMUM LETTER PHASE-E NGGUAESHAE NYAM ++<U00016994> /xf0/x96/xa6/x94 BAMUM LETTER PHASE-E YIEE ++<U00016995> /xf0/x96/xa6/x95 BAMUM LETTER PHASE-E GHEUN ++<U00016996> /xf0/x96/xa6/x96 BAMUM LETTER PHASE-E TUAE ++<U00016997> /xf0/x96/xa6/x97 BAMUM LETTER PHASE-E YEUAE ++<U00016998> /xf0/x96/xa6/x98 BAMUM LETTER PHASE-E PO ++<U00016999> /xf0/x96/xa6/x99 BAMUM LETTER PHASE-E TUMAE ++<U0001699A> /xf0/x96/xa6/x9a BAMUM LETTER PHASE-E KEUAE ++<U0001699B> /xf0/x96/xa6/x9b BAMUM LETTER PHASE-E SUAEN ++<U0001699C> /xf0/x96/xa6/x9c BAMUM LETTER PHASE-E TEUAEQ ++<U0001699D> /xf0/x96/xa6/x9d BAMUM LETTER PHASE-E VEUAE ++<U0001699E> /xf0/x96/xa6/x9e BAMUM LETTER PHASE-E WEUX ++<U0001699F> /xf0/x96/xa6/x9f BAMUM LETTER PHASE-E LAAM ++<U000169A0> /xf0/x96/xa6/xa0 BAMUM LETTER PHASE-E PU ++<U000169A1> /xf0/x96/xa6/xa1 BAMUM LETTER PHASE-E TAAQ ++<U000169A2> /xf0/x96/xa6/xa2 BAMUM LETTER PHASE-E GHAAMAE ++<U000169A3> /xf0/x96/xa6/xa3 BAMUM LETTER PHASE-E NGEUREUT ++<U000169A4> /xf0/x96/xa6/xa4 BAMUM LETTER PHASE-E SHEUAEQ ++<U000169A5> /xf0/x96/xa6/xa5 BAMUM LETTER PHASE-E MGBEN ++<U000169A6> /xf0/x96/xa6/xa6 BAMUM LETTER PHASE-E MBEE ++<U000169A7> /xf0/x96/xa6/xa7 BAMUM LETTER PHASE-E NZAQ ++<U000169A8> /xf0/x96/xa6/xa8 BAMUM LETTER PHASE-E NKOM ++<U000169A9> /xf0/x96/xa6/xa9 BAMUM LETTER PHASE-E GBET ++<U000169AA> /xf0/x96/xa6/xaa BAMUM LETTER PHASE-E TUM ++<U000169AB> /xf0/x96/xa6/xab BAMUM LETTER PHASE-E KUET ++<U000169AC> /xf0/x96/xa6/xac BAMUM LETTER PHASE-E YAP ++<U000169AD> /xf0/x96/xa6/xad BAMUM LETTER PHASE-E NYI CLEAVER ++<U000169AE> /xf0/x96/xa6/xae BAMUM LETTER PHASE-E YIT ++<U000169AF> /xf0/x96/xa6/xaf BAMUM LETTER PHASE-E MFEUQ ++<U000169B0> /xf0/x96/xa6/xb0 BAMUM LETTER PHASE-E NDIAQ ++<U000169B1> /xf0/x96/xa6/xb1 BAMUM LETTER PHASE-E PIEEQ ++<U000169B2> /xf0/x96/xa6/xb2 BAMUM LETTER PHASE-E YUEQ ++<U000169B3> /xf0/x96/xa6/xb3 BAMUM LETTER PHASE-E LEUAEM ++<U000169B4> /xf0/x96/xa6/xb4 BAMUM LETTER PHASE-E FUE ++<U000169B5> /xf0/x96/xa6/xb5 BAMUM LETTER PHASE-E GBEUX ++<U000169B6> /xf0/x96/xa6/xb6 BAMUM LETTER PHASE-E NGKUP ++<U000169B7> /xf0/x96/xa6/xb7 BAMUM LETTER PHASE-E KET ++<U000169B8> /xf0/x96/xa6/xb8 BAMUM LETTER PHASE-E MAE ++<U000169B9> /xf0/x96/xa6/xb9 BAMUM LETTER PHASE-E NGKAAMI ++<U000169BA> /xf0/x96/xa6/xba BAMUM LETTER PHASE-E GHET ++<U000169BB> /xf0/x96/xa6/xbb BAMUM LETTER PHASE-E FA ++<U000169BC> /xf0/x96/xa6/xbc BAMUM LETTER PHASE-E NTUM ++<U000169BD> /xf0/x96/xa6/xbd BAMUM LETTER PHASE-E PEUT ++<U000169BE> /xf0/x96/xa6/xbe BAMUM LETTER PHASE-E YEUM ++<U000169BF> /xf0/x96/xa6/xbf BAMUM LETTER PHASE-E NGGEUAE ++<U000169C0> /xf0/x96/xa7/x80 BAMUM LETTER PHASE-E NYI BETWEEN ++<U000169C1> /xf0/x96/xa7/x81 BAMUM LETTER PHASE-E NZUQ ++<U000169C2> /xf0/x96/xa7/x82 BAMUM LETTER PHASE-E POON ++<U000169C3> /xf0/x96/xa7/x83 BAMUM LETTER PHASE-E MIEE ++<U000169C4> /xf0/x96/xa7/x84 BAMUM LETTER PHASE-E FUET ++<U000169C5> /xf0/x96/xa7/x85 BAMUM LETTER PHASE-E NAE ++<U000169C6> /xf0/x96/xa7/x86 BAMUM LETTER PHASE-E MUAE ++<U000169C7> /xf0/x96/xa7/x87 BAMUM LETTER PHASE-E GHEUAE ++<U000169C8> /xf0/x96/xa7/x88 BAMUM LETTER PHASE-E FU I ++<U000169C9> /xf0/x96/xa7/x89 BAMUM LETTER PHASE-E MVI ++<U000169CA> /xf0/x96/xa7/x8a BAMUM LETTER PHASE-E PUAQ ++<U000169CB> /xf0/x96/xa7/x8b BAMUM LETTER PHASE-E NGKUM ++<U000169CC> /xf0/x96/xa7/x8c BAMUM LETTER PHASE-E KUT ++<U000169CD> /xf0/x96/xa7/x8d BAMUM LETTER PHASE-E PIET ++<U000169CE> /xf0/x96/xa7/x8e BAMUM LETTER PHASE-E NTAP ++<U000169CF> /xf0/x96/xa7/x8f BAMUM LETTER PHASE-E YEUAET ++<U000169D0> /xf0/x96/xa7/x90 BAMUM LETTER PHASE-E NGGUP ++<U000169D1> /xf0/x96/xa7/x91 BAMUM LETTER PHASE-E PA PEOPLE ++<U000169D2> /xf0/x96/xa7/x92 BAMUM LETTER PHASE-E FU CALL ++<U000169D3> /xf0/x96/xa7/x93 BAMUM LETTER PHASE-E FOM ++<U000169D4> /xf0/x96/xa7/x94 BAMUM LETTER PHASE-E NJEE ++<U000169D5> /xf0/x96/xa7/x95 BAMUM LETTER PHASE-E A ++<U000169D6> /xf0/x96/xa7/x96 BAMUM LETTER PHASE-E TOQ ++<U000169D7> /xf0/x96/xa7/x97 BAMUM LETTER PHASE-E O ++<U000169D8> /xf0/x96/xa7/x98 BAMUM LETTER PHASE-E I ++<U000169D9> /xf0/x96/xa7/x99 BAMUM LETTER PHASE-E LAQ ++<U000169DA> /xf0/x96/xa7/x9a BAMUM LETTER PHASE-E PA PLURAL ++<U000169DB> /xf0/x96/xa7/x9b BAMUM LETTER PHASE-E TAA ++<U000169DC> /xf0/x96/xa7/x9c BAMUM LETTER PHASE-E TAQ ++<U000169DD> /xf0/x96/xa7/x9d BAMUM LETTER PHASE-E NDAA MY HOUSE ++<U000169DE> /xf0/x96/xa7/x9e BAMUM LETTER PHASE-E SHIQ ++<U000169DF> /xf0/x96/xa7/x9f BAMUM LETTER PHASE-E YEUX ++<U000169E0> /xf0/x96/xa7/xa0 BAMUM LETTER PHASE-E NGUAE ++<U000169E1> /xf0/x96/xa7/xa1 BAMUM LETTER PHASE-E YUAEN ++<U000169E2> /xf0/x96/xa7/xa2 BAMUM LETTER PHASE-E YOQ SWIMMING ++<U000169E3> /xf0/x96/xa7/xa3 BAMUM LETTER PHASE-E YOQ COVER ++<U000169E4> /xf0/x96/xa7/xa4 BAMUM LETTER PHASE-E YUQ ++<U000169E5> /xf0/x96/xa7/xa5 BAMUM LETTER PHASE-E YUN ++<U000169E6> /xf0/x96/xa7/xa6 BAMUM LETTER PHASE-E KEUX ++<U000169E7> /xf0/x96/xa7/xa7 BAMUM LETTER PHASE-E PEUX ++<U000169E8> /xf0/x96/xa7/xa8 BAMUM LETTER PHASE-E NJEE EPOCH ++<U000169E9> /xf0/x96/xa7/xa9 BAMUM LETTER PHASE-E PUE ++<U000169EA> /xf0/x96/xa7/xaa BAMUM LETTER PHASE-E WUE ++<U000169EB> /xf0/x96/xa7/xab BAMUM LETTER PHASE-E FEE ++<U000169EC> /xf0/x96/xa7/xac BAMUM LETTER PHASE-E VEE ++<U000169ED> /xf0/x96/xa7/xad BAMUM LETTER PHASE-E LU ++<U000169EE> /xf0/x96/xa7/xae BAMUM LETTER PHASE-E MI ++<U000169EF> /xf0/x96/xa7/xaf BAMUM LETTER PHASE-E REUX ++<U000169F0> /xf0/x96/xa7/xb0 BAMUM LETTER PHASE-E RAE ++<U000169F1> /xf0/x96/xa7/xb1 BAMUM LETTER PHASE-E NGUAET ++<U000169F2> /xf0/x96/xa7/xb2 BAMUM LETTER PHASE-E NGA ++<U000169F3> /xf0/x96/xa7/xb3 BAMUM LETTER PHASE-E SHO ++<U000169F4> /xf0/x96/xa7/xb4 BAMUM LETTER PHASE-E SHOQ ++<U000169F5> /xf0/x96/xa7/xb5 BAMUM LETTER PHASE-E FU REMEDY ++<U000169F6> /xf0/x96/xa7/xb6 BAMUM LETTER PHASE-E NA ++<U000169F7> /xf0/x96/xa7/xb7 BAMUM LETTER PHASE-E PI ++<U000169F8> /xf0/x96/xa7/xb8 BAMUM LETTER PHASE-E LOQ ++<U000169F9> /xf0/x96/xa7/xb9 BAMUM LETTER PHASE-E KO ++<U000169FA> /xf0/x96/xa7/xba BAMUM LETTER PHASE-E MEN ++<U000169FB> /xf0/x96/xa7/xbb BAMUM LETTER PHASE-E MA ++<U000169FC> /xf0/x96/xa7/xbc BAMUM LETTER PHASE-E MAQ ++<U000169FD> /xf0/x96/xa7/xbd BAMUM LETTER PHASE-E TEU ++<U000169FE> /xf0/x96/xa7/xbe BAMUM LETTER PHASE-E KI ++<U000169FF> /xf0/x96/xa7/xbf BAMUM LETTER PHASE-E MON ++<U00016A00> /xf0/x96/xa8/x80 BAMUM LETTER PHASE-E TEN ++<U00016A01> /xf0/x96/xa8/x81 BAMUM LETTER PHASE-E FAQ ++<U00016A02> /xf0/x96/xa8/x82 BAMUM LETTER PHASE-E GHOM ++<U00016A03> /xf0/x96/xa8/x83 BAMUM LETTER PHASE-F KA ++<U00016A04> /xf0/x96/xa8/x84 BAMUM LETTER PHASE-F U ++<U00016A05> /xf0/x96/xa8/x85 BAMUM LETTER PHASE-F KU ++<U00016A06> /xf0/x96/xa8/x86 BAMUM LETTER PHASE-F EE ++<U00016A07> /xf0/x96/xa8/x87 BAMUM LETTER PHASE-F REE ++<U00016A08> /xf0/x96/xa8/x88 BAMUM LETTER PHASE-F TAE ++<U00016A09> /xf0/x96/xa8/x89 BAMUM LETTER PHASE-F NYI ++<U00016A0A> /xf0/x96/xa8/x8a BAMUM LETTER PHASE-F LA ++<U00016A0B> /xf0/x96/xa8/x8b BAMUM LETTER PHASE-F RII ++<U00016A0C> /xf0/x96/xa8/x8c BAMUM LETTER PHASE-F RIEE ++<U00016A0D> /xf0/x96/xa8/x8d BAMUM LETTER PHASE-F MEEEE ++<U00016A0E> /xf0/x96/xa8/x8e BAMUM LETTER PHASE-F TAA ++<U00016A0F> /xf0/x96/xa8/x8f BAMUM LETTER PHASE-F NDAA ++<U00016A10> /xf0/x96/xa8/x90 BAMUM LETTER PHASE-F NJAEM ++<U00016A11> /xf0/x96/xa8/x91 BAMUM LETTER PHASE-F M ++<U00016A12> /xf0/x96/xa8/x92 BAMUM LETTER PHASE-F SUU ++<U00016A13> /xf0/x96/xa8/x93 BAMUM LETTER PHASE-F SHII ++<U00016A14> /xf0/x96/xa8/x94 BAMUM LETTER PHASE-F SI ++<U00016A15> /xf0/x96/xa8/x95 BAMUM LETTER PHASE-F SEUX ++<U00016A16> /xf0/x96/xa8/x96 BAMUM LETTER PHASE-F KYEE ++<U00016A17> /xf0/x96/xa8/x97 BAMUM LETTER PHASE-F KET ++<U00016A18> /xf0/x96/xa8/x98 BAMUM LETTER PHASE-F NUAE ++<U00016A19> /xf0/x96/xa8/x99 BAMUM LETTER PHASE-F NU ++<U00016A1A> /xf0/x96/xa8/x9a BAMUM LETTER PHASE-F NJUAE ++<U00016A1B> /xf0/x96/xa8/x9b BAMUM LETTER PHASE-F YOQ ++<U00016A1C> /xf0/x96/xa8/x9c BAMUM LETTER PHASE-F SHU ++<U00016A1D> /xf0/x96/xa8/x9d BAMUM LETTER PHASE-F YA ++<U00016A1E> /xf0/x96/xa8/x9e BAMUM LETTER PHASE-F NSHA ++<U00016A1F> /xf0/x96/xa8/x9f BAMUM LETTER PHASE-F PEUX ++<U00016A20> /xf0/x96/xa8/xa0 BAMUM LETTER PHASE-F NTEE ++<U00016A21> /xf0/x96/xa8/xa1 BAMUM LETTER PHASE-F WUE ++<U00016A22> /xf0/x96/xa8/xa2 BAMUM LETTER PHASE-F PEE ++<U00016A23> /xf0/x96/xa8/xa3 BAMUM LETTER PHASE-F RU ++<U00016A24> /xf0/x96/xa8/xa4 BAMUM LETTER PHASE-F NI ++<U00016A25> /xf0/x96/xa8/xa5 BAMUM LETTER PHASE-F REUX ++<U00016A26> /xf0/x96/xa8/xa6 BAMUM LETTER PHASE-F KEN ++<U00016A27> /xf0/x96/xa8/xa7 BAMUM LETTER PHASE-F NGKWAEN ++<U00016A28> /xf0/x96/xa8/xa8 BAMUM LETTER PHASE-F NGGA ++<U00016A29> /xf0/x96/xa8/xa9 BAMUM LETTER PHASE-F SHO ++<U00016A2A> /xf0/x96/xa8/xaa BAMUM LETTER PHASE-F PUAE ++<U00016A2B> /xf0/x96/xa8/xab BAMUM LETTER PHASE-F FOM ++<U00016A2C> /xf0/x96/xa8/xac BAMUM LETTER PHASE-F WA ++<U00016A2D> /xf0/x96/xa8/xad BAMUM LETTER PHASE-F LI ++<U00016A2E> /xf0/x96/xa8/xae BAMUM LETTER PHASE-F LOQ ++<U00016A2F> /xf0/x96/xa8/xaf BAMUM LETTER PHASE-F KO ++<U00016A30> /xf0/x96/xa8/xb0 BAMUM LETTER PHASE-F MBEN ++<U00016A31> /xf0/x96/xa8/xb1 BAMUM LETTER PHASE-F REN ++<U00016A32> /xf0/x96/xa8/xb2 BAMUM LETTER PHASE-F MA ++<U00016A33> /xf0/x96/xa8/xb3 BAMUM LETTER PHASE-F MO ++<U00016A34> /xf0/x96/xa8/xb4 BAMUM LETTER PHASE-F MBAA ++<U00016A35> /xf0/x96/xa8/xb5 BAMUM LETTER PHASE-F TET ++<U00016A36> /xf0/x96/xa8/xb6 BAMUM LETTER PHASE-F KPA ++<U00016A37> /xf0/x96/xa8/xb7 BAMUM LETTER PHASE-F SAMBA ++<U00016A38> /xf0/x96/xa8/xb8 BAMUM LETTER PHASE-F VUEQ ++<U0001B000> /xf0/x9b/x80/x80 KATAKANA LETTER ARCHAIC E ++<U0001B001> /xf0/x9b/x80/x81 HIRAGANA LETTER ARCHAIC YE + <U0001D000> /xf0/x9d/x80/x80 BYZANTINE MUSICAL SYMBOL PSILI + <U0001D001> /xf0/x9d/x80/x81 BYZANTINE MUSICAL SYMBOL DASEIA + <U0001D002> /xf0/x9d/x80/x82 BYZANTINE MUSICAL SYMBOL PERISPOMENI +@@ -30151,6 +33445,1091 @@ CHARMAP + <U0001F091> /xf0/x9f/x82/x91 DOMINO TILE VERTICAL-06-04 + <U0001F092> /xf0/x9f/x82/x92 DOMINO TILE VERTICAL-06-05 + <U0001F093> /xf0/x9f/x82/x93 DOMINO TILE VERTICAL-06-06 ++<U0001F0A0> /xf0/x9f/x82/xa0 PLAYING CARD BACK ++<U0001F0A1> /xf0/x9f/x82/xa1 PLAYING CARD ACE OF SPADES ++<U0001F0A2> /xf0/x9f/x82/xa2 PLAYING CARD TWO OF SPADES ++<U0001F0A3> /xf0/x9f/x82/xa3 PLAYING CARD THREE OF SPADES ++<U0001F0A4> /xf0/x9f/x82/xa4 PLAYING CARD FOUR OF SPADES ++<U0001F0A5> /xf0/x9f/x82/xa5 PLAYING CARD FIVE OF SPADES ++<U0001F0A6> /xf0/x9f/x82/xa6 PLAYING CARD SIX OF SPADES ++<U0001F0A7> /xf0/x9f/x82/xa7 PLAYING CARD SEVEN OF SPADES ++<U0001F0A8> /xf0/x9f/x82/xa8 PLAYING CARD EIGHT OF SPADES ++<U0001F0A9> /xf0/x9f/x82/xa9 PLAYING CARD NINE OF SPADES ++<U0001F0AA> /xf0/x9f/x82/xaa PLAYING CARD TEN OF SPADES ++<U0001F0AB> /xf0/x9f/x82/xab PLAYING CARD JACK OF SPADES ++<U0001F0AC> /xf0/x9f/x82/xac PLAYING CARD KNIGHT OF SPADES ++<U0001F0AD> /xf0/x9f/x82/xad PLAYING CARD QUEEN OF SPADES ++<U0001F0AE> /xf0/x9f/x82/xae PLAYING CARD KING OF SPADES ++<U0001F0B1> /xf0/x9f/x82/xb1 PLAYING CARD ACE OF HEARTS ++<U0001F0B2> /xf0/x9f/x82/xb2 PLAYING CARD TWO OF HEARTS ++<U0001F0B3> /xf0/x9f/x82/xb3 PLAYING CARD THREE OF HEARTS ++<U0001F0B4> /xf0/x9f/x82/xb4 PLAYING CARD FOUR OF HEARTS ++<U0001F0B5> /xf0/x9f/x82/xb5 PLAYING CARD FIVE OF HEARTS ++<U0001F0B6> /xf0/x9f/x82/xb6 PLAYING CARD SIX OF HEARTS ++<U0001F0B7> /xf0/x9f/x82/xb7 PLAYING CARD SEVEN OF HEARTS ++<U0001F0B8> /xf0/x9f/x82/xb8 PLAYING CARD EIGHT OF HEARTS ++<U0001F0B9> /xf0/x9f/x82/xb9 PLAYING CARD NINE OF HEARTS ++<U0001F0BA> /xf0/x9f/x82/xba PLAYING CARD TEN OF HEARTS ++<U0001F0BB> /xf0/x9f/x82/xbb PLAYING CARD JACK OF HEARTS ++<U0001F0BC> /xf0/x9f/x82/xbc PLAYING CARD KNIGHT OF HEARTS ++<U0001F0BD> /xf0/x9f/x82/xbd PLAYING CARD QUEEN OF HEARTS ++<U0001F0BE> /xf0/x9f/x82/xbe PLAYING CARD KING OF HEARTS ++<U0001F0C1> /xf0/x9f/x83/x81 PLAYING CARD ACE OF DIAMONDS ++<U0001F0C2> /xf0/x9f/x83/x82 PLAYING CARD TWO OF DIAMONDS ++<U0001F0C3> /xf0/x9f/x83/x83 PLAYING CARD THREE OF DIAMONDS ++<U0001F0C4> /xf0/x9f/x83/x84 PLAYING CARD FOUR OF DIAMONDS ++<U0001F0C5> /xf0/x9f/x83/x85 PLAYING CARD FIVE OF DIAMONDS ++<U0001F0C6> /xf0/x9f/x83/x86 PLAYING CARD SIX OF DIAMONDS ++<U0001F0C7> /xf0/x9f/x83/x87 PLAYING CARD SEVEN OF DIAMONDS ++<U0001F0C8> /xf0/x9f/x83/x88 PLAYING CARD EIGHT OF DIAMONDS ++<U0001F0C9> /xf0/x9f/x83/x89 PLAYING CARD NINE OF DIAMONDS ++<U0001F0CA> /xf0/x9f/x83/x8a PLAYING CARD TEN OF DIAMONDS ++<U0001F0CB> /xf0/x9f/x83/x8b PLAYING CARD JACK OF DIAMONDS ++<U0001F0CC> /xf0/x9f/x83/x8c PLAYING CARD KNIGHT OF DIAMONDS ++<U0001F0CD> /xf0/x9f/x83/x8d PLAYING CARD QUEEN OF DIAMONDS ++<U0001F0CE> /xf0/x9f/x83/x8e PLAYING CARD KING OF DIAMONDS ++<U0001F0CF> /xf0/x9f/x83/x8f PLAYING CARD BLACK JOKER ++<U0001F0D1> /xf0/x9f/x83/x91 PLAYING CARD ACE OF CLUBS ++<U0001F0D2> /xf0/x9f/x83/x92 PLAYING CARD TWO OF CLUBS ++<U0001F0D3> /xf0/x9f/x83/x93 PLAYING CARD THREE OF CLUBS ++<U0001F0D4> /xf0/x9f/x83/x94 PLAYING CARD FOUR OF CLUBS ++<U0001F0D5> /xf0/x9f/x83/x95 PLAYING CARD FIVE OF CLUBS ++<U0001F0D6> /xf0/x9f/x83/x96 PLAYING CARD SIX OF CLUBS ++<U0001F0D7> /xf0/x9f/x83/x97 PLAYING CARD SEVEN OF CLUBS ++<U0001F0D8> /xf0/x9f/x83/x98 PLAYING CARD EIGHT OF CLUBS ++<U0001F0D9> /xf0/x9f/x83/x99 PLAYING CARD NINE OF CLUBS ++<U0001F0DA> /xf0/x9f/x83/x9a PLAYING CARD TEN OF CLUBS ++<U0001F0DB> /xf0/x9f/x83/x9b PLAYING CARD JACK OF CLUBS ++<U0001F0DC> /xf0/x9f/x83/x9c PLAYING CARD KNIGHT OF CLUBS ++<U0001F0DD> /xf0/x9f/x83/x9d PLAYING CARD QUEEN OF CLUBS ++<U0001F0DE> /xf0/x9f/x83/x9e PLAYING CARD KING OF CLUBS ++<U0001F0DF> /xf0/x9f/x83/x9f PLAYING CARD WHITE JOKER ++<U0001F100> /xf0/x9f/x84/x80 DIGIT ZERO FULL STOP ++<U0001F101> /xf0/x9f/x84/x81 DIGIT ZERO COMMA ++<U0001F102> /xf0/x9f/x84/x82 DIGIT ONE COMMA ++<U0001F103> /xf0/x9f/x84/x83 DIGIT TWO COMMA ++<U0001F104> /xf0/x9f/x84/x84 DIGIT THREE COMMA ++<U0001F105> /xf0/x9f/x84/x85 DIGIT FOUR COMMA ++<U0001F106> /xf0/x9f/x84/x86 DIGIT FIVE COMMA ++<U0001F107> /xf0/x9f/x84/x87 DIGIT SIX COMMA ++<U0001F108> /xf0/x9f/x84/x88 DIGIT SEVEN COMMA ++<U0001F109> /xf0/x9f/x84/x89 DIGIT EIGHT COMMA ++<U0001F10A> /xf0/x9f/x84/x8a DIGIT NINE COMMA ++<U0001F110> /xf0/x9f/x84/x90 PARENTHESIZED LATIN CAPITAL LETTER A ++<U0001F111> /xf0/x9f/x84/x91 PARENTHESIZED LATIN CAPITAL LETTER B ++<U0001F112> /xf0/x9f/x84/x92 PARENTHESIZED LATIN CAPITAL LETTER C ++<U0001F113> /xf0/x9f/x84/x93 PARENTHESIZED LATIN CAPITAL LETTER D ++<U0001F114> /xf0/x9f/x84/x94 PARENTHESIZED LATIN CAPITAL LETTER E ++<U0001F115> /xf0/x9f/x84/x95 PARENTHESIZED LATIN CAPITAL LETTER F ++<U0001F116> /xf0/x9f/x84/x96 PARENTHESIZED LATIN CAPITAL LETTER G ++<U0001F117> /xf0/x9f/x84/x97 PARENTHESIZED LATIN CAPITAL LETTER H ++<U0001F118> /xf0/x9f/x84/x98 PARENTHESIZED LATIN CAPITAL LETTER I ++<U0001F119> /xf0/x9f/x84/x99 PARENTHESIZED LATIN CAPITAL LETTER J ++<U0001F11A> /xf0/x9f/x84/x9a PARENTHESIZED LATIN CAPITAL LETTER K ++<U0001F11B> /xf0/x9f/x84/x9b PARENTHESIZED LATIN CAPITAL LETTER L ++<U0001F11C> /xf0/x9f/x84/x9c PARENTHESIZED LATIN CAPITAL LETTER M ++<U0001F11D> /xf0/x9f/x84/x9d PARENTHESIZED LATIN CAPITAL LETTER N ++<U0001F11E> /xf0/x9f/x84/x9e PARENTHESIZED LATIN CAPITAL LETTER O ++<U0001F11F> /xf0/x9f/x84/x9f PARENTHESIZED LATIN CAPITAL LETTER P ++<U0001F120> /xf0/x9f/x84/xa0 PARENTHESIZED LATIN CAPITAL LETTER Q ++<U0001F121> /xf0/x9f/x84/xa1 PARENTHESIZED LATIN CAPITAL LETTER R ++<U0001F122> /xf0/x9f/x84/xa2 PARENTHESIZED LATIN CAPITAL LETTER S ++<U0001F123> /xf0/x9f/x84/xa3 PARENTHESIZED LATIN CAPITAL LETTER T ++<U0001F124> /xf0/x9f/x84/xa4 PARENTHESIZED LATIN CAPITAL LETTER U ++<U0001F125> /xf0/x9f/x84/xa5 PARENTHESIZED LATIN CAPITAL LETTER V ++<U0001F126> /xf0/x9f/x84/xa6 PARENTHESIZED LATIN CAPITAL LETTER W ++<U0001F127> /xf0/x9f/x84/xa7 PARENTHESIZED LATIN CAPITAL LETTER X ++<U0001F128> /xf0/x9f/x84/xa8 PARENTHESIZED LATIN CAPITAL LETTER Y ++<U0001F129> /xf0/x9f/x84/xa9 PARENTHESIZED LATIN CAPITAL LETTER Z ++<U0001F12A> /xf0/x9f/x84/xaa TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S ++<U0001F12B> /xf0/x9f/x84/xab CIRCLED ITALIC LATIN CAPITAL LETTER C ++<U0001F12C> /xf0/x9f/x84/xac CIRCLED ITALIC LATIN CAPITAL LETTER R ++<U0001F12D> /xf0/x9f/x84/xad CIRCLED CD ++<U0001F12E> /xf0/x9f/x84/xae CIRCLED WZ ++<U0001F130> /xf0/x9f/x84/xb0 SQUARED LATIN CAPITAL LETTER A ++<U0001F131> /xf0/x9f/x84/xb1 SQUARED LATIN CAPITAL LETTER B ++<U0001F132> /xf0/x9f/x84/xb2 SQUARED LATIN CAPITAL LETTER C ++<U0001F133> /xf0/x9f/x84/xb3 SQUARED LATIN CAPITAL LETTER D ++<U0001F134> /xf0/x9f/x84/xb4 SQUARED LATIN CAPITAL LETTER E ++<U0001F135> /xf0/x9f/x84/xb5 SQUARED LATIN CAPITAL LETTER F ++<U0001F136> /xf0/x9f/x84/xb6 SQUARED LATIN CAPITAL LETTER G ++<U0001F137> /xf0/x9f/x84/xb7 SQUARED LATIN CAPITAL LETTER H ++<U0001F138> /xf0/x9f/x84/xb8 SQUARED LATIN CAPITAL LETTER I ++<U0001F139> /xf0/x9f/x84/xb9 SQUARED LATIN CAPITAL LETTER J ++<U0001F13A> /xf0/x9f/x84/xba SQUARED LATIN CAPITAL LETTER K ++<U0001F13B> /xf0/x9f/x84/xbb SQUARED LATIN CAPITAL LETTER L ++<U0001F13C> /xf0/x9f/x84/xbc SQUARED LATIN CAPITAL LETTER M ++<U0001F13D> /xf0/x9f/x84/xbd SQUARED LATIN CAPITAL LETTER N ++<U0001F13E> /xf0/x9f/x84/xbe SQUARED LATIN CAPITAL LETTER O ++<U0001F13F> /xf0/x9f/x84/xbf SQUARED LATIN CAPITAL LETTER P ++<U0001F140> /xf0/x9f/x85/x80 SQUARED LATIN CAPITAL LETTER Q ++<U0001F141> /xf0/x9f/x85/x81 SQUARED LATIN CAPITAL LETTER R ++<U0001F142> /xf0/x9f/x85/x82 SQUARED LATIN CAPITAL LETTER S ++<U0001F143> /xf0/x9f/x85/x83 SQUARED LATIN CAPITAL LETTER T ++<U0001F144> /xf0/x9f/x85/x84 SQUARED LATIN CAPITAL LETTER U ++<U0001F145> /xf0/x9f/x85/x85 SQUARED LATIN CAPITAL LETTER V ++<U0001F146> /xf0/x9f/x85/x86 SQUARED LATIN CAPITAL LETTER W ++<U0001F147> /xf0/x9f/x85/x87 SQUARED LATIN CAPITAL LETTER X ++<U0001F148> /xf0/x9f/x85/x88 SQUARED LATIN CAPITAL LETTER Y ++<U0001F149> /xf0/x9f/x85/x89 SQUARED LATIN CAPITAL LETTER Z ++<U0001F14A> /xf0/x9f/x85/x8a SQUARED HV ++<U0001F14B> /xf0/x9f/x85/x8b SQUARED MV ++<U0001F14C> /xf0/x9f/x85/x8c SQUARED SD ++<U0001F14D> /xf0/x9f/x85/x8d SQUARED SS ++<U0001F14E> /xf0/x9f/x85/x8e SQUARED PPV ++<U0001F14F> /xf0/x9f/x85/x8f SQUARED WC ++<U0001F150> /xf0/x9f/x85/x90 NEGATIVE CIRCLED LATIN CAPITAL LETTER A ++<U0001F151> /xf0/x9f/x85/x91 NEGATIVE CIRCLED LATIN CAPITAL LETTER B ++<U0001F152> /xf0/x9f/x85/x92 NEGATIVE CIRCLED LATIN CAPITAL LETTER C ++<U0001F153> /xf0/x9f/x85/x93 NEGATIVE CIRCLED LATIN CAPITAL LETTER D ++<U0001F154> /xf0/x9f/x85/x94 NEGATIVE CIRCLED LATIN CAPITAL LETTER E ++<U0001F155> /xf0/x9f/x85/x95 NEGATIVE CIRCLED LATIN CAPITAL LETTER F ++<U0001F156> /xf0/x9f/x85/x96 NEGATIVE CIRCLED LATIN CAPITAL LETTER G ++<U0001F157> /xf0/x9f/x85/x97 NEGATIVE CIRCLED LATIN CAPITAL LETTER H ++<U0001F158> /xf0/x9f/x85/x98 NEGATIVE CIRCLED LATIN CAPITAL LETTER I ++<U0001F159> /xf0/x9f/x85/x99 NEGATIVE CIRCLED LATIN CAPITAL LETTER J ++<U0001F15A> /xf0/x9f/x85/x9a NEGATIVE CIRCLED LATIN CAPITAL LETTER K ++<U0001F15B> /xf0/x9f/x85/x9b NEGATIVE CIRCLED LATIN CAPITAL LETTER L ++<U0001F15C> /xf0/x9f/x85/x9c NEGATIVE CIRCLED LATIN CAPITAL LETTER M ++<U0001F15D> /xf0/x9f/x85/x9d NEGATIVE CIRCLED LATIN CAPITAL LETTER N ++<U0001F15E> /xf0/x9f/x85/x9e NEGATIVE CIRCLED LATIN CAPITAL LETTER O ++<U0001F15F> /xf0/x9f/x85/x9f NEGATIVE CIRCLED LATIN CAPITAL LETTER P ++<U0001F160> /xf0/x9f/x85/xa0 NEGATIVE CIRCLED LATIN CAPITAL LETTER Q ++<U0001F161> /xf0/x9f/x85/xa1 NEGATIVE CIRCLED LATIN CAPITAL LETTER R ++<U0001F162> /xf0/x9f/x85/xa2 NEGATIVE CIRCLED LATIN CAPITAL LETTER S ++<U0001F163> /xf0/x9f/x85/xa3 NEGATIVE CIRCLED LATIN CAPITAL LETTER T ++<U0001F164> /xf0/x9f/x85/xa4 NEGATIVE CIRCLED LATIN CAPITAL LETTER U ++<U0001F165> /xf0/x9f/x85/xa5 NEGATIVE CIRCLED LATIN CAPITAL LETTER V ++<U0001F166> /xf0/x9f/x85/xa6 NEGATIVE CIRCLED LATIN CAPITAL LETTER W ++<U0001F167> /xf0/x9f/x85/xa7 NEGATIVE CIRCLED LATIN CAPITAL LETTER X ++<U0001F168> /xf0/x9f/x85/xa8 NEGATIVE CIRCLED LATIN CAPITAL LETTER Y ++<U0001F169> /xf0/x9f/x85/xa9 NEGATIVE CIRCLED LATIN CAPITAL LETTER Z ++<U0001F170> /xf0/x9f/x85/xb0 NEGATIVE SQUARED LATIN CAPITAL LETTER A ++<U0001F171> /xf0/x9f/x85/xb1 NEGATIVE SQUARED LATIN CAPITAL LETTER B ++<U0001F172> /xf0/x9f/x85/xb2 NEGATIVE SQUARED LATIN CAPITAL LETTER C ++<U0001F173> /xf0/x9f/x85/xb3 NEGATIVE SQUARED LATIN CAPITAL LETTER D ++<U0001F174> /xf0/x9f/x85/xb4 NEGATIVE SQUARED LATIN CAPITAL LETTER E ++<U0001F175> /xf0/x9f/x85/xb5 NEGATIVE SQUARED LATIN CAPITAL LETTER F ++<U0001F176> /xf0/x9f/x85/xb6 NEGATIVE SQUARED LATIN CAPITAL LETTER G ++<U0001F177> /xf0/x9f/x85/xb7 NEGATIVE SQUARED LATIN CAPITAL LETTER H ++<U0001F178> /xf0/x9f/x85/xb8 NEGATIVE SQUARED LATIN CAPITAL LETTER I ++<U0001F179> /xf0/x9f/x85/xb9 NEGATIVE SQUARED LATIN CAPITAL LETTER J ++<U0001F17A> /xf0/x9f/x85/xba NEGATIVE SQUARED LATIN CAPITAL LETTER K ++<U0001F17B> /xf0/x9f/x85/xbb NEGATIVE SQUARED LATIN CAPITAL LETTER L ++<U0001F17C> /xf0/x9f/x85/xbc NEGATIVE SQUARED LATIN CAPITAL LETTER M ++<U0001F17D> /xf0/x9f/x85/xbd NEGATIVE SQUARED LATIN CAPITAL LETTER N ++<U0001F17E> /xf0/x9f/x85/xbe NEGATIVE SQUARED LATIN CAPITAL LETTER O ++<U0001F17F> /xf0/x9f/x85/xbf NEGATIVE SQUARED LATIN CAPITAL LETTER P ++<U0001F180> /xf0/x9f/x86/x80 NEGATIVE SQUARED LATIN CAPITAL LETTER Q ++<U0001F181> /xf0/x9f/x86/x81 NEGATIVE SQUARED LATIN CAPITAL LETTER R ++<U0001F182> /xf0/x9f/x86/x82 NEGATIVE SQUARED LATIN CAPITAL LETTER S ++<U0001F183> /xf0/x9f/x86/x83 NEGATIVE SQUARED LATIN CAPITAL LETTER T ++<U0001F184> /xf0/x9f/x86/x84 NEGATIVE SQUARED LATIN CAPITAL LETTER U ++<U0001F185> /xf0/x9f/x86/x85 NEGATIVE SQUARED LATIN CAPITAL LETTER V ++<U0001F186> /xf0/x9f/x86/x86 NEGATIVE SQUARED LATIN CAPITAL LETTER W ++<U0001F187> /xf0/x9f/x86/x87 NEGATIVE SQUARED LATIN CAPITAL LETTER X ++<U0001F188> /xf0/x9f/x86/x88 NEGATIVE SQUARED LATIN CAPITAL LETTER Y ++<U0001F189> /xf0/x9f/x86/x89 NEGATIVE SQUARED LATIN CAPITAL LETTER Z ++<U0001F18A> /xf0/x9f/x86/x8a CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P ++<U0001F18B> /xf0/x9f/x86/x8b NEGATIVE SQUARED IC ++<U0001F18C> /xf0/x9f/x86/x8c NEGATIVE SQUARED PA ++<U0001F18D> /xf0/x9f/x86/x8d NEGATIVE SQUARED SA ++<U0001F18E> /xf0/x9f/x86/x8e NEGATIVE SQUARED AB ++<U0001F18F> /xf0/x9f/x86/x8f NEGATIVE SQUARED WC ++<U0001F190> /xf0/x9f/x86/x90 SQUARE DJ ++<U0001F191> /xf0/x9f/x86/x91 SQUARED CL ++<U0001F192> /xf0/x9f/x86/x92 SQUARED COOL ++<U0001F193> /xf0/x9f/x86/x93 SQUARED FREE ++<U0001F194> /xf0/x9f/x86/x94 SQUARED ID ++<U0001F195> /xf0/x9f/x86/x95 SQUARED NEW ++<U0001F196> /xf0/x9f/x86/x96 SQUARED NG ++<U0001F197> /xf0/x9f/x86/x97 SQUARED OK ++<U0001F198> /xf0/x9f/x86/x98 SQUARED SOS ++<U0001F199> /xf0/x9f/x86/x99 SQUARED UP WITH EXCLAMATION MARK ++<U0001F19A> /xf0/x9f/x86/x9a SQUARED VS ++<U0001F1E6> /xf0/x9f/x87/xa6 REGIONAL INDICATOR SYMBOL LETTER A ++<U0001F1E7> /xf0/x9f/x87/xa7 REGIONAL INDICATOR SYMBOL LETTER B ++<U0001F1E8> /xf0/x9f/x87/xa8 REGIONAL INDICATOR SYMBOL LETTER C ++<U0001F1E9> /xf0/x9f/x87/xa9 REGIONAL INDICATOR SYMBOL LETTER D ++<U0001F1EA> /xf0/x9f/x87/xaa REGIONAL INDICATOR SYMBOL LETTER E ++<U0001F1EB> /xf0/x9f/x87/xab REGIONAL INDICATOR SYMBOL LETTER F ++<U0001F1EC> /xf0/x9f/x87/xac REGIONAL INDICATOR SYMBOL LETTER G ++<U0001F1ED> /xf0/x9f/x87/xad REGIONAL INDICATOR SYMBOL LETTER H ++<U0001F1EE> /xf0/x9f/x87/xae REGIONAL INDICATOR SYMBOL LETTER I ++<U0001F1EF> /xf0/x9f/x87/xaf REGIONAL INDICATOR SYMBOL LETTER J ++<U0001F1F0> /xf0/x9f/x87/xb0 REGIONAL INDICATOR SYMBOL LETTER K ++<U0001F1F1> /xf0/x9f/x87/xb1 REGIONAL INDICATOR SYMBOL LETTER L ++<U0001F1F2> /xf0/x9f/x87/xb2 REGIONAL INDICATOR SYMBOL LETTER M ++<U0001F1F3> /xf0/x9f/x87/xb3 REGIONAL INDICATOR SYMBOL LETTER N ++<U0001F1F4> /xf0/x9f/x87/xb4 REGIONAL INDICATOR SYMBOL LETTER O ++<U0001F1F5> /xf0/x9f/x87/xb5 REGIONAL INDICATOR SYMBOL LETTER P ++<U0001F1F6> /xf0/x9f/x87/xb6 REGIONAL INDICATOR SYMBOL LETTER Q ++<U0001F1F7> /xf0/x9f/x87/xb7 REGIONAL INDICATOR SYMBOL LETTER R ++<U0001F1F8> /xf0/x9f/x87/xb8 REGIONAL INDICATOR SYMBOL LETTER S ++<U0001F1F9> /xf0/x9f/x87/xb9 REGIONAL INDICATOR SYMBOL LETTER T ++<U0001F1FA> /xf0/x9f/x87/xba REGIONAL INDICATOR SYMBOL LETTER U ++<U0001F1FB> /xf0/x9f/x87/xbb REGIONAL INDICATOR SYMBOL LETTER V ++<U0001F1FC> /xf0/x9f/x87/xbc REGIONAL INDICATOR SYMBOL LETTER W ++<U0001F1FD> /xf0/x9f/x87/xbd REGIONAL INDICATOR SYMBOL LETTER X ++<U0001F1FE> /xf0/x9f/x87/xbe REGIONAL INDICATOR SYMBOL LETTER Y ++<U0001F1FF> /xf0/x9f/x87/xbf REGIONAL INDICATOR SYMBOL LETTER Z ++<U0001F200> /xf0/x9f/x88/x80 SQUARE HIRAGANA HOKA ++<U0001F201> /xf0/x9f/x88/x81 SQUARED KATAKANA KOKO ++<U0001F202> /xf0/x9f/x88/x82 SQUARED KATAKANA SA ++<U0001F210> /xf0/x9f/x88/x90 SQUARED CJK UNIFIED IDEOGRAPH-624B ++<U0001F211> /xf0/x9f/x88/x91 SQUARED CJK UNIFIED IDEOGRAPH-5B57 ++<U0001F212> /xf0/x9f/x88/x92 SQUARED CJK UNIFIED IDEOGRAPH-53CC ++<U0001F213> /xf0/x9f/x88/x93 SQUARED KATAKANA DE ++<U0001F214> /xf0/x9f/x88/x94 SQUARED CJK UNIFIED IDEOGRAPH-4E8C ++<U0001F215> /xf0/x9f/x88/x95 SQUARED CJK UNIFIED IDEOGRAPH-591A ++<U0001F216> /xf0/x9f/x88/x96 SQUARED CJK UNIFIED IDEOGRAPH-89E3 ++<U0001F217> /xf0/x9f/x88/x97 SQUARED CJK UNIFIED IDEOGRAPH-5929 ++<U0001F218> /xf0/x9f/x88/x98 SQUARED CJK UNIFIED IDEOGRAPH-4EA4 ++<U0001F219> /xf0/x9f/x88/x99 SQUARED CJK UNIFIED IDEOGRAPH-6620 ++<U0001F21A> /xf0/x9f/x88/x9a SQUARED CJK UNIFIED IDEOGRAPH-7121 ++<U0001F21B> /xf0/x9f/x88/x9b SQUARED CJK UNIFIED IDEOGRAPH-6599 ++<U0001F21C> /xf0/x9f/x88/x9c SQUARED CJK UNIFIED IDEOGRAPH-524D ++<U0001F21D> /xf0/x9f/x88/x9d SQUARED CJK UNIFIED IDEOGRAPH-5F8C ++<U0001F21E> /xf0/x9f/x88/x9e SQUARED CJK UNIFIED IDEOGRAPH-518D ++<U0001F21F> /xf0/x9f/x88/x9f SQUARED CJK UNIFIED IDEOGRAPH-65B0 ++<U0001F220> /xf0/x9f/x88/xa0 SQUARED CJK UNIFIED IDEOGRAPH-521D ++<U0001F221> /xf0/x9f/x88/xa1 SQUARED CJK UNIFIED IDEOGRAPH-7D42 ++<U0001F222> /xf0/x9f/x88/xa2 SQUARED CJK UNIFIED IDEOGRAPH-751F ++<U0001F223> /xf0/x9f/x88/xa3 SQUARED CJK UNIFIED IDEOGRAPH-8CA9 ++<U0001F224> /xf0/x9f/x88/xa4 SQUARED CJK UNIFIED IDEOGRAPH-58F0 ++<U0001F225> /xf0/x9f/x88/xa5 SQUARED CJK UNIFIED IDEOGRAPH-5439 ++<U0001F226> /xf0/x9f/x88/xa6 SQUARED CJK UNIFIED IDEOGRAPH-6F14 ++<U0001F227> /xf0/x9f/x88/xa7 SQUARED CJK UNIFIED IDEOGRAPH-6295 ++<U0001F228> /xf0/x9f/x88/xa8 SQUARED CJK UNIFIED IDEOGRAPH-6355 ++<U0001F229> /xf0/x9f/x88/xa9 SQUARED CJK UNIFIED IDEOGRAPH-4E00 ++<U0001F22A> /xf0/x9f/x88/xaa SQUARED CJK UNIFIED IDEOGRAPH-4E09 ++<U0001F22B> /xf0/x9f/x88/xab SQUARED CJK UNIFIED IDEOGRAPH-904A ++<U0001F22C> /xf0/x9f/x88/xac SQUARED CJK UNIFIED IDEOGRAPH-5DE6 ++<U0001F22D> /xf0/x9f/x88/xad SQUARED CJK UNIFIED IDEOGRAPH-4E2D ++<U0001F22E> /xf0/x9f/x88/xae SQUARED CJK UNIFIED IDEOGRAPH-53F3 ++<U0001F22F> /xf0/x9f/x88/xaf SQUARED CJK UNIFIED IDEOGRAPH-6307 ++<U0001F230> /xf0/x9f/x88/xb0 SQUARED CJK UNIFIED IDEOGRAPH-8D70 ++<U0001F231> /xf0/x9f/x88/xb1 SQUARED CJK UNIFIED IDEOGRAPH-6253 ++<U0001F232> /xf0/x9f/x88/xb2 SQUARED CJK UNIFIED IDEOGRAPH-7981 ++<U0001F233> /xf0/x9f/x88/xb3 SQUARED CJK UNIFIED IDEOGRAPH-7A7A ++<U0001F234> /xf0/x9f/x88/xb4 SQUARED CJK UNIFIED IDEOGRAPH-5408 ++<U0001F235> /xf0/x9f/x88/xb5 SQUARED CJK UNIFIED IDEOGRAPH-6E80 ++<U0001F236> /xf0/x9f/x88/xb6 SQUARED CJK UNIFIED IDEOGRAPH-6709 ++<U0001F237> /xf0/x9f/x88/xb7 SQUARED CJK UNIFIED IDEOGRAPH-6708 ++<U0001F238> /xf0/x9f/x88/xb8 SQUARED CJK UNIFIED IDEOGRAPH-7533 ++<U0001F239> /xf0/x9f/x88/xb9 SQUARED CJK UNIFIED IDEOGRAPH-5272 ++<U0001F23A> /xf0/x9f/x88/xba SQUARED CJK UNIFIED IDEOGRAPH-55B6 ++<U0001F240> /xf0/x9f/x89/x80 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C ++<U0001F241> /xf0/x9f/x89/x81 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09 ++<U0001F242> /xf0/x9f/x89/x82 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C ++<U0001F243> /xf0/x9f/x89/x83 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89 ++<U0001F244> /xf0/x9f/x89/x84 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9 ++<U0001F245> /xf0/x9f/x89/x85 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253 ++<U0001F246> /xf0/x9f/x89/x86 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7 ++<U0001F247> /xf0/x9f/x89/x87 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD ++<U0001F248> /xf0/x9f/x89/x88 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557 ++<U0001F250> /xf0/x9f/x89/x90 CIRCLED IDEOGRAPH ADVANTAGE ++<U0001F251> /xf0/x9f/x89/x91 CIRCLED IDEOGRAPH ACCEPT ++<U0001F300> /xf0/x9f/x8c/x80 CYCLONE ++<U0001F301> /xf0/x9f/x8c/x81 FOGGY ++<U0001F302> /xf0/x9f/x8c/x82 CLOSED UMBRELLA ++<U0001F303> /xf0/x9f/x8c/x83 NIGHT WITH STARS ++<U0001F304> /xf0/x9f/x8c/x84 SUNRISE OVER MOUNTAINS ++<U0001F305> /xf0/x9f/x8c/x85 SUNRISE ++<U0001F306> /xf0/x9f/x8c/x86 CITYSCAPE AT DUSK ++<U0001F307> /xf0/x9f/x8c/x87 SUNSET OVER BUILDINGS ++<U0001F308> /xf0/x9f/x8c/x88 RAINBOW ++<U0001F309> /xf0/x9f/x8c/x89 BRIDGE AT NIGHT ++<U0001F30A> /xf0/x9f/x8c/x8a WATER WAVE ++<U0001F30B> /xf0/x9f/x8c/x8b VOLCANO ++<U0001F30C> /xf0/x9f/x8c/x8c MILKY WAY ++<U0001F30D> /xf0/x9f/x8c/x8d EARTH GLOBE EUROPE-AFRICA ++<U0001F30E> /xf0/x9f/x8c/x8e EARTH GLOBE AMERICAS ++<U0001F30F> /xf0/x9f/x8c/x8f EARTH GLOBE ASIA-AUSTRALIA ++<U0001F310> /xf0/x9f/x8c/x90 GLOBE WITH MERIDIANS ++<U0001F311> /xf0/x9f/x8c/x91 NEW MOON SYMBOL ++<U0001F312> /xf0/x9f/x8c/x92 WAXING CRESCENT MOON SYMBOL ++<U0001F313> /xf0/x9f/x8c/x93 FIRST QUARTER MOON SYMBOL ++<U0001F314> /xf0/x9f/x8c/x94 WAXING GIBBOUS MOON SYMBOL ++<U0001F315> /xf0/x9f/x8c/x95 FULL MOON SYMBOL ++<U0001F316> /xf0/x9f/x8c/x96 WANING GIBBOUS MOON SYMBOL ++<U0001F317> /xf0/x9f/x8c/x97 LAST QUARTER MOON SYMBOL ++<U0001F318> /xf0/x9f/x8c/x98 WANING CRESCENT MOON SYMBOL ++<U0001F319> /xf0/x9f/x8c/x99 CRESCENT MOON ++<U0001F31A> /xf0/x9f/x8c/x9a NEW MOON WITH FACE ++<U0001F31B> /xf0/x9f/x8c/x9b FIRST QUARTER MOON WITH FACE ++<U0001F31C> /xf0/x9f/x8c/x9c LAST QUARTER MOON WITH FACE ++<U0001F31D> /xf0/x9f/x8c/x9d FULL MOON WITH FACE ++<U0001F31E> /xf0/x9f/x8c/x9e SUN WITH FACE ++<U0001F31F> /xf0/x9f/x8c/x9f GLOWING STAR ++<U0001F320> /xf0/x9f/x8c/xa0 SHOOTING STAR ++<U0001F330> /xf0/x9f/x8c/xb0 CHESTNUT ++<U0001F331> /xf0/x9f/x8c/xb1 SEEDLING ++<U0001F332> /xf0/x9f/x8c/xb2 EVERGREEN TREE ++<U0001F333> /xf0/x9f/x8c/xb3 DECIDUOUS TREE ++<U0001F334> /xf0/x9f/x8c/xb4 PALM TREE ++<U0001F335> /xf0/x9f/x8c/xb5 CACTUS ++<U0001F337> /xf0/x9f/x8c/xb7 TULIP ++<U0001F338> /xf0/x9f/x8c/xb8 CHERRY BLOSSOM ++<U0001F339> /xf0/x9f/x8c/xb9 ROSE ++<U0001F33A> /xf0/x9f/x8c/xba HIBISCUS ++<U0001F33B> /xf0/x9f/x8c/xbb SUNFLOWER ++<U0001F33C> /xf0/x9f/x8c/xbc BLOSSOM ++<U0001F33D> /xf0/x9f/x8c/xbd EAR OF MAIZE ++<U0001F33E> /xf0/x9f/x8c/xbe EAR OF RICE ++<U0001F33F> /xf0/x9f/x8c/xbf HERB ++<U0001F340> /xf0/x9f/x8d/x80 FOUR LEAF CLOVER ++<U0001F341> /xf0/x9f/x8d/x81 MAPLE LEAF ++<U0001F342> /xf0/x9f/x8d/x82 FALLEN LEAF ++<U0001F343> /xf0/x9f/x8d/x83 LEAF FLUTTERING IN WIND ++<U0001F344> /xf0/x9f/x8d/x84 MUSHROOM ++<U0001F345> /xf0/x9f/x8d/x85 TOMATO ++<U0001F346> /xf0/x9f/x8d/x86 AUBERGINE ++<U0001F347> /xf0/x9f/x8d/x87 GRAPES ++<U0001F348> /xf0/x9f/x8d/x88 MELON ++<U0001F349> /xf0/x9f/x8d/x89 WATERMELON ++<U0001F34A> /xf0/x9f/x8d/x8a TANGERINE ++<U0001F34B> /xf0/x9f/x8d/x8b LEMON ++<U0001F34C> /xf0/x9f/x8d/x8c BANANA ++<U0001F34D> /xf0/x9f/x8d/x8d PINEAPPLE ++<U0001F34E> /xf0/x9f/x8d/x8e RED APPLE ++<U0001F34F> /xf0/x9f/x8d/x8f GREEN APPLE ++<U0001F350> /xf0/x9f/x8d/x90 PEAR ++<U0001F351> /xf0/x9f/x8d/x91 PEACH ++<U0001F352> /xf0/x9f/x8d/x92 CHERRIES ++<U0001F353> /xf0/x9f/x8d/x93 STRAWBERRY ++<U0001F354> /xf0/x9f/x8d/x94 HAMBURGER ++<U0001F355> /xf0/x9f/x8d/x95 SLICE OF PIZZA ++<U0001F356> /xf0/x9f/x8d/x96 MEAT ON BONE ++<U0001F357> /xf0/x9f/x8d/x97 POULTRY LEG ++<U0001F358> /xf0/x9f/x8d/x98 RICE CRACKER ++<U0001F359> /xf0/x9f/x8d/x99 RICE BALL ++<U0001F35A> /xf0/x9f/x8d/x9a COOKED RICE ++<U0001F35B> /xf0/x9f/x8d/x9b CURRY AND RICE ++<U0001F35C> /xf0/x9f/x8d/x9c STEAMING BOWL ++<U0001F35D> /xf0/x9f/x8d/x9d SPAGHETTI ++<U0001F35E> /xf0/x9f/x8d/x9e BREAD ++<U0001F35F> /xf0/x9f/x8d/x9f FRENCH FRIES ++<U0001F360> /xf0/x9f/x8d/xa0 ROASTED SWEET POTATO ++<U0001F361> /xf0/x9f/x8d/xa1 DANGO ++<U0001F362> /xf0/x9f/x8d/xa2 ODEN ++<U0001F363> /xf0/x9f/x8d/xa3 SUSHI ++<U0001F364> /xf0/x9f/x8d/xa4 FRIED SHRIMP ++<U0001F365> /xf0/x9f/x8d/xa5 FISH CAKE WITH SWIRL DESIGN ++<U0001F366> /xf0/x9f/x8d/xa6 SOFT ICE CREAM ++<U0001F367> /xf0/x9f/x8d/xa7 SHAVED ICE ++<U0001F368> /xf0/x9f/x8d/xa8 ICE CREAM ++<U0001F369> /xf0/x9f/x8d/xa9 DOUGHNUT ++<U0001F36A> /xf0/x9f/x8d/xaa COOKIE ++<U0001F36B> /xf0/x9f/x8d/xab CHOCOLATE BAR ++<U0001F36C> /xf0/x9f/x8d/xac CANDY ++<U0001F36D> /xf0/x9f/x8d/xad LOLLIPOP ++<U0001F36E> /xf0/x9f/x8d/xae CUSTARD ++<U0001F36F> /xf0/x9f/x8d/xaf HONEY POT ++<U0001F370> /xf0/x9f/x8d/xb0 SHORTCAKE ++<U0001F371> /xf0/x9f/x8d/xb1 BENTO BOX ++<U0001F372> /xf0/x9f/x8d/xb2 POT OF FOOD ++<U0001F373> /xf0/x9f/x8d/xb3 COOKING ++<U0001F374> /xf0/x9f/x8d/xb4 FORK AND KNIFE ++<U0001F375> /xf0/x9f/x8d/xb5 TEACUP WITHOUT HANDLE ++<U0001F376> /xf0/x9f/x8d/xb6 SAKE BOTTLE AND CUP ++<U0001F377> /xf0/x9f/x8d/xb7 WINE GLASS ++<U0001F378> /xf0/x9f/x8d/xb8 COCKTAIL GLASS ++<U0001F379> /xf0/x9f/x8d/xb9 TROPICAL DRINK ++<U0001F37A> /xf0/x9f/x8d/xba BEER MUG ++<U0001F37B> /xf0/x9f/x8d/xbb CLINKING BEER MUGS ++<U0001F37C> /xf0/x9f/x8d/xbc BABY BOTTLE ++<U0001F380> /xf0/x9f/x8e/x80 RIBBON ++<U0001F381> /xf0/x9f/x8e/x81 WRAPPED PRESENT ++<U0001F382> /xf0/x9f/x8e/x82 BIRTHDAY CAKE ++<U0001F383> /xf0/x9f/x8e/x83 JACK-O-LANTERN ++<U0001F384> /xf0/x9f/x8e/x84 CHRISTMAS TREE ++<U0001F385> /xf0/x9f/x8e/x85 FATHER CHRISTMAS ++<U0001F386> /xf0/x9f/x8e/x86 FIREWORKS ++<U0001F387> /xf0/x9f/x8e/x87 FIREWORK SPARKLER ++<U0001F388> /xf0/x9f/x8e/x88 BALLOON ++<U0001F389> /xf0/x9f/x8e/x89 PARTY POPPER ++<U0001F38A> /xf0/x9f/x8e/x8a CONFETTI BALL ++<U0001F38B> /xf0/x9f/x8e/x8b TANABATA TREE ++<U0001F38C> /xf0/x9f/x8e/x8c CROSSED FLAGS ++<U0001F38D> /xf0/x9f/x8e/x8d PINE DECORATION ++<U0001F38E> /xf0/x9f/x8e/x8e JAPANESE DOLLS ++<U0001F38F> /xf0/x9f/x8e/x8f CARP STREAMER ++<U0001F390> /xf0/x9f/x8e/x90 WIND CHIME ++<U0001F391> /xf0/x9f/x8e/x91 MOON VIEWING CEREMONY ++<U0001F392> /xf0/x9f/x8e/x92 SCHOOL SATCHEL ++<U0001F393> /xf0/x9f/x8e/x93 GRADUATION CAP ++<U0001F3A0> /xf0/x9f/x8e/xa0 CAROUSEL HORSE ++<U0001F3A1> /xf0/x9f/x8e/xa1 FERRIS WHEEL ++<U0001F3A2> /xf0/x9f/x8e/xa2 ROLLER COASTER ++<U0001F3A3> /xf0/x9f/x8e/xa3 FISHING POLE AND FISH ++<U0001F3A4> /xf0/x9f/x8e/xa4 MICROPHONE ++<U0001F3A5> /xf0/x9f/x8e/xa5 MOVIE CAMERA ++<U0001F3A6> /xf0/x9f/x8e/xa6 CINEMA ++<U0001F3A7> /xf0/x9f/x8e/xa7 HEADPHONE ++<U0001F3A8> /xf0/x9f/x8e/xa8 ARTIST PALETTE ++<U0001F3A9> /xf0/x9f/x8e/xa9 TOP HAT ++<U0001F3AA> /xf0/x9f/x8e/xaa CIRCUS TENT ++<U0001F3AB> /xf0/x9f/x8e/xab TICKET ++<U0001F3AC> /xf0/x9f/x8e/xac CLAPPER BOARD ++<U0001F3AD> /xf0/x9f/x8e/xad PERFORMING ARTS ++<U0001F3AE> /xf0/x9f/x8e/xae VIDEO GAME ++<U0001F3AF> /xf0/x9f/x8e/xaf DIRECT HIT ++<U0001F3B0> /xf0/x9f/x8e/xb0 SLOT MACHINE ++<U0001F3B1> /xf0/x9f/x8e/xb1 BILLIARDS ++<U0001F3B2> /xf0/x9f/x8e/xb2 GAME DIE ++<U0001F3B3> /xf0/x9f/x8e/xb3 BOWLING ++<U0001F3B4> /xf0/x9f/x8e/xb4 FLOWER PLAYING CARDS ++<U0001F3B5> /xf0/x9f/x8e/xb5 MUSICAL NOTE ++<U0001F3B6> /xf0/x9f/x8e/xb6 MULTIPLE MUSICAL NOTES ++<U0001F3B7> /xf0/x9f/x8e/xb7 SAXOPHONE ++<U0001F3B8> /xf0/x9f/x8e/xb8 GUITAR ++<U0001F3B9> /xf0/x9f/x8e/xb9 MUSICAL KEYBOARD ++<U0001F3BA> /xf0/x9f/x8e/xba TRUMPET ++<U0001F3BB> /xf0/x9f/x8e/xbb VIOLIN ++<U0001F3BC> /xf0/x9f/x8e/xbc MUSICAL SCORE ++<U0001F3BD> /xf0/x9f/x8e/xbd RUNNING SHIRT WITH SASH ++<U0001F3BE> /xf0/x9f/x8e/xbe TENNIS RACQUET AND BALL ++<U0001F3BF> /xf0/x9f/x8e/xbf SKI AND SKI BOOT ++<U0001F3C0> /xf0/x9f/x8f/x80 BASKETBALL AND HOOP ++<U0001F3C1> /xf0/x9f/x8f/x81 CHEQUERED FLAG ++<U0001F3C2> /xf0/x9f/x8f/x82 SNOWBOARDER ++<U0001F3C3> /xf0/x9f/x8f/x83 RUNNER ++<U0001F3C4> /xf0/x9f/x8f/x84 SURFER ++<U0001F3C6> /xf0/x9f/x8f/x86 TROPHY ++<U0001F3C7> /xf0/x9f/x8f/x87 HORSE RACING ++<U0001F3C8> /xf0/x9f/x8f/x88 AMERICAN FOOTBALL ++<U0001F3C9> /xf0/x9f/x8f/x89 RUGBY FOOTBALL ++<U0001F3CA> /xf0/x9f/x8f/x8a SWIMMER ++<U0001F3E0> /xf0/x9f/x8f/xa0 HOUSE BUILDING ++<U0001F3E1> /xf0/x9f/x8f/xa1 HOUSE WITH GARDEN ++<U0001F3E2> /xf0/x9f/x8f/xa2 OFFICE BUILDING ++<U0001F3E3> /xf0/x9f/x8f/xa3 JAPANESE POST OFFICE ++<U0001F3E4> /xf0/x9f/x8f/xa4 EUROPEAN POST OFFICE ++<U0001F3E5> /xf0/x9f/x8f/xa5 HOSPITAL ++<U0001F3E6> /xf0/x9f/x8f/xa6 BANK ++<U0001F3E7> /xf0/x9f/x8f/xa7 AUTOMATED TELLER MACHINE ++<U0001F3E8> /xf0/x9f/x8f/xa8 HOTEL ++<U0001F3E9> /xf0/x9f/x8f/xa9 LOVE HOTEL ++<U0001F3EA> /xf0/x9f/x8f/xaa CONVENIENCE STORE ++<U0001F3EB> /xf0/x9f/x8f/xab SCHOOL ++<U0001F3EC> /xf0/x9f/x8f/xac DEPARTMENT STORE ++<U0001F3ED> /xf0/x9f/x8f/xad FACTORY ++<U0001F3EE> /xf0/x9f/x8f/xae IZAKAYA LANTERN ++<U0001F3EF> /xf0/x9f/x8f/xaf JAPANESE CASTLE ++<U0001F3F0> /xf0/x9f/x8f/xb0 EUROPEAN CASTLE ++<U0001F400> /xf0/x9f/x90/x80 RAT ++<U0001F401> /xf0/x9f/x90/x81 MOUSE ++<U0001F402> /xf0/x9f/x90/x82 OX ++<U0001F403> /xf0/x9f/x90/x83 WATER BUFFALO ++<U0001F404> /xf0/x9f/x90/x84 COW ++<U0001F405> /xf0/x9f/x90/x85 TIGER ++<U0001F406> /xf0/x9f/x90/x86 LEOPARD ++<U0001F407> /xf0/x9f/x90/x87 RABBIT ++<U0001F408> /xf0/x9f/x90/x88 CAT ++<U0001F409> /xf0/x9f/x90/x89 DRAGON ++<U0001F40A> /xf0/x9f/x90/x8a CROCODILE ++<U0001F40B> /xf0/x9f/x90/x8b WHALE ++<U0001F40C> /xf0/x9f/x90/x8c SNAIL ++<U0001F40D> /xf0/x9f/x90/x8d SNAKE ++<U0001F40E> /xf0/x9f/x90/x8e HORSE ++<U0001F40F> /xf0/x9f/x90/x8f RAM ++<U0001F410> /xf0/x9f/x90/x90 GOAT ++<U0001F411> /xf0/x9f/x90/x91 SHEEP ++<U0001F412> /xf0/x9f/x90/x92 MONKEY ++<U0001F413> /xf0/x9f/x90/x93 ROOSTER ++<U0001F414> /xf0/x9f/x90/x94 CHICKEN ++<U0001F415> /xf0/x9f/x90/x95 DOG ++<U0001F416> /xf0/x9f/x90/x96 PIG ++<U0001F417> /xf0/x9f/x90/x97 BOAR ++<U0001F418> /xf0/x9f/x90/x98 ELEPHANT ++<U0001F419> /xf0/x9f/x90/x99 OCTOPUS ++<U0001F41A> /xf0/x9f/x90/x9a SPIRAL SHELL ++<U0001F41B> /xf0/x9f/x90/x9b BUG ++<U0001F41C> /xf0/x9f/x90/x9c ANT ++<U0001F41D> /xf0/x9f/x90/x9d HONEYBEE ++<U0001F41E> /xf0/x9f/x90/x9e LADY BEETLE ++<U0001F41F> /xf0/x9f/x90/x9f FISH ++<U0001F420> /xf0/x9f/x90/xa0 TROPICAL FISH ++<U0001F421> /xf0/x9f/x90/xa1 BLOWFISH ++<U0001F422> /xf0/x9f/x90/xa2 TURTLE ++<U0001F423> /xf0/x9f/x90/xa3 HATCHING CHICK ++<U0001F424> /xf0/x9f/x90/xa4 BABY CHICK ++<U0001F425> /xf0/x9f/x90/xa5 FRONT-FACING BABY CHICK ++<U0001F426> /xf0/x9f/x90/xa6 BIRD ++<U0001F427> /xf0/x9f/x90/xa7 PENGUIN ++<U0001F428> /xf0/x9f/x90/xa8 KOALA ++<U0001F429> /xf0/x9f/x90/xa9 POODLE ++<U0001F42A> /xf0/x9f/x90/xaa DROMEDARY CAMEL ++<U0001F42B> /xf0/x9f/x90/xab BACTRIAN CAMEL ++<U0001F42C> /xf0/x9f/x90/xac DOLPHIN ++<U0001F42D> /xf0/x9f/x90/xad MOUSE FACE ++<U0001F42E> /xf0/x9f/x90/xae COW FACE ++<U0001F42F> /xf0/x9f/x90/xaf TIGER FACE ++<U0001F430> /xf0/x9f/x90/xb0 RABBIT FACE ++<U0001F431> /xf0/x9f/x90/xb1 CAT FACE ++<U0001F432> /xf0/x9f/x90/xb2 DRAGON FACE ++<U0001F433> /xf0/x9f/x90/xb3 SPOUTING WHALE ++<U0001F434> /xf0/x9f/x90/xb4 HORSE FACE ++<U0001F435> /xf0/x9f/x90/xb5 MONKEY FACE ++<U0001F436> /xf0/x9f/x90/xb6 DOG FACE ++<U0001F437> /xf0/x9f/x90/xb7 PIG FACE ++<U0001F438> /xf0/x9f/x90/xb8 FROG FACE ++<U0001F439> /xf0/x9f/x90/xb9 HAMSTER FACE ++<U0001F43A> /xf0/x9f/x90/xba WOLF FACE ++<U0001F43B> /xf0/x9f/x90/xbb BEAR FACE ++<U0001F43C> /xf0/x9f/x90/xbc PANDA FACE ++<U0001F43D> /xf0/x9f/x90/xbd PIG NOSE ++<U0001F43E> /xf0/x9f/x90/xbe PAW PRINTS ++<U0001F440> /xf0/x9f/x91/x80 EYES ++<U0001F442> /xf0/x9f/x91/x82 EAR ++<U0001F443> /xf0/x9f/x91/x83 NOSE ++<U0001F444> /xf0/x9f/x91/x84 MOUTH ++<U0001F445> /xf0/x9f/x91/x85 TONGUE ++<U0001F446> /xf0/x9f/x91/x86 WHITE UP POINTING BACKHAND INDEX ++<U0001F447> /xf0/x9f/x91/x87 WHITE DOWN POINTING BACKHAND INDEX ++<U0001F448> /xf0/x9f/x91/x88 WHITE LEFT POINTING BACKHAND INDEX ++<U0001F449> /xf0/x9f/x91/x89 WHITE RIGHT POINTING BACKHAND INDEX ++<U0001F44A> /xf0/x9f/x91/x8a FISTED HAND SIGN ++<U0001F44B> /xf0/x9f/x91/x8b WAVING HAND SIGN ++<U0001F44C> /xf0/x9f/x91/x8c OK HAND SIGN ++<U0001F44D> /xf0/x9f/x91/x8d THUMBS UP SIGN ++<U0001F44E> /xf0/x9f/x91/x8e THUMBS DOWN SIGN ++<U0001F44F> /xf0/x9f/x91/x8f CLAPPING HANDS SIGN ++<U0001F450> /xf0/x9f/x91/x90 OPEN HANDS SIGN ++<U0001F451> /xf0/x9f/x91/x91 CROWN ++<U0001F452> /xf0/x9f/x91/x92 WOMANS HAT ++<U0001F453> /xf0/x9f/x91/x93 EYEGLASSES ++<U0001F454> /xf0/x9f/x91/x94 NECKTIE ++<U0001F455> /xf0/x9f/x91/x95 T-SHIRT ++<U0001F456> /xf0/x9f/x91/x96 JEANS ++<U0001F457> /xf0/x9f/x91/x97 DRESS ++<U0001F458> /xf0/x9f/x91/x98 KIMONO ++<U0001F459> /xf0/x9f/x91/x99 BIKINI ++<U0001F45A> /xf0/x9f/x91/x9a WOMANS CLOTHES ++<U0001F45B> /xf0/x9f/x91/x9b PURSE ++<U0001F45C> /xf0/x9f/x91/x9c HANDBAG ++<U0001F45D> /xf0/x9f/x91/x9d POUCH ++<U0001F45E> /xf0/x9f/x91/x9e MANS SHOE ++<U0001F45F> /xf0/x9f/x91/x9f ATHLETIC SHOE ++<U0001F460> /xf0/x9f/x91/xa0 HIGH-HEELED SHOE ++<U0001F461> /xf0/x9f/x91/xa1 WOMANS SANDAL ++<U0001F462> /xf0/x9f/x91/xa2 WOMANS BOOTS ++<U0001F463> /xf0/x9f/x91/xa3 FOOTPRINTS ++<U0001F464> /xf0/x9f/x91/xa4 BUST IN SILHOUETTE ++<U0001F465> /xf0/x9f/x91/xa5 BUSTS IN SILHOUETTE ++<U0001F466> /xf0/x9f/x91/xa6 BOY ++<U0001F467> /xf0/x9f/x91/xa7 GIRL ++<U0001F468> /xf0/x9f/x91/xa8 MAN ++<U0001F469> /xf0/x9f/x91/xa9 WOMAN ++<U0001F46A> /xf0/x9f/x91/xaa FAMILY ++<U0001F46B> /xf0/x9f/x91/xab MAN AND WOMAN HOLDING HANDS ++<U0001F46C> /xf0/x9f/x91/xac TWO MEN HOLDING HANDS ++<U0001F46D> /xf0/x9f/x91/xad TWO WOMEN HOLDING HANDS ++<U0001F46E> /xf0/x9f/x91/xae POLICE OFFICER ++<U0001F46F> /xf0/x9f/x91/xaf WOMAN WITH BUNNY EARS ++<U0001F470> /xf0/x9f/x91/xb0 BRIDE WITH VEIL ++<U0001F471> /xf0/x9f/x91/xb1 PERSON WITH BLOND HAIR ++<U0001F472> /xf0/x9f/x91/xb2 MAN WITH GUA PI MAO ++<U0001F473> /xf0/x9f/x91/xb3 MAN WITH TURBAN ++<U0001F474> /xf0/x9f/x91/xb4 OLDER MAN ++<U0001F475> /xf0/x9f/x91/xb5 OLDER WOMAN ++<U0001F476> /xf0/x9f/x91/xb6 BABY ++<U0001F477> /xf0/x9f/x91/xb7 CONSTRUCTION WORKER ++<U0001F478> /xf0/x9f/x91/xb8 PRINCESS ++<U0001F479> /xf0/x9f/x91/xb9 JAPANESE OGRE ++<U0001F47A> /xf0/x9f/x91/xba JAPANESE GOBLIN ++<U0001F47B> /xf0/x9f/x91/xbb GHOST ++<U0001F47C> /xf0/x9f/x91/xbc BABY ANGEL ++<U0001F47D> /xf0/x9f/x91/xbd EXTRATERRESTRIAL ALIEN ++<U0001F47E> /xf0/x9f/x91/xbe ALIEN MONSTER ++<U0001F47F> /xf0/x9f/x91/xbf IMP ++<U0001F480> /xf0/x9f/x92/x80 SKULL ++<U0001F481> /xf0/x9f/x92/x81 INFORMATION DESK PERSON ++<U0001F482> /xf0/x9f/x92/x82 GUARDSMAN ++<U0001F483> /xf0/x9f/x92/x83 DANCER ++<U0001F484> /xf0/x9f/x92/x84 LIPSTICK ++<U0001F485> /xf0/x9f/x92/x85 NAIL POLISH ++<U0001F486> /xf0/x9f/x92/x86 FACE MASSAGE ++<U0001F487> /xf0/x9f/x92/x87 HAIRCUT ++<U0001F488> /xf0/x9f/x92/x88 BARBER POLE ++<U0001F489> /xf0/x9f/x92/x89 SYRINGE ++<U0001F48A> /xf0/x9f/x92/x8a PILL ++<U0001F48B> /xf0/x9f/x92/x8b KISS MARK ++<U0001F48C> /xf0/x9f/x92/x8c LOVE LETTER ++<U0001F48D> /xf0/x9f/x92/x8d RING ++<U0001F48E> /xf0/x9f/x92/x8e GEM STONE ++<U0001F48F> /xf0/x9f/x92/x8f KISS ++<U0001F490> /xf0/x9f/x92/x90 BOUQUET ++<U0001F491> /xf0/x9f/x92/x91 COUPLE WITH HEART ++<U0001F492> /xf0/x9f/x92/x92 WEDDING ++<U0001F493> /xf0/x9f/x92/x93 BEATING HEART ++<U0001F494> /xf0/x9f/x92/x94 BROKEN HEART ++<U0001F495> /xf0/x9f/x92/x95 TWO HEARTS ++<U0001F496> /xf0/x9f/x92/x96 SPARKLING HEART ++<U0001F497> /xf0/x9f/x92/x97 GROWING HEART ++<U0001F498> /xf0/x9f/x92/x98 HEART WITH ARROW ++<U0001F499> /xf0/x9f/x92/x99 BLUE HEART ++<U0001F49A> /xf0/x9f/x92/x9a GREEN HEART ++<U0001F49B> /xf0/x9f/x92/x9b YELLOW HEART ++<U0001F49C> /xf0/x9f/x92/x9c PURPLE HEART ++<U0001F49D> /xf0/x9f/x92/x9d HEART WITH RIBBON ++<U0001F49E> /xf0/x9f/x92/x9e REVOLVING HEARTS ++<U0001F49F> /xf0/x9f/x92/x9f HEART DECORATION ++<U0001F4A0> /xf0/x9f/x92/xa0 DIAMOND SHAPE WITH A DOT INSIDE ++<U0001F4A1> /xf0/x9f/x92/xa1 ELECTRIC LIGHT BULB ++<U0001F4A2> /xf0/x9f/x92/xa2 ANGER SYMBOL ++<U0001F4A3> /xf0/x9f/x92/xa3 BOMB ++<U0001F4A4> /xf0/x9f/x92/xa4 SLEEPING SYMBOL ++<U0001F4A5> /xf0/x9f/x92/xa5 COLLISION SYMBOL ++<U0001F4A6> /xf0/x9f/x92/xa6 SPLASHING SWEAT SYMBOL ++<U0001F4A7> /xf0/x9f/x92/xa7 DROPLET ++<U0001F4A8> /xf0/x9f/x92/xa8 DASH SYMBOL ++<U0001F4A9> /xf0/x9f/x92/xa9 PILE OF POO ++<U0001F4AA> /xf0/x9f/x92/xaa FLEXED BICEPS ++<U0001F4AB> /xf0/x9f/x92/xab DIZZY SYMBOL ++<U0001F4AC> /xf0/x9f/x92/xac SPEECH BALLOON ++<U0001F4AD> /xf0/x9f/x92/xad THOUGHT BALLOON ++<U0001F4AE> /xf0/x9f/x92/xae WHITE FLOWER ++<U0001F4AF> /xf0/x9f/x92/xaf HUNDRED POINTS SYMBOL ++<U0001F4B0> /xf0/x9f/x92/xb0 MONEY BAG ++<U0001F4B1> /xf0/x9f/x92/xb1 CURRENCY EXCHANGE ++<U0001F4B2> /xf0/x9f/x92/xb2 HEAVY DOLLAR SIGN ++<U0001F4B3> /xf0/x9f/x92/xb3 CREDIT CARD ++<U0001F4B4> /xf0/x9f/x92/xb4 BANKNOTE WITH YEN SIGN ++<U0001F4B5> /xf0/x9f/x92/xb5 BANKNOTE WITH DOLLAR SIGN ++<U0001F4B6> /xf0/x9f/x92/xb6 BANKNOTE WITH EURO SIGN ++<U0001F4B7> /xf0/x9f/x92/xb7 BANKNOTE WITH POUND SIGN ++<U0001F4B8> /xf0/x9f/x92/xb8 MONEY WITH WINGS ++<U0001F4B9> /xf0/x9f/x92/xb9 CHART WITH UPWARDS TREND AND YEN SIGN ++<U0001F4BA> /xf0/x9f/x92/xba SEAT ++<U0001F4BB> /xf0/x9f/x92/xbb PERSONAL COMPUTER ++<U0001F4BC> /xf0/x9f/x92/xbc BRIEFCASE ++<U0001F4BD> /xf0/x9f/x92/xbd MINIDISC ++<U0001F4BE> /xf0/x9f/x92/xbe FLOPPY DISK ++<U0001F4BF> /xf0/x9f/x92/xbf OPTICAL DISC ++<U0001F4C0> /xf0/x9f/x93/x80 DVD ++<U0001F4C1> /xf0/x9f/x93/x81 FILE FOLDER ++<U0001F4C2> /xf0/x9f/x93/x82 OPEN FILE FOLDER ++<U0001F4C3> /xf0/x9f/x93/x83 PAGE WITH CURL ++<U0001F4C4> /xf0/x9f/x93/x84 PAGE FACING UP ++<U0001F4C5> /xf0/x9f/x93/x85 CALENDAR ++<U0001F4C6> /xf0/x9f/x93/x86 TEAR-OFF CALENDAR ++<U0001F4C7> /xf0/x9f/x93/x87 CARD INDEX ++<U0001F4C8> /xf0/x9f/x93/x88 CHART WITH UPWARDS TREND ++<U0001F4C9> /xf0/x9f/x93/x89 CHART WITH DOWNWARDS TREND ++<U0001F4CA> /xf0/x9f/x93/x8a BAR CHART ++<U0001F4CB> /xf0/x9f/x93/x8b CLIPBOARD ++<U0001F4CC> /xf0/x9f/x93/x8c PUSHPIN ++<U0001F4CD> /xf0/x9f/x93/x8d ROUND PUSHPIN ++<U0001F4CE> /xf0/x9f/x93/x8e PAPERCLIP ++<U0001F4CF> /xf0/x9f/x93/x8f STRAIGHT RULER ++<U0001F4D0> /xf0/x9f/x93/x90 TRIANGULAR RULER ++<U0001F4D1> /xf0/x9f/x93/x91 BOOKMARK TABS ++<U0001F4D2> /xf0/x9f/x93/x92 LEDGER ++<U0001F4D3> /xf0/x9f/x93/x93 NOTEBOOK ++<U0001F4D4> /xf0/x9f/x93/x94 NOTEBOOK WITH DECORATIVE COVER ++<U0001F4D5> /xf0/x9f/x93/x95 CLOSED BOOK ++<U0001F4D6> /xf0/x9f/x93/x96 OPEN BOOK ++<U0001F4D7> /xf0/x9f/x93/x97 GREEN BOOK ++<U0001F4D8> /xf0/x9f/x93/x98 BLUE BOOK ++<U0001F4D9> /xf0/x9f/x93/x99 ORANGE BOOK ++<U0001F4DA> /xf0/x9f/x93/x9a BOOKS ++<U0001F4DB> /xf0/x9f/x93/x9b NAME BADGE ++<U0001F4DC> /xf0/x9f/x93/x9c SCROLL ++<U0001F4DD> /xf0/x9f/x93/x9d MEMO ++<U0001F4DE> /xf0/x9f/x93/x9e TELEPHONE RECEIVER ++<U0001F4DF> /xf0/x9f/x93/x9f PAGER ++<U0001F4E0> /xf0/x9f/x93/xa0 FAX MACHINE ++<U0001F4E1> /xf0/x9f/x93/xa1 SATELLITE ANTENNA ++<U0001F4E2> /xf0/x9f/x93/xa2 PUBLIC ADDRESS LOUDSPEAKER ++<U0001F4E3> /xf0/x9f/x93/xa3 CHEERING MEGAPHONE ++<U0001F4E4> /xf0/x9f/x93/xa4 OUTBOX TRAY ++<U0001F4E5> /xf0/x9f/x93/xa5 INBOX TRAY ++<U0001F4E6> /xf0/x9f/x93/xa6 PACKAGE ++<U0001F4E7> /xf0/x9f/x93/xa7 E-MAIL SYMBOL ++<U0001F4E8> /xf0/x9f/x93/xa8 INCOMING ENVELOPE ++<U0001F4E9> /xf0/x9f/x93/xa9 ENVELOPE WITH DOWNWARDS ARROW ABOVE ++<U0001F4EA> /xf0/x9f/x93/xaa CLOSED MAILBOX WITH LOWERED FLAG ++<U0001F4EB> /xf0/x9f/x93/xab CLOSED MAILBOX WITH RAISED FLAG ++<U0001F4EC> /xf0/x9f/x93/xac OPEN MAILBOX WITH RAISED FLAG ++<U0001F4ED> /xf0/x9f/x93/xad OPEN MAILBOX WITH LOWERED FLAG ++<U0001F4EE> /xf0/x9f/x93/xae POSTBOX ++<U0001F4EF> /xf0/x9f/x93/xaf POSTAL HORN ++<U0001F4F0> /xf0/x9f/x93/xb0 NEWSPAPER ++<U0001F4F1> /xf0/x9f/x93/xb1 MOBILE PHONE ++<U0001F4F2> /xf0/x9f/x93/xb2 MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT ++<U0001F4F3> /xf0/x9f/x93/xb3 VIBRATION MODE ++<U0001F4F4> /xf0/x9f/x93/xb4 MOBILE PHONE OFF ++<U0001F4F5> /xf0/x9f/x93/xb5 NO MOBILE PHONES ++<U0001F4F6> /xf0/x9f/x93/xb6 ANTENNA WITH BARS ++<U0001F4F7> /xf0/x9f/x93/xb7 CAMERA ++<U0001F4F9> /xf0/x9f/x93/xb9 VIDEO CAMERA ++<U0001F4FA> /xf0/x9f/x93/xba TELEVISION ++<U0001F4FB> /xf0/x9f/x93/xbb RADIO ++<U0001F4FC> /xf0/x9f/x93/xbc VIDEOCASSETTE ++<U0001F500> /xf0/x9f/x94/x80 TWISTED RIGHTWARDS ARROWS ++<U0001F501> /xf0/x9f/x94/x81 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS ++<U0001F502> /xf0/x9f/x94/x82 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY ++<U0001F503> /xf0/x9f/x94/x83 CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS ++<U0001F504> /xf0/x9f/x94/x84 ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS ++<U0001F505> /xf0/x9f/x94/x85 LOW BRIGHTNESS SYMBOL ++<U0001F506> /xf0/x9f/x94/x86 HIGH BRIGHTNESS SYMBOL ++<U0001F507> /xf0/x9f/x94/x87 SPEAKER WITH CANCELLATION STROKE ++<U0001F508> /xf0/x9f/x94/x88 SPEAKER ++<U0001F509> /xf0/x9f/x94/x89 SPEAKER WITH ONE SOUND WAVE ++<U0001F50A> /xf0/x9f/x94/x8a SPEAKER WITH THREE SOUND WAVES ++<U0001F50B> /xf0/x9f/x94/x8b BATTERY ++<U0001F50C> /xf0/x9f/x94/x8c ELECTRIC PLUG ++<U0001F50D> /xf0/x9f/x94/x8d LEFT-POINTING MAGNIFYING GLASS ++<U0001F50E> /xf0/x9f/x94/x8e RIGHT-POINTING MAGNIFYING GLASS ++<U0001F50F> /xf0/x9f/x94/x8f LOCK WITH INK PEN ++<U0001F510> /xf0/x9f/x94/x90 CLOSED LOCK WITH KEY ++<U0001F511> /xf0/x9f/x94/x91 KEY ++<U0001F512> /xf0/x9f/x94/x92 LOCK ++<U0001F513> /xf0/x9f/x94/x93 OPEN LOCK ++<U0001F514> /xf0/x9f/x94/x94 BELL ++<U0001F515> /xf0/x9f/x94/x95 BELL WITH CANCELLATION STROKE ++<U0001F516> /xf0/x9f/x94/x96 BOOKMARK ++<U0001F517> /xf0/x9f/x94/x97 LINK SYMBOL ++<U0001F518> /xf0/x9f/x94/x98 RADIO BUTTON ++<U0001F519> /xf0/x9f/x94/x99 BACK WITH LEFTWARDS ARROW ABOVE ++<U0001F51A> /xf0/x9f/x94/x9a END WITH LEFTWARDS ARROW ABOVE ++<U0001F51B> /xf0/x9f/x94/x9b ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE ++<U0001F51C> /xf0/x9f/x94/x9c SOON WITH RIGHTWARDS ARROW ABOVE ++<U0001F51D> /xf0/x9f/x94/x9d TOP WITH UPWARDS ARROW ABOVE ++<U0001F51E> /xf0/x9f/x94/x9e NO ONE UNDER EIGHTEEN SYMBOL ++<U0001F51F> /xf0/x9f/x94/x9f KEYCAP TEN ++<U0001F520> /xf0/x9f/x94/xa0 INPUT SYMBOL FOR LATIN CAPITAL LETTERS ++<U0001F521> /xf0/x9f/x94/xa1 INPUT SYMBOL FOR LATIN SMALL LETTERS ++<U0001F522> /xf0/x9f/x94/xa2 INPUT SYMBOL FOR NUMBERS ++<U0001F523> /xf0/x9f/x94/xa3 INPUT SYMBOL FOR SYMBOLS ++<U0001F524> /xf0/x9f/x94/xa4 INPUT SYMBOL FOR LATIN LETTERS ++<U0001F525> /xf0/x9f/x94/xa5 FIRE ++<U0001F526> /xf0/x9f/x94/xa6 ELECTRIC TORCH ++<U0001F527> /xf0/x9f/x94/xa7 WRENCH ++<U0001F528> /xf0/x9f/x94/xa8 HAMMER ++<U0001F529> /xf0/x9f/x94/xa9 NUT AND BOLT ++<U0001F52A> /xf0/x9f/x94/xaa HOCHO ++<U0001F52B> /xf0/x9f/x94/xab PISTOL ++<U0001F52C> /xf0/x9f/x94/xac MICROSCOPE ++<U0001F52D> /xf0/x9f/x94/xad TELESCOPE ++<U0001F52E> /xf0/x9f/x94/xae CRYSTAL BALL ++<U0001F52F> /xf0/x9f/x94/xaf SIX POINTED STAR WITH MIDDLE DOT ++<U0001F530> /xf0/x9f/x94/xb0 JAPANESE SYMBOL FOR BEGINNER ++<U0001F531> /xf0/x9f/x94/xb1 TRIDENT EMBLEM ++<U0001F532> /xf0/x9f/x94/xb2 BLACK SQUARE BUTTON ++<U0001F533> /xf0/x9f/x94/xb3 WHITE SQUARE BUTTON ++<U0001F534> /xf0/x9f/x94/xb4 LARGE RED CIRCLE ++<U0001F535> /xf0/x9f/x94/xb5 LARGE BLUE CIRCLE ++<U0001F536> /xf0/x9f/x94/xb6 LARGE ORANGE DIAMOND ++<U0001F537> /xf0/x9f/x94/xb7 LARGE BLUE DIAMOND ++<U0001F538> /xf0/x9f/x94/xb8 SMALL ORANGE DIAMOND ++<U0001F539> /xf0/x9f/x94/xb9 SMALL BLUE DIAMOND ++<U0001F53A> /xf0/x9f/x94/xba UP-POINTING RED TRIANGLE ++<U0001F53B> /xf0/x9f/x94/xbb DOWN-POINTING RED TRIANGLE ++<U0001F53C> /xf0/x9f/x94/xbc UP-POINTING SMALL RED TRIANGLE ++<U0001F53D> /xf0/x9f/x94/xbd DOWN-POINTING SMALL RED TRIANGLE ++<U0001F550> /xf0/x9f/x95/x90 CLOCK FACE ONE OCLOCK ++<U0001F551> /xf0/x9f/x95/x91 CLOCK FACE TWO OCLOCK ++<U0001F552> /xf0/x9f/x95/x92 CLOCK FACE THREE OCLOCK ++<U0001F553> /xf0/x9f/x95/x93 CLOCK FACE FOUR OCLOCK ++<U0001F554> /xf0/x9f/x95/x94 CLOCK FACE FIVE OCLOCK ++<U0001F555> /xf0/x9f/x95/x95 CLOCK FACE SIX OCLOCK ++<U0001F556> /xf0/x9f/x95/x96 CLOCK FACE SEVEN OCLOCK ++<U0001F557> /xf0/x9f/x95/x97 CLOCK FACE EIGHT OCLOCK ++<U0001F558> /xf0/x9f/x95/x98 CLOCK FACE NINE OCLOCK ++<U0001F559> /xf0/x9f/x95/x99 CLOCK FACE TEN OCLOCK ++<U0001F55A> /xf0/x9f/x95/x9a CLOCK FACE ELEVEN OCLOCK ++<U0001F55B> /xf0/x9f/x95/x9b CLOCK FACE TWELVE OCLOCK ++<U0001F55C> /xf0/x9f/x95/x9c CLOCK FACE ONE-THIRTY ++<U0001F55D> /xf0/x9f/x95/x9d CLOCK FACE TWO-THIRTY ++<U0001F55E> /xf0/x9f/x95/x9e CLOCK FACE THREE-THIRTY ++<U0001F55F> /xf0/x9f/x95/x9f CLOCK FACE FOUR-THIRTY ++<U0001F560> /xf0/x9f/x95/xa0 CLOCK FACE FIVE-THIRTY ++<U0001F561> /xf0/x9f/x95/xa1 CLOCK FACE SIX-THIRTY ++<U0001F562> /xf0/x9f/x95/xa2 CLOCK FACE SEVEN-THIRTY ++<U0001F563> /xf0/x9f/x95/xa3 CLOCK FACE EIGHT-THIRTY ++<U0001F564> /xf0/x9f/x95/xa4 CLOCK FACE NINE-THIRTY ++<U0001F565> /xf0/x9f/x95/xa5 CLOCK FACE TEN-THIRTY ++<U0001F566> /xf0/x9f/x95/xa6 CLOCK FACE ELEVEN-THIRTY ++<U0001F567> /xf0/x9f/x95/xa7 CLOCK FACE TWELVE-THIRTY ++<U0001F5FB> /xf0/x9f/x97/xbb MOUNT FUJI ++<U0001F5FC> /xf0/x9f/x97/xbc TOKYO TOWER ++<U0001F5FD> /xf0/x9f/x97/xbd STATUE OF LIBERTY ++<U0001F5FE> /xf0/x9f/x97/xbe SILHOUETTE OF JAPAN ++<U0001F5FF> /xf0/x9f/x97/xbf MOYAI ++<U0001F601> /xf0/x9f/x98/x81 GRINNING FACE WITH SMILING EYES ++<U0001F602> /xf0/x9f/x98/x82 FACE WITH TEARS OF JOY ++<U0001F603> /xf0/x9f/x98/x83 SMILING FACE WITH OPEN MOUTH ++<U0001F604> /xf0/x9f/x98/x84 SMILING FACE WITH OPEN MOUTH AND SMILING EYES ++<U0001F605> /xf0/x9f/x98/x85 SMILING FACE WITH OPEN MOUTH AND COLD SWEAT ++<U0001F606> /xf0/x9f/x98/x86 SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES ++<U0001F607> /xf0/x9f/x98/x87 SMILING FACE WITH HALO ++<U0001F608> /xf0/x9f/x98/x88 SMILING FACE WITH HORNS ++<U0001F609> /xf0/x9f/x98/x89 WINKING FACE ++<U0001F60A> /xf0/x9f/x98/x8a SMILING FACE WITH SMILING EYES ++<U0001F60B> /xf0/x9f/x98/x8b FACE SAVOURING DELICIOUS FOOD ++<U0001F60C> /xf0/x9f/x98/x8c RELIEVED FACE ++<U0001F60D> /xf0/x9f/x98/x8d SMILING FACE WITH HEART-SHAPED EYES ++<U0001F60E> /xf0/x9f/x98/x8e SMILING FACE WITH SUNGLASSES ++<U0001F60F> /xf0/x9f/x98/x8f SMIRKING FACE ++<U0001F610> /xf0/x9f/x98/x90 NEUTRAL FACE ++<U0001F612> /xf0/x9f/x98/x92 UNAMUSED FACE ++<U0001F613> /xf0/x9f/x98/x93 FACE WITH COLD SWEAT ++<U0001F614> /xf0/x9f/x98/x94 PENSIVE FACE ++<U0001F616> /xf0/x9f/x98/x96 CONFOUNDED FACE ++<U0001F618> /xf0/x9f/x98/x98 FACE THROWING A KISS ++<U0001F61A> /xf0/x9f/x98/x9a KISSING FACE WITH CLOSED EYES ++<U0001F61C> /xf0/x9f/x98/x9c FACE WITH STUCK-OUT TONGUE AND WINKING EYE ++<U0001F61D> /xf0/x9f/x98/x9d FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES ++<U0001F61E> /xf0/x9f/x98/x9e DISAPPOINTED FACE ++<U0001F620> /xf0/x9f/x98/xa0 ANGRY FACE ++<U0001F621> /xf0/x9f/x98/xa1 POUTING FACE ++<U0001F622> /xf0/x9f/x98/xa2 CRYING FACE ++<U0001F623> /xf0/x9f/x98/xa3 PERSEVERING FACE ++<U0001F624> /xf0/x9f/x98/xa4 FACE WITH LOOK OF TRIUMPH ++<U0001F625> /xf0/x9f/x98/xa5 DISAPPOINTED BUT RELIEVED FACE ++<U0001F628> /xf0/x9f/x98/xa8 FEARFUL FACE ++<U0001F629> /xf0/x9f/x98/xa9 WEARY FACE ++<U0001F62A> /xf0/x9f/x98/xaa SLEEPY FACE ++<U0001F62B> /xf0/x9f/x98/xab TIRED FACE ++<U0001F62D> /xf0/x9f/x98/xad LOUDLY CRYING FACE ++<U0001F630> /xf0/x9f/x98/xb0 FACE WITH OPEN MOUTH AND COLD SWEAT ++<U0001F631> /xf0/x9f/x98/xb1 FACE SCREAMING IN FEAR ++<U0001F632> /xf0/x9f/x98/xb2 ASTONISHED FACE ++<U0001F633> /xf0/x9f/x98/xb3 FLUSHED FACE ++<U0001F635> /xf0/x9f/x98/xb5 DIZZY FACE ++<U0001F636> /xf0/x9f/x98/xb6 FACE WITHOUT MOUTH ++<U0001F637> /xf0/x9f/x98/xb7 FACE WITH MEDICAL MASK ++<U0001F638> /xf0/x9f/x98/xb8 GRINNING CAT FACE WITH SMILING EYES ++<U0001F639> /xf0/x9f/x98/xb9 CAT FACE WITH TEARS OF JOY ++<U0001F63A> /xf0/x9f/x98/xba SMILING CAT FACE WITH OPEN MOUTH ++<U0001F63B> /xf0/x9f/x98/xbb SMILING CAT FACE WITH HEART-SHAPED EYES ++<U0001F63C> /xf0/x9f/x98/xbc CAT FACE WITH WRY SMILE ++<U0001F63D> /xf0/x9f/x98/xbd KISSING CAT FACE WITH CLOSED EYES ++<U0001F63E> /xf0/x9f/x98/xbe POUTING CAT FACE ++<U0001F63F> /xf0/x9f/x98/xbf CRYING CAT FACE ++<U0001F640> /xf0/x9f/x99/x80 WEARY CAT FACE ++<U0001F645> /xf0/x9f/x99/x85 FACE WITH NO GOOD GESTURE ++<U0001F646> /xf0/x9f/x99/x86 FACE WITH OK GESTURE ++<U0001F647> /xf0/x9f/x99/x87 PERSON BOWING DEEPLY ++<U0001F648> /xf0/x9f/x99/x88 SEE-NO-EVIL MONKEY ++<U0001F649> /xf0/x9f/x99/x89 HEAR-NO-EVIL MONKEY ++<U0001F64A> /xf0/x9f/x99/x8a SPEAK-NO-EVIL MONKEY ++<U0001F64B> /xf0/x9f/x99/x8b HAPPY PERSON RAISING ONE HAND ++<U0001F64C> /xf0/x9f/x99/x8c PERSON RAISING BOTH HANDS IN CELEBRATION ++<U0001F64D> /xf0/x9f/x99/x8d PERSON FROWNING ++<U0001F64E> /xf0/x9f/x99/x8e PERSON WITH POUTING FACE ++<U0001F64F> /xf0/x9f/x99/x8f PERSON WITH FOLDED HANDS ++<U0001F680> /xf0/x9f/x9a/x80 ROCKET ++<U0001F681> /xf0/x9f/x9a/x81 HELICOPTER ++<U0001F682> /xf0/x9f/x9a/x82 STEAM LOCOMOTIVE ++<U0001F683> /xf0/x9f/x9a/x83 RAILWAY CAR ++<U0001F684> /xf0/x9f/x9a/x84 HIGH-SPEED TRAIN ++<U0001F685> /xf0/x9f/x9a/x85 HIGH-SPEED TRAIN WITH BULLET NOSE ++<U0001F686> /xf0/x9f/x9a/x86 TRAIN ++<U0001F687> /xf0/x9f/x9a/x87 METRO ++<U0001F688> /xf0/x9f/x9a/x88 LIGHT RAIL ++<U0001F689> /xf0/x9f/x9a/x89 STATION ++<U0001F68A> /xf0/x9f/x9a/x8a TRAM ++<U0001F68B> /xf0/x9f/x9a/x8b TRAM CAR ++<U0001F68C> /xf0/x9f/x9a/x8c BUS ++<U0001F68D> /xf0/x9f/x9a/x8d ONCOMING BUS ++<U0001F68E> /xf0/x9f/x9a/x8e TROLLEYBUS ++<U0001F68F> /xf0/x9f/x9a/x8f BUS STOP ++<U0001F690> /xf0/x9f/x9a/x90 MINIBUS ++<U0001F691> /xf0/x9f/x9a/x91 AMBULANCE ++<U0001F692> /xf0/x9f/x9a/x92 FIRE ENGINE ++<U0001F693> /xf0/x9f/x9a/x93 POLICE CAR ++<U0001F694> /xf0/x9f/x9a/x94 ONCOMING POLICE CAR ++<U0001F695> /xf0/x9f/x9a/x95 TAXI ++<U0001F696> /xf0/x9f/x9a/x96 ONCOMING TAXI ++<U0001F697> /xf0/x9f/x9a/x97 AUTOMOBILE ++<U0001F698> /xf0/x9f/x9a/x98 ONCOMING AUTOMOBILE ++<U0001F699> /xf0/x9f/x9a/x99 RECREATIONAL VEHICLE ++<U0001F69A> /xf0/x9f/x9a/x9a DELIVERY TRUCK ++<U0001F69B> /xf0/x9f/x9a/x9b ARTICULATED LORRY ++<U0001F69C> /xf0/x9f/x9a/x9c TRACTOR ++<U0001F69D> /xf0/x9f/x9a/x9d MONORAIL ++<U0001F69E> /xf0/x9f/x9a/x9e MOUNTAIN RAILWAY ++<U0001F69F> /xf0/x9f/x9a/x9f SUSPENSION RAILWAY ++<U0001F6A0> /xf0/x9f/x9a/xa0 MOUNTAIN CABLEWAY ++<U0001F6A1> /xf0/x9f/x9a/xa1 AERIAL TRAMWAY ++<U0001F6A2> /xf0/x9f/x9a/xa2 SHIP ++<U0001F6A3> /xf0/x9f/x9a/xa3 ROWBOAT ++<U0001F6A4> /xf0/x9f/x9a/xa4 SPEEDBOAT ++<U0001F6A5> /xf0/x9f/x9a/xa5 HORIZONTAL TRAFFIC LIGHT ++<U0001F6A6> /xf0/x9f/x9a/xa6 VERTICAL TRAFFIC LIGHT ++<U0001F6A7> /xf0/x9f/x9a/xa7 CONSTRUCTION SIGN ++<U0001F6A8> /xf0/x9f/x9a/xa8 POLICE CARS REVOLVING LIGHT ++<U0001F6A9> /xf0/x9f/x9a/xa9 TRIANGULAR FLAG ON POST ++<U0001F6AA> /xf0/x9f/x9a/xaa DOOR ++<U0001F6AB> /xf0/x9f/x9a/xab NO ENTRY SIGN ++<U0001F6AC> /xf0/x9f/x9a/xac SMOKING SYMBOL ++<U0001F6AD> /xf0/x9f/x9a/xad NO SMOKING SYMBOL ++<U0001F6AE> /xf0/x9f/x9a/xae PUT LITTER IN ITS PLACE SYMBOL ++<U0001F6AF> /xf0/x9f/x9a/xaf DO NOT LITTER SYMBOL ++<U0001F6B0> /xf0/x9f/x9a/xb0 POTABLE WATER SYMBOL ++<U0001F6B1> /xf0/x9f/x9a/xb1 NON-POTABLE WATER SYMBOL ++<U0001F6B2> /xf0/x9f/x9a/xb2 BICYCLE ++<U0001F6B3> /xf0/x9f/x9a/xb3 NO BICYCLES ++<U0001F6B4> /xf0/x9f/x9a/xb4 BICYCLIST ++<U0001F6B5> /xf0/x9f/x9a/xb5 MOUNTAIN BICYCLIST ++<U0001F6B6> /xf0/x9f/x9a/xb6 PEDESTRIAN ++<U0001F6B7> /xf0/x9f/x9a/xb7 NO PEDESTRIANS ++<U0001F6B8> /xf0/x9f/x9a/xb8 CHILDREN CROSSING ++<U0001F6B9> /xf0/x9f/x9a/xb9 MENS SYMBOL ++<U0001F6BA> /xf0/x9f/x9a/xba WOMENS SYMBOL ++<U0001F6BB> /xf0/x9f/x9a/xbb RESTROOM ++<U0001F6BC> /xf0/x9f/x9a/xbc BABY SYMBOL ++<U0001F6BD> /xf0/x9f/x9a/xbd TOILET ++<U0001F6BE> /xf0/x9f/x9a/xbe WATER CLOSET ++<U0001F6BF> /xf0/x9f/x9a/xbf SHOWER ++<U0001F6C0> /xf0/x9f/x9b/x80 BATH ++<U0001F6C1> /xf0/x9f/x9b/x81 BATHTUB ++<U0001F6C2> /xf0/x9f/x9b/x82 PASSPORT CONTROL ++<U0001F6C3> /xf0/x9f/x9b/x83 CUSTOMS ++<U0001F6C4> /xf0/x9f/x9b/x84 BAGGAGE CLAIM ++<U0001F6C5> /xf0/x9f/x9b/x85 LEFT LUGGAGE ++<U0001F700> /xf0/x9f/x9c/x80 ALCHEMICAL SYMBOL FOR QUINTESSENCE ++<U0001F701> /xf0/x9f/x9c/x81 ALCHEMICAL SYMBOL FOR AIR ++<U0001F702> /xf0/x9f/x9c/x82 ALCHEMICAL SYMBOL FOR FIRE ++<U0001F703> /xf0/x9f/x9c/x83 ALCHEMICAL SYMBOL FOR EARTH ++<U0001F704> /xf0/x9f/x9c/x84 ALCHEMICAL SYMBOL FOR WATER ++<U0001F705> /xf0/x9f/x9c/x85 ALCHEMICAL SYMBOL FOR AQUAFORTIS ++<U0001F706> /xf0/x9f/x9c/x86 ALCHEMICAL SYMBOL FOR AQUA REGIA ++<U0001F707> /xf0/x9f/x9c/x87 ALCHEMICAL SYMBOL FOR AQUA REGIA-2 ++<U0001F708> /xf0/x9f/x9c/x88 ALCHEMICAL SYMBOL FOR AQUA VITAE ++<U0001F709> /xf0/x9f/x9c/x89 ALCHEMICAL SYMBOL FOR AQUA VITAE-2 ++<U0001F70A> /xf0/x9f/x9c/x8a ALCHEMICAL SYMBOL FOR VINEGAR ++<U0001F70B> /xf0/x9f/x9c/x8b ALCHEMICAL SYMBOL FOR VINEGAR-2 ++<U0001F70C> /xf0/x9f/x9c/x8c ALCHEMICAL SYMBOL FOR VINEGAR-3 ++<U0001F70D> /xf0/x9f/x9c/x8d ALCHEMICAL SYMBOL FOR SULFUR ++<U0001F70E> /xf0/x9f/x9c/x8e ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR ++<U0001F70F> /xf0/x9f/x9c/x8f ALCHEMICAL SYMBOL FOR BLACK SULFUR ++<U0001F710> /xf0/x9f/x9c/x90 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE ++<U0001F711> /xf0/x9f/x9c/x91 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2 ++<U0001F712> /xf0/x9f/x9c/x92 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3 ++<U0001F713> /xf0/x9f/x9c/x93 ALCHEMICAL SYMBOL FOR CINNABAR ++<U0001F714> /xf0/x9f/x9c/x94 ALCHEMICAL SYMBOL FOR SALT ++<U0001F715> /xf0/x9f/x9c/x95 ALCHEMICAL SYMBOL FOR NITRE ++<U0001F716> /xf0/x9f/x9c/x96 ALCHEMICAL SYMBOL FOR VITRIOL ++<U0001F717> /xf0/x9f/x9c/x97 ALCHEMICAL SYMBOL FOR VITRIOL-2 ++<U0001F718> /xf0/x9f/x9c/x98 ALCHEMICAL SYMBOL FOR ROCK SALT ++<U0001F719> /xf0/x9f/x9c/x99 ALCHEMICAL SYMBOL FOR ROCK SALT-2 ++<U0001F71A> /xf0/x9f/x9c/x9a ALCHEMICAL SYMBOL FOR GOLD ++<U0001F71B> /xf0/x9f/x9c/x9b ALCHEMICAL SYMBOL FOR SILVER ++<U0001F71C> /xf0/x9f/x9c/x9c ALCHEMICAL SYMBOL FOR IRON ORE ++<U0001F71D> /xf0/x9f/x9c/x9d ALCHEMICAL SYMBOL FOR IRON ORE-2 ++<U0001F71E> /xf0/x9f/x9c/x9e ALCHEMICAL SYMBOL FOR CROCUS OF IRON ++<U0001F71F> /xf0/x9f/x9c/x9f ALCHEMICAL SYMBOL FOR REGULUS OF IRON ++<U0001F720> /xf0/x9f/x9c/xa0 ALCHEMICAL SYMBOL FOR COPPER ORE ++<U0001F721> /xf0/x9f/x9c/xa1 ALCHEMICAL SYMBOL FOR IRON-COPPER ORE ++<U0001F722> /xf0/x9f/x9c/xa2 ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER ++<U0001F723> /xf0/x9f/x9c/xa3 ALCHEMICAL SYMBOL FOR CROCUS OF COPPER ++<U0001F724> /xf0/x9f/x9c/xa4 ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2 ++<U0001F725> /xf0/x9f/x9c/xa5 ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE ++<U0001F726> /xf0/x9f/x9c/xa6 ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE ++<U0001F727> /xf0/x9f/x9c/xa7 ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER ++<U0001F728> /xf0/x9f/x9c/xa8 ALCHEMICAL SYMBOL FOR VERDIGRIS ++<U0001F729> /xf0/x9f/x9c/xa9 ALCHEMICAL SYMBOL FOR TIN ORE ++<U0001F72A> /xf0/x9f/x9c/xaa ALCHEMICAL SYMBOL FOR LEAD ORE ++<U0001F72B> /xf0/x9f/x9c/xab ALCHEMICAL SYMBOL FOR ANTIMONY ORE ++<U0001F72C> /xf0/x9f/x9c/xac ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY ++<U0001F72D> /xf0/x9f/x9c/xad ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY ++<U0001F72E> /xf0/x9f/x9c/xae ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY ++<U0001F72F> /xf0/x9f/x9c/xaf ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY ++<U0001F730> /xf0/x9f/x9c/xb0 ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY ++<U0001F731> /xf0/x9f/x9c/xb1 ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2 ++<U0001F732> /xf0/x9f/x9c/xb2 ALCHEMICAL SYMBOL FOR REGULUS ++<U0001F733> /xf0/x9f/x9c/xb3 ALCHEMICAL SYMBOL FOR REGULUS-2 ++<U0001F734> /xf0/x9f/x9c/xb4 ALCHEMICAL SYMBOL FOR REGULUS-3 ++<U0001F735> /xf0/x9f/x9c/xb5 ALCHEMICAL SYMBOL FOR REGULUS-4 ++<U0001F736> /xf0/x9f/x9c/xb6 ALCHEMICAL SYMBOL FOR ALKALI ++<U0001F737> /xf0/x9f/x9c/xb7 ALCHEMICAL SYMBOL FOR ALKALI-2 ++<U0001F738> /xf0/x9f/x9c/xb8 ALCHEMICAL SYMBOL FOR MARCASITE ++<U0001F739> /xf0/x9f/x9c/xb9 ALCHEMICAL SYMBOL FOR SAL-AMMONIAC ++<U0001F73A> /xf0/x9f/x9c/xba ALCHEMICAL SYMBOL FOR ARSENIC ++<U0001F73B> /xf0/x9f/x9c/xbb ALCHEMICAL SYMBOL FOR REALGAR ++<U0001F73C> /xf0/x9f/x9c/xbc ALCHEMICAL SYMBOL FOR REALGAR-2 ++<U0001F73D> /xf0/x9f/x9c/xbd ALCHEMICAL SYMBOL FOR AURIPIGMENT ++<U0001F73E> /xf0/x9f/x9c/xbe ALCHEMICAL SYMBOL FOR BISMUTH ORE ++<U0001F73F> /xf0/x9f/x9c/xbf ALCHEMICAL SYMBOL FOR TARTAR ++<U0001F740> /xf0/x9f/x9d/x80 ALCHEMICAL SYMBOL FOR TARTAR-2 ++<U0001F741> /xf0/x9f/x9d/x81 ALCHEMICAL SYMBOL FOR QUICK LIME ++<U0001F742> /xf0/x9f/x9d/x82 ALCHEMICAL SYMBOL FOR BORAX ++<U0001F743> /xf0/x9f/x9d/x83 ALCHEMICAL SYMBOL FOR BORAX-2 ++<U0001F744> /xf0/x9f/x9d/x84 ALCHEMICAL SYMBOL FOR BORAX-3 ++<U0001F745> /xf0/x9f/x9d/x85 ALCHEMICAL SYMBOL FOR ALUM ++<U0001F746> /xf0/x9f/x9d/x86 ALCHEMICAL SYMBOL FOR OIL ++<U0001F747> /xf0/x9f/x9d/x87 ALCHEMICAL SYMBOL FOR SPIRIT ++<U0001F748> /xf0/x9f/x9d/x88 ALCHEMICAL SYMBOL FOR TINCTURE ++<U0001F749> /xf0/x9f/x9d/x89 ALCHEMICAL SYMBOL FOR GUM ++<U0001F74A> /xf0/x9f/x9d/x8a ALCHEMICAL SYMBOL FOR WAX ++<U0001F74B> /xf0/x9f/x9d/x8b ALCHEMICAL SYMBOL FOR POWDER ++<U0001F74C> /xf0/x9f/x9d/x8c ALCHEMICAL SYMBOL FOR CALX ++<U0001F737> /xf0/x9f/x9c/xb7 ALCHEMICAL SYMBOL FOR ALKALI-2 ++<U0001F738> /xf0/x9f/x9c/xb8 ALCHEMICAL SYMBOL FOR MARCASITE ++<U0001F739> /xf0/x9f/x9c/xb9 ALCHEMICAL SYMBOL FOR SAL-AMMONIAC ++<U0001F73A> /xf0/x9f/x9c/xba ALCHEMICAL SYMBOL FOR ARSENIC ++<U0001F73B> /xf0/x9f/x9c/xbb ALCHEMICAL SYMBOL FOR REALGAR ++<U0001F73C> /xf0/x9f/x9c/xbc ALCHEMICAL SYMBOL FOR REALGAR-2 ++<U0001F73D> /xf0/x9f/x9c/xbd ALCHEMICAL SYMBOL FOR AURIPIGMENT ++<U0001F73E> /xf0/x9f/x9c/xbe ALCHEMICAL SYMBOL FOR BISMUTH ORE ++<U0001F73F> /xf0/x9f/x9c/xbf ALCHEMICAL SYMBOL FOR TARTAR ++<U0001F740> /xf0/x9f/x9d/x80 ALCHEMICAL SYMBOL FOR TARTAR-2 ++<U0001F741> /xf0/x9f/x9d/x81 ALCHEMICAL SYMBOL FOR QUICK LIME ++<U0001F742> /xf0/x9f/x9d/x82 ALCHEMICAL SYMBOL FOR BORAX ++<U0001F743> /xf0/x9f/x9d/x83 ALCHEMICAL SYMBOL FOR BORAX-2 ++<U0001F744> /xf0/x9f/x9d/x84 ALCHEMICAL SYMBOL FOR BORAX-3 ++<U0001F745> /xf0/x9f/x9d/x85 ALCHEMICAL SYMBOL FOR ALUM ++<U0001F746> /xf0/x9f/x9d/x86 ALCHEMICAL SYMBOL FOR OIL ++<U0001F747> /xf0/x9f/x9d/x87 ALCHEMICAL SYMBOL FOR SPIRIT ++<U0001F748> /xf0/x9f/x9d/x88 ALCHEMICAL SYMBOL FOR TINCTURE ++<U0001F749> /xf0/x9f/x9d/x89 ALCHEMICAL SYMBOL FOR GUM ++<U0001F74A> /xf0/x9f/x9d/x8a ALCHEMICAL SYMBOL FOR WAX ++<U0001F74B> /xf0/x9f/x9d/x8b ALCHEMICAL SYMBOL FOR POWDER ++<U0001F74C> /xf0/x9f/x9d/x8c ALCHEMICAL SYMBOL FOR CALX ++<U0001F74D> /xf0/x9f/x9d/x8d ALCHEMICAL SYMBOL FOR TUTTY ++<U0001F74E> /xf0/x9f/x9d/x8e ALCHEMICAL SYMBOL FOR CAPUT MORTUUM ++<U0001F74F> /xf0/x9f/x9d/x8f ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE ++<U0001F750> /xf0/x9f/x9d/x90 ALCHEMICAL SYMBOL FOR CADUCEUS ++<U0001F751> /xf0/x9f/x9d/x91 ALCHEMICAL SYMBOL FOR TRIDENT ++<U0001F752> /xf0/x9f/x9d/x92 ALCHEMICAL SYMBOL FOR STARRED TRIDENT ++<U0001F753> /xf0/x9f/x9d/x93 ALCHEMICAL SYMBOL FOR LODESTONE ++<U0001F754> /xf0/x9f/x9d/x94 ALCHEMICAL SYMBOL FOR SOAP ++<U0001F755> /xf0/x9f/x9d/x95 ALCHEMICAL SYMBOL FOR URINE ++<U0001F756> /xf0/x9f/x9d/x96 ALCHEMICAL SYMBOL FOR HORSE DUNG ++<U0001F757> /xf0/x9f/x9d/x97 ALCHEMICAL SYMBOL FOR ASHES ++<U0001F758> /xf0/x9f/x9d/x98 ALCHEMICAL SYMBOL FOR POT ASHES ++<U0001F759> /xf0/x9f/x9d/x99 ALCHEMICAL SYMBOL FOR BRICK ++<U0001F75A> /xf0/x9f/x9d/x9a ALCHEMICAL SYMBOL FOR POWDERED BRICK ++<U0001F75B> /xf0/x9f/x9d/x9b ALCHEMICAL SYMBOL FOR AMALGAM ++<U0001F75C> /xf0/x9f/x9d/x9c ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM ++<U0001F75D> /xf0/x9f/x9d/x9d ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2 ++<U0001F75E> /xf0/x9f/x9d/x9e ALCHEMICAL SYMBOL FOR SUBLIMATION ++<U0001F75F> /xf0/x9f/x9d/x9f ALCHEMICAL SYMBOL FOR PRECIPITATE ++<U0001F760> /xf0/x9f/x9d/xa0 ALCHEMICAL SYMBOL FOR DISTILL ++<U0001F761> /xf0/x9f/x9d/xa1 ALCHEMICAL SYMBOL FOR DISSOLVE ++<U0001F762> /xf0/x9f/x9d/xa2 ALCHEMICAL SYMBOL FOR DISSOLVE-2 ++<U0001F763> /xf0/x9f/x9d/xa3 ALCHEMICAL SYMBOL FOR PURIFY ++<U0001F764> /xf0/x9f/x9d/xa4 ALCHEMICAL SYMBOL FOR PUTREFACTION ++<U0001F765> /xf0/x9f/x9d/xa5 ALCHEMICAL SYMBOL FOR CRUCIBLE ++<U0001F766> /xf0/x9f/x9d/xa6 ALCHEMICAL SYMBOL FOR CRUCIBLE-2 ++<U0001F767> /xf0/x9f/x9d/xa7 ALCHEMICAL SYMBOL FOR CRUCIBLE-3 ++<U0001F768> /xf0/x9f/x9d/xa8 ALCHEMICAL SYMBOL FOR CRUCIBLE-4 ++<U0001F769> /xf0/x9f/x9d/xa9 ALCHEMICAL SYMBOL FOR CRUCIBLE-5 ++<U0001F76A> /xf0/x9f/x9d/xaa ALCHEMICAL SYMBOL FOR ALEMBIC ++<U0001F76B> /xf0/x9f/x9d/xab ALCHEMICAL SYMBOL FOR BATH OF MARY ++<U0001F76C> /xf0/x9f/x9d/xac ALCHEMICAL SYMBOL FOR BATH OF VAPOURS ++<U0001F76D> /xf0/x9f/x9d/xad ALCHEMICAL SYMBOL FOR RETORT ++<U0001F76E> /xf0/x9f/x9d/xae ALCHEMICAL SYMBOL FOR HOUR ++<U0001F76F> /xf0/x9f/x9d/xaf ALCHEMICAL SYMBOL FOR NIGHT ++<U0001F770> /xf0/x9f/x9d/xb0 ALCHEMICAL SYMBOL FOR DAY-NIGHT ++<U0001F771> /xf0/x9f/x9d/xb1 ALCHEMICAL SYMBOL FOR MONTH ++<U0001F772> /xf0/x9f/x9d/xb2 ALCHEMICAL SYMBOL FOR HALF DRAM ++<U0001F773> /xf0/x9f/x9d/xb3 ALCHEMICAL SYMBOL FOR HALF OUNCE + <U00020000>..<U0002003F> /xf0/xa0/x80/x80 <CJK> + <U00020040>..<U0002007F> /xf0/xa0/x81/x80 <CJK> + <U00020080>..<U000200BF> /xf0/xa0/x82/x80 <CJK> +Index: glibc-2.12-2-gc4ccff1/localedata/locales/ar_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ar_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/ar_IN +@@ -52,7 +52,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U20A8>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/as_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/as_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/as_IN +@@ -51,7 +51,7 @@ END LC_NUMERIC + %%%%%%%%%%%%% + LC_MONETARY + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U099F><U0995><U09BE>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/bn_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/bn_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/bn_IN +@@ -53,7 +53,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U099F><U09BE><U0995><U09BE>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 2;3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/en_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/en_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/en_IN +@@ -52,7 +52,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U20A8>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/gu_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/gu_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/gu_IN +@@ -71,7 +71,7 @@ LC_MONETARY + % for IBM Class for Unicode/Java + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U0AB0><U0AC1>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/hi_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/hi_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/hi_IN +@@ -69,7 +69,7 @@ LC_MONETARY + % for IBM Class for Unicode/Java + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U0930><U0942>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/kn_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/kn_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/kn_IN +@@ -71,8 +71,7 @@ LC_MONETARY + % for IBM Class for Unicode/Java + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-% *** Change this to reflect Kannada , in Dev it is RA with VS U attached +-currency_symbol "<U0CB0><U0CC2>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/kok_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/kok_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/kok_IN +@@ -49,7 +49,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U0930><U0941>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/ks_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ks_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/ks_IN +@@ -57,7 +57,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U20A8>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/ml_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ml_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/ml_IN +@@ -69,7 +69,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U0D30><U0D42>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/mr_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/mr_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/mr_IN +@@ -70,7 +70,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U0930><U0941>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/or_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/or_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/or_IN +@@ -607,7 +607,7 @@ END LC_NUMERIC + %%%%%%%%%%%%% + LC_MONETARY + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U003D><U0030><U0023><U0052><U0073><U002E><U007C><U0031><U0023><U0052><U0065><U002E><U007C><U0031><U003C><U0052><U0073><U002E>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/pa_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/pa_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/pa_IN +@@ -66,7 +66,7 @@ END LC_COLLATE + LC_MONETARY + % This is the POSIX Locale definition the LC_MONETARY category. + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U0A30><U0A41><U0A2A><U0A0F>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/sa_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/sa_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/sa_IN +@@ -52,7 +52,7 @@ LC_MONETARY + % for IBM Class for Unicode/Java + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U0930><U0942>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/sd_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/sd_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/sd_IN +@@ -57,7 +57,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U20A8>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/ta_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ta_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/ta_IN +@@ -74,7 +74,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U20A8>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/te_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/te_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/te_IN +@@ -73,7 +73,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "<U0049><U004E><U0052><U0020>" +-currency_symbol "<U0C30><U0C42><U002E>" ++currency_symbol "<U20B9>" + mon_decimal_point "<U002E>" + mon_thousands_sep "<U002C>" + mon_grouping 3;2 diff --git a/src/patches/glibc/glibc-rh694386.patch b/src/patches/glibc/glibc-rh694386.patch new file mode 100644 index 0000000..3932eb8 --- /dev/null +++ b/src/patches/glibc/glibc-rh694386.patch @@ -0,0 +1,86 @@ +2011-03-28 Andreas Schwab schwab@linux-m68k.org + + * sysdeps/powerpc/powerpc32/power4/strncmp.S: Don't read past + differing bytes. + * sysdeps/powerpc/powerpc64/power4/strncmp.S: Likewise. + +diff --git a/sysdeps/powerpc/powerpc32/power4/strncmp.S b/sysdeps/powerpc/powerpc32/power4/strncmp.S +index fc0835e..f5d47af 100644 +--- a/sysdeps/powerpc/powerpc32/power4/strncmp.S ++++ b/sysdeps/powerpc/powerpc32/power4/strncmp.S +@@ -139,30 +139,31 @@ L(u1): + bdz L(u4) + cmpw rWORD1, rWORD2 + beq- cr1, L(u4) ++ bne- L(u4) + lbzu rWORD3, 1(rSTR1) + lbzu rWORD4, 1(rSTR2) +- bne- L(u4) + cmpwi cr1, rWORD3, 0 + bdz L(u3) + cmpw rWORD3, rWORD4 + beq- cr1, L(u3) ++ bne- L(u3) + lbzu rWORD1, 1(rSTR1) + lbzu rWORD2, 1(rSTR2) +- bne- L(u3) + cmpwi cr1, rWORD1, 0 + bdz L(u4) + cmpw rWORD1, rWORD2 + beq- cr1, L(u4) ++ bne- L(u4) + lbzu rWORD3, 1(rSTR1) + lbzu rWORD4, 1(rSTR2) +- bne- L(u4) + cmpwi cr1, rWORD3, 0 + bdz L(u3) + cmpw rWORD3, rWORD4 + beq- cr1, L(u3) ++ bne- L(u3) + lbzu rWORD1, 1(rSTR1) + lbzu rWORD2, 1(rSTR2) +- beq+ L(u1) ++ b L(u1) + + L(u3): sub rRTN, rWORD3, rWORD4 + blr +diff --git a/sysdeps/powerpc/powerpc64/power4/strncmp.S b/sysdeps/powerpc/powerpc64/power4/strncmp.S +index 7a1665d..94ae85b 100644 +--- a/sysdeps/powerpc/powerpc64/power4/strncmp.S ++++ b/sysdeps/powerpc/powerpc64/power4/strncmp.S +@@ -143,30 +143,31 @@ L(u1): + bdz L(u4) + cmpd rWORD1, rWORD2 + beq- cr1, L(u4) ++ bne- L(u4) + lbzu rWORD3, 1(rSTR1) + lbzu rWORD4, 1(rSTR2) +- bne- L(u4) + cmpdi cr1, rWORD3, 0 + bdz L(u3) + cmpd rWORD3, rWORD4 + beq- cr1, L(u3) ++ bne- L(u3) + lbzu rWORD1, 1(rSTR1) + lbzu rWORD2, 1(rSTR2) +- bne- L(u3) + cmpdi cr1, rWORD1, 0 + bdz L(u4) + cmpd rWORD1, rWORD2 + beq- cr1, L(u4) ++ bne- L(u4) + lbzu rWORD3, 1(rSTR1) + lbzu rWORD4, 1(rSTR2) +- bne- L(u4) + cmpdi cr1, rWORD3, 0 + bdz L(u3) + cmpd rWORD3, rWORD4 + beq- cr1, L(u3) ++ bne- L(u3) + lbzu rWORD1, 1(rSTR1) + lbzu rWORD2, 1(rSTR2) +- beq+ L(u1) ++ b L(u1) + + L(u3): sub rRTN, rWORD3, rWORD4 + blr diff --git a/src/patches/glibc/glibc-rh695595.patch b/src/patches/glibc/glibc-rh695595.patch new file mode 100644 index 0000000..0e6c72b --- /dev/null +++ b/src/patches/glibc/glibc-rh695595.patch @@ -0,0 +1,17 @@ +2010-11-11 H.J. Lu hongjiu.lu@intel.com + + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): + Support Intel processor model 6 and model 0x2c. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +@@ -81,6 +81,7 @@ __init_cpu_features (void) + case 0x1e: + case 0x1f: + case 0x25: ++ case 0x2c: + case 0x2e: + case 0x2f: + /* Rep string instructions are fast on Intel Core i3, i5 diff --git a/src/patches/glibc/glibc-rh695963.patch b/src/patches/glibc/glibc-rh695963.patch new file mode 100644 index 0000000..e8053dc --- /dev/null +++ b/src/patches/glibc/glibc-rh695963.patch @@ -0,0 +1,1284 @@ +2010-08-27 Ulrich Drepper drepper@redhat.com + + * sysdeps/x86_64/multiarch/strlen-no-bsf.S: Move to .text.slow section. + + * sysdeps/x86_64/strlen.S: Minimal code improvement. + +2010-08-26 H.J. Lu hongjiu.lu@intel.com + + * sysdeps/x86_64/strlen.S: Unroll the loop. + * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add + strlen-sse2 strlen-sse2-bsf. + * sysdeps/x86_64/multiarch/strlen.S ((strlen): Return + __strlen_no_bsf if bit_Slow_BSF is set. + (__strlen_sse42): Removed. + * sysdeps/x86_64/multiarch/strlen-no-bsf.S: New file. + * sysdeps/x86_64/multiarch/strlen-sse4.S: New file. + +2010-08-25 H.J. Lu hongjiu.lu@intel.com + + * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add + strlen-sse2 strlen-sse2-bsf. + * sysdeps/i386/i686/multiarch/strlen.S (strlen): Return + __strlen_sse2_bsf if bit_Slow_BSF is unset. + (__strlen_sse2): Removed. + * sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S: New file. + * sysdeps/i386/i686/multiarch/strlen-sse2.S: New file. + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): Set + bit_Slow_BSF for Atom. + * sysdeps/x86_64/multiarch/init-arch.h (bit_Slow_BSF): Define. + (index_Slow_BSF): Define. + (HAS_SLOW_BSF): Define. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile +@@ -9,7 +9,8 @@ sysdep_routines += bzero-sse2 memset-sse + memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \ + memset-sse2-rep bzero-sse2-rep strcmp-ssse3 \ + strcmp-sse4 strncmp-c strncmp-ssse3 strncmp-sse4 \ +- memcmp-ssse3 memcmp-sse4 strcasestr-nonascii ++ memcmp-ssse3 memcmp-sse4 strcasestr-nonascii \ ++ strlen-sse2 strlen-sse2-bsf + ifeq (yes,$(config-cflags-sse4)) + sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c + CFLAGS-strcspn-c.c += -msse4 +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S +@@ -0,0 +1,127 @@ ++/* strlen with SSE2 and BSF ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ Contributed by Intel Corporation. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if defined SHARED && !defined NOT_IN_libc ++ ++#include <sysdep.h> ++#include "asm-syntax.h" ++ ++#define CFI_PUSH(REG) \ ++ cfi_adjust_cfa_offset (4); \ ++ cfi_rel_offset (REG, 0) ++ ++#define CFI_POP(REG) \ ++ cfi_adjust_cfa_offset (-4); \ ++ cfi_restore (REG) ++ ++#define PUSH(REG) pushl REG; CFI_PUSH (REG) ++#define POP(REG) popl REG; CFI_POP (REG) ++#define PARMS 4 + 8 /* Preserve ESI and EDI. */ ++#define STR PARMS ++#define ENTRANCE PUSH (%esi); PUSH (%edi); cfi_remember_state ++#define RETURN POP (%edi); POP (%esi); ret; \ ++ cfi_restore_state; cfi_remember_state ++ ++ .text ++ENTRY ( __strlen_sse2_bsf) ++ ENTRANCE ++ mov STR(%esp), %edi ++ xor %eax, %eax ++ mov %edi, %ecx ++ and $0x3f, %ecx ++ pxor %xmm0, %xmm0 ++ cmp $0x30, %ecx ++ ja L(next) ++ movdqu (%edi), %xmm1 ++ pcmpeqb %xmm1, %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ jnz L(exit_less16) ++ mov %edi, %eax ++ and $-16, %eax ++ jmp L(align16_start) ++L(next): ++ ++ mov %edi, %eax ++ and $-16, %eax ++ pcmpeqb (%eax), %xmm0 ++ mov $-1, %esi ++ sub %eax, %ecx ++ shl %cl, %esi ++ pmovmskb %xmm0, %edx ++ and %esi, %edx ++ jnz L(exit) ++L(align16_start): ++ pxor %xmm0, %xmm0 ++ pxor %xmm1, %xmm1 ++ pxor %xmm2, %xmm2 ++ pxor %xmm3, %xmm3 ++ .p2align 4 ++L(align16_loop): ++ pcmpeqb 16(%eax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ jnz L(exit16) ++ ++ pcmpeqb 32(%eax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ jnz L(exit32) ++ ++ pcmpeqb 48(%eax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ jnz L(exit48) ++ ++ pcmpeqb 64(%eax), %xmm3 ++ pmovmskb %xmm3, %edx ++ lea 64(%eax), %eax ++ test %edx, %edx ++ jz L(align16_loop) ++L(exit): ++ sub %edi, %eax ++L(exit_less16): ++ bsf %edx, %edx ++ add %edx, %eax ++ RETURN ++L(exit16): ++ sub %edi, %eax ++ bsf %edx, %edx ++ add %edx, %eax ++ add $16, %eax ++ RETURN ++L(exit32): ++ sub %edi, %eax ++ bsf %edx, %edx ++ add %edx, %eax ++ add $32, %eax ++ RETURN ++L(exit48): ++ sub %edi, %eax ++ bsf %edx, %edx ++ add %edx, %eax ++ add $48, %eax ++ POP (%edi) ++ POP (%esi) ++ ret ++ ++END ( __strlen_sse2_bsf) ++ ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2.S +@@ -0,0 +1,347 @@ ++/* strlen with SSE2 ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ Contributed by Intel Corporation. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if defined SHARED && !defined NOT_IN_libc ++ ++#include <sysdep.h> ++#include "asm-syntax.h" ++ ++#define CFI_PUSH(REG) \ ++ cfi_adjust_cfa_offset (4); \ ++ cfi_rel_offset (REG, 0) ++ ++#define CFI_POP(REG) \ ++ cfi_adjust_cfa_offset (-4); \ ++ cfi_restore (REG) ++ ++#define PUSH(REG) pushl REG; CFI_PUSH (REG) ++#define POP(REG) popl REG; CFI_POP (REG) ++#define PARMS 4 ++#define STR PARMS ++#define ENTRANCE ++#define RETURN ret ++ ++ .text ++ENTRY (__strlen_sse2) ++ ENTRANCE ++ mov STR(%esp), %edx ++ xor %eax, %eax ++ cmpb $0, (%edx) ++ jz L(exit_tail0) ++ cmpb $0, 1(%edx) ++ jz L(exit_tail1) ++ cmpb $0, 2(%edx) ++ jz L(exit_tail2) ++ cmpb $0, 3(%edx) ++ jz L(exit_tail3) ++ cmpb $0, 4(%edx) ++ jz L(exit_tail4) ++ cmpb $0, 5(%edx) ++ jz L(exit_tail5) ++ cmpb $0, 6(%edx) ++ jz L(exit_tail6) ++ cmpb $0, 7(%edx) ++ jz L(exit_tail7) ++ cmpb $0, 8(%edx) ++ jz L(exit_tail8) ++ cmpb $0, 9(%edx) ++ jz L(exit_tail9) ++ cmpb $0, 10(%edx) ++ jz L(exit_tail10) ++ cmpb $0, 11(%edx) ++ jz L(exit_tail11) ++ cmpb $0, 12(%edx) ++ jz L(exit_tail12) ++ cmpb $0, 13(%edx) ++ jz L(exit_tail13) ++ cmpb $0, 14(%edx) ++ jz L(exit_tail14) ++ cmpb $0, 15(%edx) ++ jz L(exit_tail15) ++ pxor %xmm0, %xmm0 ++ mov %edx, %eax ++ mov %edx, %ecx ++ and $-16, %eax ++ add $16, %ecx ++ add $16, %eax ++ ++ pcmpeqb (%eax), %xmm0 ++ pmovmskb %xmm0, %edx ++ pxor %xmm1, %xmm1 ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm1 ++ pmovmskb %xmm1, %edx ++ pxor %xmm2, %xmm2 ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ ++ pcmpeqb (%eax), %xmm2 ++ pmovmskb %xmm2, %edx ++ pxor %xmm3, %xmm3 ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ and $-0x40, %eax ++ PUSH (%esi) ++ PUSH (%edi) ++ PUSH (%ebx) ++ PUSH (%ebp) ++ xor %ebp, %ebp ++L(aligned_64): ++ pcmpeqb (%eax), %xmm0 ++ pcmpeqb 16(%eax), %xmm1 ++ pcmpeqb 32(%eax), %xmm2 ++ pcmpeqb 48(%eax), %xmm3 ++ pmovmskb %xmm0, %edx ++ pmovmskb %xmm1, %esi ++ pmovmskb %xmm2, %edi ++ pmovmskb %xmm3, %ebx ++ or %edx, %ebp ++ or %esi, %ebp ++ or %edi, %ebp ++ or %ebx, %ebp ++ lea 64(%eax), %eax ++ jz L(aligned_64) ++L(48leave): ++ test %edx, %edx ++ jnz L(aligned_64_exit_16) ++ test %esi, %esi ++ jnz L(aligned_64_exit_32) ++ test %edi, %edi ++ jnz L(aligned_64_exit_48) ++ mov %ebx, %edx ++ lea (%eax), %eax ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_48): ++ lea -16(%eax), %eax ++ mov %edi, %edx ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_32): ++ lea -32(%eax), %eax ++ mov %esi, %edx ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_16): ++ lea -48(%eax), %eax ++L(aligned_64_exit): ++ POP (%ebp) ++ POP (%ebx) ++ POP (%edi) ++ POP (%esi) ++L(exit): ++ sub %ecx, %eax ++ test %dl, %dl ++ jz L(exit_high) ++ test $0x01, %dl ++ jnz L(exit_tail0) ++ ++ test $0x02, %dl ++ jnz L(exit_tail1) ++ ++ test $0x04, %dl ++ jnz L(exit_tail2) ++ ++ test $0x08, %dl ++ jnz L(exit_tail3) ++ ++ test $0x10, %dl ++ jnz L(exit_tail4) ++ ++ test $0x20, %dl ++ jnz L(exit_tail5) ++ ++ test $0x40, %dl ++ jnz L(exit_tail6) ++ add $7, %eax ++L(exit_tail0): ++ RETURN ++ ++L(exit_high): ++ add $8, %eax ++ test $0x01, %dh ++ jnz L(exit_tail0) ++ ++ test $0x02, %dh ++ jnz L(exit_tail1) ++ ++ test $0x04, %dh ++ jnz L(exit_tail2) ++ ++ test $0x08, %dh ++ jnz L(exit_tail3) ++ ++ test $0x10, %dh ++ jnz L(exit_tail4) ++ ++ test $0x20, %dh ++ jnz L(exit_tail5) ++ ++ test $0x40, %dh ++ jnz L(exit_tail6) ++ add $7, %eax ++ RETURN ++ ++ .p2align 4 ++L(exit_tail1): ++ add $1, %eax ++ RETURN ++ ++L(exit_tail2): ++ add $2, %eax ++ RETURN ++ ++L(exit_tail3): ++ add $3, %eax ++ RETURN ++ ++L(exit_tail4): ++ add $4, %eax ++ RETURN ++ ++L(exit_tail5): ++ add $5, %eax ++ RETURN ++ ++L(exit_tail6): ++ add $6, %eax ++ RETURN ++ ++L(exit_tail7): ++ add $7, %eax ++ RETURN ++ ++L(exit_tail8): ++ add $8, %eax ++ RETURN ++ ++L(exit_tail9): ++ add $9, %eax ++ RETURN ++ ++L(exit_tail10): ++ add $10, %eax ++ RETURN ++ ++L(exit_tail11): ++ add $11, %eax ++ RETURN ++ ++L(exit_tail12): ++ add $12, %eax ++ RETURN ++ ++L(exit_tail13): ++ add $13, %eax ++ RETURN ++ ++L(exit_tail14): ++ add $14, %eax ++ RETURN ++ ++L(exit_tail15): ++ add $15, %eax ++ ret ++ ++END (__strlen_sse2) ++ ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/strlen.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen.S +@@ -48,6 +48,9 @@ ENTRY(strlen) + 1: leal __strlen_ia32@GOTOFF(%ebx), %eax + testl $bit_SSE2, CPUID_OFFSET+index_SSE2+__cpu_features@GOTOFF(%ebx) + jz 2f ++ leal __strlen_sse2_bsf@GOTOFF(%ebx), %eax ++ testl $bit_Slow_BSF, FEATURE_OFFSET+index_Slow_BSF+__cpu_features@GOTOFF(%ebx) ++ jz 2f + leal __strlen_sse2@GOTOFF(%ebx), %eax + 2: popl %ebx + cfi_adjust_cfa_offset (-4); +@@ -55,84 +58,6 @@ ENTRY(strlen) + ret + END(strlen) + +-#define CFI_POP(REG) \ +- cfi_adjust_cfa_offset (-4); \ +- cfi_restore (REG) +- +-#define RETURN popl %esi; CFI_POP (esi); ret +- +- .text +-ENTRY (__strlen_sse2) +-/* +- * This implementation uses SSE instructions to compare up to 16 bytes +- * at a time looking for the end of string (null char). +- */ +- pushl %esi +- cfi_adjust_cfa_offset (4) +- cfi_rel_offset (%esi, 0) +- mov 8(%esp), %eax +- mov %eax, %ecx +- pxor %xmm0, %xmm0 /* 16 null chars */ +- mov %eax, %esi +- and $15, %ecx +- jz 1f /* string is 16 byte aligned */ +- +- /* +- * Unaligned case. Round down to 16-byte boundary before comparing +- * 16 bytes for a null char. The code then compensates for any extra chars +- * preceding the start of the string. +- */ +- and $-16, %esi +- +- pcmpeqb (%esi), %xmm0 +- lea 16(%eax), %esi +- pmovmskb %xmm0, %edx +- +- shr %cl, %edx /* Compensate for bytes preceding the string */ +- test %edx, %edx +- jnz 2f +- sub %ecx, %esi /* no null, adjust to next 16-byte boundary */ +- pxor %xmm0, %xmm0 /* clear xmm0, may have been changed... */ +- +- .p2align 4 +-1: /* 16 byte aligned */ +- pcmpeqb (%esi), %xmm0 /* look for null bytes */ +- pmovmskb %xmm0, %edx /* move each byte mask of %xmm0 to edx */ +- +- add $16, %esi /* prepare to search next 16 bytes */ +- test %edx, %edx /* if no null byte, %edx must be 0 */ +- jnz 2f /* found a null */ +- +- pcmpeqb (%esi), %xmm0 +- pmovmskb %xmm0, %edx +- add $16, %esi +- test %edx, %edx +- jnz 2f +- +- pcmpeqb (%esi), %xmm0 +- pmovmskb %xmm0, %edx +- add $16, %esi +- test %edx, %edx +- jnz 2f +- +- pcmpeqb (%esi), %xmm0 +- pmovmskb %xmm0, %edx +- add $16, %esi +- test %edx, %edx +- jz 1b +- +-2: +- neg %eax +- lea -16(%eax, %esi), %eax /* calculate exact offset */ +- bsf %edx, %ecx /* Least significant 1 bit is index of null */ +- add %ecx, %eax +- popl %esi +- cfi_adjust_cfa_offset (-4) +- cfi_restore (%esi) +- ret +- +-END (__strlen_sse2) +- + # undef ENTRY + # define ENTRY(name) \ + .type __strlen_ia32, @function; \ +--- a/sysdeps/x86_64/multiarch/Makefile 2012-03-01 10:43:30.060487726 -0700 ++++ b/sysdeps/x86_64/multiarch/Makefile 2012-03-01 10:45:57.894692115 -0700 +@@ -7,7 +7,7 @@ ifeq ($(subdir),string) + sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \ + strend-sse4 memcmp-sse4 \ + strcasestr-nonascii strcasecmp_l-ssse3 \ +- strncase_l-ssse3 \ ++ strncase_l-ssse3 strlen-sse4 strlen-no-bsf \ + memset-x86-64 + ifeq (yes,$(config-cflags-sse4)) + sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +@@ -77,6 +77,12 @@ __init_cpu_features (void) + model += extended_model; + switch (model) + { ++ case 0x1c: ++ case 0x26: ++ /* BSF is slow on Atom. */ ++ __cpu_features.feature[index_Slow_BSF] |= bit_Slow_BSF; ++ break; ++ + case 0x1a: + case 0x1e: + case 0x1f: +--- a/sysdeps/x86_64/multiarch/init-arch.h 2012-03-01 10:43:30.061487720 -0700 ++++ b/sysdeps/x86_64/multiarch/init-arch.h 2012-03-01 10:48:13.371963005 -0700 +@@ -17,6 +17,7 @@ + 02111-1307 USA. */ + + #define bit_Fast_Rep_String (1 << 0) ++#define bit_Slow_BSF (1 << 2) + #define bit_Prefer_SSE_for_memop (1 << 3) + + #ifdef __ASSEMBLER__ +@@ -34,6 +35,7 @@ + # define index_SSE4_2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET + + #define index_Fast_Rep_String FEATURE_INDEX_1*FEATURE_SIZE ++# define index_Slow_BSF FEATURE_INDEX_1*FEATURE_SIZE + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE + + #else /* __ASSEMBLER__ */ +@@ -105,11 +107,15 @@ extern const struct cpu_features *__get_ + # define HAS_FMA HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 12) + + # define index_Fast_Rep_String FEATURE_INDEX_1 ++# define index_Slow_BSF FEATURE_INDEX_1 + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1 + + #define HAS_ARCH_FEATURE(idx, bit) \ + ((__get_cpu_features ()->feature[idx] & (bit)) != 0) + ++#define HAS_SLOW_BSF \ ++ HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF) ++ + #define HAS_PREFER_SSE_FOR_MEMOP \ + HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop) + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-no-bsf.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-no-bsf.S +@@ -0,0 +1,309 @@ ++/* strlen without BSF ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ Contributed by Intel Corporation. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if defined SHARED && !defined NOT_IN_libc ++ ++#include <sysdep.h> ++ ++ .section .text.slow,"ax",@progbits ++ENTRY (__strlen_no_bsf) ++ xor %eax, %eax ++ cmpb $0, (%rdi) ++ jz L(exit_tail0) ++ cmpb $0, 1(%rdi) ++ jz L(exit_tail1) ++ cmpb $0, 2(%rdi) ++ jz L(exit_tail2) ++ cmpb $0, 3(%rdi) ++ jz L(exit_tail3) ++ cmpb $0, 4(%rdi) ++ jz L(exit_tail4) ++ cmpb $0, 5(%rdi) ++ jz L(exit_tail5) ++ cmpb $0, 6(%rdi) ++ jz L(exit_tail6) ++ cmpb $0, 7(%rdi) ++ jz L(exit_tail7) ++ cmpb $0, 8(%rdi) ++ jz L(exit_tail8) ++ cmpb $0, 9(%rdi) ++ jz L(exit_tail9) ++ cmpb $0, 10(%rdi) ++ jz L(exit_tail10) ++ cmpb $0, 11(%rdi) ++ jz L(exit_tail11) ++ cmpb $0, 12(%rdi) ++ jz L(exit_tail12) ++ cmpb $0, 13(%rdi) ++ jz L(exit_tail13) ++ cmpb $0, 14(%rdi) ++ jz L(exit_tail14) ++ cmpb $0, 15(%rdi) ++ jz L(exit_tail15) ++ pxor %xmm0, %xmm0 ++ mov %rdi, %rcx ++ mov %rdi, %rax ++ and $-16, %rax ++ add $16, %rax ++ add $16, %rcx ++ ++ pcmpeqb (%rax), %xmm0 ++ pmovmskb %xmm0, %edx ++ pxor %xmm1, %xmm1 ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm1 ++ pmovmskb %xmm1, %edx ++ pxor %xmm2, %xmm2 ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ ++ pcmpeqb (%rax), %xmm2 ++ pmovmskb %xmm2, %edx ++ pxor %xmm3, %xmm3 ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ and $-0x40, %rax ++ xor %r8d, %r8d ++L(aligned_64): ++ pcmpeqb (%rax), %xmm0 ++ pcmpeqb 16(%rax), %xmm1 ++ pcmpeqb 32(%rax), %xmm2 ++ pcmpeqb 48(%rax), %xmm3 ++ pmovmskb %xmm0, %edx ++ pmovmskb %xmm1, %esi ++ pmovmskb %xmm2, %edi ++ pmovmskb %xmm3, %r9d ++ or %edx, %r8d ++ or %esi, %r8d ++ or %edi, %r8d ++ or %r9d, %r8d ++ lea 64(%rax), %rax ++ jz L(aligned_64) ++ ++ test %edx, %edx ++ jnz L(aligned_64_exit_16) ++ test %esi, %esi ++ jnz L(aligned_64_exit_32) ++ test %edi, %edi ++ jnz L(aligned_64_exit_48) ++L(aligned_64_exit_64): ++ mov %r9d, %edx ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_48): ++ lea -16(%rax), %rax ++ mov %edi, %edx ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_32): ++ lea -32(%rax), %rax ++ mov %esi, %edx ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_16): ++ lea -48(%rax), %rax ++L(aligned_64_exit): ++L(exit): ++ sub %rcx, %rax ++ test %dl, %dl ++ jz L(exit_high) ++ test $0x01, %dl ++ jnz L(exit_tail0) ++ ++ test $0x02, %dl ++ jnz L(exit_tail1) ++ ++ test $0x04, %dl ++ jnz L(exit_tail2) ++ ++ test $0x08, %dl ++ jnz L(exit_tail3) ++ ++ test $0x10, %dl ++ jnz L(exit_tail4) ++ ++ test $0x20, %dl ++ jnz L(exit_tail5) ++ ++ test $0x40, %dl ++ jnz L(exit_tail6) ++ add $7, %eax ++L(exit_tail0): ++ ret ++ ++L(exit_high): ++ add $8, %eax ++ test $0x01, %dh ++ jnz L(exit_tail0) ++ ++ test $0x02, %dh ++ jnz L(exit_tail1) ++ ++ test $0x04, %dh ++ jnz L(exit_tail2) ++ ++ test $0x08, %dh ++ jnz L(exit_tail3) ++ ++ test $0x10, %dh ++ jnz L(exit_tail4) ++ ++ test $0x20, %dh ++ jnz L(exit_tail5) ++ ++ test $0x40, %dh ++ jnz L(exit_tail6) ++ add $7, %eax ++ ret ++ .p2align 4 ++L(exit_tail1): ++ add $1, %eax ++ ret ++ ++L(exit_tail2): ++ add $2, %eax ++ ret ++ ++L(exit_tail3): ++ add $3, %eax ++ ret ++ ++L(exit_tail4): ++ add $4, %eax ++ ret ++ ++L(exit_tail5): ++ add $5, %eax ++ ret ++L(exit_tail6): ++ add $6, %eax ++ ret ++L(exit_tail7): ++ add $7, %eax ++ ret ++L(exit_tail8): ++ add $8, %eax ++ ret ++L(exit_tail9): ++ add $9, %eax ++ ret ++L(exit_tail10): ++ add $10, %eax ++ ret ++L(exit_tail11): ++ add $11, %eax ++ ret ++L(exit_tail12): ++ add $12, %eax ++ ret ++L(exit_tail13): ++ add $13, %eax ++ ret ++L(exit_tail14): ++ add $14, %eax ++ ret ++L(exit_tail15): ++ add $15, %eax ++ ret ++END (__strlen_no_bsf) ++ ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-sse4.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-sse4.S +@@ -0,0 +1,85 @@ ++/* strlen with SSE4 ++ Copyright (C) 2009, 2010 Free Software Foundation, Inc. ++ Contributed by Ulrich Drepper drepper@redhat.com. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if defined SHARED && !defined NOT_IN_libc ++ ++#include <sysdep.h> ++ ++ .section .text.sse4.2,"ax",@progbits ++ENTRY (__strlen_sse42) ++ pxor %xmm1, %xmm1 ++ movl %edi, %ecx ++ movq %rdi, %r8 ++ andq $~15, %rdi ++ xor %edi, %ecx ++ pcmpeqb (%rdi), %xmm1 ++ pmovmskb %xmm1, %edx ++ shrl %cl, %edx ++ shll %cl, %edx ++ andl %edx, %edx ++ jnz L(less16bytes) ++ pxor %xmm1, %xmm1 ++ ++ .p2align 4 ++L(more64bytes_loop): ++ pcmpistri $0x08, 16(%rdi), %xmm1 ++ jz L(more32bytes) ++ ++ pcmpistri $0x08, 32(%rdi), %xmm1 ++ jz L(more48bytes) ++ ++ pcmpistri $0x08, 48(%rdi), %xmm1 ++ jz L(more64bytes) ++ ++ add $64, %rdi ++ pcmpistri $0x08, (%rdi), %xmm1 ++ jnz L(more64bytes_loop) ++ leaq (%rdi,%rcx), %rax ++ subq %r8, %rax ++ ret ++ ++ .p2align 4 ++L(more32bytes): ++ leaq 16(%rdi,%rcx, 1), %rax ++ subq %r8, %rax ++ ret ++ ++ .p2align 4 ++L(more48bytes): ++ leaq 32(%rdi,%rcx, 1), %rax ++ subq %r8, %rax ++ ret ++ ++ .p2align 4 ++L(more64bytes): ++ leaq 48(%rdi,%rcx, 1), %rax ++ subq %r8, %rax ++ ret ++ ++ .p2align 4 ++L(less16bytes): ++ subq %r8, %rdi ++ bsfl %edx, %eax ++ addq %rdi, %rax ++ ret ++ ++END (__strlen_sse42) ++ ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strlen.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen.S +@@ -36,74 +36,12 @@ ENTRY(strlen) + testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) + jz 2f + leaq __strlen_sse42(%rip), %rax +-2: ret +-END(strlen) +- +- +- .section .text.sse4.2,"ax",@progbits +- .align 16 +- .type __strlen_sse42, @function +-__strlen_sse42: +- cfi_startproc +- CALL_MCOUNT +- pxor %xmm1, %xmm1 +- movl %edi, %ecx +- movq %rdi, %r8 +- andq $~15, %rdi +- xor %edi, %ecx +- pcmpeqb (%rdi), %xmm1 +- pmovmskb %xmm1, %edx +- shrl %cl, %edx +- shll %cl, %edx +- andl %edx, %edx +- jnz L(less16bytes) +- pxor %xmm1, %xmm1 +- +- .p2align 4 +-L(more64bytes_loop): +- pcmpistri $0x08, 16(%rdi), %xmm1 +- jz L(more32bytes) +- +- pcmpistri $0x08, 32(%rdi), %xmm1 +- jz L(more48bytes) +- +- pcmpistri $0x08, 48(%rdi), %xmm1 +- jz L(more64bytes) +- +- add $64, %rdi +- pcmpistri $0x08, (%rdi), %xmm1 +- jnz L(more64bytes_loop) +- leaq (%rdi,%rcx), %rax +- subq %r8, %rax +- ret +- +- .p2align 4 +-L(more32bytes): +- leaq 16(%rdi,%rcx, 1), %rax +- subq %r8, %rax +- ret +- +- .p2align 4 +-L(more48bytes): +- leaq 32(%rdi,%rcx, 1), %rax +- subq %r8, %rax +- ret +- +- .p2align 4 +-L(more64bytes): +- leaq 48(%rdi,%rcx, 1), %rax +- subq %r8, %rax + ret +- +- .p2align 4 +-L(less16bytes): +- subq %r8, %rdi +- bsfl %edx, %eax +- addq %rdi, %rax +- ret +- cfi_endproc +- .size __strlen_sse42, .-__strlen_sse42 +- ++2: testl $bit_Slow_BSF, __cpu_features+FEATURE_OFFSET+index_Slow_BSF(%rip) ++ jz 3f ++ leaq __strlen_no_bsf(%rip), %rax ++3: ret ++END(strlen) + + # undef ENTRY + # define ENTRY(name) \ +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strlen.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/strlen.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strlen.S +@@ -23,29 +23,80 @@ + + .text + ENTRY(strlen) +- pxor %xmm2, %xmm2 +- movq %rdi, %rcx +- movq %rdi, %r8 +- andq $~15, %rdi +- movdqa %xmm2, %xmm1 +- pcmpeqb (%rdi), %xmm2 +- orl $0xffffffff, %esi +- subq %rdi, %rcx +- shll %cl, %esi +- pmovmskb %xmm2, %edx +- andl %esi, %edx +- jnz 1f +- +-2: movdqa 16(%rdi), %xmm0 +- leaq 16(%rdi), %rdi ++ xor %rax, %rax ++ mov %edi, %ecx ++ and $0x3f, %ecx ++ pxor %xmm0, %xmm0 ++ cmp $0x30, %ecx ++ ja L(next) ++ movdqu (%rdi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pmovmskb %xmm0, %edx +- testl %edx, %edx +- jz 2b ++ test %edx, %edx ++ jnz L(exit_less16) ++ mov %rdi, %rax ++ and $-16, %rax ++ jmp L(align16_start) ++L(next): ++ mov %rdi, %rax ++ and $-16, %rax ++ pcmpeqb (%rax), %xmm0 ++ mov $-1, %esi ++ sub %rax, %rcx ++ shl %cl, %esi ++ pmovmskb %xmm0, %edx ++ and %esi, %edx ++ jnz L(exit) ++L(align16_start): ++ pxor %xmm0, %xmm0 ++ pxor %xmm1, %xmm1 ++ pxor %xmm2, %xmm2 ++ pxor %xmm3, %xmm3 ++ .p2align 4 ++L(align16_loop): ++ pcmpeqb 16(%rax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ jnz L(exit16) + +-1: subq %r8, %rdi +- bsfl %edx, %eax +- addq %rdi, %rax ++ pcmpeqb 32(%rax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ jnz L(exit32) ++ ++ pcmpeqb 48(%rax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ jnz L(exit48) ++ ++ pcmpeqb 64(%rax), %xmm3 ++ pmovmskb %xmm3, %edx ++ lea 64(%rax), %rax ++ test %edx, %edx ++ jz L(align16_loop) ++L(exit): ++ sub %rdi, %rax ++L(exit_less16): ++ bsf %rdx, %rdx ++ add %rdx, %rax ++ ret ++ .p2align 4 ++L(exit16): ++ sub %rdi, %rax ++ bsf %rdx, %rdx ++ lea 16(%rdx,%rax), %rax ++ ret ++ .p2align 4 ++L(exit32): ++ sub %rdi, %rax ++ bsf %rdx, %rdx ++ lea 32(%rdx,%rax), %rax ++ ret ++ .p2align 4 ++L(exit48): ++ sub %rdi, %rax ++ bsf %rdx, %rdx ++ lea 48(%rdx,%rax), %rax + ret + END(strlen) + libc_hidden_builtin_def (strlen) diff --git a/src/patches/glibc/glibc-rh696472.patch b/src/patches/glibc/glibc-rh696472.patch new file mode 100644 index 0000000..9d30d38 --- /dev/null +++ b/src/patches/glibc/glibc-rh696472.patch @@ -0,0 +1,36 @@ +commit 3d29045b5e8329d97693eda8d98f1d1e60b99c8f +Author: H.J. Lu hongjiu.lu@intel.com +Date: Fri Jun 3 07:01:25 2011 -0400 + + Assume Intel Core i3/i5/i7 processor if AVX is available + +2011-06-02 H.J. Lu hongjiu.lu@intel.com + + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): + Assume Intel Core i3/i5/i7 processor if AVX is available. + +diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c +index 34ec2df..809d105 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.c ++++ b/sysdeps/x86_64/multiarch/init-arch.c +@@ -74,6 +74,7 @@ __init_cpu_features (void) + } + else if (family == 0x06) + { ++ ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx; + model += extended_model; + switch (model) + { +@@ -83,6 +84,12 @@ __init_cpu_features (void) + __cpu_features.feature[index_Slow_BSF] |= bit_Slow_BSF; + break; + ++ default: ++ /* Unknown family 0x06 processors. Assuming this is one ++ of Core i3/i5/i7 processors if AVX is available. */ ++ if ((ecx & bit_AVX) == 0) ++ break; ++ + case 0x1a: + case 0x1e: + case 0x1f: diff --git a/src/patches/glibc/glibc-rh697421.patch b/src/patches/glibc/glibc-rh697421.patch new file mode 100644 index 0000000..961c805 --- /dev/null +++ b/src/patches/glibc/glibc-rh697421.patch @@ -0,0 +1,10 @@ +diff -rup a/iconvdata/gconv-modules b/iconvdata/gconv-modules +--- a/iconvdata/gconv-modules 2010-05-04 05:27:23.000000000 -0600 ++++ b/iconvdata/gconv-modules 2012-01-26 10:58:24.181895489 -0700 +@@ -1954,3 +1954,6 @@ alias HPGREEK8// HP-GREEK8// + alias OSF10010004// HP-GREEK8// + module HP-GREEK8// INTERNAL HP-GREEK8 1 + module INTERNAL HP-GREEK8// HP-GREEK8 1 ++ ++alias ISO-10646-UCS-2// UNICODE// ++alias ISO-10646-UCS-2// ISO-10646/UTF8/ diff --git a/src/patches/glibc/glibc-rh699724.patch b/src/patches/glibc/glibc-rh699724.patch new file mode 100644 index 0000000..d25ce84 --- /dev/null +++ b/src/patches/glibc/glibc-rh699724.patch @@ -0,0 +1,188 @@ +2011-02-23 Andreas Schwab schwab@redhat.com + + [BZ #12509] + * elf/dl-load.c (_dl_map_object_from_fd): Free realname before + returning unsuccessfully. + * elf/Makefile ($(objpfx)noload-mem): New rule. + (noload-ENV): Define. + (tests): Add $(objpfx)noload-mem. + * elf/noload.c: Include <memcheck.h>. + (main): Call mtrace. Close all opened handles. + +2010-09-27 Andreas Schwab schwab@redhat.com + + * include/link.h (struct link_map): Add l_free_initfini. + * elf/dl-deps.c (_dl_map_object_deps): Set it when assigning + l_initfini. + * elf/rtld.c (dl_main): Clear it on all objects loaded on startup. + * elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is + set. + +Index: glibc-2.12-2-gc4ccff1/elf/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile ++++ glibc-2.12-2-gc4ccff1/elf/Makefile +@@ -211,7 +211,7 @@ endif + ifeq (yesyes,$(have-fpie)$(build-shared)) + tests: $(objpfx)tst-pie1.out + endif +-tests: $(objpfx)tst-leaks1-mem ++tests: $(objpfx)tst-leaks1-mem $(objpfx)noload-mem + tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ +@@ -664,6 +664,10 @@ $(objpfx)noload: $(objpfx)testobj1.so $( + LDFLAGS-noload = -rdynamic + $(objpfx)noload.out: $(objpfx)testobj5.so + ++$(objpfx)noload-mem: $(objpfx)noload.out ++ $(common-objpfx)malloc/mtrace $(objpfx)noload.mtrace > $@ ++noload-ENV = MALLOC_TRACE=$(objpfx)noload.mtrace ++ + LDFLAGS-nodelete = -rdynamic + LDFLAGS-nodelmod1.so = -Wl,--enable-new-dtags,-z,nodelete + LDFLAGS-nodelmod4.so = -Wl,--enable-new-dtags,-z,nodelete +Index: glibc-2.12-2-gc4ccff1/elf/dl-deps.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-deps.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-deps.c +@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *ma + nneeded * sizeof needed[0]); + atomic_write_barrier (); + l->l_initfini = l_initfini; ++ l->l_free_initfini = 1; + } + + /* If we have no auxiliary objects just go on to the next map. */ +@@ -662,6 +663,7 @@ Filters not supported with LD_TRACE_PREL + l_initfini[nlist] = NULL; + atomic_write_barrier (); + map->l_initfini = l_initfini; ++ map->l_free_initfini = 1; + if (l_reldeps != NULL) + { + atomic_write_barrier (); +Index: glibc-2.12-2-gc4ccff1/elf/dl-libc.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-libc.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-libc.c +@@ -250,5 +250,9 @@ libc_freeres_fn (free_mem) + if (! old->dont_free) + free (old); + } ++ ++ /* Free the initfini dependency list. */ ++ if (l->l_free_initfini) ++ free (l->l_initfini); + } + } +Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c +@@ -907,6 +907,7 @@ _dl_map_object_from_fd (const char *name + { + /* We are not supposed to load the object unless it is already + loaded. So return now. */ ++ free (realname); + __close (fd); + return NULL; + } +@@ -925,6 +926,7 @@ _dl_map_object_from_fd (const char *name + _dl_zerofd = _dl_sysdep_open_zero_fill (); + if (_dl_zerofd == -1) + { ++ free (realname); + __close (fd); + _dl_signal_error (errno, NULL, NULL, + N_("cannot open zero fill device")); +Index: glibc-2.12-2-gc4ccff1/elf/noload.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/noload.c ++++ glibc-2.12-2-gc4ccff1/elf/noload.c +@@ -1,20 +1,28 @@ + #include <dlfcn.h> + #include <stdio.h> ++#include <mcheck.h> + + int + main (void) + { + int result = 0; ++ void *p; ++ ++ mtrace (); + + /* First try to load an object which is a dependency. This should + succeed. */ +- if (dlopen ("testobj1.so", RTLD_LAZY | RTLD_NOLOAD) == NULL) ++ p = dlopen ("testobj1.so", RTLD_LAZY | RTLD_NOLOAD); ++ if (p == NULL) + { + printf ("cannot open "testobj1.so": %s\n", dlerror ()); + result = 1; + } + else +- puts ("loading "testobj1.so" succeeded, OK"); ++ { ++ puts ("loading "testobj1.so" succeeded, OK"); ++ dlclose (p); ++ } + + /* Now try loading an object which is not already loaded. */ + if (dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD) != NULL) +@@ -25,8 +33,6 @@ main (void) + else + { + /* Load the object and run the same test again. */ +- void *p; +- + puts (""testobj5.so" wasn't loaded and RTLD_NOLOAD prevented it, OK"); + + p = dlopen ("testobj5.so", RTLD_LAZY); +@@ -41,13 +47,17 @@ main (void) + { + puts ("loading "testobj5.so" succeeded, OK"); + +- if (dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD) == NULL) ++ void *q = dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD); ++ if (q == NULL) + { + printf ("cannot open "testobj5.so": %s\n", dlerror ()); + result = 1; + } + else +- puts ("loading "testobj5.so" with RTLD_NOLOAD succeeded, OK"); ++ { ++ puts ("loading "testobj5.so" with RTLD_NOLOAD succeeded, OK"); ++ dlclose (q); ++ } + + if (dlclose (p) != 0) + { +Index: glibc-2.12-2-gc4ccff1/elf/rtld.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c ++++ glibc-2.12-2-gc4ccff1/elf/rtld.c +@@ -2249,6 +2249,7 @@ ERROR: ld.so: object '%s' cannot be load + lnp->dont_free = 1; + lnp = lnp->next; + } ++ l->l_free_initfini = 0; + + if (l != &GL(dl_rtld_map)) + _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0, +Index: glibc-2.12-2-gc4ccff1/include/link.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/include/link.h ++++ glibc-2.12-2-gc4ccff1/include/link.h +@@ -192,6 +192,9 @@ struct link_map + during LD_TRACE_PRELINKING=1 + contains any DT_SYMBOLIC + libraries. */ ++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be ++ freed, ie. not allocated with ++ the dummy malloc in ld.so. */ + + /* Collected information about own RPATH directories. */ + struct r_search_path_struct l_rpath_dirs; diff --git a/src/patches/glibc/glibc-rh700507.patch b/src/patches/glibc/glibc-rh700507.patch new file mode 100644 index 0000000..0660431 --- /dev/null +++ b/src/patches/glibc/glibc-rh700507.patch @@ -0,0 +1,26 @@ +Index: glibc-2.12-2-gc4ccff1/nscd/nscd.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd.c ++++ glibc-2.12-2-gc4ccff1/nscd/nscd.c +@@ -260,10 +260,6 @@ main (int argc, char **argv) + /* In foreground mode we are not paranoid. */ + paranoia = 0; + +- /* Start the SELinux AVC. */ +- if (selinux_enabled) +- nscd_avc_init (); +- + signal (SIGINT, termination_handler); + signal (SIGQUIT, termination_handler); + signal (SIGTERM, termination_handler); +@@ -278,6 +274,10 @@ main (int argc, char **argv) + /* Init databases. */ + nscd_init (); + ++ /* Start the SELinux AVC. */ ++ if (selinux_enabled) ++ nscd_avc_init (); ++ + /* Handle incoming requests */ + start_threads (); + diff --git a/src/patches/glibc/glibc-rh703480.patch b/src/patches/glibc/glibc-rh703480.patch new file mode 100644 index 0000000..742a79a --- /dev/null +++ b/src/patches/glibc/glibc-rh703480.patch @@ -0,0 +1,68 @@ +2011-01-15 Ulrich Drepper drepper@gmail.com + + [BZ #6812] + * nscd/hstcache.c (tryagain): Define. + (cache_addhst): Return tryagain not notfound for temporary errors. + (addhstbyX): Also set h_errno to TRY_AGAIN when memory allocation + failed. + +Index: glibc-2.12-2-gc4ccff1/nscd/hstcache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/hstcache.c ++++ glibc-2.12-2-gc4ccff1/nscd/hstcache.c +@@ -77,6 +77,20 @@ static const hst_response_header notfoun + }; + + ++/* This is the standard reply in case there are temporary problems. */ ++static const hst_response_header tryagain = ++{ ++ .version = NSCD_VERSION, ++ .found = 0, ++ .h_name_len = 0, ++ .h_aliases_cnt = 0, ++ .h_addrtype = -1, ++ .h_length = -1, ++ .h_addr_list_cnt = 0, ++ .error = TRY_AGAIN ++}; ++ ++ + static void + cache_addhst (struct database_dyn *db, int fd, request_header *req, + const void *key, struct hostent *hst, uid_t owner, +@@ -111,11 +125,15 @@ cache_addhst (struct database_dyn *db, i + else + { + /* We have no data. This means we send the standard reply for this +- case. */ ++ case. Possibly this is only temporary. */ + ssize_t total = sizeof (notfound); ++ assert (sizeof (notfound) == sizeof (tryagain)); ++ ++ const hst_response_header *resp = (errval == EAGAIN ++ ? &tryagain : ¬found); + + if (fd != -1 && +- TEMP_FAILURE_RETRY (send (fd, ¬found, total, ++ TEMP_FAILURE_RETRY (send (fd, resp, total, + MSG_NOSIGNAL)) != total) + all_written = false; + +@@ -135,7 +153,7 @@ cache_addhst (struct database_dyn *db, i + ? db->negtimeout : ttl); + + /* This is the reply. */ +- memcpy (&dataset->resp, ¬found, total); ++ memcpy (&dataset->resp, resp, total); + + /* Copy the key data. */ + memcpy (dataset->strdata, key, req->key_len); +@@ -490,6 +508,7 @@ addhstbyX (struct database_dyn *db, int + /* We set the error to indicate this is (possibly) a + temporary error and that it does not mean the entry + is not available at all. */ ++ h_errno = TRY_AGAIN; + errval = EAGAIN; + break; + } diff --git a/src/patches/glibc/glibc-rh703481.patch b/src/patches/glibc/glibc-rh703481.patch new file mode 100644 index 0000000..fdde4b5 --- /dev/null +++ b/src/patches/glibc/glibc-rh703481.patch @@ -0,0 +1,875 @@ +2011-02-05 Ulrich Drepper drepper@gmail.com + + * nscd/nscd-client.h: Define MAX_TIMEOUT_VALUE. + (struct datahead): Reuse 32 bits of the alignment for a TTL field. + * nscd/aicache.c (addhstaiX): Return timeout of added value. + (readdhstai): Return value of addhstaiX call. + * nscd/grpcache.c (cache_addgr): Return timeout of added value. + (addgrbyX): Return value returned by cache_addgr. + (readdgrbyname): Return value returned by addgrbyX. + (readdgrbygid): Likewise. + * nscd/pwdcache.c (cache_addpw): Return timeout of added value. + (addpwbyX): Return value returned by cache_addpw. + (readdpwbyname): Return value returned by addhstbyX. + (readdpwbyuid): Likewise. + * nscd/servicescache.c (cache_addserv): Return timeout of added value. + (addservbyX): Return value returned by cache_addserv. + (readdservbyname): Return value returned by addservbyX: + (readdservbyport): Likewise. + * nscd/hstcache.c (cache_addhst): Return timeout of added value. + (addhstbyX): Return value returned by cache_addhst. + (readdhstbyname): Return value returned by addhstbyX. + (readdhstbyaddr): Likewise. + (readdhstbynamev6): Likewise. + (readdhstbyaddrv6): Likewise. + * nscd/initgrcache.c (addinitgroupsX): Return timeout of added value. + (readdinitgroups): Return value returned by addinitgroupsX. + * nscd/cache.c (readdfcts): Change return value of functions to time_t. + (prune_cache): Keep track of timeout value of re-added entries. + * nscd/connections.c (nscd_run_prune): Use MAX_TIMEOUT_VALUE. + * nscd/nscd.h: Adjust prototypes of readd* functions. + +Index: glibc-2.12-2-gc4ccff1/nscd/aicache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/aicache.c ++++ glibc-2.12-2-gc4ccff1/nscd/aicache.c +@@ -58,7 +58,7 @@ static const ai_response_header notfound + }; + + +-static void ++static time_t + addhstaiX (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid, struct hashentry *const he, + struct datahead *dh) +@@ -119,6 +119,7 @@ addhstaiX (struct database_dyn *db, int + ssize_t total = 0; + char *key_copy = NULL; + bool alloca_used = false; ++ time_t timeout = MAX_TIMEOUT_VALUE; + + while (!no_more) + { +@@ -388,8 +389,8 @@ addhstaiX (struct database_dyn *db, int + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = time (NULL) + (ttl == INT32_MAX +- ? db->postimeout : ttl); ++ dataset->head.ttl = ttl == INT32_MAX ? db->postimeout : ttl; ++ timeout = dataset->head.timeout = time (NULL) + dataset->head.ttl; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -421,6 +422,7 @@ addhstaiX (struct database_dyn *db, int + timeout value. Note that the new record has been + allocated on the stack and need not be freed. */ + dh->timeout = dataset->head.timeout; ++ dh->ttl = dataset->head.ttl; + ++dh->nreloads; + } + else +@@ -496,6 +498,9 @@ next_nip: + if (reload_count != UINT_MAX && dh->nreloads == reload_count) + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; ++ ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = time (NULL) + dh->ttl; + } + else + { +@@ -517,7 +522,8 @@ next_nip: + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = time (NULL) + db->negtimeout; ++ timeout = dataset->head.timeout = time (NULL) + db->negtimeout; ++ dataset->head.ttl = db->negtimeout; + + /* This is the reply. */ + memcpy (&dataset->resp, ¬found, total); +@@ -551,6 +557,8 @@ next_nip: + if (dh != NULL) + dh->usable = false; + } ++ ++ return timeout; + } + + +@@ -562,7 +570,7 @@ addhstai (struct database_dyn *db, int f + } + + +-void ++time_t + readdhstai (struct database_dyn *db, struct hashentry *he, struct datahead *dh) + { + request_header req = +@@ -571,5 +579,5 @@ readdhstai (struct database_dyn *db, str + .key_len = he->len + }; + +- addhstaiX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addhstaiX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } +Index: glibc-2.12-2-gc4ccff1/nscd/cache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/cache.c ++++ glibc-2.12-2-gc4ccff1/nscd/cache.c +@@ -45,9 +45,9 @@ extern void *xcalloc (size_t n, size_t s + unsigned int reload_count = DEFAULT_RELOAD_LIMIT; + + +-static void (*const readdfcts[LASTREQ]) (struct database_dyn *, +- struct hashentry *, +- struct datahead *) = ++static time_t (*const readdfcts[LASTREQ]) (struct database_dyn *, ++ struct hashentry *, ++ struct datahead *) = + { + [GETPWBYNAME] = readdpwbyname, + [GETPWBYUID] = readdpwbyuid, +@@ -389,7 +389,8 @@ prune_cache (struct database_dyn *table, + assert (runp->type < LASTREQ + && readdfcts[runp->type] != NULL); + +- readdfcts[runp->type] (table, runp, dh); ++ time_t timeout = readdfcts[runp->type] (table, runp, dh); ++ next_timeout = MIN (next_timeout, timeout); + + /* If the entry has been replaced, we might need + cleanup. */ +Index: glibc-2.12-2-gc4ccff1/nscd/connections.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/connections.c ++++ glibc-2.12-2-gc4ccff1/nscd/connections.c +@@ -1533,10 +1533,7 @@ nscd_run_prune (void *p) + pruning we want to know about it. Therefore set the + timeout to the maximum. It will be descreased when adding + new entries to the cache, if necessary. */ +- if (sizeof (time_t) == sizeof (long int)) +- dbs[my_number].wakeup_time = LONG_MAX; +- else +- dbs[my_number].wakeup_time = INT_MAX; ++ dbs[my_number].wakeup_time = MAX_TIMEOUT_VALUE; + + /* Unconditionally reset the flag. */ + time_t prune_now = dbs[my_number].clear_cache ? LONG_MAX : now; +Index: glibc-2.12-2-gc4ccff1/nscd/grpcache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/grpcache.c ++++ glibc-2.12-2-gc4ccff1/nscd/grpcache.c +@@ -71,7 +71,7 @@ static const gr_response_header notfound + }; + + +-static void ++static time_t + cache_addgr (struct database_dyn *db, int fd, request_header *req, + const void *key, struct group *grp, uid_t owner, + struct hashentry *const he, struct datahead *dh, int errval) +@@ -91,6 +91,7 @@ cache_addgr (struct database_dyn *db, in + + assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data)); + ++ time_t timeout = MAX_TIMEOUT_VALUE; + if (grp == NULL) + { + if (he != NULL && errval == EAGAIN) +@@ -102,6 +103,9 @@ cache_addgr (struct database_dyn *db, in + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; + ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = t + db->postimeout; ++ + written = total = 0; + } + else +@@ -125,7 +129,7 @@ cache_addgr (struct database_dyn *db, in + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->negtimeout; ++ timeout = dataset->head.timeout = t + db->negtimeout; + + /* This is the reply. */ + memcpy (&dataset->resp, ¬found, total); +@@ -217,7 +221,7 @@ cache_addgr (struct database_dyn *db, in + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->postimeout; ++ timeout = dataset->head.timeout = t + db->postimeout; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -379,6 +383,8 @@ cache_addgr (struct database_dyn *db, in + dbg_log (_("short write in %s: %s"), __FUNCTION__, + strerror_r (errno, buf, sizeof (buf))); + } ++ ++ return timeout; + } + + +@@ -400,7 +406,7 @@ lookup (int type, union keytype key, str + } + + +-static void ++static time_t + addgrbyX (struct database_dyn *db, int fd, request_header *req, + union keytype key, const char *keystr, uid_t uid, + struct hashentry *he, struct datahead *dh) +@@ -456,10 +462,12 @@ addgrbyX (struct database_dyn *db, int f + buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen); + } + +- cache_addgr (db, fd, req, keystr, grp, uid, he, dh, errval); ++ time_t timeout = cache_addgr (db, fd, req, keystr, grp, uid, he, dh, errval); + + if (use_malloc) + free (buffer); ++ ++ return timeout; + } + + +@@ -473,7 +481,7 @@ addgrbyname (struct database_dyn *db, in + } + + +-void ++time_t + readdgrbyname (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -484,7 +492,7 @@ readdgrbyname (struct database_dyn *db, + }; + union keytype u = { .v = db->data + he->key }; + +- addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); ++ return addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); + } + + +@@ -510,7 +518,7 @@ addgrbygid (struct database_dyn *db, int + } + + +-void ++time_t + readdgrbygid (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -527,5 +535,5 @@ readdgrbygid (struct database_dyn *db, s + }; + union keytype u = { .g = gid }; + +- addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); ++ return addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); + } +Index: glibc-2.12-2-gc4ccff1/nscd/hstcache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/hstcache.c ++++ glibc-2.12-2-gc4ccff1/nscd/hstcache.c +@@ -91,7 +91,7 @@ static const hst_response_header tryagai + }; + + +-static void ++static time_t + cache_addhst (struct database_dyn *db, int fd, request_header *req, + const void *key, struct hostent *hst, uid_t owner, + struct hashentry *const he, struct datahead *dh, int errval, +@@ -111,6 +111,7 @@ cache_addhst (struct database_dyn *db, i + + assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data)); + ++ time_t timeout = MAX_TIMEOUT_VALUE; + if (hst == NULL) + { + if (he != NULL && errval == EAGAIN) +@@ -121,6 +122,9 @@ cache_addhst (struct database_dyn *db, i + if (reload_count != UINT_MAX) + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; ++ ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = t + dh->ttl; + } + else + { +@@ -149,8 +153,8 @@ cache_addhst (struct database_dyn *db, i + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + (ttl == INT32_MAX +- ? db->negtimeout : ttl); ++ dataset->head.ttl = ttl == INT32_MAX ? db->negtimeout : ttl; ++ timeout = dataset->head.timeout = t + dataset->head.ttl; + + /* This is the reply. */ + memcpy (&dataset->resp, resp, total); +@@ -214,7 +218,7 @@ cache_addhst (struct database_dyn *db, i + + if (h_addr_list_cnt == 0) + /* Invalid entry. */ +- return; ++ return MAX_TIMEOUT_VALUE; + + total += (sizeof (struct dataset) + + h_name_len +@@ -255,7 +259,8 @@ cache_addhst (struct database_dyn *db, i + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + (ttl == INT32_MAX ? db->postimeout : ttl); ++ dataset->head.ttl = ttl == INT32_MAX ? db->postimeout : ttl; ++ timeout = dataset->head.timeout = t + dataset->head.ttl; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -312,6 +317,7 @@ cache_addhst (struct database_dyn *db, i + timeout value. Note that the new record has been + allocated on the stack and need not be freed. */ + assert (h_addr_list_cnt == 1); ++ dh->ttl = dataset->head.ttl; + dh->timeout = dataset->head.timeout; + ++dh->nreloads; + } +@@ -433,6 +439,8 @@ cache_addhst (struct database_dyn *db, i + dbg_log (_("short write in %s: %s"), __FUNCTION__, + strerror_r (errno, buf, sizeof (buf))); + } ++ ++ return timeout; + } + + +@@ -454,7 +462,7 @@ lookup (int type, void *key, struct host + } + + +-static void ++static time_t + addhstbyX (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid, struct hashentry *he, struct datahead *dh) + { +@@ -520,11 +528,13 @@ addhstbyX (struct database_dyn *db, int + buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen); + } + +- cache_addhst (db, fd, req, key, hst, uid, he, dh, +- h_errno == TRY_AGAIN ? errval : 0, ttl); ++ time_t timeout = cache_addhst (db, fd, req, key, hst, uid, he, dh, ++ h_errno == TRY_AGAIN ? errval : 0, ttl); + + if (use_malloc) + free (buffer); ++ ++ return timeout; + } + + +@@ -536,7 +546,7 @@ addhstbyname (struct database_dyn *db, i + } + + +-void ++time_t + readdhstbyname (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -546,7 +556,7 @@ readdhstbyname (struct database_dyn *db, + .key_len = he->len + }; + +- addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } + + +@@ -558,7 +568,7 @@ addhstbyaddr (struct database_dyn *db, i + } + + +-void ++time_t + readdhstbyaddr (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -568,7 +578,7 @@ readdhstbyaddr (struct database_dyn *db, + .key_len = he->len + }; + +- addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } + + +@@ -580,7 +590,7 @@ addhstbynamev6 (struct database_dyn *db, + } + + +-void ++time_t + readdhstbynamev6 (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -590,7 +600,7 @@ readdhstbynamev6 (struct database_dyn *d + .key_len = he->len + }; + +- addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } + + +@@ -602,7 +612,7 @@ addhstbyaddrv6 (struct database_dyn *db, + } + + +-void ++time_t + readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -612,5 +622,5 @@ readdhstbyaddrv6 (struct database_dyn *d + .key_len = he->len + }; + +- addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } +Index: glibc-2.12-2-gc4ccff1/nscd/initgrcache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/initgrcache.c ++++ glibc-2.12-2-gc4ccff1/nscd/initgrcache.c +@@ -52,7 +52,7 @@ static const initgr_response_header notf + #include "../grp/compat-initgroups.c" + + +-static void ++static time_t + addinitgroupsX (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid, struct hashentry *const he, + struct datahead *dh) +@@ -174,7 +174,9 @@ addinitgroupsX (struct database_dyn *db, + + ssize_t total; + ssize_t written; ++ time_t timeout; + out: ++ timeout = MAX_TIMEOUT_VALUE; + if (!any_success) + { + /* Nothing found. Create a negative result record. */ +@@ -188,6 +190,9 @@ addinitgroupsX (struct database_dyn *db, + if (reload_count != UINT_MAX && dh->nreloads == reload_count) + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; ++ ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = time (NULL) + db->postimeout; + } + else + { +@@ -209,7 +214,7 @@ addinitgroupsX (struct database_dyn *db, + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = time (NULL) + db->negtimeout; ++ timeout = dataset->head.timeout = time (NULL) + db->negtimeout; + + /* This is the reply. */ + memcpy (&dataset->resp, ¬found, total); +@@ -273,7 +278,7 @@ addinitgroupsX (struct database_dyn *db, + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = time (NULL) + db->postimeout; ++ timeout = dataset->head.timeout = time (NULL) + db->postimeout; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -401,6 +406,8 @@ addinitgroupsX (struct database_dyn *db, + dbg_log (_("short write in %s: %s"), __FUNCTION__, + strerror_r (errno, buf, sizeof (buf))); + } ++ ++ return timeout; + } + + +@@ -412,7 +419,7 @@ addinitgroups (struct database_dyn *db, + } + + +-void ++time_t + readdinitgroups (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -422,5 +429,5 @@ readdinitgroups (struct database_dyn *db + .key_len = he->len + }; + +- addinitgroupsX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addinitgroupsX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } +Index: glibc-2.12-2-gc4ccff1/nscd/nscd-client.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd-client.h ++++ glibc-2.12-2-gc4ccff1/nscd/nscd-client.h +@@ -179,6 +179,10 @@ typedef uint32_t ref_t; + /* Timestamp type. */ + typedef uint64_t nscd_time_t; + ++/* Maximum timestamp. */ ++#define MAX_TIMEOUT_VALUE \ ++ (sizeof (time_t) == sizeof (long int) ? LONG_MAX : INT_MAX) ++ + /* Alignment requirement of the beginning of the data region. */ + #define ALIGN 16 + +@@ -192,7 +196,8 @@ struct datahead + uint8_t notfound; /* Nonzero if data has not been found. */ + uint8_t nreloads; /* Reloads without use. */ + uint8_t usable; /* False if the entry must be ignored. */ +- uint64_t :40; /* Alignment. */ ++ uint8_t unused; /* Unused. */ ++ uint32_t ttl; /* TTL value used. */ + + /* We need to have the following element aligned for the response + header data types and their use in the 'struct dataset' types +Index: glibc-2.12-2-gc4ccff1/nscd/nscd.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd.h ++++ glibc-2.12-2-gc4ccff1/nscd/nscd.h +@@ -217,20 +217,20 @@ extern void addpwbyname (struct database + void *key, uid_t uid); + extern void addpwbyuid (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid); +-extern void readdpwbyname (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); +-extern void readdpwbyuid (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdpwbyname (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); ++extern time_t readdpwbyuid (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + /* grpcache.c */ + extern void addgrbyname (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid); + extern void addgrbygid (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid); +-extern void readdgrbyname (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); +-extern void readdgrbygid (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdgrbyname (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); ++extern time_t readdgrbygid (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + /* hstcache.c */ + extern void addhstbyname (struct database_dyn *db, int fd, request_header *req, +@@ -241,37 +241,37 @@ extern void addhstbynamev6 (struct datab + request_header *req, void *key, uid_t uid); + extern void addhstbyaddrv6 (struct database_dyn *db, int fd, + request_header *req, void *key, uid_t uid); +-extern void readdhstbyname (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); +-extern void readdhstbyaddr (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); +-extern void readdhstbynamev6 (struct database_dyn *db, struct hashentry *he, ++extern time_t readdhstbyname (struct database_dyn *db, struct hashentry *he, + struct datahead *dh); +-extern void readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he, ++extern time_t readdhstbyaddr (struct database_dyn *db, struct hashentry *he, + struct datahead *dh); ++extern time_t readdhstbynamev6 (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); ++extern time_t readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + /* aicache.c */ + extern void addhstai (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid); +-extern void readdhstai (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdhstai (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + + /* initgrcache.c */ + extern void addinitgroups (struct database_dyn *db, int fd, + request_header *req, void *key, uid_t uid); +-extern void readdinitgroups (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdinitgroups (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + /* servicecache.c */ + extern void addservbyname (struct database_dyn *db, int fd, + request_header *req, void *key, uid_t uid); +-extern void readdservbyname (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdservbyname (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + extern void addservbyport (struct database_dyn *db, int fd, + request_header *req, void *key, uid_t uid); +-extern void readdservbyport (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdservbyport (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + /* mem.c */ + extern void *mempool_alloc (struct database_dyn *db, size_t len, +Index: glibc-2.12-2-gc4ccff1/nscd/pwdcache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/pwdcache.c ++++ glibc-2.12-2-gc4ccff1/nscd/pwdcache.c +@@ -77,7 +77,7 @@ static const pw_response_header notfound + }; + + +-static void ++static time_t + cache_addpw (struct database_dyn *db, int fd, request_header *req, + const void *key, struct passwd *pwd, uid_t owner, + struct hashentry *const he, struct datahead *dh, int errval) +@@ -97,6 +97,7 @@ cache_addpw (struct database_dyn *db, in + + assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data)); + ++ time_t timeout = MAX_TIMEOUT_VALUE; + if (pwd == NULL) + { + if (he != NULL && errval == EAGAIN) +@@ -108,6 +109,9 @@ cache_addpw (struct database_dyn *db, in + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; + ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = t + db->postimeout; ++ + written = total = 0; + } + else +@@ -132,7 +136,7 @@ cache_addpw (struct database_dyn *db, in + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->negtimeout; ++ timeout = dataset->head.timeout = t + db->negtimeout; + + /* This is the reply. */ + memcpy (&dataset->resp, ¬found, total); +@@ -212,7 +216,7 @@ cache_addpw (struct database_dyn *db, in + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->postimeout; ++ timeout = dataset->head.timeout = t + db->postimeout; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -293,8 +297,8 @@ cache_addpw (struct database_dyn *db, in + assert ((char *) dataset - (char *) db->head + + total + <= (sizeof (struct database_pers_head) +- + db->head->module * sizeof (ref_t) +- + db->head->data_size)); ++ + db->head->module * sizeof (ref_t) ++ + db->head->data_size)); + written = sendfileall (fd, db->wr_fd, + (char *) &dataset->resp + - (char *) db->head, dataset->head.recsize ); +@@ -374,6 +378,8 @@ cache_addpw (struct database_dyn *db, in + dbg_log (_("short write in %s: %s"), __FUNCTION__, + strerror_r (errno, buf, sizeof (buf))); + } ++ ++ return timeout; + } + + +@@ -395,7 +401,7 @@ lookup (int type, union keytype key, str + } + + +-static void ++static time_t + addpwbyX (struct database_dyn *db, int fd, request_header *req, + union keytype key, const char *keystr, uid_t c_uid, + struct hashentry *he, struct datahead *dh) +@@ -452,10 +458,13 @@ addpwbyX (struct database_dyn *db, int f + } + + /* Add the entry to the cache. */ +- cache_addpw (db, fd, req, keystr, pwd, c_uid, he, dh, errval); ++ time_t timeout = cache_addpw (db, fd, req, keystr, pwd, c_uid, he, dh, ++ errval); + + if (use_malloc) + free (buffer); ++ ++ return timeout; + } + + +@@ -469,7 +478,7 @@ addpwbyname (struct database_dyn *db, in + } + + +-void ++time_t + readdpwbyname (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -480,7 +489,7 @@ readdpwbyname (struct database_dyn *db, + }; + union keytype u = { .v = db->data + he->key }; + +- addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); ++ return addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); + } + + +@@ -506,7 +515,7 @@ addpwbyuid (struct database_dyn *db, int + } + + +-void ++time_t + readdpwbyuid (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -523,5 +532,5 @@ readdpwbyuid (struct database_dyn *db, s + }; + union keytype u = { .u = uid }; + +- addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); ++ return addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); + } +Index: glibc-2.12-2-gc4ccff1/nscd/servicescache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/servicescache.c ++++ glibc-2.12-2-gc4ccff1/nscd/servicescache.c +@@ -61,7 +61,7 @@ static const serv_response_header notfou + }; + + +-static void ++static time_t + cache_addserv (struct database_dyn *db, int fd, request_header *req, + const void *key, struct servent *serv, uid_t owner, + struct hashentry *const he, struct datahead *dh, int errval) +@@ -81,6 +81,7 @@ cache_addserv (struct database_dyn *db, + + assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data)); + ++ time_t timeout = MAX_TIMEOUT_VALUE; + if (serv == NULL) + { + if (he != NULL && errval == EAGAIN) +@@ -92,6 +93,9 @@ cache_addserv (struct database_dyn *db, + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; + ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = t + db->postimeout; ++ + written = total = 0; + } + else +@@ -115,7 +119,7 @@ cache_addserv (struct database_dyn *db, + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->negtimeout; ++ timeout = dataset->head.timeout = t + db->negtimeout; + + /* This is the reply. */ + memcpy (&dataset->resp, ¬found, total); +@@ -203,7 +207,7 @@ cache_addserv (struct database_dyn *db, + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->postimeout; ++ timeout = dataset->head.timeout = t + db->postimeout; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -328,6 +332,8 @@ cache_addserv (struct database_dyn *db, + dbg_log (_("short write in %s: %s"), __FUNCTION__, + strerror_r (errno, buf, sizeof (buf))); + } ++ ++ return timeout; + } + + +@@ -354,7 +360,7 @@ lookup (int type, char *key, struct serv + } + + +-static void ++static time_t + addservbyX (struct database_dyn *db, int fd, request_header *req, + char *key, uid_t uid, struct hashentry *he, struct datahead *dh) + { +@@ -409,10 +415,12 @@ addservbyX (struct database_dyn *db, int + buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen); + } + +- cache_addserv (db, fd, req, key, serv, uid, he, dh, errval); ++ time_t timeout = cache_addserv (db, fd, req, key, serv, uid, he, dh, errval); + + if (use_malloc) + free (buffer); ++ ++ return timeout; + } + + +@@ -424,7 +432,7 @@ addservbyname (struct database_dyn *db, + } + + +-void ++time_t + readdservbyname (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -434,7 +442,7 @@ readdservbyname (struct database_dyn *db + .key_len = he->len + }; + +- addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } + + +@@ -446,7 +454,7 @@ addservbyport (struct database_dyn *db, + } + + +-void ++time_t + readdservbyport (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -456,5 +464,5 @@ readdservbyport (struct database_dyn *db + .key_len = he->len + }; + +- addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } diff --git a/src/patches/glibc/glibc-rh705465.patch b/src/patches/glibc/glibc-rh705465.patch new file mode 100644 index 0000000..63b971e --- /dev/null +++ b/src/patches/glibc/glibc-rh705465.patch @@ -0,0 +1,449 @@ +2011-11-07 Andreas Schwab schwab@redhat.com + + * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): + Fix size of allocated buffer. + +2011-05-10 Ulrich Drepper drepper@gmail.com + + [BZ #11257] + * grp/initgroups.c (internal_getgrouplist): When we found the service + list through the initgroups entry in nsswitch.conf do not always + continue on a successful lookup. Don't always use the + __nss_group_data-ase value if it is set. + * nss/nsswitch.conf (initgroups): Change action for successful db + lookup to continue for compatibility. + +2011-05-06 Ulrich Drepper drepper@gmail.com + + * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): Return + NSS_STATUS_NOTFOUND if no record was found. + +2011-04-29 Ulrich Drepper drepper@gmail.com + + * grp/initgroups.c (internal_getgrouplist): Prefer initgroups setting + to groups setting in database lookup. + * nss/nsswitch.conf: Add initgroups entry. + +2011-04-21 Ulrich Drepper drepper@gmail.com + + * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): Fix + problem in reallocation in last patch. + +2011-04-19 Ulrich Drepper drepper@gmail.com + + * nss/nss_files/files-initgroups.c: New file. + * nss/Makefile (libnss_files-routines): Add files-initgroups. + * nss/Versions (libnss_files) [GLIBC_PRIVATE]: Export + _nss_files_initgroups_dyn. + +2011-01-13 Ulrich Drepper drepper@gmail.com + + [BZ #10484] + * nss/nss_files/files-hosts.c (HOST_DB_LOOKUP): Handle overflows of + temporary buffer used to handle multi lookups locally. + * include/alloca.h: Add libc_hidden_proto for __libc_alloca_cutoff. + +2011-01-13 Ulrich Drepper drepper@gmail.com + + [BZ #10484] + * Versions [libc] (GLIBC_PRIVATE): Export __libc_alloca_cutoff. + * alloca_cutoff.c: Add libc_hidden_def. + +Index: glibc-2.12-2-gc4ccff1/grp/initgroups.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/grp/initgroups.c ++++ glibc-2.12-2-gc4ccff1/grp/initgroups.c +@@ -43,6 +43,8 @@ extern int __nss_group_lookup (service_u + extern void *__nss_lookup_function (service_user *ni, const char *fct_name); + + extern service_user *__nss_group_database attribute_hidden; ++static service_user *initgroups_database; ++static bool use_initgroups_entry; + + + #include "compat-initgroups.c" +@@ -67,32 +69,41 @@ internal_getgrouplist (const char *user, + } + #endif + +- service_user *nip = NULL; +- initgroups_dyn_function fct; + enum nss_status status = NSS_STATUS_UNAVAIL; +- int no_more; +- /* Start is one, because we have the first group as parameter. */ +- long int start = 1; ++ int no_more = 0; + + /* Never store more than the starting *SIZE number of elements. */ + assert (*size > 0); + (*groupsp)[0] = group; ++ /* Start is one, because we have the first group as parameter. */ ++ long int start = 1; + +- if (__nss_group_database != NULL) ++ if (initgroups_database == NULL) + { +- no_more = 0; +- nip = __nss_group_database; ++ no_more = __nss_database_lookup ("initgroups", NULL, "", ++ &initgroups_database); ++ if (no_more == 0 && initgroups_database == NULL) ++ { ++ if (__nss_group_database == NULL) ++ no_more = __nss_database_lookup ("group", NULL, "compat files", ++ &__nss_group_database); ++ ++ initgroups_database = __nss_group_database; ++ } ++ else if (initgroups_database != NULL) ++ { ++ assert (no_more == 0); ++ use_initgroups_entry = true; ++ } + } +- else +- no_more = __nss_database_lookup ("group", NULL, +- "compat [NOTFOUND=return] files", &nip); + ++ service_user *nip = initgroups_database; + while (! no_more) + { + long int prev_start = start; + +- fct = __nss_lookup_function (nip, "initgroups_dyn"); +- ++ initgroups_dyn_function fct = __nss_lookup_function (nip, ++ "initgroups_dyn"); + if (fct == NULL) + status = compat_call (nip, user, group, &start, size, groupsp, + limit, &errno); +@@ -119,7 +130,13 @@ internal_getgrouplist (const char *user, + if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN) + __libc_fatal ("illegal status in internal_getgrouplist"); + +- if (status != NSS_STATUS_SUCCESS ++ /* For compatibility reason we will continue to look for more ++ entries using the next service even though data has already ++ been found if the nsswitch.conf file contained only a 'groups' ++ line and no 'initgroups' line. If the latter is available ++ we always respect the status. This means that the default ++ for successful lookups is to return. */ ++ if ((use_initgroups_entry || status != NSS_STATUS_SUCCESS) + && nss_next_action (nip, status) == NSS_ACTION_RETURN) + break; + +Index: glibc-2.12-2-gc4ccff1/include/alloca.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/include/alloca.h ++++ glibc-2.12-2-gc4ccff1/include/alloca.h +@@ -14,6 +14,7 @@ extern void *__alloca (size_t __size); + + extern int __libc_use_alloca (size_t size) __attribute__ ((const)); + extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const)); ++libc_hidden_proto (__libc_alloca_cutoff) + + #define __MAX_ALLOCA_CUTOFF 65536 + +Index: glibc-2.12-2-gc4ccff1/nptl/Versions +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/Versions ++++ glibc-2.12-2-gc4ccff1/nptl/Versions +@@ -27,6 +27,7 @@ libc { + pthread_cond_broadcast; pthread_cond_timedwait; + } + GLIBC_PRIVATE { ++ __libc_alloca_cutoff; + # Internal libc interface to libpthread + __libc_dl_error_tsd; + } +Index: glibc-2.12-2-gc4ccff1/nptl/alloca_cutoff.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/alloca_cutoff.c ++++ glibc-2.12-2-gc4ccff1/nptl/alloca_cutoff.c +@@ -34,3 +34,4 @@ __libc_alloca_cutoff (size_t size) + assume the maximum available stack space. */ + ?: __MAX_ALLOCA_CUTOFF * 4)); + } ++libc_hidden_def (__libc_alloca_cutoff) +Index: glibc-2.12-2-gc4ccff1/nss/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nss/Makefile ++++ glibc-2.12-2-gc4ccff1/nss/Makefile +@@ -63,7 +63,7 @@ vpath %.c $(subdir-dirs) + + + libnss_files-routines := $(addprefix files-,$(databases)) \ +- files-have_o_cloexec ++ files-initgroups files-have_o_cloexec + distribute += files-XXX.c files-parse.c + + +Index: glibc-2.12-2-gc4ccff1/nss/Versions +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nss/Versions ++++ glibc-2.12-2-gc4ccff1/nss/Versions +@@ -95,5 +95,7 @@ libnss_files { + _nss_netgroup_parseline; + _nss_files_getpublickey; + _nss_files_getsecretkey; ++ ++ _nss_files_initgroups_dyn; + } + } +Index: glibc-2.12-2-gc4ccff1/nss/nss_files/files-hosts.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nss/nss_files/files-hosts.c ++++ glibc-2.12-2-gc4ccff1/nss/nss_files/files-hosts.c +@@ -129,19 +129,22 @@ _nss_files_get##name##_r (proto, + && _res_hconf.flags & HCONF_FLAG_MULTI) \ + { \ + /* We have to get all host entries from the file. */ \ +- const size_t tmp_buflen = MIN (buflen, 4096); \ +- char tmp_buffer[tmp_buflen] \ ++ size_t tmp_buflen = MIN (buflen, 4096); \ ++ char tmp_buffer_stack[tmp_buflen] \ + __attribute__ ((__aligned__ (__alignof__ (struct hostent_data))));\ ++ char *tmp_buffer = tmp_buffer_stack; \ + struct hostent tmp_result_buf; \ + int naddrs = 1; \ + int naliases = 0; \ + char *bufferend; \ ++ bool tmp_buffer_malloced = false; \ + \ + while (result->h_aliases[naliases] != NULL) \ + ++naliases; \ + \ + bufferend = (char *) &result->h_aliases[naliases + 1]; \ + \ ++ again: \ + while ((status = internal_getent (&tmp_result_buf, tmp_buffer, \ + tmp_buflen, errnop H_ERRNO_ARG \ + EXTRA_ARGS_VALUE)) \ +@@ -182,7 +185,7 @@ _nss_files_get##name##_r (proto, + } \ + /* If the real name is different add it also to the \ + aliases. This means that there is a duplication \ +- in the alias list but this is really the users \ ++ in the alias list but this is really the user's \ + problem. */ \ + if (strcmp (old_result->h_name, \ + tmp_result_buf.h_name) != 0) \ +@@ -204,7 +207,7 @@ _nss_files_get##name##_r (proto, + *errnop = ERANGE; \ + *herrnop = NETDB_INTERNAL; \ + status = NSS_STATUS_TRYAGAIN; \ +- break; \ ++ goto out; \ + } \ + \ + new_h_addr_list = \ +@@ -268,8 +271,54 @@ _nss_files_get##name##_r (proto, + } \ + } \ + \ +- if (status != NSS_STATUS_TRYAGAIN) \ ++ if (status == NSS_STATUS_TRYAGAIN) \ ++ { \ ++ size_t newsize = 2 * tmp_buflen; \ ++ if (tmp_buffer_malloced) \ ++ { \ ++ char *newp = realloc (tmp_buffer, newsize); \ ++ if (newp != NULL) \ ++ { \ ++ assert ((((uintptr_t) newp) \ ++ & (__alignof__ (struct hostent_data) - 1)) \ ++ == 0); \ ++ tmp_buffer = newp; \ ++ tmp_buflen = newsize; \ ++ goto again; \ ++ } \ ++ } \ ++ else if (!__libc_use_alloca (buflen + newsize)) \ ++ { \ ++ tmp_buffer = malloc (newsize); \ ++ if (tmp_buffer != NULL) \ ++ { \ ++ assert ((((uintptr_t) tmp_buffer) \ ++ & (__alignof__ (struct hostent_data) - 1)) \ ++ == 0); \ ++ tmp_buffer_malloced = true; \ ++ tmp_buflen = newsize; \ ++ goto again; \ ++ } \ ++ } \ ++ else \ ++ { \ ++ tmp_buffer \ ++ = extend_alloca (tmp_buffer, tmp_buflen, \ ++ newsize \ ++ + __alignof__ (struct hostent_data)); \ ++ tmp_buffer = (char *) (((uintptr_t) tmp_buffer \ ++ + __alignof__ (struct hostent_data) \ ++ - 1) \ ++ & ~(__alignof__ (struct hostent_data)\ ++ - 1)); \ ++ goto again; \ ++ } \ ++ } \ ++ else \ + status = NSS_STATUS_SUCCESS; \ ++ out: \ ++ if (tmp_buffer_malloced) \ ++ free (tmp_buffer); \ + } \ + \ + \ +Index: glibc-2.12-2-gc4ccff1/nss/nss_files/files-initgroups.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/nss/nss_files/files-initgroups.c +@@ -0,0 +1,137 @@ ++/* Initgroups handling in nss_files module. ++ Copyright (C) 2011 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <alloca.h> ++#include <errno.h> ++#include <grp.h> ++#include <nss.h> ++#include <stdio_ext.h> ++#include <string.h> ++#include <sys/param.h> ++ ++enum nss_status ++_nss_files_initgroups_dyn (const char *user, gid_t group, long int *start, ++ long int *size, gid_t **groupsp, long int limit, ++ int *errnop) ++{ ++ FILE *stream = fopen ("/etc/group", "re"); ++ if (stream == NULL) ++ { ++ *errnop = errno; ++ return *errnop == ENOMEM ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; ++ } ++ ++ /* No other thread using this stream. */ ++ __fsetlocking (stream, FSETLOCKING_BYCALLER); ++ ++ char *line = NULL; ++ size_t linelen = 0; ++ enum nss_status status = NSS_STATUS_SUCCESS; ++ bool any = false; ++ ++ size_t buflen = 1024; ++ void *buffer = alloca (buflen); ++ bool buffer_use_malloc = false; ++ ++ gid_t *groups = *groupsp; ++ ++ /* We have to iterate over the entire file. */ ++ while (!feof_unlocked (stream)) ++ { ++ ssize_t n = getline (&line, &linelen, stream); ++ if (n < 0) ++ { ++ if (! feof_unlocked (stream)) ++ status = ((*errnop = errno) == ENOMEM ++ ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL); ++ break; ++ } ++ ++ struct group grp; ++ int res; ++ while ((res = _nss_files_parse_grent (line, &grp, buffer, buflen, ++ errnop)) == -1) ++ { ++ size_t newbuflen = 2 * buflen; ++ if (buffer_use_malloc || ! __libc_use_alloca (buflen + newbuflen)) ++ { ++ void *newbuf = realloc (buffer_use_malloc ? buffer : NULL, ++ newbuflen); ++ if (newbuf == NULL) ++ { ++ *errnop = ENOMEM; ++ status = NSS_STATUS_TRYAGAIN; ++ goto out; ++ } ++ buffer = newbuf; ++ buflen = newbuflen; ++ buffer_use_malloc = true; ++ } ++ else ++ buffer = extend_alloca (buffer, buflen, newbuflen); ++ } ++ ++ if (res > 0 && grp.gr_gid != group) ++ for (char **m = grp.gr_mem; *m != NULL; ++m) ++ if (strcmp (*m, user) == 0) ++ { ++ /* Matches user. Insert this group. */ ++ if (*start == *size) ++ { ++ /* Need a bigger buffer. */ ++ if (limit > 0 && *size == limit) ++ /* We reached the maximum. */ ++ goto out; ++ ++ long int newsize; ++ if (limit <= 0) ++ newsize = 2 * *size; ++ else ++ newsize = MIN (limit, 2 * *size); ++ ++ gid_t *newgroups = realloc (groups, ++ newsize * sizeof (*groups)); ++ if (newgroups == NULL) ++ { ++ *errnop = ENOMEM; ++ status = NSS_STATUS_TRYAGAIN; ++ goto out; ++ } ++ *groupsp = groups = newgroups; ++ *size = newsize; ++ } ++ ++ groups[*start] = grp.gr_gid; ++ *start += 1; ++ any = true; ++ ++ break; ++ } ++ } ++ ++ out: ++ /* Free memory. */ ++ if (buffer_use_malloc) ++ free (buffer); ++ free (line); ++ ++ fclose (stream); ++ ++ return status == NSS_STATUS_SUCCESS && !any ? NSS_STATUS_NOTFOUND : status; ++} +Index: glibc-2.12-2-gc4ccff1/nss/nsswitch.conf +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nss/nsswitch.conf ++++ glibc-2.12-2-gc4ccff1/nss/nsswitch.conf +@@ -5,6 +5,7 @@ + + passwd: db files + group: db files ++initgroups: db [SUCCESS=continue] files + shadow: db files + gshadow: files + diff --git a/src/patches/glibc/glibc-rh711927.patch b/src/patches/glibc/glibc-rh711927.patch new file mode 100644 index 0000000..26949fe --- /dev/null +++ b/src/patches/glibc/glibc-rh711927.patch @@ -0,0 +1,503 @@ +Index: glibc-2.12-2-gc4ccff1/config.h.in +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/config.h.in ++++ glibc-2.12-2-gc4ccff1/config.h.in +@@ -201,6 +201,9 @@ + /* Define if multi-arch DSOs should be generated. */ + #undef USE_MULTIARCH + ++/* Define if Systemtap <sys/sdt.h> probes should be defined. */ ++#undef USE_STAP_PROBE ++ + /* + */ + +Index: glibc-2.12-2-gc4ccff1/configure +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/configure ++++ glibc-2.12-2-gc4ccff1/configure +@@ -830,6 +830,7 @@ enable_all_warnings + enable_multi_arch + enable_experimental_malloc + enable_nss_crypt ++enable_systemtap + with_cpu + ' + ac_precious_vars='build_alias +@@ -1501,6 +1502,7 @@ Optional Features: + --enable-experimental-malloc + enable experimental malloc features + --enable-nss-crypt enable libcrypt to use nss ++ --enable-systemtap enable systemtap static probe points [default=no] + + Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] +@@ -3932,6 +3934,79 @@ else + fi + + ++# Check whether --enable-systemtap was given. ++if test "${enable_systemtap+set}" = set; then ++ enableval=$enable_systemtap; systemtap=$enableval ++else ++ systemtap=no ++fi ++ ++if test x$systemtap != xno; then ++ ++ { $as_echo "$as_me:$LINENO: checking for systemtap static probe support" >&5 ++$as_echo_n "checking for systemtap static probe support... " >&6; } ++if test "${libc_cv_sdt+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ old_CFLAGS="$CFLAGS" ++ CFLAGS="-std=gnu99 $CFLAGS" ++ cat >conftest.$ac_ext <<_ACEOF ++#include <sys/sdt.h> ++void foo (int i, void *p) ++{ ++ asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) "" ++ :: STAP_PROBE_ASM_OPERANDS (2, i, p)); ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *"* | *`* | *\*) ac_try_echo=$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo=""$as_me:$LINENO: $ac_try_echo"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: $? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ libc_cv_sdt=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ libc_cv_sdt=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$old_CFLAGS" ++fi ++{ $as_echo "$as_me:$LINENO: result: $libc_cv_sdt" >&5 ++$as_echo "$libc_cv_sdt" >&6; } ++ if test $libc_cv_sdt = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define USE_STAP_PROBE 1 ++_ACEOF ++ ++ else ++ { { $as_echo "$as_me:$LINENO: error: in `$ac_pwd':" >&5 ++$as_echo "$as_me: error: in `$ac_pwd':" >&2;} ++{ { $as_echo "$as_me:$LINENO: error: systemtap support needs sys/sdt.h with asm support ++See `config.log' for more details." >&5 ++$as_echo "$as_me: error: systemtap support needs sys/sdt.h with asm support ++See `config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; }; } ++ fi ++ ++fi ++ ++ + # The way shlib-versions is used to generate soversions.mk uses a + # fairly simplistic model for name recognition that can't distinguish + # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os +Index: glibc-2.12-2-gc4ccff1/configure.in +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/configure.in ++++ glibc-2.12-2-gc4ccff1/configure.in +@@ -319,6 +319,29 @@ else + fi + AC_SUBST(libc_cv_nss_crypt) + ++AC_ARG_ENABLE([systemtap], ++ [AS_HELP_STRING([--enable-systemtap], ++ [enable systemtap static probe points @<:@default=no@:>@])], ++ [systemtap=$enableval], ++ [systemtap=no]) ++AS_IF([test x$systemtap != xno], [ ++ AC_CACHE_CHECK([for systemtap static probe support], libc_cv_sdt, [dnl ++ old_CFLAGS="$CFLAGS" ++ CFLAGS="-std=gnu99 $CFLAGS" ++ AC_COMPILE_IFELSE([#include <sys/sdt.h> ++void foo (int i, void *p) ++{ ++ asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) "" ++ :: STAP_PROBE_ASM_OPERANDS (2, i, p)); ++}], [libc_cv_sdt=yes], [libc_cv_sdt=no]) ++ CFLAGS="$old_CFLAGS"]) ++ if test $libc_cv_sdt = yes; then ++ AC_DEFINE([USE_STAP_PROBE]) ++ else ++ AC_MSG_FAILURE([systemtap support needs sys/sdt.h with asm support]) ++ fi ++]) ++ + # The way shlib-versions is used to generate soversions.mk uses a + # fairly simplistic model for name recognition that can't distinguish + # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os +Index: glibc-2.12-2-gc4ccff1/elf/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile ++++ glibc-2.12-2-gc4ccff1/elf/Makefile +@@ -458,7 +458,8 @@ CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D' + CFLAGS-dl-cache.c = $(SYSCONF-FLAGS) + CFLAGS-cache.c = $(SYSCONF-FLAGS) + +-CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1) ++CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\ ++ -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld) + + test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names)))) + generated += $(addsuffix .so,$(strip $(modules-names))) +Index: glibc-2.12-2-gc4ccff1/elf/dl-close.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-close.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-close.c +@@ -32,6 +32,7 @@ + #include <sys/mman.h> + #include <sysdep-cancel.h> + #include <tls.h> ++#include <stap-probe.h> + + + /* Type of the constructor functions. */ +@@ -469,6 +470,7 @@ _dl_close_worker (struct link_map *map) + struct r_debug *r = _dl_debug_initialize (0, nsid); + r->r_state = RT_DELETE; + _dl_debug_state (); ++ LIBC_PROBE (rtld_unmap_start, 2, nsid, r); + + if (unload_global) + { +@@ -722,6 +724,7 @@ _dl_close_worker (struct link_map *map) + /* Notify the debugger those objects are finalized and gone. */ + r->r_state = RT_CONSISTENT; + _dl_debug_state (); ++ LIBC_PROBE (rtld_unmap_complete, 2, nsid, r); + + /* Recheck if we need to retry, release the lock. */ + out: +Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c +@@ -36,6 +36,7 @@ + #include <stackinfo.h> + #include <caller.h> + #include <sysdep.h> ++#include <stap-probe.h> + + #include <dl-dst.h> + +@@ -806,7 +807,7 @@ _dl_init_paths (const char *llp) + static void + __attribute__ ((noreturn, noinline)) + lose (int code, int fd, const char *name, char *realname, struct link_map *l, +- const char *msg, struct r_debug *r) ++ const char *msg, struct r_debug *r, Lmid_t nsid) + { + /* The file might already be closed. */ + if (fd != -1) +@@ -818,6 +819,7 @@ lose (int code, int fd, const char *name + { + r->r_state = RT_CONSISTENT; + _dl_debug_state (); ++ LIBC_PROBE (rtld_map_complete, 2, nsid, r); + } + + _dl_signal_error (code, name, NULL, msg); +@@ -856,7 +858,7 @@ _dl_map_object_from_fd (const char *name + errval = errno; + call_lose: + lose (errval, fd, name, realname, l, errstring, +- make_consistent ? r : NULL); ++ make_consistent ? r : NULL, nsid); + } + + /* Look again to see if the real name matched another already loaded. */ +@@ -963,6 +965,7 @@ _dl_map_object_from_fd (const char *name + linking has not been used before. */ + r->r_state = RT_ADD; + _dl_debug_state (); ++ LIBC_PROBE (rtld_map_start, 2, nsid, r); + make_consistent = true; + } + else +@@ -1656,7 +1659,7 @@ open_verify (const char *name, struct fi + name = strdupa (realname); + free (realname); + } +- lose (errval, fd, name, NULL, NULL, errstring, NULL); ++ lose (errval, fd, name, NULL, NULL, errstring, NULL, 0); + } + + /* See whether the ELF header is what we expect. */ +Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c +@@ -33,6 +33,7 @@ + #include <caller.h> + #include <sysdep-cancel.h> + #include <tls.h> ++#include <stap-probe.h> + + #include <dl-dst.h> + +@@ -297,6 +298,7 @@ dl_open_worker (void *a) + struct r_debug *r = _dl_debug_initialize (0, args->nsid); + r->r_state = RT_CONSISTENT; + _dl_debug_state (); ++ LIBC_PROBE (rtld_map_complete, 2, args->nsid, r); + + /* Only do lazy relocation if `LD_BIND_NOW' is not set. */ + int reloc_mode = mode & __RTLD_AUDIT; +@@ -309,10 +311,18 @@ dl_open_worker (void *a) + struct link_map *l = new; + while (l->l_next) + l = l->l_next; ++ int relocation_in_progress = 0; + while (1) + { + if (! l->l_real->l_relocated) + { ++ if (! relocation_in_progress) ++ { ++ /* Notify the debugger that relocations are about to happen. */ ++ LIBC_PROBE (rtld_reloc_start, 2, args->nsid, r); ++ relocation_in_progress = 1; ++ } ++ + #ifdef SHARED + if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) + { +@@ -460,6 +470,10 @@ cannot load any more object with static + _dl_fatal_printf (N_("\ + TLS generation counter wrapped! Please report this.")); + ++ /* Notify the debugger all new objects have been relocated. */ ++ if (relocation_in_progress) ++ LIBC_PROBE (rtld_reloc_complete, 2, args->nsid, r); ++ + /* Run the initializer functions of new objects. */ + _dl_init (new, args->argc, args->argv, args->env); + +Index: glibc-2.12-2-gc4ccff1/elf/rtld-Rules +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld-Rules ++++ glibc-2.12-2-gc4ccff1/elf/rtld-Rules +@@ -122,6 +122,6 @@ ifdef rtld-depfiles + endif + + # This here is the whole point of all the shenanigans. +-rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 ++rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld + + endif +Index: glibc-2.12-2-gc4ccff1/elf/rtld.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c ++++ glibc-2.12-2-gc4ccff1/elf/rtld.c +@@ -40,6 +40,7 @@ + #include <dl-osinfo.h> + #include <dl-procinfo.h> + #include <tls.h> ++#include <stap-probe.h> + + #include <assert.h> + +@@ -1656,6 +1657,7 @@ ERROR: ld.so: object '%s' cannot be load + /* We start adding objects. */ + r->r_state = RT_ADD; + _dl_debug_state (); ++ LIBC_PROBE (rtld_init_start, 2, LM_ID_BASE, r); + + /* Auditing checkpoint: we are ready to signal that the initial map + is being constructed. */ +@@ -2353,6 +2355,7 @@ ERROR: ld.so: object '%s' cannot be load + r = _dl_debug_initialize (0, LM_ID_BASE); + r->r_state = RT_CONSISTENT; + _dl_debug_state (); ++ LIBC_PROBE (rtld_init_complete, 2, LM_ID_BASE, r); + + #ifndef MAP_COPY + /* We must munmap() the cache file. */ +Index: glibc-2.12-2-gc4ccff1/extra-lib.mk +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/extra-lib.mk ++++ glibc-2.12-2-gc4ccff1/extra-lib.mk +@@ -101,4 +101,4 @@ ifneq (,$(cpp-srcs-left)) + include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left)) + endif + +-CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 ++CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 -DIN_LIB=$(lib) +Index: glibc-2.12-2-gc4ccff1/include/stap-probe.h +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/include/stap-probe.h +@@ -0,0 +1,140 @@ ++/* Macros for defining Systemtap <sys/sdt.h> static probe points. ++ Copyright (C) 2011 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _STAP_PROBE_H ++#define _STAP_PROBE_H 1 ++ ++#ifdef USE_STAP_PROBE ++ ++# include <sys/sdt.h> ++ ++/* Our code uses one macro LIBC_PROBE (name, n, arg1, ..., argn). ++ ++ Without USE_STAP_PROBE, that does nothing but evaluates all ++ its arguments (to prevent bit rot, unlike e.g. assert). ++ ++ Systemtap's header defines the macros STAP_PROBE (provider, name) and ++ STAP_PROBEn (provider, name, arg1, ..., argn). For "provider" we paste ++ in the IN_LIB name (libc, libpthread, etc.) automagically. */ ++ ++# ifndef NOT_IN_libc ++# define IN_LIB libc ++# elif !defined IN_LIB ++/* This is intentionally defined with extra unquoted commas in it so ++ that macro substitution will bomb out when it is used. We don't ++ just use #error here, so that this header can be included by ++ other headers that use LIBC_PROBE inside their own macros. We ++ only want such headers to fail to compile if those macros are ++ actually used in a context where IN_LIB has not been defined. */ ++# define IN_LIB ,,,missing -DIN_LIB=... -- not extra-lib.mk?,,, ++# endif ++ ++# define LIBC_PROBE(name, n, ...) \ ++ LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__) ++ ++# define LIBC_PROBE_1(lib, name, n, ...) \ ++ STAP_PROBE##n (lib, name, ## __VA_ARGS__) ++ ++# define STAP_PROBE0 STAP_PROBE ++ ++# define LIBC_PROBE_ASM(name, template) \ ++ STAP_PROBE_ASM (IN_LIB, name, template) ++ ++# define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS ++ ++#else /* Not USE_STAP_PROBE. */ ++ ++# ifndef __ASSEMBLER__ ++# define LIBC_PROBE(name, n, ...) DUMMY_PROBE##n (__VA_ARGS__) ++# else ++# define LIBC_PROBE(name, n, ...) /* Nothing. */ ++# endif ++ ++# define LIBC_PROBE_ASM(name, template) /* Nothing. */ ++# define LIBC_PROBE_ASM_OPERANDS(n, ...) /* Nothing. */ ++ ++/* This silliness lets us evaluate all the arguments for each arity ++ of probe. My kingdom for a real macro system. */ ++ ++# define DUMMY_PROBE0() do {} while (0) ++# define DUMMY_PROBE1(a1) do {} while ((void) (a1), 0) ++# define DUMMY_PROBE2(a1, a2) do {} while ((void) (a1), \ ++ (void) (a2), 0) ++# define DUMMY_PROBE3(a1, a2, a3) do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), 0) ++# define DUMMY_PROBE4(a1, a2, a3, a4) do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), 0) ++# define DUMMY_PROBE5(a1, a2, a3, a4, a5) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), 0) ++# define DUMMY_PROBE6(a1, a2, a3, a4, a5, a6) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), \ ++ (void) (a6), 0) ++# define DUMMY_PROBE7(a1, a2, a3, a4, a5, a6, a7) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), \ ++ (void) (a6), \ ++ (void) (a7), 0) ++# define DUMMY_PROBE8(a1, a2, a3, a4, a5, a6, a7, a8) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), \ ++ (void) (a6), \ ++ (void) (a7), \ ++ (void) (a8), 0) ++# define DUMMY_PROBE9(a1, a2, a3, a4, a5, a6, a7, a8, a9) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), \ ++ (void) (a6), \ ++ (void) (a7), \ ++ (void) (a8), \ ++ (void) (a9), 0) ++# define DUMMY_PROBE10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), \ ++ (void) (a6), \ ++ (void) (a7), \ ++ (void) (a8), \ ++ (void) (a9), \ ++ (void) (a10), 0) ++ ++#endif /* USE_STAP_PROBE. */ ++ ++#endif /* stap-probe.h */ +Index: glibc-2.12-2-gc4ccff1/scripts/check-local-headers.sh +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/scripts/check-local-headers.sh ++++ glibc-2.12-2-gc4ccff1/scripts/check-local-headers.sh +@@ -31,6 +31,8 @@ fgrep -v "$includedir/asm" | + fgrep -v "$includedir/linux" | + fgrep -v "$includedir/selinux" | + fgrep -v "$includedir/sys/capability.h" | ++fgrep -v "$includedir/sys/sdt.h" | ++fgrep -v "$includedir/sys/sdt-config.h" | + fgrep -v "$includedir/gd" | + fgrep -v "$includedir/nss3"; then + # If we found a match something is wrong. diff --git a/src/patches/glibc/glibc-rh711987.patch b/src/patches/glibc/glibc-rh711987.patch new file mode 100644 index 0000000..bd286e1 --- /dev/null +++ b/src/patches/glibc/glibc-rh711987.patch @@ -0,0 +1,136 @@ +2010-08-11 Ulrich Drepper drepper@redhat.com + + * sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs): Add f_flags + field. + (struct statfs64): Likewise. + (_STATFS_F_FLAGS): Define. + * sysdeps/unix/sysv/linux/s390/bits/statfs.h: Likewise. + * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags): + Don't define if __ASSUME_STATFS_F_FLAGS is defined. + (ST_VALID): Define locally. + (INTERNAL_STATVFS): If f_flags has ST_VALID set don't call + __statvfs_getflags, use the provided value. + * sysdeps/unix/sysv/linux/kernel-features.h: Define + __ASSUME_STATFS_F_FLAGS. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/statfs.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/bits/statfs.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/statfs.h +@@ -42,7 +42,8 @@ struct statfs + __fsid_t f_fsid; + __SWORD_TYPE f_namelen; + __SWORD_TYPE f_frsize; +- __SWORD_TYPE f_spare[5]; ++ __SWORD_TYPE f_flags; ++ __SWORD_TYPE f_spare[4]; + }; + + #ifdef __USE_LARGEFILE64 +@@ -58,10 +59,12 @@ struct statfs64 + __fsid_t f_fsid; + __SWORD_TYPE f_namelen; + __SWORD_TYPE f_frsize; +- __SWORD_TYPE f_spare[5]; ++ __SWORD_TYPE f_flags; ++ __SWORD_TYPE f_spare[4]; + }; + #endif + + /* Tell code we have these members. */ + #define _STATFS_F_NAMELEN + #define _STATFS_F_FRSIZE ++#define _STATFS_F_FLAGS +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/internal_statvfs.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c +@@ -29,6 +29,11 @@ + #include <sys/statfs.h> + #include <sys/statvfs.h> + #include "linux_fsinfo.h" ++#include "kernel-features.h" ++ ++ ++/* Special internal-only bit value. */ ++#define ST_VALID 0x0020 + + + #ifndef STATFS +@@ -37,6 +42,7 @@ + # define INTERNAL_STATVFS __internal_statvfs + + ++# ifndef __ASSUME_STATFS_F_FLAGS + int + __statvfs_getflags (const char *name, int fstype, struct stat64 *st) + { +@@ -200,6 +206,7 @@ __statvfs_getflags (const char *name, in + + return result; + } ++# endif + #else + extern int __statvfs_getflags (const char *name, int fstype, + struct stat64 *st); +@@ -240,9 +247,14 @@ INTERNAL_STATVFS (const char *name, stru + /* XXX I have no idea how to compute f_favail. Any idea??? */ + buf->f_favail = buf->f_ffree; + +- /* Determining the flags is tricky. We have to read /proc/mounts or +- the /etc/mtab file and search for the entry which matches the given +- file. The way we can test for matching filesystem is using the +- device number. */ +- buf->f_flag = __statvfs_getflags (name, fsbuf->f_type, st); ++#ifndef __ASSUME_STATFS_F_FLAGS ++ if ((fsbuf->f_flags & ST_VALID) == 0) ++ /* Determining the flags is tricky. We have to read /proc/mounts or ++ the /etc/mtab file and search for the entry which matches the given ++ file. The way we can test for matching filesystem is using the ++ device number. */ ++ buf->f_flag = __statvfs_getflags (name, fsbuf->f_type, st); ++ else ++#endif ++ buf->f_flag = fsbuf->f_flags ^ ST_VALID; + } +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/kernel-features.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h +@@ -552,3 +552,8 @@ + #if __LINUX_KERNEL_VERSION >= 0x020621 + # define __ASSUME_RECVMMSG 1 + #endif ++ ++/* statfs fills in f_flags since 2.6.36. */ ++#if __LINUX_KERNEL_VERSION >= 0x020624 ++# define __ASSUME_STATFS_F_FLAGS 1 ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/statfs.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/s390/bits/statfs.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/statfs.h +@@ -42,7 +42,8 @@ struct statfs + __fsid_t f_fsid; + int f_namelen; + int f_frsize; +- int f_spare[5]; ++ int f_flags; ++ int f_spare[4]; + }; + + #ifdef __USE_LARGEFILE64 +@@ -58,10 +59,12 @@ struct statfs64 + __fsid_t f_fsid; + int f_namelen; + int f_frsize; +- int f_spare[5]; ++ int f_flags; ++ int f_spare[4]; + }; + #endif + + /* Tell code we have this member. */ + #define _STATFS_F_NAMELEN + #define _STATFS_F_FRSIZE ++#define _STATFS_F_FLAGS diff --git a/src/patches/glibc/glibc-rh712248.patch b/src/patches/glibc/glibc-rh712248.patch new file mode 100644 index 0000000..afadc66 --- /dev/null +++ b/src/patches/glibc/glibc-rh712248.patch @@ -0,0 +1,69 @@ +2011-07-07 Ulrich Drepper drepper@gmail.com + + [BZ #12868] + * sysdeps/unix/sysv/linux/linux_fsinfo.h: Define Lustre constants. + * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags): + Handle Lustre. + * sysdeps/unix/sysv/linux/pathconf.c (__statfs_link_max): Likewise. + (__statfs_filesize_max): Likewise. + Patch mostly by Andreas Dilger adilger@whamcloud.com. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/internal_statvfs.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c +@@ -109,6 +109,9 @@ __statvfs_getflags (const char *name, in + case LOGFS_MAGIC_U32: + fsname = "logfs"; + break; ++ case LUSTRE_SUPER_MAGIC: ++ fsname = "lustre"; ++ break; + } + + FILE *mtab = __setmntent ("/proc/mounts", "r"); +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/linux_fsinfo.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/linux_fsinfo.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/linux_fsinfo.h +@@ -77,6 +77,9 @@ + /* Constant that identifies the `logfsŽ filesystem. */ + #define LOGFS_MAGIC_U32 0xc97e8168u + ++/* Constant that identifies the `lustre' filesystem. */ ++#define LUSTRE_SUPER_MAGIC 0x0BD00BD0 ++ + /* Constants that identify the `minix2' filesystem. */ + #define MINIX2_SUPER_MAGIC 0x2468 + #define MINIX2_SUPER_MAGIC2 0x2478 +@@ -144,6 +147,8 @@ + /* Maximum link counts. */ + #define COH_LINK_MAX 10000 + #define EXT2_LINK_MAX 32000 ++#define EXT4_LINK_MAX 65000 ++#define LUSTRE_LINK_MAX EXT4_LINK_MAX + #define MINIX2_LINK_MAX 65530 + #define MINIX_LINK_MAX 250 + #define REISERFS_LINK_MAX 64535 +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/pathconf.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/pathconf.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/pathconf.c +@@ -104,6 +104,9 @@ __statfs_link_max (int result, const str + case XFS_SUPER_MAGIC: + return XFS_LINK_MAX; + ++ case LUSTRE_SUPER_MAGIC: ++ return LUSTRE_LINK_MAX; ++ + default: + return LINUX_LINK_MAX; + } +@@ -136,6 +139,7 @@ __statfs_filesize_max (int result, const + case UDF_SUPER_MAGIC: + case JFS_SUPER_MAGIC: + case VXFS_SUPER_MAGIC: ++ case LUSTRE_SUPER_MAGIC: + return 64; + + case MSDOS_SUPER_MAGIC: diff --git a/src/patches/glibc/glibc-rh713134.patch b/src/patches/glibc/glibc-rh713134.patch new file mode 100644 index 0000000..dc979be --- /dev/null +++ b/src/patches/glibc/glibc-rh713134.patch @@ -0,0 +1,36 @@ +2011-03-18 Andreas Schwab schwab@redhat.com + + * elf/ldd.bash.in: Never run file directly. + +Index: glibc-2.12-2-gc4ccff1/elf/ldd.bash.in +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/ldd.bash.in ++++ glibc-2.12-2-gc4ccff1/elf/ldd.bash.in +@@ -167,18 +167,6 @@ warning: you do not have execution permi + fi + done + case $ret in +- 0) +- # If the program exits with exit code 5, it means the process has been +- # invoked with __libc_enable_secure. Fall back to running it through +- # the dynamic linker. +- try_trace "$file" +- rc=$? +- if [ $rc = 5 ]; then +- try_trace "$RTLD" "$file" +- rc=$? +- fi +- [ $rc = 0 ] || result=1 +- ;; + 1) + # This can be a non-ELF binary or no binary at all. + nonelf "$file" || { +@@ -186,7 +174,7 @@ warning: you do not have execution permi + result=1 + } + ;; +- 2) ++ 0|2) + try_trace "$RTLD" "$file" || result=1 + ;; + *) diff --git a/src/patches/glibc/glibc-rh714823.patch b/src/patches/glibc/glibc-rh714823.patch new file mode 100644 index 0000000..8bd121b --- /dev/null +++ b/src/patches/glibc/glibc-rh714823.patch @@ -0,0 +1,126 @@ +2011-06-28 Andreas Schwab schwab@redhat.com + + * sysdeps/posix/getaddrinfo.c (gaih_inet): Don't use gethostbyaddr + to determine canonical name. + +2011-06-22 Andreas Schwab schwab@redhat.com + + * sysdeps/posix/getaddrinfo.c (gaih_inet): Fix last change. + +2011-06-21 Ulrich Drepper drepper@gmail.com + + [BZ #12885] + * sysdeps/posix/getaddrinfo.c (gaih_inet): When looking up only IPv6 + addresses using gethostbyname4_r ignore IPv4 addresses. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/getaddrinfo.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c +@@ -512,10 +512,11 @@ gaih_inet (const char *name, const struc + + /* If we do not have to look for IPv4 and IPv6 together, use + the simple, old functions. */ +- if (req->ai_family == AF_INET +- || (req->ai_family == AF_INET6 +- && ((req->ai_flags & AI_V4MAPPED) == 0 +- || (req->ai_flags & AI_ALL) == 0))) ++ if ((req->ai_family == AF_INET ++ || (req->ai_family == AF_INET6 ++ && ((req->ai_flags & AI_V4MAPPED) == 0 ++ || (req->ai_flags & AI_ALL) == 0))) ++ && (req->ai_flags & AI_CANONNAME) == 0) + { + int family = req->ai_family; + size_t tmpbuflen = 512; +@@ -731,16 +732,44 @@ gaih_inet (const char *name, const struc + tmpbuflen, 2 * tmpbuflen); + } + +- no_inet6_data = no_data; +- + if (status == NSS_STATUS_SUCCESS) + { ++ assert (!no_data); ++ no_data = 1; ++ + if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL) + canon = (*pat)->name; + + while (*pat != NULL) +- pat = &((*pat)->next); ++ { ++ if ((*pat)->family == AF_INET ++ && req->ai_family == AF_INET6 ++ && (req->ai_flags & AI_V4MAPPED) != 0) ++ { ++ uint32_t *pataddr = (*pat)->addr; ++ (*pat)->family = AF_INET6; ++ pataddr[3] = pataddr[0]; ++ pataddr[2] = htonl (0xffff); ++ pataddr[1] = 0; ++ pataddr[0] = 0; ++ pat = &((*pat)->next); ++ no_data = 0; ++ } ++ else if (req->ai_family == AF_UNSPEC ++ || (*pat)->family == req->ai_family) ++ { ++ pat = &((*pat)->next); ++ ++ no_data = 0; ++ if (req->ai_family == AF_INET6) ++ got_ipv6 = true; ++ } ++ else ++ *pat = ((*pat)->next); ++ } + } ++ ++ no_inet6_data = no_data; + } + else + { +@@ -905,39 +934,9 @@ gaih_inet (const char *name, const struc + { + if (canon == NULL) + { +- struct hostent *h = NULL; +- int herrno; +- struct hostent th; +- size_t tmpbuflen = 512; +- char *tmpbuf = NULL; +- +- do +- { +- tmpbuf = extend_alloca (tmpbuf, tmpbuflen, tmpbuflen * 2); +- rc = __gethostbyaddr_r (at2->addr, +- ((at2->family == AF_INET6) +- ? sizeof (struct in6_addr) +- : sizeof (struct in_addr)), +- at2->family, &th, tmpbuf, +- tmpbuflen, &h, &herrno); +- } +- while (rc == ERANGE && herrno == NETDB_INTERNAL); +- +- if (rc != 0 && herrno == NETDB_INTERNAL) +- { +- __set_h_errno (herrno); +- return -EAI_SYSTEM; +- } +- +- if (h != NULL) +- canon = h->h_name; +- else +- { +- assert (orig_name != NULL); +- /* If the canonical name cannot be determined, use +- the passed in string. */ +- canon = orig_name; +- } ++ /* If the canonical name cannot be determined, use ++ the passed in string. */ ++ canon = orig_name; + } + + #ifdef HAVE_LIBIDN diff --git a/src/patches/glibc/glibc-rh718057.patch b/src/patches/glibc/glibc-rh718057.patch new file mode 100644 index 0000000..d331996 --- /dev/null +++ b/src/patches/glibc/glibc-rh718057.patch @@ -0,0 +1,109 @@ +2011-07-01 Andreas Schwab schwab@redhat.com + + * nis/nss_compat/compat-pwd.c (getpwent_next_nss_netgr): Query NIS + domain only when needed. + +Index: glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-pwd.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nis/nss_compat/compat-pwd.c ++++ glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-pwd.c +@@ -360,7 +360,7 @@ getpwent_next_nss_netgr (const char *nam + char *group, char *buffer, size_t buflen, + int *errnop) + { +- char *curdomain, *host, *user, *domain, *p2; ++ char *curdomain = NULL, *host, *user, *domain, *p2; + int status; + size_t p2len; + +@@ -369,15 +369,7 @@ getpwent_next_nss_netgr (const char *nam + if (!nss_getpwnam_r) + return NSS_STATUS_UNAVAIL; + +- if (yp_get_default_domain (&curdomain) != YPERR_SUCCESS) +- { +- ent->netgroup = false; +- ent->first = false; +- give_pwd_free (&ent->pwd); +- return NSS_STATUS_UNAVAIL; +- } +- +- if (ent->first == true) ++ if (ent->first) + { + memset (&ent->netgrdata, 0, sizeof (struct __netgrent)); + __internal_setnetgrent (group, &ent->netgrdata); +@@ -403,8 +395,19 @@ getpwent_next_nss_netgr (const char *nam + if (user == NULL || user[0] == '-') + continue; + +- if (domain != NULL && strcmp (curdomain, domain) != 0) +- continue; ++ if (domain != NULL) ++ { ++ if (curdomain == NULL ++ && yp_get_default_domain (&curdomain) != YPERR_SUCCESS) ++ { ++ __internal_endnetgrent (&ent->netgrdata); ++ ent->netgroup = false; ++ give_pwd_free (&ent->pwd); ++ return NSS_STATUS_UNAVAIL; ++ } ++ if (strcmp (curdomain, domain) != 0) ++ continue; ++ } + + /* If name != NULL, we are called from getpwnam. */ + if (name != NULL) +Index: glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-spwd.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nis/nss_compat/compat-spwd.c ++++ glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-spwd.c +@@ -317,7 +317,7 @@ getspent_next_nss_netgr (const char *nam + char *group, char *buffer, size_t buflen, + int *errnop) + { +- char *curdomain, *host, *user, *domain, *p2; ++ char *curdomain = NULL, *host, *user, *domain, *p2; + size_t p2len; + + if (!nss_getspnam_r) +@@ -327,15 +327,7 @@ getspent_next_nss_netgr (const char *nam + if (ent->setent_status != NSS_STATUS_SUCCESS) + return ent->setent_status; + +- if (yp_get_default_domain (&curdomain) != YPERR_SUCCESS) +- { +- ent->netgroup = false; +- ent->first = false; +- give_spwd_free (&ent->pwd); +- return NSS_STATUS_UNAVAIL; +- } +- +- if (ent->first == true) ++ if (ent->first) + { + memset (&ent->netgrdata, 0, sizeof (struct __netgrent)); + __internal_setnetgrent (group, &ent->netgrdata); +@@ -362,8 +354,19 @@ getspent_next_nss_netgr (const char *nam + if (user == NULL || user[0] == '-') + continue; + +- if (domain != NULL && strcmp (curdomain, domain) != 0) +- continue; ++ if (domain != NULL) ++ { ++ if (curdomain == NULL ++ && yp_get_default_domain (&curdomain) != YPERR_SUCCESS) ++ { ++ __internal_endnetgrent (&ent->netgrdata); ++ ent->netgroup = false; ++ give_spwd_free (&ent->pwd); ++ return NSS_STATUS_UNAVAIL; ++ } ++ if (strcmp (curdomain, domain) != 0) ++ continue; ++ } + + /* If name != NULL, we are called from getpwnam */ + if (name != NULL) diff --git a/src/patches/glibc/glibc-rh726517.patch b/src/patches/glibc/glibc-rh726517.patch new file mode 100644 index 0000000..26addbf --- /dev/null +++ b/src/patches/glibc/glibc-rh726517.patch @@ -0,0 +1,173 @@ +Index: glibc-2.12-2-gc4ccff1/malloc/arena.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/malloc/arena.c ++++ glibc-2.12-2-gc4ccff1/malloc/arena.c +@@ -870,7 +870,7 @@ heap_trim(heap, pad) heap_info *heap; si + heap = prev_heap; + if(!prev_inuse(p)) { /* consolidate backward */ + p = prev_chunk(p); +- unlink(p, bck, fwd); ++ unlink(ar_ptr, p, bck, fwd); + } + assert(((unsigned long)((char*)p + new_size) & (pagesz-1)) == 0); + assert( ((char*)p + new_size) == ((char*)heap + heap->size) ); +Index: glibc-2.12-2-gc4ccff1/malloc/hooks.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/malloc/hooks.c ++++ glibc-2.12-2-gc4ccff1/malloc/hooks.c +@@ -219,7 +219,9 @@ top_check() + (char*)t + chunksize(t) == mp_.sbrk_base + main_arena.system_mem))) + return 0; + ++ mutex_unlock(&main_arena); + malloc_printerr (check_action, "malloc: top chunk is corrupt", t); ++ mutex_lock(&main_arena); + + /* Try to set up a new top chunk. */ + brk = MORECORE(0); +Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/malloc/malloc.c ++++ glibc-2.12-2-gc4ccff1/malloc/malloc.c +@@ -2109,12 +2109,14 @@ typedef struct malloc_chunk* mbinptr; + #define last(b) ((b)->bk) + + /* Take a chunk off a bin list */ +-#define unlink(P, BK, FD) { \ ++#define unlink(AV, P, BK, FD) { \ + FD = P->fd; \ + BK = P->bk; \ +- if (__builtin_expect (FD->bk != P || BK->fd != P, 0)) \ ++ if (__builtin_expect (FD->bk != P || BK->fd != P, 0)) { \ ++ mutex_unlock(&(AV)->mutex); \ + malloc_printerr (check_action, "corrupted double-linked list", P); \ +- else { \ ++ mutex_lock(&(AV)->mutex); \ ++ } else { \ + FD->bk = BK; \ + BK->fd = FD; \ + if (!in_smallbin_range (P->size) \ +@@ -3257,7 +3259,9 @@ static Void_t* sYSMALLOc(nb, av) INTERNA + + else if (contiguous(av) && old_size && brk < old_end) { + /* Oops! Someone else killed our space.. Can't touch anything. */ ++ mutex_unlock(&av->mutex); + malloc_printerr (3, "break adjusted to free malloc space", brk); ++ mutex_lock(&av->mutex); + } + + /* +@@ -4305,7 +4309,9 @@ _int_malloc(mstate av, size_t bytes) + { + errstr = "malloc(): memory corruption (fast)"; + errout: ++ mutex_unlock(&av->mutex); + malloc_printerr (check_action, errstr, chunk2mem (victim)); ++ mutex_lock(&av->mutex); + return NULL; + } + #ifndef ATOMIC_FASTBINS +@@ -4393,8 +4399,12 @@ _int_malloc(mstate av, size_t bytes) + bck = victim->bk; + if (__builtin_expect (victim->size <= 2 * SIZE_SZ, 0) + || __builtin_expect (victim->size > av->system_mem, 0)) +- malloc_printerr (check_action, "malloc(): memory corruption", +- chunk2mem (victim)); ++ { ++ void *p = chunk2mem(victim); ++ mutex_unlock(&av->mutex); ++ malloc_printerr (check_action, "malloc(): memory corruption", p); ++ mutex_lock(&av->mutex); ++ } + size = chunksize(victim); + + /* +@@ -4535,7 +4545,7 @@ _int_malloc(mstate av, size_t bytes) + victim = victim->fd; + + remainder_size = size - nb; +- unlink(victim, bck, fwd); ++ unlink(av, victim, bck, fwd); + + /* Exhaust */ + if (remainder_size < MINSIZE) { +@@ -4633,7 +4643,7 @@ _int_malloc(mstate av, size_t bytes) + remainder_size = size - nb; + + /* unlink */ +- unlink(victim, bck, fwd); ++ unlink(av, victim, bck, fwd); + + /* Exhaust */ + if (remainder_size < MINSIZE) { +@@ -4789,10 +4799,14 @@ _int_free(mstate av, mchunkptr p) + errstr = "free(): invalid pointer"; + errout: + #ifdef ATOMIC_FASTBINS +- if (! have_lock && locked) ++ if (have_lock || locked) + (void)mutex_unlock(&av->mutex); + #endif + malloc_printerr (check_action, errstr, chunk2mem(p)); ++#ifdef ATOMIC_FASTBINS ++ if (have_lock) ++ mutex_lock(&av->mutex); ++#endif + return; + } + /* We know that each chunk is at least MINSIZE bytes in size. */ +@@ -4961,7 +4975,7 @@ _int_free(mstate av, mchunkptr p) + prevsize = p->prev_size; + size += prevsize; + p = chunk_at_offset(p, -((long) prevsize)); +- unlink(p, bck, fwd); ++ unlink(av, p, bck, fwd); + } + + if (nextchunk != av->top) { +@@ -4970,7 +4984,7 @@ _int_free(mstate av, mchunkptr p) + + /* consolidate forward */ + if (!nextinuse) { +- unlink(nextchunk, bck, fwd); ++ unlink(av, nextchunk, bck, fwd); + size += nextsize; + } else + clear_inuse_bit_at_offset(nextchunk, 0); +@@ -5158,7 +5172,7 @@ static void malloc_consolidate(av) mstat + prevsize = p->prev_size; + size += prevsize; + p = chunk_at_offset(p, -((long) prevsize)); +- unlink(p, bck, fwd); ++ unlink(av, p, bck, fwd); + } + + if (nextchunk != av->top) { +@@ -5166,7 +5180,7 @@ static void malloc_consolidate(av) mstat + + if (!nextinuse) { + size += nextsize; +- unlink(nextchunk, bck, fwd); ++ unlink(av, nextchunk, bck, fwd); + } else + clear_inuse_bit_at_offset(nextchunk, 0); + +@@ -5235,7 +5249,9 @@ _int_realloc(mstate av, mchunkptr oldp, + { + errstr = "realloc(): invalid old size"; + errout: ++ mutex_unlock(&av->mutex); + malloc_printerr (check_action, errstr, chunk2mem(oldp)); ++ mutex_lock(&av->mutex); + return NULL; + } + +@@ -5282,7 +5298,7 @@ _int_realloc(mstate av, mchunkptr oldp, + (unsigned long)(newsize = oldsize + nextsize) >= + (unsigned long)(nb)) { + newp = oldp; +- unlink(next, bck, fwd); ++ unlink(av, next, bck, fwd); + } + + /* allocate, copy, free */ diff --git a/src/patches/glibc/glibc-rh730379.patch b/src/patches/glibc/glibc-rh730379.patch new file mode 100644 index 0000000..45808af --- /dev/null +++ b/src/patches/glibc/glibc-rh730379.patch @@ -0,0 +1,34 @@ +2011-08-17 Ulrich Drepper drepper@gmail.com + + * Makeconfig (override CFLAGS): Add library-specific CFLAGS. + * resolv/Makefile: Define CFLAGS-libresolv. + +Index: glibc-2.12-2-gc4ccff1/Makeconfig +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/Makeconfig ++++ glibc-2.12-2-gc4ccff1/Makeconfig +@@ -700,7 +700,9 @@ CPPFLAGS = $($(subdir)-CPPFLAGS) $(+incl + override CFLAGS = -std=gnu99 $(gnu89-inline-CFLAGS) \ + $(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \ + $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \ +- $(CFLAGS-$(@F)) ++ $(CFLAGS-$(@F)) \ ++ $(foreach lib,$(libof-$(basename $(@F))) \ ++ $(libof-$(<F)) $(libof-$(@F)),$(CFLAGS-$(lib))) + override CXXFLAGS = $(c++-sysincludes) \ + $(filter-out %frame-pointer,$(+cflags)) $(sysdep-CFLAGS) \ + $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) $(CFLAGS-$(@F)) +Index: glibc-2.12-2-gc4ccff1/resolv/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/resolv/Makefile ++++ glibc-2.12-2-gc4ccff1/resolv/Makefile +@@ -76,6 +76,9 @@ CPPFLAGS += -Dgethostbyname=res_gethostb + -Dgetnetbyname=res_getnetbyname \ + -Dgetnetbyaddr=res_getnetbyaddr + ++ifeq (yes,$(have-ssp)) ++CFLAGS-libresolv += -fstack-protector ++endif + CFLAGS-res_hconf.c = -fexceptions + CFLAGS-res_send.c += -fno-strict-aliasing + diff --git a/src/patches/glibc/glibc-rh731042.patch b/src/patches/glibc/glibc-rh731042.patch new file mode 100644 index 0000000..d2f7b55 --- /dev/null +++ b/src/patches/glibc/glibc-rh731042.patch @@ -0,0 +1,51 @@ +2011-08-08 Andreas Schwab schwab@redhat.com + + * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Maintain aligned + stack. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise. + +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S +@@ -71,7 +71,9 @@ ENTRY(__pthread_enable_asynccancel) + + 1: ret + +-3: movq $TCB_PTHREAD_CANCELED, %fs:RESULT ++3: subq $8, %rsp ++ cfi_adjust_cfa_offset(8) ++ movq $TCB_PTHREAD_CANCELED, %fs:RESULT + lock + orl $TCB_EXITING_BITMASK, %fs:CANCELHANDLING + movq %fs:CLEANUP_JMP_BUF, %rdi +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +@@ -63,9 +63,9 @@ __pthread_cond_timedwait: + cfi_adjust_cfa_offset(8) + cfi_rel_offset(%r15, 0) + #ifdef __ASSUME_FUTEX_CLOCK_REALTIME +-# define FRAME_SIZE 32 ++# define FRAME_SIZE (32+8) + #else +-# define FRAME_SIZE 48 ++# define FRAME_SIZE (48+8) + #endif + subq $FRAME_SIZE, %rsp + cfi_adjust_cfa_offset(FRAME_SIZE) +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +@@ -45,7 +45,7 @@ __pthread_cond_wait: + cfi_lsda(DW_EH_PE_udata4, .LexceptSTART) + #endif + +-#define FRAME_SIZE 32 ++#define FRAME_SIZE (32+8) + leaq -FRAME_SIZE(%rsp), %rsp + cfi_adjust_cfa_offset(FRAME_SIZE) + diff --git a/src/patches/glibc/glibc-rh736346.patch b/src/patches/glibc/glibc-rh736346.patch new file mode 100644 index 0000000..2dd3f8a --- /dev/null +++ b/src/patches/glibc/glibc-rh736346.patch @@ -0,0 +1,116 @@ +2011-01-14 Ulrich Drepper drepper@gmail.com + + [BZ #10563] + * sysdeps/unix/sysv/linux/i386/setgroups.c: Use INLINE_SETXID_SYSCALL + to make the syscall. + * sysdeps/unix/sysv/linux/setgroups.c: New file. + +2011-01-14 Ulrich Drepper drepper@gmail.com + + [BZ #10563] + * sysdeps/pthread/setxid.h (__SETXID_1): Add cast to assignment. + (__SETXID_2): Likewise. + (__SETXID_3): Likewise. + +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/setxid.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/pthread/setxid.h ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/setxid.h +@@ -20,11 +20,11 @@ + #include <sysdep.h> + + #define __SETXID_1(cmd, arg1) \ +- cmd.id[0] = arg1 ++ cmd.id[0] = (long int) arg1 + #define __SETXID_2(cmd, arg1, arg2) \ +- __SETXID_1 (cmd, arg1); cmd.id[1] = arg2 ++ __SETXID_1 (cmd, arg1); cmd.id[1] = (long int) arg2 + #define __SETXID_3(cmd, arg1, arg2, arg3) \ +- __SETXID_2 (cmd, arg1, arg2); cmd.id[2] = arg3 ++ __SETXID_2 (cmd, arg1, arg2); cmd.id[2] = (long int) arg3 + + #ifdef SINGLE_THREAD + # define INLINE_SETXID_SYSCALL(name, nr, args...) \ +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/setgroups.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/i386/setgroups.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/setgroups.c +@@ -25,6 +25,7 @@ + #include <sys/syscall.h> + #include <bp-checks.h> + ++#include <setxid.h> + #include <linux/posix_types.h> + #include <kernel-features.h> + +@@ -44,7 +45,7 @@ int + setgroups (size_t n, const gid_t *groups) + { + #if __ASSUME_32BITUIDS > 0 +- return INLINE_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n)); ++ return INLINE_SETXID_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n)); + #else + if (n > (size_t) __sysconf (_SC_NGROUPS_MAX)) + { +@@ -62,7 +63,8 @@ setgroups (size_t n, const gid_t *groups + int result; + int saved_errno = errno; + +- result = INLINE_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n)); ++ result = INLINE_SETXID_SYSCALL (setgroups32, 2, n, ++ CHECK_N (groups, n)); + if (result == 0 || errno != ENOSYS) + return result; + +@@ -80,7 +82,8 @@ setgroups (size_t n, const gid_t *groups + } + } + +- return INLINE_SYSCALL (setgroups, 2, n, CHECK_N (kernel_groups, n)); ++ return INLINE_SETXID_SYSCALL (setgroups, 2, n, ++ CHECK_N (kernel_groups, n)); + } + #endif + } +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/setgroups.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/setgroups.c +@@ -0,0 +1,37 @@ ++/* Copyright (C) 1997,1998,2000,2002,2004,2006,2011 ++ Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <errno.h> ++#include <grp.h> ++#include <setxid.h> ++#include <sysdep.h> ++ ++ ++/* Set the group set for the current user to GROUPS (N of them). For ++ Linux we must convert the array of groups into the format that the ++ kernel expects. */ ++int ++setgroups (size_t n, const gid_t *groups) ++{ ++#ifdef __NR_setgroups32 ++# error "wrong setgroups.c file used" ++#endif ++ return INLINE_SETXID_SYSCALL (setgroups, 2, n, groups); ++} ++libc_hidden_def (setgroups) diff --git a/src/patches/glibc/glibc-rh737778.patch b/src/patches/glibc/glibc-rh737778.patch new file mode 100644 index 0000000..5d3c131 --- /dev/null +++ b/src/patches/glibc/glibc-rh737778.patch @@ -0,0 +1,122 @@ +2011-08-14 Roland McGrath roland@hack.frob.com + + * locale/Makefile (locale-CPPFLAGS): Renamed CPPFLAGS-locale-programs. + (locale-CPPFLAGS): New variable; put LOCALEDIR, LOCALE_ALIAS_PATH and + -Iprograms here. + (cppflags-iterator.mk sequence): Use locale-programs in place of nonlib. + (localedef-modules): Add localedef. + (locale-modules): Add locale. + +2011-08-13 Ulrich Drepper drepper@gmail.com + + * intl/l10nflist.c (_nl_normalize_codeset): Make it compile outside + of libc. Make tolower call locale-independent. Optimize a bit by + using isdigit instead of isalnum. + * locale/Makefile (locale-CPPFLAGS): Add -DNOT_IN_libc. + +2011-08-11 Ulrich Drepper drepper@gmail.com + + * intl/l10nflist.c (_nl_make_l10nflist): Use locale-independent + classification. + +Index: glibc-2.12-2-gc4ccff1/intl/l10nflist.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/intl/l10nflist.c ++++ glibc-2.12-2-gc4ccff1/intl/l10nflist.c +@@ -332,13 +332,18 @@ _nl_normalize_codeset (codeset, name_len + char *retval; + char *wp; + size_t cnt; ++#ifdef NOT_IN_libc ++ locale_t locale = newlocale (0, "C", NULL); ++#else ++# define locale _nl_C_locobj_ptr ++#endif + + for (cnt = 0; cnt < name_len; ++cnt) +- if (isalnum ((unsigned char) codeset[cnt])) ++ if (__isalnum_l ((unsigned char) codeset[cnt], locale)) + { + ++len; + +- if (isalpha ((unsigned char) codeset[cnt])) ++ if (! __isdigit_l ((unsigned char) codeset[cnt], locale)) + only_digit = 0; + } + +@@ -346,15 +351,14 @@ _nl_normalize_codeset (codeset, name_len + + if (retval != NULL) + { ++ wp = retval; + if (only_digit) +- wp = stpcpy (retval, "iso"); +- else +- wp = retval; ++ wp = stpcpy (wp, "iso"); + + for (cnt = 0; cnt < name_len; ++cnt) +- if (isalpha ((unsigned char) codeset[cnt])) +- *wp++ = tolower ((unsigned char) codeset[cnt]); +- else if (isdigit ((unsigned char) codeset[cnt])) ++ if (__isalpha_l ((unsigned char) codeset[cnt], locale)) ++ *wp++ = __tolower_l ((unsigned char) codeset[cnt], locale); ++ else if (__isdigit_l ((unsigned char) codeset[cnt], locale)) + *wp++ = codeset[cnt]; + + *wp = '\0'; +Index: glibc-2.12-2-gc4ccff1/locale/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/locale/Makefile ++++ glibc-2.12-2-gc4ccff1/locale/Makefile +@@ -59,10 +59,11 @@ vpath %.c programs ../crypt + vpath %.h programs + vpath %.gperf programs + +-localedef-modules := $(categories:%=ld-%) charmap linereader locfile \ ++localedef-modules := localedef $(categories:%=ld-%) \ ++ charmap linereader locfile \ + repertoire locarchive + localedef-aux := md5 +-locale-modules := locale-spec ++locale-modules := locale locale-spec + lib-modules := charmap-dir simple-hash xmalloc xstrdup + + +@@ -90,22 +91,27 @@ endif + + localepath = "$(localedir):$(i18ndir)" + +-locale-CPPFLAGS := -DLOCALE_PATH='$(localepath)' \ +- -DLOCALEDIR='"$(localedir)"' \ +- -DLOCALE_ALIAS_PATH='"$(msgcatdir)"' \ +- -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \ +- -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \ +- -DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \ +- -Iprograms ++# -Iprograms doesn't really belong here, but this gets it at the head ++# of the list instead of the tail, where CPPFLAGS-$(lib) gets added. ++# We need it before the standard -I's to see programs/config.h first. ++locale-CPPFLAGS = -DLOCALEDIR='"$(localedir)"' \ ++ -DLOCALE_ALIAS_PATH='"$(msgcatdir)"' \ ++ -Iprograms ++ ++CPPFLAGS-locale-programs = -DLOCALE_PATH='$(localepath)' \ ++ -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \ ++ -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \ ++ -DLOCSRCDIR='"$(i18ndir)/locales"' \ ++ -DHAVE_CONFIG_H -DNOT_IN_libc + + CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts + CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts + CFLAGS-charmap-dir.c = -Wno-write-strings + +-# This makes sure -DNOT_IN_libc is passed for all these modules. ++# This makes sure -DNOT_IN_libc et al are passed for all these modules. + cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \ + $(locale-modules) $(lib-modules)) +-lib := nonlib ++lib := locale-programs + include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left)) + + # Depend on libc.so so a DT_NEEDED is generated in the shared objects. diff --git a/src/patches/glibc/glibc-rh738665.patch b/src/patches/glibc/glibc-rh738665.patch new file mode 100644 index 0000000..1eea554 --- /dev/null +++ b/src/patches/glibc/glibc-rh738665.patch @@ -0,0 +1,149 @@ +2011-09-15 Andreas Schwab schwab@redhat.com + + * sysdeps/pthread/list.h: Define only list_t if __need_list_t is + defined. + (list_add): Add atomic_write_barrier. + * descr.h: Define __need_list_t before including <list.h>. + * nptl-init.c: Include <list.h> + * allocatestack.c: Likewise. + +2011-09-15 Andreas Schwab schwab@redhat.com + + * thread_dbP.h: Include <list.h> + +Index: glibc-2.12-2-gc4ccff1/nptl/allocatestack.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/allocatestack.c ++++ glibc-2.12-2-gc4ccff1/nptl/allocatestack.c +@@ -27,6 +27,7 @@ + #include <sys/param.h> + #include <dl-sysdep.h> + #include <tls.h> ++#include <list.h> + #include <lowlevellock.h> + #include <kernel-features.h> + +Index: glibc-2.12-2-gc4ccff1/nptl/descr.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/descr.h ++++ glibc-2.12-2-gc4ccff1/nptl/descr.h +@@ -26,6 +26,7 @@ + #include <stdbool.h> + #include <sys/types.h> + #include <hp-timing.h> ++#define __need_list_t + #include <list.h> + #include <lowlevellock.h> + #include <pthreaddef.h> +Index: glibc-2.12-2-gc4ccff1/nptl/nptl-init.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/nptl-init.c ++++ glibc-2.12-2-gc4ccff1/nptl/nptl-init.c +@@ -29,6 +29,7 @@ + #include <atomic.h> + #include <ldsodefs.h> + #include <tls.h> ++#include <list.h> + #include <fork.h> + #include <version.h> + #include <shlib-compat.h> +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/list.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/pthread/list.h ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/list.h +@@ -18,27 +18,39 @@ + 02111-1307 USA. */ + + #ifndef _LIST_H +-#define _LIST_H 1 ++ ++#ifndef __need_list_t ++# define _LIST_H 1 ++#endif + + /* The definitions of this file are adopted from those which can be + found in the Linux kernel headers to enable people familiar with + the latter find their way in these sources as well. */ + + ++#if defined __need_list_t || defined _LIST_H ++# ifndef __list_t_defined ++# define __list_t_defined + /* Basic type for the double-link list. */ + typedef struct list_head + { + struct list_head *next; + struct list_head *prev; + } list_t; ++# endif ++# undef __need_list_t ++#endif ++ ++#ifdef _LIST_H + ++# include <atomic.h> + + /* Define a variable with the head and tail of the list. */ +-#define LIST_HEAD(name) \ ++# define LIST_HEAD(name) \ + list_t name = { &(name), &(name) } + + /* Initialize a new list head. */ +-#define INIT_LIST_HEAD(ptr) \ ++# define INIT_LIST_HEAD(ptr) \ + (ptr)->next = (ptr)->prev = (ptr) + + +@@ -49,6 +61,7 @@ list_add (list_t *newp, list_t *head) + newp->next = head->next; + newp->prev = head; + head->next->prev = newp; ++ atomic_write_barrier (); + head->next = newp; + } + +@@ -78,26 +91,28 @@ list_splice (list_t *add, list_t *head) + + + /* Get typed element from list at a given position. */ +-#define list_entry(ptr, type, member) \ ++# define list_entry(ptr, type, member) \ + ((type *) ((char *) (ptr) - (unsigned long) (&((type *) 0)->member))) + + + + /* Iterate forward over the elements of the list. */ +-#define list_for_each(pos, head) \ ++# define list_for_each(pos, head) \ + for (pos = (head)->next; pos != (head); pos = pos->next) + + + /* Iterate forward over the elements of the list. */ +-#define list_for_each_prev(pos, head) \ ++# define list_for_each_prev(pos, head) \ + for (pos = (head)->prev; pos != (head); pos = pos->prev) + + + /* Iterate backwards over the elements list. The list elements can be + removed from the list while doing this. */ +-#define list_for_each_prev_safe(pos, p, head) \ ++# define list_for_each_prev_safe(pos, p, head) \ + for (pos = (head)->prev, p = pos->prev; \ + pos != (head); \ + pos = p, p = pos->prev) + ++#endif /* _LIST_H */ ++ + #endif /* list.h */ +Index: glibc-2.12-2-gc4ccff1/nptl_db/thread_dbP.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl_db/thread_dbP.h ++++ glibc-2.12-2-gc4ccff1/nptl_db/thread_dbP.h +@@ -29,6 +29,7 @@ + #include "proc_service.h" + #include "thread_db.h" + #include "../nptl/pthreadP.h" /* This is for *_BITMASK only. */ ++#include <list.h> + + /* Indeces for the symbol names. */ + enum diff --git a/src/patches/glibc/glibc-rh738763.patch b/src/patches/glibc/glibc-rh738763.patch new file mode 100644 index 0000000..728464d --- /dev/null +++ b/src/patches/glibc/glibc-rh738763.patch @@ -0,0 +1,17 @@ +2011-09-15 Ulrich Drepper drepper@gmail.com + + * sysdeps/unix/sysv/linux/bits/in.h (IP_MULTICAST_ALL): Define. + Patch mostly by Neil Horman nhorman@tuxdriver.com. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/in.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/bits/in.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/in.h +@@ -70,6 +70,7 @@ + #define IP_XFRM_POLICY 17 + #define IP_PASSSEC 18 + #define IP_TRANSPARENT 19 ++#define IP_MULTICAST_ALL 49 /* bool */ + + /* TProxy original addresses */ + #define IP_ORIGDSTADDR 20 diff --git a/src/patches/glibc/glibc-rh739184.patch b/src/patches/glibc/glibc-rh739184.patch new file mode 100644 index 0000000..cf12246 --- /dev/null +++ b/src/patches/glibc/glibc-rh739184.patch @@ -0,0 +1,18 @@ +2010-06-10 Andreas Schwab schwab@redhat.com + + * sysdeps/unix/sysv/linux/getpagesize.c: Don't assume AT_PAGESIZE + is always available. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getpagesize.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getpagesize.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getpagesize.c +@@ -28,7 +28,7 @@ + int + __getpagesize () + { +-#ifdef __ASSUME_AT_PAGESIZE ++#if 0 && defined __ASSUME_AT_PAGESIZE + assert (GLRO(dl_pagesize) != 0); + return GLRO(dl_pagesize); + #else diff --git a/src/patches/glibc/glibc-rh739971.patch b/src/patches/glibc/glibc-rh739971.patch new file mode 100644 index 0000000..960c192 --- /dev/null +++ b/src/patches/glibc/glibc-rh739971.patch @@ -0,0 +1,44 @@ +commit 32c76b63be605d12314e0c6ac2bd702c883d1423 +Author: Andreas Schwab schwab@redhat.com +Date: Mon Sep 26 17:49:14 2011 +0200 + + Correctly reparse group line after enlarging the buffer + +diff --git a/nss/nss_files/files-initgroups.c b/nss/nss_files/files-initgroups.c +index 113abf2..c343b35 100644 +--- a/nss/nss_files/files-initgroups.c ++++ b/nss/nss_files/files-initgroups.c +@@ -52,8 +52,10 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start, + gid_t *groups = *groupsp; + + /* We have to iterate over the entire file. */ +- while (!feof_unlocked (stream)) ++ while (1) + { ++ fpos_t pos; ++ fgetpos (stream, &pos); + ssize_t n = getline (&line, &linelen, stream); + if (n < 0) + { +@@ -64,9 +66,8 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start, + } + + struct group grp; +- int res; +- while ((res = _nss_files_parse_grent (line, &grp, buffer, buflen, +- errnop)) == -1) ++ int res = _nss_files_parse_grent (line, &grp, buffer, buflen, errnop); ++ if (res == -1) + { + size_t newbuflen = 2 * buflen; + if (buffer_use_malloc || ! __libc_use_alloca (buflen + newbuflen)) +@@ -85,6 +86,9 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start, + } + else + buffer = extend_alloca (buffer, buflen, newbuflen); ++ /* Reread current line, the parser has clobbered it. */ ++ fsetpos (stream, &pos); ++ continue; + } + + if (res > 0 && grp.gr_gid != group) diff --git a/src/patches/glibc/glibc-rh740506-2.patch b/src/patches/glibc/glibc-rh740506-2.patch new file mode 100644 index 0000000..adefea0 --- /dev/null +++ b/src/patches/glibc/glibc-rh740506-2.patch @@ -0,0 +1,35 @@ + * malloc/arena.c (arena_get2): Avoid unnecessarily + retrieving #cpus from /proc. + * malloc/malloc.c (mALLOPt): Clamp arena_test based on + the value of arena_max. + +diff --git a/malloc/arena.c b/malloc/arena.c +index cb8548b..00f1da5 100644 +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -828,7 +828,7 @@ arena_get2(mstate a_tsd, size_t size) + { + if (mp_.arena_max != 0) + narenas_limit = mp_.arena_max; +- else ++ else if (narenas > mp_.arena_test) + { + int n = __get_nprocs (); + +diff --git a/malloc/malloc.c b/malloc/malloc.c +index 8608083..f8d32da 100644 +--- a/malloc/malloc.c ++++ b/malloc/malloc.c +@@ -6134,6 +6134,12 @@ int mALLOPt(param_number, value) int par + break; + #endif + } ++#ifdef PER_THREAD ++ /* Clamp ARENA_TEST from ARENA_MAX to avoid creating too many ++ arenas. */ ++ if (mp_.arena_max > 0 && mp_.arena_max <= mp_.arena_test) ++ mp_.arena_test = mp_.arena_max - 1; ++#endif + (void)mutex_unlock(&av->mutex); + return res; + } diff --git a/src/patches/glibc/glibc-rh740506.patch b/src/patches/glibc/glibc-rh740506.patch new file mode 100644 index 0000000..6c74ccf --- /dev/null +++ b/src/patches/glibc/glibc-rh740506.patch @@ -0,0 +1,132 @@ +2011-11-14 Andreas Schwab schwab@redhat.com + + * malloc/arena.c (arena_get2): Don't call reused_arena when + _int_new_arena failed. + +2011-11-10 Andreas Schwab schwab@redhat.com + + * malloc/arena.c (_int_new_arena): Don't increment narenas. + (reused_arena): Don't check arena limit. + (arena_get2): Atomically check arena limit. + +diff --git a/malloc/arena.c b/malloc/arena.c +index 9114fd2..042cac8 100644 +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -747,8 +747,6 @@ _int_new_arena(size_t size) + main_arena.next = a; + + #ifdef PER_THREAD +- ++narenas; +- + (void)mutex_unlock(&list_lock); + #endif + +@@ -786,30 +784,6 @@ get_free_list (void) + static mstate + reused_arena (void) + { +- if (narenas <= mp_.arena_test) +- return NULL; +- +- static int narenas_limit; +- if (narenas_limit == 0) +- { +- if (mp_.arena_max != 0) +- narenas_limit = mp_.arena_max; +- else +- { +- int n = __get_nprocs (); +- +- if (n >= 1) +- narenas_limit = NARENAS_FROM_NCORES (n); +- else +- /* We have no information about the system. Assume two +- cores. */ +- narenas_limit = NARENAS_FROM_NCORES (2); +- } +- } +- +- if (narenas < narenas_limit) +- return NULL; +- + mstate result; + static mstate next_to_use; + if (next_to_use == NULL) +@@ -844,10 +818,41 @@ arena_get2(mstate a_tsd, size_t size) + mstate a; + + #ifdef PER_THREAD +- if ((a = get_free_list ()) == NULL +- && (a = reused_arena ()) == NULL) +- /* Nothing immediately available, so generate a new arena. */ +- a = _int_new_arena(size); ++ static size_t narenas_limit; ++ ++ a = get_free_list (); ++ if (a == NULL) ++ { ++ /* Nothing immediately available, so generate a new arena. */ ++ if (narenas_limit == 0) ++ { ++ if (mp_.arena_max != 0) ++ narenas_limit = mp_.arena_max; ++ else ++ { ++ int n = __get_nprocs (); ++ ++ if (n >= 1) ++ narenas_limit = NARENAS_FROM_NCORES (n); ++ else ++ /* We have no information about the system. Assume two ++ cores. */ ++ narenas_limit = NARENAS_FROM_NCORES (2); ++ } ++ } ++ repeat:; ++ size_t n = narenas; ++ if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0)) ++ { ++ if (catomic_compare_and_exchange_bool_acq(&narenas, n + 1, n)) ++ goto repeat; ++ a = _int_new_arena (size); ++ if (__builtin_expect (a != NULL, 1)) ++ return a; ++ catomic_decrement(&narenas); ++ } ++ a = reused_arena (); ++ } + #else + if(!a_tsd) + a = a_tsd = &main_arena; + +commit a5fb313cb7b7e692fd4684916aaa98e03ec7e8b6 +Author: Andreas Schwab schwab@redhat.com +Date: Mon Nov 14 11:41:52 2011 +0100 + + Don't call reused_arena when _int_new_arena failed + +diff --git a/malloc/arena.c b/malloc/arena.c +index 042cac8..cb8548b 100644 +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -844,14 +844,14 @@ arena_get2(mstate a_tsd, size_t size) + size_t n = narenas; + if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0)) + { +- if (catomic_compare_and_exchange_bool_acq(&narenas, n + 1, n)) ++ if (catomic_compare_and_exchange_bool_acq (&narenas, n + 1, n)) + goto repeat; + a = _int_new_arena (size); +- if (__builtin_expect (a != NULL, 1)) +- return a; +- catomic_decrement(&narenas); ++ if (__builtin_expect (a == NULL, 0)) ++ catomic_decrement (&narenas); + } +- a = reused_arena (); ++ else ++ a = reused_arena (); + } + #else + if(!a_tsd) diff --git a/src/patches/glibc/glibc-rh749188.patch b/src/patches/glibc/glibc-rh749188.patch new file mode 100644 index 0000000..43157cd --- /dev/null +++ b/src/patches/glibc/glibc-rh749188.patch @@ -0,0 +1,32 @@ +commit 0e8131bb32cf026c87baeacb7abf2a9bdbbc4953 +Author: Andreas Schwab schwab@redhat.com +Date: Sun May 8 21:48:03 2011 -0400 + + Remove .UTF-8 suffix from locale names when it is the only supported codeset + +diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED +index d665961..e952c17 100644 +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -46,8 +46,8 @@ ar_TN.UTF-8/UTF-8 \ + ar_TN/ISO-8859-6 \ + ar_YE.UTF-8/UTF-8 \ + ar_YE/ISO-8859-6 \ +-az_AZ.UTF-8/UTF-8 \ +-as_IN.UTF-8/UTF-8 \ ++az_AZ/UTF-8 \ ++as_IN/UTF-8 \ + ast_ES.UTF-8/UTF-8 \ + ast_ES/ISO-8859-15 \ + be_BY.UTF-8/UTF-8 \ +@@ -385,8 +385,8 @@ tr_CY/ISO-8859-9 \ + tr_TR.UTF-8/UTF-8 \ + tr_TR/ISO-8859-9 \ + ts_ZA/UTF-8 \ +-tt_RU.UTF-8/UTF-8 \ +-tt_RU.UTF-8@iqtelif/UTF-8 \ ++tt_RU/UTF-8 \ ++tt_RU@iqtelif/UTF-8 \ + ug_CN/UTF-8 \ + uk_UA.UTF-8/UTF-8 \ + uk_UA/KOI8-U \ diff --git a/src/patches/glibc/glibc-rh750531.patch b/src/patches/glibc/glibc-rh750531.patch new file mode 100644 index 0000000..a53e770 --- /dev/null +++ b/src/patches/glibc/glibc-rh750531.patch @@ -0,0 +1,122 @@ +commit 69da074d7adfab7b57004a0dea9403a928e310a5 +Author: Ulrich Drepper drepper@gmail.com +Date: Wed Nov 10 02:38:35 2010 -0500 + + Fix warnings in __bswap_16. + +diff --git a/sysdeps/i386/bits/byteswap.h b/sysdeps/i386/bits/byteswap.h +index 1f3fc5e..c246ae8 100644 +--- a/sysdeps/i386/bits/byteswap.h ++++ b/sysdeps/i386/bits/byteswap.h +@@ -1,5 +1,5 @@ + /* Macros to swap the order of bytes in integer values. +- Copyright (C) 1997, 1998, 2000, 2002, 2003, 2006, 2007, 2008 ++ Copyright (C) 1997, 1998, 2000, 2002, 2003, 2006, 2007, 2008, 2010 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -27,26 +27,27 @@ + + /* Swap bytes in 16 bit value. */ + #define __bswap_constant_16(x) \ +- ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) ++ ((unsigned short int) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) + + #ifdef __GNUC__ + # if __GNUC__ >= 2 + # define __bswap_16(x) \ + (__extension__ \ +- ({ register unsigned short int __v, __x = (x); \ ++ ({ register unsigned short int __v, __x = (unsigned short int) (x); \ + if (__builtin_constant_p (__x)) \ + __v = __bswap_constant_16 (__x); \ + else \ + __asm__ ("rorw $8, %w0" \ + : "=r" (__v) \ +- : "0" (__x) \ +- : "cc"); \ ++ : "0" (__x) \ ++ : "cc"); \ + __v; })) + # else + /* This is better than nothing. */ + # define __bswap_16(x) \ + (__extension__ \ +- ({ register unsigned short int __x = (x); __bswap_constant_16 (__x); })) ++ ({ register unsigned short int __x = (unsigned short int) (x); \ ++ __bswap_constant_16 (__x); })) + # endif + #else + static __inline unsigned short int +@@ -122,7 +123,7 @@ __bswap_32 (unsigned int __bsx) + (__extension__ \ + ({ union { __extension__ unsigned long long int __ll; \ + unsigned long int __l[2]; } __w, __r; \ +- if (__builtin_constant_p (x)) \ ++ if (__builtin_constant_p (x)) \ + __r.__ll = __bswap_constant_64 (x); \ + else \ + { \ +diff --git a/sysdeps/x86_64/bits/byteswap.h b/sysdeps/x86_64/bits/byteswap.h +index 08b38e8..e350fb8 100644 +--- a/sysdeps/x86_64/bits/byteswap.h ++++ b/sysdeps/x86_64/bits/byteswap.h +@@ -1,5 +1,5 @@ + /* Macros to swap the order of bytes in integer values. +- Copyright (C) 1997, 1998, 2000, 2002, 2003, 2007, 2008 ++ Copyright (C) 1997, 1998, 2000, 2002, 2003, 2007, 2008, 2010 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -29,12 +29,12 @@ + + /* Swap bytes in 16 bit value. */ + #define __bswap_constant_16(x) \ +- ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) ++ ((unsigned short int) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) + + #if defined __GNUC__ && __GNUC__ >= 2 + # define __bswap_16(x) \ + (__extension__ \ +- ({ register unsigned short int __v, __x = (x); \ ++ ({ register unsigned short int __v, __x = (unsigned short int) (x); \ + if (__builtin_constant_p (__x)) \ + __v = __bswap_constant_16 (__x); \ + else \ +@@ -47,7 +47,8 @@ + /* This is better than nothing. */ + # define __bswap_16(x) \ + (__extension__ \ +- ({ register unsigned short int __x = (x); __bswap_constant_16 (__x); })) ++ ({ register unsigned short int __x = (unsigned short int) (x); \ ++ __bswap_constant_16 (__x); })) + #endif + + +@@ -120,16 +121,16 @@ + # define __bswap_64(x) \ + (__extension__ \ + ({ union { __extension__ unsigned long long int __ll; \ +- unsigned int __l[2]; } __w, __r; \ +- if (__builtin_constant_p (x)) \ +- __r.__ll = __bswap_constant_64 (x); \ +- else \ +- { \ +- __w.__ll = (x); \ +- __r.__l[0] = __bswap_32 (__w.__l[1]); \ +- __r.__l[1] = __bswap_32 (__w.__l[0]); \ +- } \ +- __r.__ll; })) ++ unsigned int __l[2]; } __w, __r; \ ++ if (__builtin_constant_p (x)) \ ++ __r.__ll = __bswap_constant_64 (x); \ ++ else \ ++ { \ ++ __w.__ll = (x); \ ++ __r.__l[0] = __bswap_32 (__w.__l[1]); \ ++ __r.__l[1] = __bswap_32 (__w.__l[0]); \ ++ } \ ++ __r.__ll; })) + # endif + #endif + diff --git a/src/patches/glibc/glibc-rh751750.patch b/src/patches/glibc/glibc-rh751750.patch new file mode 100644 index 0000000..6f9dd12 --- /dev/null +++ b/src/patches/glibc/glibc-rh751750.patch @@ -0,0 +1,28 @@ +commit 7583a88d1c7170caad26966bcea8bfc2c92093ba +Author: Andreas Schwab schwab@redhat.com +Date: Mon Nov 7 15:07:31 2011 +0100 + + Fix locking in _IO_flush_all_lockp + +diff --git a/libio/genops.c b/libio/genops.c +index 5d21c42..bb40c34 100644 +--- a/libio/genops.c ++++ b/libio/genops.c +@@ -826,7 +826,7 @@ _IO_flush_all_lockp (int do_lock) + int last_stamp; + + #ifdef _IO_MTSAFE_IO +- _IO_cleanup_region_start_noarg (flush_cleanup); ++ __libc_cleanup_region_start (do_lock, flush_cleanup, 0); + if (do_lock) + _IO_lock_lock (list_all_lock); + #endif +@@ -866,7 +866,7 @@ _IO_flush_all_lockp (int do_lock) + #ifdef _IO_MTSAFE_IO + if (do_lock) + _IO_lock_unlock (list_all_lock); +- _IO_cleanup_region_end (0); ++ __libc_cleanup_region_end (0); + #endif + + return result; diff --git a/src/patches/glibc/glibc-rh752122.patch b/src/patches/glibc/glibc-rh752122.patch new file mode 100644 index 0000000..0176dc9 --- /dev/null +++ b/src/patches/glibc/glibc-rh752122.patch @@ -0,0 +1,260 @@ +2011-07-24 H.J. Lu hongjiu.lu@intel.com + + * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Simplify + AVX check. + +2011-08-20 Ulrich Drepper drepper@gmail.com + + * sysdeps/x86_64/dl-trampoline.h: If MORE_CODE is defined, restore + the CFI state in the end. + * sysdeps/x86_64/dl-trampoline.S: Define MORE_CODE before first + inclusion of dl-trampoline.h. + Based on a patch by Jiri Olsa jolsa@redhat.com. + +2011-07-23 Ulrich Drepper drepper@gmail.com + + * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix one more + typo. + (_dl_x86_64_save_sse): Likewise. + +2011-07-22 Ulrich Drepper drepper@gmail.com + + * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix test for + OSXSAVE. + (_dl_x86_64_save_sse): Likewise. + +2011-07-21 Andreas Schwab schwab@redhat.com + + * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix last + change. + (_dl_x86_64_save_sse): Use correct AVX check. + +2011-07-20 Ulrich Drepper drepper@gmail.com + + [BZ #13007] + * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): More complete + check for AVX enablement so that we don't crash with old kernels and + new hardware. + * elf/tst-audit4.c: Add same checks here. + * elf/tst-audit6.c: Likewise. + +Index: glibc-2.12-2-gc4ccff1/elf/tst-audit4.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/tst-audit4.c ++++ glibc-2.12-2-gc4ccff1/elf/tst-audit4.c +@@ -6,16 +6,30 @@ + #include <cpuid.h> + #include <immintrin.h> + ++ ++static int ++avx_enabled (void) ++{ ++ unsigned int eax, ebx, ecx, edx; ++ ++ if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) == 0 ++ || (ecx & (bit_AVX | bit_OSXSAVE)) != (bit_AVX | bit_OSXSAVE)) ++ return 0; ++ ++ /* Check the OS has AVX and SSE saving enabled. */ ++ asm ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0)); ++ ++ return (eax & 6) == 6; ++} ++ ++ + extern __m256i audit_test (__m256i, __m256i, __m256i, __m256i, + __m256i, __m256i, __m256i, __m256i); + int + main (void) + { +- unsigned int eax, ebx, ecx, edx; +- + /* Run AVX test only if AVX is supported. */ +- if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) +- && (ecx & bit_AVX)) ++ if (avx_enabled ()) + { + __m256i ymm = _mm256_setzero_si256 (); + __m256i ret = audit_test (ymm, ymm, ymm, ymm, ymm, ymm, ymm, ymm); +Index: glibc-2.12-2-gc4ccff1/elf/tst-audit6.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/tst-audit6.c ++++ glibc-2.12-2-gc4ccff1/elf/tst-audit6.c +@@ -8,14 +8,28 @@ + extern __m128i audit_test (__m128i, __m128i, __m128i, __m128i, + __m128i, __m128i, __m128i, __m128i); + +-int +-main (void) ++ ++static int ++avx_enabled (void) + { + unsigned int eax, ebx, ecx, edx; + ++ if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) == 0 ++ || (ecx & (bit_AVX | bit_OSXSAVE)) != (bit_AVX | bit_OSXSAVE)) ++ return 0; ++ ++ /* Check the OS has AVX and SSE saving enabled. */ ++ asm ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0)); ++ ++ return (eax & 6) == 6; ++} ++ ++ ++int ++main (void) ++{ + /* Run AVX test only if AVX is supported. */ +- if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) +- && (ecx & bit_AVX)) ++ if (avx_enabled ()) + { + __m128i xmm = _mm_setzero_si128 (); + __m128i ret = audit_test (xmm, xmm, xmm, xmm, xmm, xmm, xmm, xmm); +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/dl-trampoline.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.S +@@ -139,24 +139,31 @@ L(have_avx): + movl $1, %eax + cpuid + movq %r11,%rbx # Restore rbx +- movl $1, %eax +- testl $(1 << 28), %ecx ++ xorl %eax, %eax ++ // AVX and XSAVE supported? ++ andl $((1 << 28) | (1 << 27)), %ecx ++ cmpl $((1 << 28) | (1 << 27)), %ecx + jne 2f +- negl %eax +-2: movl %eax, L(have_avx)(%rip) ++ xorl %ecx, %ecx ++ // Get XFEATURE_ENABLED_MASK ++ xgetbv ++ andl $0x6, %eax ++2: subl $0x5, %eax ++ movl %eax, L(have_avx)(%rip) + cmpl $0, %eax + + 1: js L(no_avx) + + # define RESTORE_AVX ++# define MORE_CODE + # include "dl-trampoline.h" + + .align 16 + L(no_avx): + # endif + +-# undef RESTORE_AVX +-# include "dl-trampoline.h" ++# undef RESTORE_AVX ++# include "dl-trampoline.h" + + cfi_endproc + .size _dl_runtime_profile, .-_dl_runtime_profile +@@ -176,11 +183,20 @@ _dl_x86_64_save_sse: + movl $1, %eax + cpuid + movq %r11,%rbx # Restore rbx +- movl $1, %eax +- testl $(1 << 28), %ecx ++ xorl %eax, %eax ++ // AVX and XSAVE supported? ++ andl $((1 << 28) | (1 << 27)), %ecx ++ cmpl $((1 << 28) | (1 << 27)), %ecx + jne 2f +- negl %eax +-2: movl %eax, L(have_avx)(%rip) ++ xorl %ecx, %ecx ++ // Get XFEATURE_ENABLED_MASK ++ xgetbv ++ andl $0x6, %eax ++ cmpl $0x6, %eax ++ // Nonzero if SSE and AVX state saving is enabled. ++ sete %al ++2: leal -1(%eax,%eax), %eax ++ movl %eax, L(have_avx)(%rip) + cmpl $0, %eax + + 1: js L(no_avx5) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/dl-trampoline.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.h +@@ -195,14 +195,14 @@ + _dl_call_pltexit. The La_x86_64_regs is being pointed by rsp now, + so we just need to allocate the sizeof(La_x86_64_retval) space on + the stack, since the alignment has already been taken care of. */ +-# ifdef RESTORE_AVX ++#ifdef RESTORE_AVX + /* sizeof(La_x86_64_retval). Need extra space for 2 SSE + registers to detect if xmm0/xmm1 registers are changed + by audit module. */ + subq $(LRV_SIZE + XMM_SIZE*2), %rsp +-# else ++#else + subq $LRV_SIZE, %rsp # sizeof(La_x86_64_retval) +-# endif ++#endif + movq %rsp, %rcx # La_x86_64_retval argument to %rcx. + + /* Fill in the La_x86_64_retval structure. */ +@@ -212,7 +212,7 @@ + movaps %xmm0, LRV_XMM0_OFFSET(%rcx) + movaps %xmm1, LRV_XMM1_OFFSET(%rcx) + +-# ifdef RESTORE_AVX ++#ifdef RESTORE_AVX + /* This is to support AVX audit modules. */ + vmovdqu %ymm0, LRV_VECTOR0_OFFSET(%rcx) + vmovdqu %ymm1, LRV_VECTOR1_OFFSET(%rcx) +@@ -221,14 +221,14 @@ + by audit module. */ + vmovdqa %xmm0, (LRV_SIZE)(%rcx) + vmovdqa %xmm1, (LRV_SIZE + XMM_SIZE)(%rcx) +-# endif ++#endif + + fstpt LRV_ST0_OFFSET(%rcx) + fstpt LRV_ST1_OFFSET(%rcx) + + movq 24(%rbx), %rdx # La_x86_64_regs argument to %rdx. + movq 40(%rbx), %rsi # Copy args pushed by PLT in register. +- movq 32(%rbx), %rdi # %rdi: link_map, %rsi: reloc_index ++ movq 32(%rbx), %rdi # %rdi: link_map, %rsi: reloc_index + call _dl_call_pltexit + + /* Restore return registers. */ +@@ -238,7 +238,7 @@ + movaps LRV_XMM0_OFFSET(%rsp), %xmm0 + movaps LRV_XMM1_OFFSET(%rsp), %xmm1 + +-# ifdef RESTORE_AVX ++#ifdef RESTORE_AVX + /* Check if xmm0/xmm1 registers are changed by audit module. */ + vpcmpeqq (LRV_SIZE)(%rsp), %xmm0, %xmm2 + vpmovmskb %xmm2, %esi +@@ -253,7 +253,7 @@ + vmovdqu LRV_VECTOR1_OFFSET(%rsp), %ymm1 + + 1: +-# endif ++#endif + + fldt LRV_ST1_OFFSET(%rsp) + fldt LRV_ST0_OFFSET(%rsp) +@@ -267,3 +267,10 @@ + # (eats the reloc index and link_map) + cfi_adjust_cfa_offset(-48) + retq ++ ++#ifdef MORE_CODE ++ cfi_adjust_cfa_offset(48) ++ cfi_rel_offset(%rbx, 0) ++ cfi_def_cfa_register(%rbx) ++# undef MORE_CODE ++#endif diff --git a/src/patches/glibc/glibc-rh757888.patch b/src/patches/glibc/glibc-rh757888.patch new file mode 100644 index 0000000..721d4a4 --- /dev/null +++ b/src/patches/glibc/glibc-rh757888.patch @@ -0,0 +1,225 @@ +commit f3a6cc0a560a17f32a3e90d2f20501a53cab6058 +Author: Andreas Schwab schwab@redhat.com +Date: Tue Nov 29 10:52:22 2011 +0100 + + Fix access after end of search string in regex matcher + +diff --git a/locale/weight.h b/locale/weight.h +index dc70a00..967e176 100644 +--- a/locale/weight.h ++++ b/locale/weight.h +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1996,1997,1998,1999,2000,2003,2004 Free Software Foundation, Inc. ++/* Copyright (C) 1996,1997,1998,1999,2000,2003,2004,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Written by Ulrich Drepper, drepper@cygnus.com. + +@@ -20,7 +20,7 @@ + /* Find index of weight. */ + auto inline int32_t + __attribute ((always_inline)) +-findidx (const unsigned char **cpp) ++findidx (const unsigned char **cpp, size_t len) + { + int_fast32_t i = table[*(*cpp)++]; + const unsigned char *cp; +@@ -34,6 +34,7 @@ findidx (const unsigned char **cpp) + Search for the correct one. */ + cp = &extra[-i]; + usrc = *cpp; ++ --len; + while (1) + { + size_t nhere; +@@ -56,7 +57,7 @@ findidx (const unsigned char **cpp) + already. */ + size_t cnt; + +- for (cnt = 0; cnt < nhere; ++cnt) ++ for (cnt = 0; cnt < nhere && cnt < len; ++cnt) + if (cp[cnt] != usrc[cnt]) + break; + +@@ -79,13 +80,13 @@ findidx (const unsigned char **cpp) + size_t cnt; + size_t offset = 0; + +- for (cnt = 0; cnt < nhere; ++cnt) ++ for (cnt = 0; cnt < nhere && cnt < len; ++cnt) + if (cp[cnt] != usrc[cnt]) + break; + + if (cnt != nhere) + { +- if (cp[cnt] > usrc[cnt]) ++ if (cnt == len || cp[cnt] > usrc[cnt]) + { + /* Cannot be in this range. */ + cp += 2 * nhere; +diff --git a/locale/weightwc.h b/locale/weightwc.h +index 9ea1126..7862091 100644 +--- a/locale/weightwc.h ++++ b/locale/weightwc.h +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1996-2001,2003,2004,2005,2007 Free Software Foundation, Inc. ++/* Copyright (C) 1996-2001,2003,2004,2005,2007,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Written by Ulrich Drepper, drepper@cygnus.com. + +@@ -20,7 +20,7 @@ + /* Find index of weight. */ + auto inline int32_t + __attribute ((always_inline)) +-findidx (const wint_t **cpp) ++findidx (const wint_t **cpp, size_t len) + { + wint_t ch = *(*cpp)++; + int32_t i = __collidx_table_lookup ((const char *) table, ch); +@@ -32,6 +32,7 @@ findidx (const wint_t **cpp) + /* Oh well, more than one sequence starting with this byte. + Search for the correct one. */ + const int32_t *cp = (const int32_t *) &extra[-i]; ++ --len; + while (1) + { + size_t nhere; +@@ -54,7 +55,7 @@ findidx (const wint_t **cpp) + already. */ + size_t cnt; + +- for (cnt = 0; cnt < nhere; ++cnt) ++ for (cnt = 0; cnt < nhere && cnt < len; ++cnt) + if (cp[cnt] != usrc[cnt]) + break; + +@@ -75,7 +76,7 @@ findidx (const wint_t **cpp) + size_t cnt; + size_t offset; + +- for (cnt = 0; cnt < nhere - 1; ++cnt) ++ for (cnt = 0; cnt < nhere - 1 && cnt < len; ++cnt) + if (cp[cnt] != usrc[cnt]) + break; + +diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c +index 18a6667..72bd3ee 100644 +--- a/posix/fnmatch_loop.c ++++ b/posix/fnmatch_loop.c +@@ -412,7 +412,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); + # endif + +- idx = findidx (&cp); ++ idx = findidx (&cp, 1); + if (idx != 0) + { + /* We found a table entry. Now see whether the +@@ -422,7 +422,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) + int32_t idx2; + const UCHAR *np = (const UCHAR *) n; + +- idx2 = findidx (&np); ++ idx2 = findidx (&np, string_end - n); + if (idx2 != 0 + && (idx >> 24) == (idx2 >> 24) + && len == weights[idx2 & 0xffffff]) +diff --git a/posix/regcomp.c b/posix/regcomp.c +index b238c08..34ee845 100644 +--- a/posix/regcomp.c ++++ b/posix/regcomp.c +@@ -1,5 +1,5 @@ + /* Extended regular expression matching and search library. +- Copyright (C) 2002-2007,2009,2010 Free Software Foundation, Inc. ++ Copyright (C) 2002-2007,2009,2010,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Isamu Hasegawa isamu@yamato.ibm.com. + +@@ -3409,19 +3409,18 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name) + _NL_COLLATE_EXTRAMB); + indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, + _NL_COLLATE_INDIRECTMB); +- idx1 = findidx (&cp); +- if (BE (idx1 == 0 || cp < name + strlen ((const char *) name), 0)) ++ idx1 = findidx (&cp, -1); ++ if (BE (idx1 == 0 || *cp != '\0', 0)) + /* This isn't a valid character. */ + return REG_ECOLLATE; + + /* Build single byte matcing table for this equivalence class. */ +- char_buf[1] = (unsigned char) '\0'; + len = weights[idx1 & 0xffffff]; + for (ch = 0; ch < SBC_MAX; ++ch) + { + char_buf[0] = ch; + cp = char_buf; +- idx2 = findidx (&cp); ++ idx2 = findidx (&cp, 1); + /* + idx2 = table[ch]; + */ + +--- a/posix/regex_internal.h 2011-11-30 12:47:02.706567482 -0700 ++++ a/posix/regex_internal.h 2011-11-30 12:47:32.969558337 -0700 +@@ -756,7 +756,7 @@ + indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, + _NL_COLLATE_INDIRECTMB); + p = pstr->mbs + idx; +- tmp = findidx (&p); ++ tmp = findidx (&p, pstr->len - idx); + return p - pstr->mbs - idx; + } + else +diff --git a/posix/regexec.c b/posix/regexec.c +index 9e0c565..3ea810b 100644 +--- a/posix/regexec.c ++++ b/posix/regexec.c +@@ -3924,7 +3924,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, int node_idx, + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); + indirect = (const int32_t *) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); +- int32_t idx = findidx (&cp); ++ int32_t idx = findidx (&cp, elem_len); + if (idx > 0) + for (i = 0; i < cset->nequiv_classes; ++i) + { +diff --git a/string/strcoll_l.c b/string/strcoll_l.c +index d8d1139..fb77d08 100644 +--- a/string/strcoll_l.c ++++ b/string/strcoll_l.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1995-1997,2002,2004,2007,2010 Free Software Foundation, Inc. ++/* Copyright (C) 1995-1997,2002,2004,2007,2010,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Written by Ulrich Drepper drepper@gnu.org, 1995. + +@@ -205,7 +205,7 @@ STRCOLL (s1, s2, l) + + while (*us1 != L('\0')) + { +- int32_t tmp = findidx (&us1); ++ int32_t tmp = findidx (&us1, -1); + rule1arr[idx1max] = tmp >> 24; + idx1arr[idx1max] = tmp & 0xffffff; + idx1cnt = idx1max++; +@@ -267,7 +267,7 @@ STRCOLL (s1, s2, l) + + while (*us2 != L('\0')) + { +- int32_t tmp = findidx (&us2); ++ int32_t tmp = findidx (&us2, -1); + rule2arr[idx2max] = tmp >> 24; + idx2arr[idx2max] = tmp & 0xffffff; + idx2cnt = idx2max++; +diff --git a/string/strxfrm_l.c b/string/strxfrm_l.c +index 220253c..b06556d 100644 +--- a/string/strxfrm_l.c ++++ b/string/strxfrm_l.c +@@ -176,7 +176,7 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) + idxmax = 0; + do + { +- int32_t tmp = findidx (&usrc); ++ int32_t tmp = findidx (&usrc, -1); + rulearr[idxmax] = tmp >> 24; + idxarr[idxmax] = tmp & 0xffffff; + diff --git a/src/patches/glibc/glibc-rh766513.patch b/src/patches/glibc/glibc-rh766513.patch new file mode 100644 index 0000000..3f629b4 --- /dev/null +++ b/src/patches/glibc/glibc-rh766513.patch @@ -0,0 +1,14 @@ +diff -rup a/po/ja.po b/po/ja.po +--- a/po/ja.po 2010-05-04 05:27:23.000000000 -0600 ++++ b/po/ja.po 2012-02-07 12:21:03.023806370 -0700 +@@ -3549,8 +3549,8 @@ msgstr "%s: ÉÔÀµ€Ê¥ª¥×¥·¥ç¥ó€Ç€¹ -- %c\n + + #: posix/getopt.c:945 posix/getopt.c:948 + #, c-format +-msgid "%s: invalid option -- %c\n" +-msgstr "%s: ¥ª¥×¥·¥ç¥ó€¬°ã€€€Þ€¹ -- %c\n" ++msgid "%s: invalid option -- '%c'\n" ++msgstr "%s: ¥ª¥×¥·¥ç¥ó€¬°ã€€€Þ€¹ -- '%c'\n" + + #: posix/getopt.c:1003 posix/getopt.c:1022 posix/getopt.c:1234 + #: posix/getopt.c:1255 diff --git a/src/patches/glibc/glibc-rh767146.patch b/src/patches/glibc/glibc-rh767146.patch new file mode 100644 index 0000000..8252062 --- /dev/null +++ b/src/patches/glibc/glibc-rh767146.patch @@ -0,0 +1,21 @@ +diff -rup a/elf/dl-load.c b/elf/dl-load.c +--- a/elf/dl-load.c 2012-02-03 10:59:58.917870716 -0700 ++++ b/elf/dl-load.c 2012-02-03 11:01:01.796580644 -0700 +@@ -1130,6 +1130,16 @@ _dl_map_object_from_fd (const char *name + = N_("ELF load command address/offset not properly aligned"); + goto call_lose; + } ++ if (__builtin_expect ((ph->p_offset + ph->p_filesz > st.st_size), 0)) ++ { ++ /* If the segment requires zeroing of part of its last ++ page, we'll crash when accessing the unmapped page. ++ There's still a possibility of a race, if the shared ++ object is truncated between the fxstat above and the ++ memset below. */ ++ errstring = N_("ELF load command past end of file"); ++ goto call_lose; ++ } + + c = &loadcmds[nloadcmds++]; + c->mapstart = ph->p_vaddr & ~(GLRO(dl_pagesize) - 1); +Only in b/elf: dl-load.c.orig diff --git a/src/patches/glibc/glibc-rh767693-2.patch b/src/patches/glibc/glibc-rh767693-2.patch new file mode 100644 index 0000000..4418ac6 --- /dev/null +++ b/src/patches/glibc/glibc-rh767693-2.patch @@ -0,0 +1,79 @@ +Index: glibc-2.5-20061008T1257/sunrpc/svc_tcp.c +=================================================================== +--- glibc-2.5-20061008T1257.orig/sunrpc/svc_tcp.c ++++ glibc-2.5-20061008T1257/sunrpc/svc_tcp.c +@@ -50,6 +50,7 @@ static char sccsid[] = "@(#)svc_tcp.c 1. + #include <sys/poll.h> + #include <errno.h> + #include <stdlib.h> ++#include <time.h> + + #ifdef USE_IN_LIBIO + # include <wchar.h> +@@ -249,6 +250,11 @@ again: + { + if (errno == EINTR) + goto again; ++ if (errno == EMFILE) ++ { ++ struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 }; ++ __nanosleep(&ts , NULL); ++ } + return FALSE; + } + /* +Index: glibc-2.5-20061008T1257/sunrpc/svc_udp.c +=================================================================== +--- glibc-2.5-20061008T1257.orig/sunrpc/svc_udp.c ++++ glibc-2.5-20061008T1257/sunrpc/svc_udp.c +@@ -46,6 +46,7 @@ static char sccsid[] = "@(#)svc_udp.c 1. + #include <sys/socket.h> + #include <errno.h> + #include <libintl.h> ++#include <time.h> + + #ifdef IP_PKTINFO + #include <sys/uio.h> +@@ -277,8 +278,16 @@ again: + (int) su->su_iosz, 0, + (struct sockaddr *) &(xprt->xp_raddr), &len); + xprt->xp_addrlen = len; +- if (rlen == -1 && errno == EINTR) +- goto again; ++ if (rlen == -1) ++ { ++ if (errno == EINTR) ++ goto again; ++ if (errno == EMFILE) ++ { ++ struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 }; ++ __nanosleep(&ts , NULL); ++ } ++ } + if (rlen < 16) /* < 4 32-bit ints? */ + return FALSE; + xdrs->x_op = XDR_DECODE; +Index: glibc-2.5-20061008T1257/sunrpc/svc_unix.c +=================================================================== +--- glibc-2.5-20061008T1257.orig/sunrpc/svc_unix.c ++++ glibc-2.5-20061008T1257/sunrpc/svc_unix.c +@@ -48,6 +48,7 @@ + #include <errno.h> + #include <stdlib.h> + #include <libintl.h> ++#include <time.h> + + #ifdef USE_IN_LIBIO + # include <wchar.h> +@@ -247,6 +248,11 @@ again: + { + if (errno == EINTR) + goto again; ++ if (errno == EMFILE) ++ { ++ struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 }; ++ __nanosleep(&ts , NULL); ++ } + return FALSE; + } + /* diff --git a/src/patches/glibc/glibc-rh767693.patch b/src/patches/glibc/glibc-rh767693.patch new file mode 100644 index 0000000..8f76beb --- /dev/null +++ b/src/patches/glibc/glibc-rh767693.patch @@ -0,0 +1,89 @@ +commit 97ac2654b2d831acaa18a2b018b0736245903fd2 +Author: Ulrich Drepper drepper@gmail.com +Date: Sat Dec 17 20:18:42 2011 -0500 + + Check values from TZ file header + + + [BZ #13506] + * time/tzfile.c (__tzfile_read): Check values from file header. + +diff -ru a/time/tzfile.c b/time/tzfile.c +--- a/time/tzfile.c 2010-05-04 11:27:23.000000000 +0000 ++++ b/time/tzfile.c 2011-12-19 06:39:49.875358578 +0000 +@@ -19,6 +19,7 @@ + + #include <assert.h> + #include <limits.h> ++#include <stdint.h> + #include <stdio.h> + #include <stdio_ext.h> + #include <stdlib.h> +@@ -234,23 +235,58 @@ + goto read_again; + } + ++ if (__builtin_expect (num_transitions ++ > ((SIZE_MAX - (__alignof__ (struct ttinfo) - 1)) ++ / (sizeof (time_t) + 1)), 0)) ++ goto lose; + total_size = num_transitions * (sizeof (time_t) + 1); + total_size = ((total_size + __alignof__ (struct ttinfo) - 1) + & ~(__alignof__ (struct ttinfo) - 1)); + types_idx = total_size; +- total_size += num_types * sizeof (struct ttinfo) + chars; ++ if (__builtin_expect (num_types ++ > (SIZE_MAX - total_size) / sizeof (struct ttinfo), 0)) ++ goto lose; ++ total_size += num_types * sizeof (struct ttinfo); ++ if (__builtin_expect (chars > SIZE_MAX - total_size, 0)) ++ goto lose; ++ total_size += chars; ++ if (__builtin_expect (__alignof__ (struct leap) - 1 ++ > SIZE_MAX - total_size, 0)) ++ goto lose; + total_size = ((total_size + __alignof__ (struct leap) - 1) + & ~(__alignof__ (struct leap) - 1)); + leaps_idx = total_size; ++ if (__builtin_expect (num_leaps ++ > (SIZE_MAX - total_size) / sizeof (struct leap), 0)) ++ goto lose; + total_size += num_leaps * sizeof (struct leap); +- tzspec_len = (sizeof (time_t) == 8 && trans_width == 8 +- ? st.st_size - (ftello (f) +- + num_transitions * (8 + 1) +- + num_types * 6 +- + chars +- + num_leaps * 12 +- + num_isstd +- + num_isgmt) - 1 : 0); ++ tzspec_len = 0; ++ if (sizeof (time_t) == 8 && trans_width == 8) ++ { ++ off_t rem = st.st_size - ftello (f); ++ if (__builtin_expect (rem < 0 ++ || (size_t) rem < (num_transitions * (8 + 1) ++ + num_types * 6 ++ + chars), 0)) ++ goto lose; ++ tzspec_len = (size_t) rem - (num_transitions * (8 + 1) ++ + num_types * 6 ++ + chars); ++ if (__builtin_expect (num_leaps > SIZE_MAX / 12 ++ || tzspec_len < num_leaps * 12, 0)) ++ goto lose; ++ tzspec_len -= num_leaps * 12; ++ if (__builtin_expect (tzspec_len < num_isstd, 0)) ++ goto lose; ++ tzspec_len -= num_isstd; ++ if (__builtin_expect (tzspec_len == 0 || tzspec_len - 1 < num_isgmt, 0)) ++ goto lose; ++ tzspec_len -= num_isgmt + 1; ++ if (__builtin_expect (SIZE_MAX - total_size < tzspec_len, 0)) ++ goto lose; ++ } ++ if (__builtin_expect (SIZE_MAX - total_size - tzspec_len < extra, 0)) ++ goto lose; + + /* Allocate enough memory including the extra block requested by the + caller. */ diff --git a/src/patches/glibc/glibc-rh767746.patch b/src/patches/glibc/glibc-rh767746.patch new file mode 100644 index 0000000..58d96d8 --- /dev/null +++ b/src/patches/glibc/glibc-rh767746.patch @@ -0,0 +1,14 @@ +--- a/nptl/pthread_create.c 2011-12-13 11:41:37.000000000 -0700 ++++ b/nptl/pthread_create.c 2011-12-14 10:03:13.000000000 -0700 +@@ -440,8 +440,9 @@ + int err = ALLOCATE_STACK (iattr, &pd); + if (__builtin_expect (err != 0, 0)) + /* Something went wrong. Maybe a parameter of the attributes is +- invalid or we could not allocate memory. */ +- return err; ++ invalid or we could not allocate memory. Note we have to ++ translate error codes. */ ++ return err == ENOMEM ? EAGAIN : err; + + + /* Initialize the TCB. All initializations with zero should be diff --git a/src/patches/glibc/glibc-rh771342.patch b/src/patches/glibc/glibc-rh771342.patch new file mode 100644 index 0000000..0a49b8c --- /dev/null +++ b/src/patches/glibc/glibc-rh771342.patch @@ -0,0 +1,155 @@ +2011-06-30 Ulrich Drepper drepper@gmail.com + + * nptl-init.c (__nptl_set_robust): New function. + (pthread_functions): Add reference. + * npthreadP.h: Declare __nptl_set_robust. + * sysdeps/pthread/pthread-functions.h (pthread_functions): Add + ptr_set_robust member. + * sysdeps/unix/sysv/linux/fork.c: Call set_robust_list syscall in + child if threads are used. + +diff -Nrup a/nptl/nptl-init.c b/nptl/nptl-init.c +--- a/nptl/nptl-init.c 2011-12-20 00:29:54.645538691 -0700 ++++ b/nptl/nptl-init.c 2012-01-03 10:18:38.977513783 -0700 +@@ -69,6 +69,13 @@ extern void __libc_setup_tls (size_t tcb + #endif + + #ifdef SHARED ++static ++#else ++extern ++#endif ++void __nptl_set_robust (struct pthread *); ++ ++#ifdef SHARED + static void nptl_freeres (void); + + +@@ -131,13 +138,25 @@ static const struct pthread_functions pt + .ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd, + .ptr__nptl_setxid = __nptl_setxid, + /* For now only the stack cache needs to be freed. */ +- .ptr_freeres = nptl_freeres ++ .ptr_freeres = nptl_freeres, ++ .ptr_set_robust = __nptl_set_robust + }; + # define ptr_pthread_functions &pthread_functions + #else + # define ptr_pthread_functions NULL + #endif + ++#ifdef SHARED ++static ++#endif ++void ++__nptl_set_robust (struct pthread *self) ++{ ++ INTERNAL_SYSCALL_DECL (err); ++ INTERNAL_SYSCALL (set_robust_list, err, 2, &self->robust_head, ++ sizeof (struct robust_list_head)); ++} ++ + + #ifdef SHARED + /* This function is called indirectly from the freeres code in libc. */ +diff -Nrup a/nptl/pthreadP.h b/nptl/pthreadP.h +--- a/nptl/pthreadP.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/nptl/pthreadP.h 2012-01-03 10:12:35.599269269 -0700 +@@ -555,17 +555,20 @@ extern void __pthread_cleanup_pop_restor + + /* Old cleanup interfaces, still used in libc.so. */ + extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer, +- void (*routine) (void *), void *arg); ++ void (*routine) (void *), void *arg); + extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, +- int execute); ++ int execute); + extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer, +- void (*routine) (void *), void *arg); ++ void (*routine) (void *), void *arg); + extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer, +- int execute); ++ int execute); + + extern void __nptl_deallocate_tsd (void) attribute_hidden; + + extern int __nptl_setxid (struct xid_command *cmdp) attribute_hidden; ++#ifndef SHARED ++extern void __nptl_set_robust (struct pthread *self); ++#endif + + extern void __free_stacks (size_t limit) attribute_hidden; + +diff -Nrup a/nptl/sysdeps/pthread/pthread-functions.h b/nptl/sysdeps/pthread/pthread-functions.h +--- a/nptl/sysdeps/pthread/pthread-functions.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/nptl/sysdeps/pthread/pthread-functions.h 2012-01-03 10:12:35.639269301 -0700 +@@ -97,6 +97,7 @@ struct pthread_functions + void (*ptr__nptl_deallocate_tsd) (void); + int (*ptr__nptl_setxid) (struct xid_command *); + void (*ptr_freeres) (void); ++ void (*ptr_set_robust) (struct pthread *); + }; + + /* Variable in libc.so. */ +diff -Nrup a/nptl/sysdeps/unix/sysv/linux/fork.c b/nptl/sysdeps/unix/sysv/linux/fork.c +--- a/nptl/sysdeps/unix/sysv/linux/fork.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/nptl/sysdeps/unix/sysv/linux/fork.c 2012-01-03 10:12:35.649269309 -0700 +@@ -29,6 +29,7 @@ + #include <ldsodefs.h> + #include <bits/stdio-lock.h> + #include <atomic.h> ++#include <pthreadP.h> + + + unsigned long int *__fork_generation_pointer; +@@ -86,8 +87,8 @@ __libc_fork (void) + just go away. The unloading code works in the order of the + list. + +- While executing the registered handlers we are building a +- list of all the entries so that we can go backward later on. */ ++ While executing the registered handlers we are building a ++ list of all the entries so that we can go backward later on. */ + while (1) + { + /* Execute the handler if there is one. */ +@@ -154,6 +155,24 @@ __libc_fork (void) + GL(dl_cpuclock_offset) = now; + #endif + ++#ifdef __NR_set_robust_list ++ /* Initialize the robust mutex list which has been reset during ++ the fork. We do not check for errors since if it fails here ++ it failed at process start as well and noone could have used ++ robust mutexes. We also do not have to set ++ self->robust_head.futex_offset since we inherit the correct ++ value from the parent. */ ++# ifdef SHARED ++ if (__libc_pthread_functions.ptr_set_robust != NULL) ++ PTHFCT_CALL (ptr_set_robust, (self)); ++# else ++ extern __typeof (__nptl_set_robust) __nptl_set_robust ++ __attribute__((weak)); ++ if (__builtin_expect (__nptl_set_robust != NULL, 0)) ++ __nptl_set_robust (self); ++# endif ++#endif ++ + /* Reset the file list. These are recursive mutexes. */ + fresetlockfiles (); + +@@ -170,10 +189,10 @@ __libc_fork (void) + allp->handler->child_handler (); + + /* Note that we do not have to wake any possible waiter. +- This is the only thread in the new process. The count +- may have been bumped up by other threads doing a fork. +- We reset it to 1, to avoid waiting for non-existing +- thread(s) to release the count. */ ++ This is the only thread in the new process. The count ++ may have been bumped up by other threads doing a fork. ++ We reset it to 1, to avoid waiting for non-existing ++ thread(s) to release the count. */ + allp->handler->refcntr = 1; + + /* XXX We could at this point look through the object pool diff --git a/src/patches/glibc/glibc-rh782585.patch b/src/patches/glibc/glibc-rh782585.patch new file mode 100644 index 0000000..a554d4b --- /dev/null +++ b/src/patches/glibc/glibc-rh782585.patch @@ -0,0 +1,329 @@ +diff -rup a/elf/dl-close.c b/elf/dl-close.c +--- a/elf/dl-close.c 2012-01-19 12:59:42.759484350 -0700 ++++ b/elf/dl-close.c 2012-01-19 14:10:20.439263806 -0700 +@@ -223,7 +223,7 @@ _dl_close_worker (struct link_map *map) + } + + /* Sort the entries. */ +- _dl_sort_fini (ns->_ns_loaded, maps, nloaded, used, nsid); ++ _dl_sort_fini (maps, nloaded, used, nsid); + + /* Call all termination functions at once. */ + #ifdef SHARED +diff -rup a/elf/dl-deps.c b/elf/dl-deps.c +--- a/elf/dl-deps.c 2012-01-19 12:59:42.716484301 -0700 ++++ b/elf/dl-deps.c 2012-01-19 13:52:35.223720556 -0700 +@@ -614,51 +614,67 @@ Filters not supported with LD_TRACE_PREL + map->l_searchlist.r_list[i]->l_reserved = 0; + } + +- /* Now determine the order in which the initialization has to happen. */ ++ /* Sort the initializer list to take dependencies into account. The binary ++ itself will always be initialize last. */ + memcpy (l_initfini, map->l_searchlist.r_list, + nlist * sizeof (struct link_map *)); +- /* We can skip looking for the binary itself which is at the front +- of the search list. Look through the list backward so that circular +- dependencies are not changing the order. */ +- for (i = 1; i < nlist; ++i) ++ if (__builtin_expect (nlist > 1, 1)) + { +- struct link_map *l = map->l_searchlist.r_list[i]; +- unsigned int j; +- unsigned int k; +- +- /* Find the place in the initfini list where the map is currently +- located. */ +- for (j = 1; l_initfini[j] != l; ++j) +- ; +- +- /* Find all object for which the current one is a dependency and +- move the found object (if necessary) in front. */ +- for (k = j + 1; k < nlist; ++k) ++ /* We can skip looking for the binary itself which is at the front ++ of the search list. */ ++ i = 1; ++ unsigned int seen[nlist]; ++ memset (seen, 0, nlist * sizeof (seen[0])); ++ while (1) + { +- struct link_map **runp; +- +- runp = l_initfini[k]->l_initfini; +- if (runp != NULL) ++ /* Keep track of which object we looked at this round. */ ++ ++seen[i]; ++ struct link_map *thisp = l_initfini[i]; ++ ++ /* Find the last object in the list for which the current one is ++ a dependency and move the current object behind the object ++ with the dependency. */ ++ unsigned int k = nlist - 1; ++ while (k > i) + { +- while (*runp != NULL) +- if (__builtin_expect (*runp++ == l, 0)) +- { +- struct link_map *here = l_initfini[k]; +- +- /* Move it now. */ +- memmove (&l_initfini[j] + 1, &l_initfini[j], +- (k - j) * sizeof (struct link_map *)); +- l_initfini[j] = here; +- +- /* Don't insert further matches before the last +- entry moved to the front. */ +- ++j; ++ struct link_map **runp = l_initfini[k]->l_initfini; ++ if (runp != NULL) ++ /* Look through the dependencies of the object. */ ++ while (*runp != NULL) ++ if (__builtin_expect (*runp++ == thisp, 0)) ++ { ++ /* Move the current object to the back past the last ++ object with it as the dependency. */ ++ memmove (&l_initfini[i], &l_initfini[i + 1], ++ (k - i) * sizeof (l_initfini[0])); ++ l_initfini[k] = thisp; ++ ++ if (seen[i + 1] > nlist - i - 2) ++ { ++ ++i; ++ goto next_clear; ++ } ++ ++ unsigned int this_seen = seen[i]; ++ memmove (&seen[i], &seen[i + 1], ++ (k - i) * sizeof (seen[0])); ++ seen[k] = this_seen; ++ ++ goto next; ++ } + +- break; +- } ++ --k; + } ++ ++ if (++i == nlist) ++ break; ++ next_clear: ++ memset (&seen[i], 0, (nlist - i) * sizeof (seen[0])); ++ ++ next:; + } + } ++ + /* Terminate the list of dependencies. */ + l_initfini[nlist] = NULL; + atomic_write_barrier (); +diff -rup a/elf/dl-fini.c b/elf/dl-fini.c +--- a/elf/dl-fini.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/elf/dl-fini.c 2012-01-19 13:56:38.653842046 -0700 +@@ -1,5 +1,6 @@ + /* Call the termination functions of loaded shared objects. +- Copyright (C) 1995,96,1998-2002,2004-2005,2009 Free Software Foundation, Inc. ++ Copyright (C) 1995,96,1998-2002,2004-2005,2009,2011 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -29,89 +30,100 @@ typedef void (*fini_t) (void); + + void + internal_function +-_dl_sort_fini (struct link_map *l, struct link_map **maps, size_t nmaps, +- char *used, Lmid_t ns) ++_dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns) + { +- if (ns == LM_ID_BASE) +- /* The main executable always comes first. */ +- l = l->l_next; +- +- for (; l != NULL; l = l->l_next) +- /* Do not handle ld.so in secondary namespaces and object which +- are not removed. */ +- if (l == l->l_real && l->l_idx != -1) +- { +- /* Find the place in the 'maps' array. */ +- unsigned int j; +- for (j = ns == LM_ID_BASE ? 1 : 0; maps[j] != l; ++j) +- assert (j < nmaps); +- +- /* Find all object for which the current one is a dependency +- and move the found object (if necessary) in front. */ +- for (unsigned int k = j + 1; k < nmaps; ++k) +- { +- struct link_map **runp = maps[k]->l_initfini; +- if (runp != NULL) +- { +- while (*runp != NULL) +- if (*runp == l) +- { +- struct link_map *here = maps[k]; ++ /* A list of one element need not be sorted. */ ++ if (nmaps == 1) ++ return; ++ ++ /* We can skip looking for the binary itself which is at the front ++ of the search list for the main namespace. */ ++ unsigned int i = ns == LM_ID_BASE; ++ unsigned int seen[nmaps]; ++ memset (seen, 0, nmaps * sizeof (seen[0])); ++ while (1) ++ { ++ /* Keep track of which object we looked at this round. */ ++ ++seen[i]; ++ struct link_map *thisp = maps[i]; ++ ++ /* Do not handle ld.so in secondary namespaces and object which ++ are not removed. */ ++ if (thisp != thisp->l_real || thisp->l_idx == -1) ++ goto skip; ++ ++ /* Find the last object in the list for which the current one is ++ a dependency and move the current object behind the object ++ with the dependency. */ ++ unsigned int k = nmaps - 1; ++ while (k > i) ++ { ++ struct link_map **runp = maps[k]->l_initfini; ++ if (runp != NULL) ++ /* Look through the dependencies of the object. */ ++ while (*runp != NULL) ++ if (__builtin_expect (*runp++ == thisp, 0)) ++ { ++ move: ++ /* Move the current object to the back past the last ++ object with it as the dependency. */ ++ memmove (&maps[i], &maps[i + 1], ++ (k - i) * sizeof (maps[0])); ++ maps[k] = thisp; + +- /* Move it now. */ +- memmove (&maps[j] + 1, +- &maps[j], (k - j) * sizeof (struct link_map *)); +- maps[j] = here; ++ if (used != NULL) ++ { ++ char here_used = used[i]; ++ memmove (&used[i], &used[i + 1], ++ (k - i) * sizeof (used[0])); ++ used[k] = here_used; ++ } + +- if (used != NULL) +- { +- char here_used = used[k]; ++ if (seen[i + 1] > nmaps - i - 2) ++ { ++ ++i; ++ goto next_clear; ++ } + +- memmove (&used[j] + 1, +- &used[j], (k - j) * sizeof (char)); +- used[j] = here_used; +- } ++ unsigned int this_seen = seen[i]; ++ memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0])); ++ seen[k] = this_seen; + +- ++j; ++ goto next; ++ } + +- break; +- } +- else +- ++runp; +- } +- +- if (__builtin_expect (maps[k]->l_reldeps != NULL, 0)) +- { +- unsigned int m = maps[k]->l_reldeps->act; +- struct link_map **relmaps = &maps[k]->l_reldeps->list[0]; ++ if (__builtin_expect (maps[k]->l_reldeps != NULL, 0)) ++ { ++ unsigned int m = maps[k]->l_reldeps->act; ++ struct link_map **relmaps = &maps[k]->l_reldeps->list[0]; + +- while (m-- > 0) ++ /* Look through the relocation dependencies of the object. */ ++ while (m-- > 0) ++ if (__builtin_expect (relmaps[m] == thisp, 0)) + { +- if (relmaps[m] == l) +- { +- struct link_map *here = maps[k]; +- +- /* Move it now. */ +- memmove (&maps[j] + 1, +- &maps[j], +- (k - j) * sizeof (struct link_map *)); +- maps[j] = here; +- +- if (used != NULL) +- { +- char here_used = used[k]; +- +- memmove (&used[j] + 1, +- &used[j], (k - j) * sizeof (char)); +- used[j] = here_used; +- } +- +- break; +- } ++ /* If a cycle exists with a link time dependency, ++ preserve the latter. */ ++ struct link_map **runp = thisp->l_initfini; ++ if (runp != NULL) ++ while (*runp != NULL) ++ if (__builtin_expect (*runp++ == maps[k], 0)) ++ goto ignore; ++ goto move; + } +- } +- } +- } ++ ignore:; ++ } ++ ++ --k; ++ } ++ ++ skip: ++ if (++i == nmaps) ++ break; ++ next_clear: ++ memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0])); ++ ++ next:; ++ } + } + + +@@ -196,9 +208,8 @@ _dl_fini (void) + assert (ns == LM_ID_BASE || i == nloaded || i == nloaded - 1); + nmaps = i; + +- if (nmaps != 0) +- /* Now we have to do the sorting. */ +- _dl_sort_fini (GL(dl_ns)[ns]._ns_loaded, maps, nmaps, NULL, ns); ++ /* Now we have to do the sorting. */ ++ _dl_sort_fini (maps, nmaps, NULL, ns); + + /* We do not rely on the linked list of loaded object anymore from + this point on. We have our own list here (maps). The various +diff -rup a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +--- a/sysdeps/generic/ldsodefs.h 2012-01-19 12:59:42.446483997 -0700 ++++ b/sysdeps/generic/ldsodefs.h 2012-01-19 14:16:36.242453532 -0700 +@@ -947,7 +947,7 @@ extern void _dl_init (struct link_map *m + extern void _dl_fini (void) internal_function; + + /* Sort array MAPS according to dependencies of the contained objects. */ +-extern void _dl_sort_fini (struct link_map *l, struct link_map **maps, ++extern void _dl_sort_fini (struct link_map **maps, + size_t nmaps, char *used, Lmid_t ns) + internal_function; + diff --git a/src/patches/glibc/glibc-rh784402.patch b/src/patches/glibc/glibc-rh784402.patch new file mode 100644 index 0000000..d75773e --- /dev/null +++ b/src/patches/glibc/glibc-rh784402.patch @@ -0,0 +1,166 @@ +commit 3e1aa84e7f9f38815f5db9cd7654b1a9497cf6e4 +Author: Ulrich Drepper drepper@gmail.com +Date: Fri Jan 20 22:39:54 2012 -0500 + + Do not cache negative results in nscd if these are transient + +diff -rup a/nscd/aicache.c b/nscd/aicache.c +--- a/nscd/aicache.c 2012-01-24 20:32:58.906826425 -0700 ++++ b/nscd/aicache.c 2012-01-24 20:42:17.663968882 -0700 +@@ -511,9 +511,17 @@ next_nip: + if (fd != -1) + TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store the ++ result, so be it. */ ++ if (rc4 == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ dataset = NULL; ++ } ++ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset) ++ + req->key_len), 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +diff -rup a/nscd/grpcache.c b/nscd/grpcache.c +--- a/nscd/grpcache.c 2012-01-24 20:32:58.910826427 -0700 ++++ b/nscd/grpcache.c 2012-01-24 20:42:17.666968883 -0700 +@@ -114,13 +114,21 @@ cache_addgr (struct database_dyn *db, in + case. */ + total = sizeof (notfound); + +- written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, +- MSG_NOSIGNAL)); ++ if (fd != -1) ++ written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, ++ MSG_NOSIGNAL)); ++ else ++ written = total; + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +diff -rup a/nscd/hstcache.c b/nscd/hstcache.c +--- a/nscd/hstcache.c 2012-01-24 20:32:58.911826427 -0700 ++++ b/nscd/hstcache.c 2012-01-24 20:42:17.668968883 -0700 +@@ -141,10 +141,16 @@ cache_addhst (struct database_dyn *db, i + MSG_NOSIGNAL)) != total) + all_written = false; + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset) ++ + req->key_len), 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +diff -rup a/nscd/initgrcache.c b/nscd/initgrcache.c +--- a/nscd/initgrcache.c 2012-01-24 20:32:58.912826427 -0700 ++++ b/nscd/initgrcache.c 2012-01-24 20:42:17.671968883 -0700 +@@ -202,10 +202,16 @@ addinitgroupsX (struct database_dyn *db, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (all_tryagain || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset) ++ + req->key_len), 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +diff -rup a/nscd/pwdcache.c b/nscd/pwdcache.c +--- a/nscd/pwdcache.c 2012-01-24 20:32:58.914826427 -0700 ++++ b/nscd/pwdcache.c 2012-01-24 20:42:17.671968883 -0700 +@@ -124,10 +124,16 @@ cache_addpw (struct database_dyn *db, in + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset) ++ + req->key_len), 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +diff -rup a/nscd/servicescache.c b/nscd/servicescache.c +--- a/nscd/servicescache.c 2012-01-24 20:32:58.915826427 -0700 ++++ b/nscd/servicescache.c 2012-01-24 20:42:17.672968884 -0700 +@@ -102,15 +102,22 @@ cache_addserv (struct database_dyn *db, + { + /* We have no data. This means we send the standard reply for this + case. */ +- total = sizeof (notfound); ++ written = total = sizeof (notfound); + +- written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, +- MSG_NOSIGNAL)); ++ if (fd != -1) ++ written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, ++ MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset) ++ + req->key_len), 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; diff --git a/src/patches/glibc/glibc-rh785984.patch b/src/patches/glibc/glibc-rh785984.patch new file mode 100644 index 0000000..80ba5e8 --- /dev/null +++ b/src/patches/glibc/glibc-rh785984.patch @@ -0,0 +1,20 @@ +diff -rup a/localedata/locales/zh_CN b/localedata/locales/zh_CN +--- a/localedata/locales/zh_CN 2006-07-30 16:19:43.000000000 -0600 ++++ b/localedata/locales/zh_CN 2012-01-30 21:24:46.905115483 -0700 +@@ -108,11 +108,11 @@ day "<U661F><U671F><U65E5>";/ + "<U661F><U671F><U4E94>";/ + "<U661F><U671F><U516D>" + +-abmon "<U0020><U0031><U6708>";"<U0020><U0032><U6708>";/ +- "<U0020><U0033><U6708>";"<U0020><U0034><U6708>";/ +- "<U0020><U0035><U6708>";"<U0020><U0036><U6708>";/ +- "<U0020><U0037><U6708>";"<U0020><U0038><U6708>";/ +- "<U0020><U0039><U6708>";"<U0031><U0030><U6708>";/ ++abmon "<U0031><U6708>";"<U0032><U6708>";/ ++ "<U0033><U6708>";"<U0034><U6708>";/ ++ "<U0035><U6708>";"<U0036><U6708>";/ ++ "<U0037><U6708>";"<U0038><U6708>";/ ++ "<U0039><U6708>";"<U0031><U0030><U6708>";/ + "<U0031><U0031><U6708>";"<U0031><U0032><U6708>" + + mon "<U4E00><U6708>";"<U4E8C><U6708>";"<U4E09><U6708>";/ diff --git a/src/patches/glibc/glibc-rh788959-2.patch b/src/patches/glibc/glibc-rh788959-2.patch new file mode 100644 index 0000000..1064640 --- /dev/null +++ b/src/patches/glibc/glibc-rh788959-2.patch @@ -0,0 +1,153 @@ +diff -rcp a/nscd/grpcache.c b/nscd/grpcache.c +*** a/nscd/grpcache.c Wed Apr 11 12:50:07 2012 +--- b/nscd/grpcache.c Wed Apr 11 21:45:58 2012 +*************** cache_addgr (struct database_dyn *db, in +*** 178,184 **** + char *cp; + const size_t key_len = strlen (key); + const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1; +! char *buf = alloca (buf_len); + ssize_t n; + size_t cnt; + +--- 178,185 ---- + char *cp; + const size_t key_len = strlen (key); + const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1; +! size_t alloca_used = 0; +! char *buf = alloca_account (buf_len, alloca_used); + ssize_t n; + size_t cnt; + +*************** cache_addgr (struct database_dyn *db, in +*** 190,196 **** + /* Determine the length of all members. */ + while (grp->gr_mem[gr_mem_cnt]) + ++gr_mem_cnt; +! gr_mem_len = (uint32_t *) alloca (gr_mem_cnt * sizeof (uint32_t)); + for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt) + { + gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1; +--- 191,198 ---- + /* Determine the length of all members. */ + while (grp->gr_mem[gr_mem_cnt]) + ++gr_mem_cnt; +! gr_mem_len = (uint32_t *) alloca_account (gr_mem_cnt * sizeof (uint32_t), +! alloca_used); + for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt) + { + gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1; +*************** cache_addgr (struct database_dyn *db, in +*** 205,214 **** + change. Allocate memory on the cache since it is likely + discarded anyway. If it turns out to be necessary to have a + new record we can still allocate real memory. */ +! bool alloca_used = false; + dataset = NULL; + +! if (he == NULL) + dataset = (struct dataset *) mempool_alloc (db, total + n, 1); + + if (dataset == NULL) +--- 207,216 ---- + change. Allocate memory on the cache since it is likely + discarded anyway. If it turns out to be necessary to have a + new record we can still allocate real memory. */ +! bool dataset_in_stack_or_freed = false; + dataset = NULL; + +! if (he == NULL || ! __libc_use_alloca (alloca_used + total + n)) + dataset = (struct dataset *) mempool_alloc (db, total + n, 1); + + if (dataset == NULL) +*************** cache_addgr (struct database_dyn *db, in +*** 216,225 **** + /* We cannot permanently add the result in the moment. But + we can provide the result as is. Store the data in some + temporary memory. */ +! dataset = (struct dataset *) alloca (total + n); + + /* We cannot add this record to the permanent database. */ +! alloca_used = true; + } + + dataset->head.allocsize = total + n; +--- 218,227 ---- + /* We cannot permanently add the result in the moment. But + we can provide the result as is. Store the data in some + temporary memory. */ +! dataset = (struct dataset *) alloca_account (total + n, alloca_used); + + /* We cannot add this record to the permanent database. */ +! dataset_in_stack_or_freed = true; + } + + dataset->head.allocsize = total + n; +*************** cache_addgr (struct database_dyn *db, in +*** 273,278 **** +--- 275,288 ---- + allocated on the stack and need not be freed. */ + dh->timeout = dataset->head.timeout; + ++dh->nreloads; ++ ++ /* If the new record was not allocated on the stack, then it must ++ be freed. Note that it can no longer be used. */ ++ if (! dataset_in_stack_or_freed) ++ { ++ free (dataset); ++ dataset_in_stack_or_freed = true; ++ } + } + else + { +*************** cache_addgr (struct database_dyn *db, in +*** 288,294 **** + key_copy = (char *) newp + (key_copy - (char *) dataset); + + dataset = memcpy (newp, dataset, total + n); +! alloca_used = false; + } + + /* Mark the old record as obsolete. */ +--- 298,304 ---- + key_copy = (char *) newp + (key_copy - (char *) dataset); + + dataset = memcpy (newp, dataset, total + n); +! dataset_in_stack_or_freed = false; + } + + /* Mark the old record as obsolete. */ +*************** cache_addgr (struct database_dyn *db, in +*** 303,309 **** + assert (fd != -1); + + #ifdef HAVE_SENDFILE +! if (__builtin_expect (db->mmap_used, 1) && !alloca_used) + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +--- 313,319 ---- + assert (fd != -1); + + #ifdef HAVE_SENDFILE +! if (__builtin_expect (db->mmap_used, 1) && !dataset_in_stack_or_freed) + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +*************** cache_addgr (struct database_dyn *db, in +*** 330,336 **** + + /* Add the record to the database. But only if it has not been + stored on the stack. */ +! if (! alloca_used) + { + /* If necessary, we also propagate the data to disk. */ + if (db->persistent) +--- 340,346 ---- + + /* Add the record to the database. But only if it has not been + stored on the stack. */ +! if (! dataset_in_stack_or_freed) + { + /* If necessary, we also propagate the data to disk. */ + if (db->persistent) diff --git a/src/patches/glibc/glibc-rh788959.patch b/src/patches/glibc/glibc-rh788959.patch new file mode 100644 index 0000000..adc6c99 --- /dev/null +++ b/src/patches/glibc/glibc-rh788959.patch @@ -0,0 +1,130 @@ +diff -pruN glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-initgroups.c glibc-2.12-2-gc4ccff1.patched/nis/nss_compat/compat-initgroups.c +--- glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-initgroups.c 2010-05-04 16:57:23.000000000 +0530 ++++ glibc-2.12-2-gc4ccff1.patched/nis/nss_compat/compat-initgroups.c 2012-02-21 11:11:19.877008465 +0530 +@@ -297,6 +297,8 @@ getgrent_next_nss (ent_t *ent, char *buf + if (nss_initgroups_dyn (user, group, &mystart, &mysize, &mygroups, + limit, errnop) == NSS_STATUS_SUCCESS) + { ++ status = NSS_STATUS_NOTFOUND; ++ + /* If there is no blacklist we can trust the underlying + initgroups implementation. */ + if (ent->blacklist.current <= 1) +@@ -309,6 +311,7 @@ getgrent_next_nss (ent_t *ent, char *buf + overwrite the pointer with one to a bigger buffer. */ + char *tmpbuf = buffer; + size_t tmplen = buflen; ++ bool use_malloc = false; + + for (int i = 0; i < mystart; i++) + { +@@ -316,21 +319,36 @@ getgrent_next_nss (ent_t *ent, char *buf + tmpbuf, tmplen, errnop)) + == NSS_STATUS_TRYAGAIN + && *errnop == ERANGE) +- if (tmpbuf == buffer) +- { +- tmplen *= 2; +- tmpbuf = __alloca (tmplen); +- } +- else +- tmpbuf = extend_alloca (tmpbuf, tmplen, 2 * tmplen); ++ { ++ if (__libc_use_alloca (tmplen * 2)) ++ { ++ if (tmpbuf == buffer) ++ { ++ tmplen *= 2; ++ tmpbuf = __alloca (tmplen); ++ } ++ else ++ tmpbuf = extend_alloca (tmpbuf, tmplen, tmplen * 2); ++ } ++ else ++ { ++ tmplen *= 2; ++ char *newbuf = realloc (use_malloc ? tmpbuf : NULL, tmplen); ++ ++ if (newbuf == NULL) ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ goto done; ++ } ++ use_malloc = true; ++ tmpbuf = newbuf; ++ } ++ } + + if (__builtin_expect (status != NSS_STATUS_NOTFOUND, 1)) + { + if (__builtin_expect (status != NSS_STATUS_SUCCESS, 0)) +- { +- free (mygroups); +- return status; +- } ++ goto done; + + if (!in_blacklist (grpbuf.gr_name, + strlen (grpbuf.gr_name), ent) +@@ -348,11 +366,17 @@ getgrent_next_nss (ent_t *ent, char *buf + } + } + } ++ ++ status = NSS_STATUS_NOTFOUND; ++ ++ done: ++ if (use_malloc) ++ free (tmpbuf); + } + + free (mygroups); + +- return NSS_STATUS_NOTFOUND; ++ return status; + } + + free (mygroups); +@@ -506,6 +530,7 @@ _nss_compat_initgroups_dyn (const char * + char *tmpbuf; + enum nss_status status; + ent_t intern = { true, false, false, NULL, {NULL, 0, 0} }; ++ bool use_malloc = false; + + status = internal_setgrent (&intern); + if (status != NSS_STATUS_SUCCESS) +@@ -519,13 +544,32 @@ _nss_compat_initgroups_dyn (const char * + user, group, start, size, + groupsp, limit, errnop)) + == NSS_STATUS_TRYAGAIN && *errnop == ERANGE) +- tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen); ++ if (__libc_use_alloca (buflen * 2)) ++ tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen); ++ else ++ { ++ buflen *= 2; ++ char *newbuf = realloc (use_malloc ? tmpbuf : NULL, buflen); ++ if (newbuf == NULL) ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ goto done; ++ } ++ use_malloc = true; ++ tmpbuf = newbuf; ++ } + } + while (status == NSS_STATUS_SUCCESS); + ++ status = NSS_STATUS_SUCCESS; ++ ++ done: ++ if (use_malloc) ++ free (tmpbuf); ++ + internal_endgrent (&intern); + +- return NSS_STATUS_SUCCESS; ++ return status; + } + + diff --git a/src/patches/glibc/glibc-rh789189.patch b/src/patches/glibc/glibc-rh789189.patch new file mode 100644 index 0000000..fc0e2e0 --- /dev/null +++ b/src/patches/glibc/glibc-rh789189.patch @@ -0,0 +1,12 @@ +diff -rup a/resolv/res_init.c b/resolv/res_init.c +--- a/resolv/res_init.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/resolv/res_init.c 2012-02-10 10:20:24.923578396 -0700 +@@ -325,7 +325,7 @@ __res_vinit(res_state statp, int preinit + struct in6_addr a6; + char *el; + +- if ((el = strchr(cp, '\n')) != NULL) ++ if ((el = strpbrk(cp, " \t\n")) != NULL) + *el = '\0'; + if ((el = strchr(cp, SCOPE_DELIMITER)) != NULL) + *el = '\0'; diff --git a/src/patches/glibc/glibc-rh789209.patch b/src/patches/glibc/glibc-rh789209.patch new file mode 100644 index 0000000..3aea97e --- /dev/null +++ b/src/patches/glibc/glibc-rh789209.patch @@ -0,0 +1,12 @@ +diff -rup a/localedata/locales/uk_UA b/localedata/locales/uk_UA +--- a/localedata/locales/uk_UA 2010-05-04 05:27:23.000000000 -0600 ++++ b/localedata/locales/uk_UA 2012-02-10 09:59:16.934189715 -0700 +@@ -700,7 +700,7 @@ LC_MONETARY + % 200 hrv. - 200 hryven (money) + + % the local currency symbol +-currency_symbol "<U0433><U0440>" % hr (hryvnya) ++currency_symbol "<U0433><U0440><U043D><U002E>" % hr (hryvnya) + + % This must be a 4-character string containing the international currency + % symbol as defined by the ISO 4217 standard (three characters) followed diff --git a/src/patches/glibc/glibc-rh789238-2.patch b/src/patches/glibc/glibc-rh789238-2.patch new file mode 100644 index 0000000..62b5492 --- /dev/null +++ b/src/patches/glibc/glibc-rh789238-2.patch @@ -0,0 +1,114 @@ +diff -rup a/malloc/arena.c b/malloc/arena.c +--- a/malloc/arena.c 2012-03-02 10:22:47.025002715 -0700 ++++ b/malloc/arena.c 2012-03-02 10:27:47.442361529 -0700 +@@ -123,14 +123,14 @@ int __malloc_initialized = -1; + if(ptr) \ + (void)mutex_lock(&ptr->mutex); \ + else \ +- ptr = arena_get2(ptr, (size)); \ ++ ptr = arena_get2(ptr, (size), false); \ + } while(0) + #else + #define arena_lock(ptr, size) do { \ + if(ptr && !mutex_trylock(&ptr->mutex)) { \ + THREAD_STAT(++(ptr->stat_lock_direct)); \ + } else \ +- ptr = arena_get2(ptr, (size)); \ ++ ptr = arena_get2(ptr, (size), false); \ + } while(0) + #endif + +@@ -982,7 +982,7 @@ get_free_list (void) + + + static mstate +-reused_arena (void) ++reused_arena (bool retrying) + { + mstate result; + static mstate next_to_use; +@@ -999,6 +999,15 @@ reused_arena (void) + } + while (result != next_to_use); + ++ /* If we are retrying due to a failure to allocate in the main ++ arena, don't wait for the main arena to become available, select ++ another. ++ ++ To really fix this right we would have to try the allocation ++ in every other arena, but that seems like severe overkill. */ ++ if (retrying && result == &main_arena) ++ result = result->next; ++ + /* No arena available. Wait for the next in line. */ + (void)mutex_lock(&result->mutex); + +@@ -1014,9 +1023,9 @@ reused_arena (void) + static mstate + internal_function + #if __STD_C +-arena_get2(mstate a_tsd, size_t size) ++arena_get2(mstate a_tsd, size_t size, bool retrying) + #else +-arena_get2(a_tsd, size) mstate a_tsd; size_t size; ++arena_get2(a_tsd, size, retrying) mstate a_tsd; size_t size; bool retrying + #endif + { + mstate a; +@@ -1055,7 +1064,7 @@ arena_get2(a_tsd, size) mstate a_tsd; si + catomic_decrement (&narenas); + } + else +- a = reused_arena (); ++ a = reused_arena (retrying); + } + #else + if(!a_tsd) +diff -rup a/malloc/malloc.c b/malloc/malloc.c +--- a/malloc/malloc.c 2012-03-02 10:22:47.061002519 -0700 ++++ b/malloc/malloc.c 2012-03-02 10:23:53.151643863 -0700 +@@ -3671,7 +3671,7 @@ public_mALLOc(size_t bytes) + /* ... or sbrk() has failed and there is still a chance to mmap() */ + mstate prev = ar_ptr->next ? ar_ptr : 0; + (void)mutex_unlock(&ar_ptr->mutex); +- ar_ptr = arena_get2(prev, bytes); ++ ar_ptr = arena_get2(prev, bytes, true); + if(ar_ptr) { + victim = _int_malloc(ar_ptr, bytes); + (void)mutex_unlock(&ar_ptr->mutex); +@@ -3892,7 +3892,7 @@ public_mEMALIGn(size_t alignment, size_t + /* ... or sbrk() has failed and there is still a chance to mmap() */ + mstate prev = ar_ptr->next ? ar_ptr : 0; + (void)mutex_unlock(&ar_ptr->mutex); +- ar_ptr = arena_get2(prev, bytes); ++ ar_ptr = arena_get2(prev, bytes, true); + if(ar_ptr) { + p = _int_memalign(ar_ptr, alignment, bytes); + (void)mutex_unlock(&ar_ptr->mutex); +@@ -3943,7 +3943,7 @@ public_vALLOc(size_t bytes) + /* ... or sbrk() has failed and there is still a chance to mmap() */ + mstate prev = ar_ptr->next ? ar_ptr : 0; + (void)mutex_unlock(&ar_ptr->mutex); +- ar_ptr = arena_get2(prev, bytes); ++ ar_ptr = arena_get2(prev, bytes, true); + if(ar_ptr) { + p = _int_memalign(ar_ptr, pagesz, bytes); + (void)mutex_unlock(&ar_ptr->mutex); +@@ -3992,7 +3992,7 @@ public_pVALLOc(size_t bytes) + /* ... or sbrk() has failed and there is still a chance to mmap() */ + mstate prev = ar_ptr->next ? ar_ptr : 0; + (void)mutex_unlock(&ar_ptr->mutex); +- ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE); ++ ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE, true); + if(ar_ptr) { + p = _int_memalign(ar_ptr, pagesz, rounded_bytes); + (void)mutex_unlock(&ar_ptr->mutex); +@@ -4086,7 +4086,7 @@ public_cALLOc(size_t n, size_t elem_size + /* ... or sbrk() has failed and there is still a chance to mmap() */ + mstate prev = av->next ? av : 0; + (void)mutex_unlock(&av->mutex); +- av = arena_get2(prev, sz); ++ av = arena_get2(prev, sz, true); + if(av) { + mem = _int_malloc(av, sz); + (void)mutex_unlock(&av->mutex); diff --git a/src/patches/glibc/glibc-rh789238.patch b/src/patches/glibc/glibc-rh789238.patch new file mode 100644 index 0000000..f2c90e2 --- /dev/null +++ b/src/patches/glibc/glibc-rh789238.patch @@ -0,0 +1,119 @@ +diff -rup a/malloc/malloc.c b/malloc/malloc.c +--- a/malloc/malloc.c 2012-02-13 21:46:11.678847531 -0700 ++++ b/malloc/malloc.c 2012-02-13 22:43:14.788431976 -0700 +@@ -3669,8 +3669,9 @@ public_mALLOc(size_t bytes) + } else { + #if USE_ARENAS + /* ... or sbrk() has failed and there is still a chance to mmap() */ +- ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, bytes); +- (void)mutex_unlock(&main_arena.mutex); ++ mstate prev = ar_ptr->next ? ar_ptr : 0; ++ (void)mutex_unlock(&ar_ptr->mutex); ++ ar_ptr = arena_get2(prev, bytes); + if(ar_ptr) { + victim = _int_malloc(ar_ptr, bytes); + (void)mutex_unlock(&ar_ptr->mutex); +@@ -3929,10 +3930,10 @@ public_vALLOc(size_t bytes) + if(!ar_ptr) + return 0; + p = _int_valloc(ar_ptr, bytes); +- (void)mutex_unlock(&ar_ptr->mutex); + if(!p) { + /* Maybe the failure is due to running out of mmapped areas. */ + if(ar_ptr != &main_arena) { ++ (void)mutex_unlock(&ar_ptr->mutex); + ar_ptr = &main_arena; + (void)mutex_lock(&ar_ptr->mutex); + p = _int_memalign(ar_ptr, pagesz, bytes); +@@ -3940,14 +3941,17 @@ public_vALLOc(size_t bytes) + } else { + #if USE_ARENAS + /* ... or sbrk() has failed and there is still a chance to mmap() */ +- ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, bytes); ++ mstate prev = ar_ptr->next ? ar_ptr : 0; ++ (void)mutex_unlock(&ar_ptr->mutex); ++ ar_ptr = arena_get2(prev, bytes); + if(ar_ptr) { + p = _int_memalign(ar_ptr, pagesz, bytes); + (void)mutex_unlock(&ar_ptr->mutex); + } + #endif + } +- } ++ } else ++ (void)mutex_unlock(&ar_ptr->mutex); + assert(!p || chunk_is_mmapped(mem2chunk(p)) || + ar_ptr == arena_for_chunk(mem2chunk(p))); + +@@ -3975,10 +3979,10 @@ public_pVALLOc(size_t bytes) + + arena_get(ar_ptr, bytes + 2*pagesz + MINSIZE); + p = _int_pvalloc(ar_ptr, bytes); +- (void)mutex_unlock(&ar_ptr->mutex); + if(!p) { + /* Maybe the failure is due to running out of mmapped areas. */ + if(ar_ptr != &main_arena) { ++ (void)mutex_unlock(&ar_ptr->mutex); + ar_ptr = &main_arena; + (void)mutex_lock(&ar_ptr->mutex); + p = _int_memalign(ar_ptr, pagesz, rounded_bytes); +@@ -3986,15 +3990,17 @@ public_pVALLOc(size_t bytes) + } else { + #if USE_ARENAS + /* ... or sbrk() has failed and there is still a chance to mmap() */ +- ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, +- bytes + 2*pagesz + MINSIZE); ++ mstate prev = ar_ptr->next ? ar_ptr : 0; ++ (void)mutex_unlock(&ar_ptr->mutex); ++ ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE); + if(ar_ptr) { + p = _int_memalign(ar_ptr, pagesz, rounded_bytes); + (void)mutex_unlock(&ar_ptr->mutex); + } + #endif + } +- } ++ } else ++ (void)mutex_unlock(&ar_ptr->mutex); + assert(!p || chunk_is_mmapped(mem2chunk(p)) || + ar_ptr == arena_for_chunk(mem2chunk(p))); + +@@ -4064,8 +4070,6 @@ public_cALLOc(size_t n, size_t elem_size + #endif + mem = _int_malloc(av, sz); + +- /* Only clearing follows, so we can unlock early. */ +- (void)mutex_unlock(&av->mutex); + + assert(!mem || chunk_is_mmapped(mem2chunk(mem)) || + av == arena_for_chunk(mem2chunk(mem))); +@@ -4073,15 +4077,16 @@ public_cALLOc(size_t n, size_t elem_size + if (mem == 0) { + /* Maybe the failure is due to running out of mmapped areas. */ + if(av != &main_arena) { ++ (void)mutex_unlock(&av->mutex); + (void)mutex_lock(&main_arena.mutex); + mem = _int_malloc(&main_arena, sz); + (void)mutex_unlock(&main_arena.mutex); + } else { + #if USE_ARENAS + /* ... or sbrk() has failed and there is still a chance to mmap() */ +- (void)mutex_lock(&main_arena.mutex); +- av = arena_get2(av->next ? av : 0, sz); +- (void)mutex_unlock(&main_arena.mutex); ++ mstate prev = av->next ? av : 0; ++ (void)mutex_unlock(&av->mutex); ++ av = arena_get2(prev, sz); + if(av) { + mem = _int_malloc(av, sz); + (void)mutex_unlock(&av->mutex); +@@ -4089,7 +4094,8 @@ public_cALLOc(size_t n, size_t elem_size + #endif + } + if (mem == 0) return 0; +- } ++ } else ++ (void)mutex_unlock(&av->mutex); + p = mem2chunk(mem); + + /* Two optional cases in which clearing not necessary */ diff --git a/src/patches/glibc/glibc-rh794817-2.patch b/src/patches/glibc/glibc-rh794817-2.patch new file mode 100644 index 0000000..15774b4 --- /dev/null +++ b/src/patches/glibc/glibc-rh794817-2.patch @@ -0,0 +1,85 @@ +diff -rup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +--- a/stdio-common/vfprintf.c 2012-03-05 09:43:14.705536167 -0700 ++++ b/stdio-common/vfprintf.c 2012-03-05 09:48:11.602890982 -0700 +@@ -822,7 +822,7 @@ vfprintf (FILE *s, const CHAR_T *format, + \ + if (function_done < 0) \ + { \ +- /* Error in print handler. */ \ ++ /* Error in print handler; up to handler to set errno. */ \ + done = -1; \ + goto all_done; \ + } \ +@@ -876,7 +876,7 @@ vfprintf (FILE *s, const CHAR_T *format, + \ + if (function_done < 0) \ + { \ +- /* Error in print handler. */ \ ++ /* Error in print handler; up to handler to set errno. */ \ + done = -1; \ + goto all_done; \ + } \ +@@ -1117,7 +1117,7 @@ vfprintf (FILE *s, const CHAR_T *format, + &mbstate); \ + if (len == (size_t) -1) \ + { \ +- /* Something went wron gduring the conversion. Bail out. */ \ ++ /* Something went wrong during the conversion. Bail out. */ \ + done = -1; \ + goto all_done; \ + } \ +@@ -1188,6 +1188,7 @@ vfprintf (FILE *s, const CHAR_T *format, + if (__mbsnrtowcs (ignore, &str2, strend - str2, \ + ignore_size, &ps) == (size_t) -1) \ + { \ ++ /* Conversion function has set errno. */ \ + done = -1; \ + goto all_done; \ + } \ +@@ -1599,6 +1600,7 @@ vfprintf (FILE *s, const CHAR_T *format, + if (spec == L_('\0')) + { + /* The format string ended before the specifier is complete. */ ++ __set_errno (EINVAL); + done = -1; + goto all_done; + } +@@ -1696,17 +1698,20 @@ do_positional: + + /* Determine the number of arguments the format string consumes. */ + nargs = MAX (nargs, max_ref_arg); ++ /* Calculate total size needed to represent a single argument across ++ all three argument-related arrays. */ + bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) + + sizeof (*args_type); + + /* Check for potential integer overflow. */ +- if (nargs > SIZE_MAX / bytes_per_arg) ++ if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0)) + { ++ __set_errno (ERANGE); + done = -1; + goto all_done; + } + +- /* Allocate memory for the argument descriptions. */ ++ /* Allocate memory for all three argument arrays. */ + if (__libc_use_alloca (nargs * bytes_per_arg)) + args_value = alloca (nargs * bytes_per_arg); + else +@@ -1937,6 +1942,7 @@ do_positional: + about # of chars. */ + if (function_done < 0) + { ++ /* Function has set errno. */ + done = -1; + goto all_done; + } +@@ -1971,6 +1977,7 @@ do_positional: + of chars. */ + if (function_done < 0) + { ++ /* Function has set errno. */ + done = -1; + goto all_done; + } diff --git a/src/patches/glibc/glibc-rh794817.patch b/src/patches/glibc/glibc-rh794817.patch new file mode 100644 index 0000000..e21caaa --- /dev/null +++ b/src/patches/glibc/glibc-rh794817.patch @@ -0,0 +1,239 @@ +From libc-alpha-return-25252-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org Thu Feb 16 16:21:17 2012 +Return-Path: <libc-alpha-return-25252-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org> +Delivered-To: listarch-libc-alpha at sources dot redhat dot com +Received: (qmail 5187 invoked by alias); 16 Feb 2012 16:21:14 -0000 +Delivered-To: moderator for libc-alpha at sourceware dot org +Received: (qmail 2174 invoked by uid 22791); 16 Feb 2012 16:17:18 -0000 +X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 + tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,TW_TV,TW_VB,TW_VF,T_RP_MATCHES_RCVD +X-Spam-Check-By: sourceware.org +Date: Thu, 16 Feb 2012 08:16:13 -0800 +From: Kees Cook <kees at outflux dot net> +To: "Ryan S dot Arnold" <ryan dot arnold at gmail dot com> +Cc: libc-alpha at sourceware dot org, Paul Eggert <eggert at cs dot ucla dot edu>, + Roland McGrath <roland at hack dot frob dot com>, + Andreas Schwab <schwab at linux-m68k dot org> +Subject: Re: [PATCH] vfprintf: validate nargs and maybe allocate from heap +Message-ID: 20120216161613.GZ20420@outflux.net +References: 20120206062537.GM4979@outflux.net + <20120207000509 dot GP4989 at outflux dot net> + <20120210192457 dot GF20420 at outflux dot net> + <CAAKybw8AgkGsKAx=kvX4Tsi74f+HtuVnatTCB0VfsHi7vVFi1Q at mail dot gmail dot com> + <20120214223048 dot GM20420 at outflux dot net> + <CAAKybw_HS+cav+YcDw3ns7UXu6_xA7EHPrkiB87P+OGwEB0PVQ at mail dot gmail dot com> + <20120214224543 dot GN20420 at outflux dot net> +MIME-Version: 1.0 +Content-Type: text/plain; charset=us-ascii +Content-Disposition: inline +In-Reply-To: <20120214224543 dot GN20420 at outflux dot net> +X-MIMEDefang-Filter: outflux$Revision: 1.316 $ +X-HELO: www.outflux.net +Mailing-List: contact libc-alpha-help at sourceware dot org; run by ezmlm +Precedence: bulk +List-Id: <libc-alpha.sourceware.org> +List-Subscribe: <mailto:libc-alpha-subscribe at sourceware dot org> +List-Archive: http://sourceware.org/ml/libc-alpha/ +List-Post: <mailto:libc-alpha at sourceware dot org> +List-Help: <mailto:libc-alpha-help at sourceware dot org>, <http://sourceware dot org/ml/#faqs> +Sender: libc-alpha-owner at sourceware dot org +Delivered-To: mailing list libc-alpha at sourceware dot org + +The nargs value can overflow when doing allocations, allowing arbitrary +memory writes via format strings, bypassing _FORTIFY_SOURCE: +http://www.phrack.org/issues.html?issue=67&id=9 + +This checks for nargs overflow and possibly allocates from heap instead of +stack, and adds a regression test for the situation. + +I have FSF assignment via Google. (Sent from @outflux since that's how I'm +subscribed here, but CL shows @chromium.org as part of my Google work.) + +This version disables the useless test on non-32-bit platforms. + +2012-02-16 Kees Cook keescook@chromium.org + + [BZ #13656] + * stdio-common/vfprintf.c (vfprintf): Check for nargs overflow and + possibly allocate from heap instead of stack. + * stdio-common/bug-vfprintf-nargs.c: New file. + * stdio-common/Makefile (tests): Add nargs overflow test. + + +diff -rup a/stdio-common/Makefile b/stdio-common/Makefile +--- a/stdio-common/Makefile 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdio-common/Makefile 2012-02-20 21:57:52.983040992 -0700 +@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ + bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ +- scanf16 scanf17 tst-setvbuf1 ++ scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs + + test-srcs = tst-unbputc tst-printf + +diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c +new file mode 100644 +index 0000000..13c66c0 +--- /dev/null ++++ b/stdio-common/bug-vfprintf-nargs.c +@@ -0,0 +1,78 @@ ++/* Test for vfprintf nargs allocation overflow (BZ #13656). ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Kees Cook keescook@chromium.org, 2012. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <stdio.h> ++#include <stdlib.h> ++#include <stdint.h> ++#include <unistd.h> ++#include <inttypes.h> ++#include <string.h> ++#include <signal.h> ++ ++static int ++format_failed (const char *fmt, const char *expected) ++{ ++ char output[80]; ++ ++ printf ("%s : ", fmt); ++ ++ memset (output, 0, sizeof output); ++ /* Having sprintf itself detect a failure is good. */ ++ if (sprintf (output, fmt, 1, 2, 3, "test") > 0 ++ && strcmp (output, expected) != 0) ++ { ++ printf ("FAIL (output '%s' != expected '%s')\n", output, expected); ++ return 1; ++ } ++ puts ("ok"); ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ int rc = 0; ++ char buf[64]; ++ ++ /* Regular positionals work. */ ++ if (format_failed ("%1$d", "1") != 0) ++ rc = 1; ++ ++ /* Regular width positionals work. */ ++ if (format_failed ("%1$*2$d", " 1") != 0) ++ rc = 1; ++ ++ /* Positional arguments are constructed via read_int, so nargs can only ++ overflow on 32-bit systems. On 64-bit systems, it will attempt to ++ allocate a giant amount of memory and possibly crash, which is the ++ expected situation. Since the 64-bit behavior is arch-specific, only ++ test this on 32-bit systems. */ ++ if (sizeof (long int) == 4) ++ { ++ sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int)); ++ if (format_failed (buf, "1 %$d") != 0) ++ rc = 1; ++ } ++ ++ return rc; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +index 863cd5d..022e72b 100644 +--- a/stdio-common/vfprintf.c ++++ b/stdio-common/vfprintf.c +@@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) + 0 if unknown. */ + int readonly_format = 0; + ++ /* For the argument descriptions, which may be allocated on the heap. */ ++ void *args_malloced = NULL; ++ + /* This table maps a character into a number representing a + class. In each step there is a destination label for each + class. */ +@@ -1647,9 +1650,10 @@ do_positional: + determine the size of the array needed to store the argument + attributes. */ + size_t nargs = 0; +- int *args_type; +- union printf_arg *args_value = NULL; ++ size_t bytes_per_arg; ++ union printf_arg *args_value; + int *args_size; ++ int *args_type; + + /* Positional parameters refer to arguments directly. This could + also determine the maximum number of arguments. Track the +@@ -1698,13 +1702,33 @@ do_positional: + + /* Determine the number of arguments the format string consumes. */ + nargs = MAX (nargs, max_ref_arg); ++ bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) ++ + sizeof (*args_type); ++ ++ /* Check for potential integer overflow. */ ++ if (nargs > SIZE_MAX / bytes_per_arg) ++ { ++ done = -1; ++ goto all_done; ++ } + + /* Allocate memory for the argument descriptions. */ +- args_type = alloca (nargs * sizeof (int)); ++ if (__libc_use_alloca (nargs * bytes_per_arg)) ++ args_value = alloca (nargs * bytes_per_arg); ++ else ++ { ++ args_value = args_malloced = malloc (nargs * bytes_per_arg); ++ if (args_value == NULL) ++ { ++ done = -1; ++ goto all_done; ++ } ++ } ++ ++ args_size = &args_value[nargs].pa_int; ++ args_type = &args_size[nargs]; + memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', +- nargs * sizeof (int)); +- args_value = alloca (nargs * sizeof (union printf_arg)); +- args_size = alloca (nargs * sizeof (int)); ++ nargs * sizeof (*args_type)); + + /* XXX Could do sanity check here: If any element in ARGS_TYPE is + still zero after this loop, format is invalid. For now we +@@ -1973,8 +1997,8 @@ do_positional: + } + + all_done: +- if (__builtin_expect (workstart != NULL, 0)) +- free (workstart); ++ free (args_malloced); ++ free (workstart); + /* Unlock the stream. */ + _IO_funlockfile (s); + _IO_cleanup_region_end (0); +-- +1.7.5.4 + +-- +Kees Cook @outflux.net + diff --git a/src/patches/glibc/glibc-rh795498.patch b/src/patches/glibc/glibc-rh795498.patch new file mode 100644 index 0000000..729c5a4 --- /dev/null +++ b/src/patches/glibc/glibc-rh795498.patch @@ -0,0 +1,13 @@ +diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c +index 01369f6..44ad04d 100644 +--- a/resolv/nss_dns/dns-host.c ++++ b/resolv/nss_dns/dns-host.c +@@ -1219,7 +1219,7 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2, + &first); + if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND + || (status == NSS_STATUS_TRYAGAIN +- && (errno != ERANGE || *h_errnop != NO_RECOVERY))) ++ && (*errnop != ERANGE || *h_errnop == NO_RECOVERY))) + && answer2 != NULL && anslen2 > 0) + { + enum nss_status status2 = gaih_getanswer_slice(answer2, anslen2, qname, diff --git a/src/patches/glibc/glibc-rh797094-1.patch b/src/patches/glibc/glibc-rh797094-1.patch new file mode 100644 index 0000000..e98b9c0 --- /dev/null +++ b/src/patches/glibc/glibc-rh797094-1.patch @@ -0,0 +1,657 @@ +diff -rup a/include/alloca.h b/include/alloca.h +--- a/include/alloca.h 2012-02-29 13:11:19.439693476 -0700 ++++ b/include/alloca.h 2012-02-29 13:11:49.832530623 -0700 +@@ -49,15 +49,24 @@ libc_hidden_proto (__libc_alloca_cutoff) + + #if defined stackinfo_get_sp && defined stackinfo_sub_sp + # define alloca_account(size, avar) \ +- ({ void *old__ = stackinfo_get_sp (); \ +- void *m__ = __alloca (size); \ +- avar += stackinfo_sub_sp (old__); \ ++ ({ void *old__ = stackinfo_get_sp (); \ ++ void *m__ = __alloca (size); \ ++ avar += stackinfo_sub_sp (old__); \ ++ m__; }) ++# define extend_alloca_account(buf, len, newlen, avar) \ ++ ({ void *old__ = stackinfo_get_sp (); \ ++ void *m__ = extend_alloca (buf, len, newlen); \ ++ avar += stackinfo_sub_sp (old__); \ + m__; }) + #else + # define alloca_account(size, avar) \ +- ({ size_t s__ = (size); \ +- avar += s__; \ ++ ({ size_t s__ = (size); \ ++ avar += s__; \ + __alloca (s__); }) ++# define extend_alloca_account(buf, len, newlen, avar) \ ++ ({ size_t s__ = (newlen); \ ++ avar += s__; \ ++ extend_alloca (buf, len, s__); }) + #endif + + #endif +diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +--- a/sysdeps/posix/getaddrinfo.c 2012-02-29 13:11:19.588692676 -0700 ++++ b/sysdeps/posix/getaddrinfo.c 2012-02-29 13:12:42.972245862 -0700 +@@ -278,6 +278,7 @@ gaih_inet (const char *name, const struc + bool got_ipv6 = false; + const char *canon = NULL; + const char *orig_name = name; ++ size_t alloca_used = 0; + + if (req->ai_protocol || req->ai_socktype) + { +@@ -310,7 +311,7 @@ gaih_inet (const char *name, const struc + if (tp->name[0]) + { + st = (struct gaih_servtuple *) +- __alloca (sizeof (struct gaih_servtuple)); ++ alloca_account (sizeof (struct gaih_servtuple), alloca_used); + + if ((rc = gaih_inet_serv (service->name, tp, req, st))) + return rc; +@@ -334,7 +335,8 @@ gaih_inet (const char *name, const struc + continue; + + newp = (struct gaih_servtuple *) +- __alloca (sizeof (struct gaih_servtuple)); ++ alloca_account (sizeof (struct gaih_servtuple), ++ alloca_used); + + if ((rc = gaih_inet_serv (service->name, tp, req, newp))) + { +@@ -362,7 +364,7 @@ gaih_inet (const char *name, const struc + + if (req->ai_socktype || req->ai_protocol) + { +- st = __alloca (sizeof (struct gaih_servtuple)); ++ st = alloca_account (sizeof (struct gaih_servtuple), alloca_used); + st->next = NULL; + st->socktype = tp->socktype; + st->protocol = ((tp->protoflag & GAI_PROTO_PROTOANY) +@@ -379,7 +381,8 @@ gaih_inet (const char *name, const struc + { + struct gaih_servtuple *newp; + +- newp = __alloca (sizeof (struct gaih_servtuple)); ++ newp = alloca_account (sizeof (struct gaih_servtuple), ++ alloca_used); + newp->next = NULL; + newp->socktype = tp->socktype; + newp->protocol = tp->protocol; +@@ -391,10 +394,17 @@ gaih_inet (const char *name, const struc + } + } + ++ bool malloc_name = false; ++ bool malloc_addrmem = false; ++ struct gaih_addrtuple *addrmem = NULL; ++ bool malloc_canonbuf = false; ++ char *canonbuf = NULL; ++ bool malloc_tmpbuf = false; ++ char *tmpbuf = NULL; ++ int result = 0; + if (name != NULL) + { +- at = __alloca (sizeof (struct gaih_addrtuple)); +- ++ at = alloca_account (sizeof (struct gaih_addrtuple), alloca_used); + at->family = AF_UNSPEC; + at->scopeid = 0; + at->next = NULL; +@@ -412,6 +422,7 @@ gaih_inet (const char *name, const struc + rc = __idna_to_ascii_lz (name, &p, idn_flags); + if (rc != IDNA_SUCCESS) + { ++ /* No need to jump to free_and_return here. */ + if (rc == IDNA_MALLOC_ERROR) + return -EAI_MEMORY; + if (rc == IDNA_DLOPEN_ERROR) +@@ -421,10 +432,7 @@ gaih_inet (const char *name, const struc + /* In case the output string is the same as the input string + no new string has been allocated. */ + if (p != name) +- { +- name = strdupa (p); +- free (p); +- } ++ malloc_name = true; + } + #endif + +@@ -441,23 +449,59 @@ gaih_inet (const char *name, const struc + at->family = AF_INET6; + } + else +- return -EAI_ADDRFAMILY; ++ { ++ result = -EAI_ADDRFAMILY; ++ goto free_and_return; ++ } + + if (req->ai_flags & AI_CANONNAME) + canon = name; + } + else if (at->family == AF_UNSPEC) + { +- char *namebuf = (char *) name; + char *scope_delim = strchr (name, SCOPE_DELIMITER); ++ int e; + +- if (__builtin_expect (scope_delim != NULL, 0)) +- { +- namebuf = alloca (scope_delim - name + 1); +- *((char *) __mempcpy (namebuf, name, scope_delim - name)) = '\0'; +- } ++ { ++ bool malloc_namebuf = false; ++ char *namebuf = (char *) name; ++ ++ if (__builtin_expect (scope_delim != NULL, 0)) ++ { ++ if (malloc_name) ++ *scope_delim = '\0'; ++ else ++ { ++ if (__libc_use_alloca (alloca_used ++ + scope_delim - name + 1)) ++ { ++ namebuf = alloca_account (scope_delim - name + 1, ++ alloca_used); ++ *((char *) __mempcpy (namebuf, name, ++ scope_delim - name)) = '\0'; ++ } ++ else ++ { ++ namebuf = strndup (name, scope_delim - name); ++ if (namebuf == NULL) ++ { ++ assert (!malloc_name); ++ return -EAI_MEMORY; ++ } ++ malloc_namebuf = true; ++ } ++ } ++ } + +- if (inet_pton (AF_INET6, namebuf, at->addr) > 0) ++ e = inet_pton (AF_INET6, namebuf, at->addr); ++ ++ if (malloc_namebuf) ++ free (namebuf); ++ else if (scope_delim != NULL && malloc_name) ++ /* Undo what we did above. */ ++ *scope_delim = SCOPE_DELIMITER; ++ } ++ if (e > 0) + { + if (req->ai_family == AF_UNSPEC || req->ai_family == AF_INET6) + at->family = AF_INET6; +@@ -468,7 +512,10 @@ gaih_inet (const char *name, const struc + at->family = AF_INET; + } + else +- return -EAI_ADDRFAMILY; ++ { ++ result = -EAI_ADDRFAMILY; ++ goto free_and_return; ++ } + + if (scope_delim != NULL) + { +@@ -490,7 +537,10 @@ gaih_inet (const char *name, const struc + at->scopeid = (uint32_t) strtoul (scope_delim + 1, &end, + 10); + if (*end != '\0') +- return GAIH_OKIFUNSPEC | -EAI_NONAME; ++ { ++ result = GAIH_OKIFUNSPEC | -EAI_NONAME; ++ goto free_and_return; ++ } + } + } + +@@ -520,59 +570,80 @@ gaih_inet (const char *name, const struc + { + int family = req->ai_family; + size_t tmpbuflen = 512; +- char *tmpbuf = alloca (tmpbuflen); ++ assert (tmpbuf == NULL); ++ tmpbuf = alloca_account (tmpbuflen, alloca_used); + int rc; + struct hostent th; + struct hostent *h; + int herrno; + +- simple_again: + while (1) + { +- rc = __gethostbyname2_r (name, family, &th, tmpbuf, ++ rc = __gethostbyname2_r (name, AF_INET, &th, tmpbuf, + tmpbuflen, &h, &herrno); + if (rc != ERANGE || herrno != NETDB_INTERNAL) + break; +- tmpbuf = extend_alloca (tmpbuf, tmpbuflen, 2 * tmpbuflen); ++ ++ if (!malloc_tmpbuf ++ && __libc_use_alloca (alloca_used + 2 * tmpbuflen)) ++ tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen, ++ 2 * tmpbuflen, ++ alloca_used); ++ else ++ { ++ char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL, ++ 2 * tmpbuflen); ++ if (newp == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ tmpbuf = newp; ++ malloc_tmpbuf = true; ++ tmpbuflen = 2 * tmpbuflen; ++ } + } + + if (rc == 0) + { +- if (h == NULL) ++ if (h != NULL) + { +- if (req->ai_family == AF_INET6 +- && (req->ai_flags & AI_V4MAPPED) +- && family == AF_INET6) ++ int i; ++ /* We found data, count the number of addresses. */ ++ for (i = 0; h->h_addr_list[i]; ++i) ++ ; ++ if (i > 0 && *pat != NULL) ++ --i; ++ ++ if (__libc_use_alloca (alloca_used ++ + i * sizeof (struct gaih_addrtuple))) ++ addrmem = alloca_account (i * sizeof (struct gaih_addrtuple), ++ alloca_used); ++ else + { +- /* Try again, this time looking for IPv4 +- addresses. */ +- family = AF_INET; +- goto simple_again; ++ addrmem = malloc (i ++ * sizeof (struct gaih_addrtuple)); ++ if (addrmem == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; + } ++ malloc_addrmem = true; + } +- else +- { +- /* We found data, now convert it into the list. */ +- for (int i = 0; h->h_addr_list[i]; ++i) ++ ++ /* Now convert it into the list. */ ++ struct gaih_addrtuple *addrfree = addrmem; ++ for (i = 0; h->h_addr_list[i]; ++i) + { + if (*pat == NULL) + { +- *pat = __alloca (sizeof (struct gaih_addrtuple)); ++ *pat = addrfree++; + (*pat)->scopeid = 0; + } + (*pat)->next = NULL; +- (*pat)->family = req->ai_family; +- if (family == req->ai_family) ++ (*pat)->family = AF_INET; + memcpy ((*pat)->addr, h->h_addr_list[i], + h->h_length); +- else +- { +- uint32_t *addr = (uint32_t *) (*pat)->addr; +- addr[3] = *(uint32_t *) h->h_addr_list[i]; +- addr[2] = htonl (0xffff); +- addr[1] = 0; +- addr[0] = 0; +- } + pat = &((*pat)->next); + } + } +@@ -582,15 +653,16 @@ gaih_inet (const char *name, const struc + if (herrno == NETDB_INTERNAL) + { + __set_h_errno (herrno); +- return -EAI_SYSTEM; +- } +- if (herrno == TRY_AGAIN) +- { +- return -EAI_AGAIN; ++ result = -EAI_SYSTEM; + } ++ else if (herrno == TRY_AGAIN) ++ result = -EAI_AGAIN; ++ else + /* We made requests but they turned out no data. + The name is known, though. */ +- return GAIH_OKIFUNSPEC | -EAI_NODATA; ++ result = GAIH_OKIFUNSPEC | -EAI_NODATA; ++ ++ goto free_and_return; + } + + goto process_list; +@@ -613,21 +685,56 @@ gaih_inet (const char *name, const struc + bool added_canon = (req->ai_flags & AI_CANONNAME) == 0; + char *addrs = air->addrs; + ++ if (__libc_use_alloca (alloca_used ++ + air->naddrs * sizeof (struct gaih_addrtuple))) ++ addrmem = alloca_account (air->naddrs ++ * sizeof (struct gaih_addrtuple), ++ alloca_used); ++ else ++ { ++ addrmem = malloc (air->naddrs ++ * sizeof (struct gaih_addrtuple)); ++ if (addrmem == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ malloc_addrmem = true; ++ } ++ ++ struct gaih_addrtuple *addrfree = addrmem; + for (int i = 0; i < air->naddrs; ++i) + { + socklen_t size = (air->family[i] == AF_INET + ? INADDRSZ : IN6ADDRSZ); + if (*pat == NULL) + { +- *pat = __alloca (sizeof (struct gaih_addrtuple)); ++ *pat = addrfree++; + (*pat)->scopeid = 0; + } + uint32_t *pataddr = (*pat)->addr; + (*pat)->next = NULL; + if (added_canon || air->canon == NULL) + (*pat)->name = NULL; +- else +- canon = (*pat)->name = strdupa (air->canon); ++ else if (canonbuf == NULL) ++ { ++ size_t canonlen = strlen (air->canon) + 1; ++ if ((req->ai_flags & AI_CANONIDN) != 0 ++ && __libc_use_alloca (alloca_used + canonlen)) ++ canonbuf = alloca_account (canonlen, alloca_used); ++ else ++ { ++ canonbuf = malloc (canonlen); ++ if (canonbuf == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ malloc_canonbuf = true; ++ } ++ canon = (*pat)->name = memcpy (canonbuf, air->canon, ++ canonlen); ++ } + + if (air->family[i] == AF_INET + && req->ai_family == AF_INET6 +@@ -657,20 +764,26 @@ gaih_inet (const char *name, const struc + free (air); + + if (at->family == AF_UNSPEC) +- return GAIH_OKIFUNSPEC | -EAI_NONAME; ++ { ++ result = GAIH_OKIFUNSPEC | -EAI_NONAME; ++ goto free_and_return; ++ } + + goto process_list; + } + else if (err == 0) + /* The database contains a negative entry. */ +- return 0; ++ goto free_and_return; + else if (__nss_not_use_nscd_hosts == 0) + { + if (herrno == NETDB_INTERNAL && errno == ENOMEM) +- return -EAI_MEMORY; +- if (herrno == TRY_AGAIN) +- return -EAI_AGAIN; +- return -EAI_SYSTEM; ++ result = -EAI_MEMORY; ++ else if (herrno == TRY_AGAIN) ++ result = -EAI_AGAIN; ++ else ++ result = -EAI_SYSTEM; ++ ++ goto free_and_return; + } + } + #endif +@@ -699,7 +812,19 @@ gaih_inet (const char *name, const struc + _res.options &= ~RES_USE_INET6; + + size_t tmpbuflen = 1024; +- char *tmpbuf = alloca (tmpbuflen); ++ malloc_tmpbuf = !__libc_use_alloca (alloca_used + tmpbuflen); ++ assert (tmpbuf == NULL); ++ if (!malloc_tmpbuf) ++ tmpbuf = alloca_account (tmpbuflen, alloca_used); ++ else ++ { ++ tmpbuf = malloc (tmpbuflen); ++ if (tmpbuf == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ } + + while (!no_more) + { +@@ -728,8 +853,25 @@ gaih_inet (const char *name, const struc + no_data = herrno == NO_DATA; + break; + } +- tmpbuf = extend_alloca (tmpbuf, +- tmpbuflen, 2 * tmpbuflen); ++ ++ if (!malloc_tmpbuf ++ && __libc_use_alloca (alloca_used + 2 * tmpbuflen)) ++ tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen, ++ 2 * tmpbuflen, ++ alloca_used); ++ else ++ { ++ char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL, ++ 2 * tmpbuflen); ++ if (newp == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ tmpbuf = newp; ++ malloc_tmpbuf = true; ++ tmpbuflen = 2 * tmpbuflen; ++ } + } + + if (status == NSS_STATUS_SUCCESS) +@@ -832,18 +974,40 @@ gaih_inet (const char *name, const struc + if (cfct != NULL) + { + const size_t max_fqdn_len = 256; +- char *buf = alloca (max_fqdn_len); ++ if ((req->ai_flags & AI_CANONIDN) != 0 ++ && __libc_use_alloca (alloca_used ++ + max_fqdn_len)) ++ canonbuf = alloca_account (max_fqdn_len, ++ alloca_used); ++ else ++ { ++ canonbuf = malloc (max_fqdn_len); ++ if (canonbuf == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ malloc_canonbuf = true; ++ } + char *s; + + if (DL_CALL_FCT (cfct, (at->name ?: name, +- buf, max_fqdn_len, ++ canonbuf, ++ max_fqdn_len, + &s, &rc, &herrno)) + == NSS_STATUS_SUCCESS) + canon = s; + else +- /* Set to name now to avoid using +- gethostbyaddr. */ +- canon = name; ++ { ++ /* Set to name now to avoid using ++ gethostbyaddr. */ ++ if (malloc_canonbuf) ++ { ++ free (canonbuf); ++ malloc_canonbuf = false; ++ } ++ canon = name; ++ } + } + } + status = NSS_STATUS_SUCCESS; +@@ -878,22 +1042,27 @@ gaih_inet (const char *name, const struc + { + /* If both requests timed out report this. */ + if (no_data == EAI_AGAIN && no_inet6_data == EAI_AGAIN) +- return -EAI_AGAIN; ++ result = -EAI_AGAIN; ++ else ++ /* We made requests but they turned out no data. The name ++ is known, though. */ ++ result = GAIH_OKIFUNSPEC | -EAI_NODATA; + +- /* We made requests but they turned out no data. The name +- is known, though. */ +- return GAIH_OKIFUNSPEC | -EAI_NODATA; ++ goto free_and_return; + } + } + + process_list: + if (at->family == AF_UNSPEC) +- return GAIH_OKIFUNSPEC | -EAI_NONAME; ++ { ++ result = GAIH_OKIFUNSPEC | -EAI_NONAME; ++ goto free_and_return; ++ } + } + else + { + struct gaih_addrtuple *atr; +- atr = at = __alloca (sizeof (struct gaih_addrtuple)); ++ atr = at = alloca_account (sizeof (struct gaih_addrtuple), alloca_used); + memset (at, '\0', sizeof (struct gaih_addrtuple)); + + if (req->ai_family == AF_UNSPEC) +@@ -932,6 +1101,9 @@ gaih_inet (const char *name, const struc + /* Only the first entry gets the canonical name. */ + if (at2 == at && (req->ai_flags & AI_CANONNAME) != 0) + { ++ char *tmpbuf2 = NULL; ++ bool malloc_tmpbuf2 = false; ++ + if (canon == NULL) + { + /* If the canonical name cannot be determined, use +@@ -952,11 +1124,16 @@ gaih_inet (const char *name, const struc + int rc = __idna_to_unicode_lzlz (canon, &out, idn_flags); + if (rc != IDNA_SUCCESS) + { ++ if (malloc_tmpbuf2) ++ free (tmpbuf2); ++ + if (rc == IDNA_MALLOC_ERROR) +- return -EAI_MEMORY; +- if (rc == IDNA_DLOPEN_ERROR) +- return -EAI_SYSTEM; +- return -EAI_IDN_ENCODE; ++ result = -EAI_MEMORY; ++ else if (rc == IDNA_DLOPEN_ERROR) ++ result = -EAI_SYSTEM; ++ else ++ result = -EAI_IDN_ENCODE; ++ goto free_and_return; + } + /* In case the output string is the same as the input + string no new string has been allocated and we +@@ -970,10 +1147,25 @@ gaih_inet (const char *name, const struc + #ifdef HAVE_LIBIDN + make_copy: + #endif +- canon = strdup (canon); +- if (canon == NULL) +- return -EAI_MEMORY; ++ if (malloc_canonbuf) ++ /* We already allocated the string using malloc. */ ++ malloc_canonbuf = false; ++ else ++ { ++ canon = strdup (canon); ++ if (canon == NULL) ++ { ++ if (malloc_tmpbuf2) ++ free (tmpbuf2); ++ ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ } + } ++ ++ if (malloc_tmpbuf2) ++ free (tmpbuf2); + } + + family = at2->family; +@@ -999,7 +1191,8 @@ gaih_inet (const char *name, const struc + if (ai == NULL) + { + free ((char *) canon); +- return -EAI_MEMORY; ++ result = -EAI_MEMORY; ++ goto free_and_return; + } + + ai->ai_flags = req->ai_flags; +@@ -1052,7 +1245,18 @@ gaih_inet (const char *name, const struc + at2 = at2->next; + } + } +- return 0; ++ ++ free_and_return: ++ if (malloc_name) ++ free ((char *) name); ++ if (malloc_addrmem) ++ free (addrmem); ++ if (malloc_canonbuf) ++ free (canonbuf); ++ if (malloc_tmpbuf) ++ free (tmpbuf); ++ ++ return result; + } + + diff --git a/src/patches/glibc/glibc-rh797094-2.patch b/src/patches/glibc/glibc-rh797094-2.patch new file mode 100644 index 0000000..5aa9084 --- /dev/null +++ b/src/patches/glibc/glibc-rh797094-2.patch @@ -0,0 +1,862 @@ +From: Ulrich Drepper drepper@gmail.com +Date: Mon, 23 May 2011 03:04:16 +0000 (-0400) +Subject: Add a few more alloca size checks +X-Git-Tag: glibc-2.14~41 +X-Git-Url: http://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=f2962a71959fd254... + +Add a few more alloca size checks +--- + + 2011-05-22 Ulrich Drepper drepper@gmail.com + + [BZ #12671] + * nis/nss_nis/nis-alias.c (_nss_nis_getaliasbyname_r): Use malloc in + some situations. + * nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise. + * posix/glob.c (glob_in_dir): Take additional parameter alloca_used. + add in in __libc_use_alloca calls. Adjust callers. + (glob): Use malloc in some situations. +diff --git a/nis/nss_nis/nis-alias.c b/nis/nss_nis/nis-alias.c +index 9286e36..cfe4097 100644 +--- a/nis/nss_nis/nis-alias.c ++++ b/nis/nss_nis/nis-alias.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1996-2002, 2003, 2006 Free Software Foundation, Inc. ++/* Copyright (C) 1996-2002, 2003, 2006, 2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Thorsten Kukuk kukuk@vt.uni-paderborn.de, 1996. + +@@ -142,10 +142,10 @@ internal_nis_getaliasent_r (struct aliasent *alias, char *buffer, + int yperr; + + if (new_start) +- yperr = yp_first (domain, "mail.aliases", &outkey, &keylen, &result, ++ yperr = yp_first (domain, "mail.aliases", &outkey, &keylen, &result, + &len); + else +- yperr = yp_next (domain, "mail.aliases", oldkey, oldkeylen, &outkey, ++ yperr = yp_next (domain, "mail.aliases", oldkey, oldkeylen, &outkey, + &keylen, &result, &len); + + if (__builtin_expect (yperr != YPERR_SUCCESS, 0)) +@@ -153,20 +153,20 @@ internal_nis_getaliasent_r (struct aliasent *alias, char *buffer, + enum nss_status retval = yperr2nss (yperr); + + if (retval == NSS_STATUS_TRYAGAIN) +- *errnop = errno; +- return retval; +- } ++ *errnop = errno; ++ return retval; ++ } + + if (__builtin_expect ((size_t) (len + 1) > buflen, 0)) +- { ++ { + free (result); +- *errnop = ERANGE; +- return NSS_STATUS_TRYAGAIN; +- } ++ *errnop = ERANGE; ++ return NSS_STATUS_TRYAGAIN; ++ } + char *p = strncpy (buffer, result, len); + buffer[len] = '\0'; + while (isspace (*p)) +- ++p; ++ ++p; + free (result); + + parse_res = _nss_nis_parse_aliasent (outkey, p, alias, buffer, +@@ -213,13 +213,25 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias, + return NSS_STATUS_UNAVAIL; + } + +- size_t namlen = strlen (name); +- char name2[namlen + 1]; +- + char *domain; + if (__builtin_expect (yp_get_default_domain (&domain), 0)) + return NSS_STATUS_UNAVAIL; + ++ size_t namlen = strlen (name); ++ char *name2; ++ int use_alloca = __libc_use_alloca (namlen + 1); ++ if (use_alloca) ++ name2 = __alloca (namlen + 1); ++ else ++ { ++ name2 = malloc (namlen + 1); ++ if (name2 == NULL) ++ { ++ *errnop = ENOMEM; ++ return NSS_STATUS_TRYAGAIN; ++ } ++ } ++ + /* Convert name to lowercase. */ + size_t i; + for (i = 0; i < namlen; ++i) +@@ -230,6 +242,9 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias, + int len; + int yperr = yp_match (domain, "mail.aliases", name2, namlen, &result, &len); + ++ if (!use_alloca) ++ free (name2); ++ + if (__builtin_expect (yperr != YPERR_SUCCESS, 0)) + { + enum nss_status retval = yperr2nss (yperr); +diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c +index dce4165..de96a57 100644 +--- a/nscd/nscd_getserv_r.c ++++ b/nscd/nscd_getserv_r.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2007, 2009 Free Software Foundation, Inc. ++/* Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper drepper@redhat.com, 2007. + +@@ -17,6 +17,7 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++#include <assert.h> + #include <errno.h> + #include <string.h> + #include <not-cancel.h> +@@ -80,6 +81,7 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, + { + int gc_cycle; + int nretries = 0; ++ size_t alloca_used = 0; + + /* If the mapping is available, try to search there instead of + communicating with the nscd. */ +@@ -88,13 +90,23 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, + &gc_cycle); + size_t protolen = proto == NULL ? 0 : strlen (proto); + size_t keylen = critlen + 1 + protolen + 1; +- char *key = alloca (keylen); ++ int alloca_key = __libc_use_alloca (keylen); ++ char *key; ++ if (alloca_key) ++ key = alloca_account (keylen, alloca_used); ++ else ++ { ++ key = malloc (keylen); ++ if (key == NULL) ++ return -1; ++ } + memcpy (__mempcpy (__mempcpy (key, crit, critlen), + "/", 1), proto ?: "", protolen + 1); + + retry:; + const char *s_name = NULL; + const char *s_proto = NULL; ++ int alloca_aliases_len = 0; + const uint32_t *aliases_len = NULL; + const char *aliases_list = NULL; + int retval = -1; +@@ -136,8 +148,22 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, + if (((uintptr_t) aliases_len & (__alignof__ (*aliases_len) - 1)) + != 0) + { +- uint32_t *tmp = alloca (serv_resp.s_aliases_cnt +- * sizeof (uint32_t)); ++ uint32_t *tmp; ++ alloca_aliases_len ++ = __libc_use_alloca (alloca_used ++ + (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t))); ++ if (alloca_aliases_len) ++ tmp = __alloca (serv_resp.s_aliases_cnt * sizeof (uint32_t)); ++ else ++ { ++ tmp = malloc (serv_resp.s_aliases_cnt * sizeof (uint32_t)); ++ if (tmp == NULL) ++ { ++ retval = ENOMEM; ++ goto out; ++ } ++ } + aliases_len = memcpy (tmp, aliases_len, + serv_resp.s_aliases_cnt + * sizeof (uint32_t)); +@@ -217,8 +243,24 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, + + if (serv_resp.s_aliases_cnt > 0) + { +- aliases_len = alloca (serv_resp.s_aliases_cnt +- * sizeof (uint32_t)); ++ assert (alloca_aliases_len == 0); ++ alloca_aliases_len ++ = __libc_use_alloca (alloca_used ++ + (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t))); ++ if (alloca_aliases_len) ++ aliases_len = alloca (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t)); ++ else ++ { ++ aliases_len = malloc (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t)); ++ if (aliases_len == NULL) ++ { ++ retval = ENOMEM; ++ goto out_close; ++ } ++ } + vec[n].iov_base = (void *) aliases_len; + vec[n].iov_len = serv_resp.s_aliases_cnt * sizeof (uint32_t); + +@@ -329,5 +371,10 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, + goto retry; + } + ++ if (!alloca_aliases_len) ++ free ((void *) aliases_len); ++ if (!alloca_key) ++ free (key); ++ + return retval; + } +diff --git a/posix/glob.c b/posix/glob.c +index 6df083a..79b6e50 100644 +--- a/posix/glob.c ++++ b/posix/glob.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 ++/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -199,7 +199,7 @@ static const char *next_brace_sub (const char *begin, int flags) __THROW; + + static int glob_in_dir (const char *pattern, const char *directory, + int flags, int (*errfunc) (const char *, int), +- glob_t *pglob); ++ glob_t *pglob, size_t alloca_used); + extern int __glob_pattern_type (const char *pattern, int quote) + attribute_hidden; + +@@ -253,13 +253,18 @@ glob (pattern, flags, errfunc, pglob) + glob_t *pglob; + { + const char *filename; +- const char *dirname; ++ char *dirname = NULL; + size_t dirlen; + int status; + size_t oldcount; + int meta; + int dirname_modified; ++ int malloc_dirname = 0; + glob_t dirs; ++ int retval = 0; ++#ifdef _LIBC ++ size_t alloca_used = 0; ++#endif + + if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0) + { +@@ -308,20 +313,26 @@ glob (pattern, flags, errfunc, pglob) + const char *next; + const char *rest; + size_t rest_len; +-#ifdef __GNUC__ +- char onealt[strlen (pattern) - 1]; +-#else +- char *onealt = (char *) malloc (strlen (pattern) - 1); +- if (onealt == NULL) ++ char *onealt; ++ size_t pattern_len = strlen (pattern) - 1; ++#ifdef _LIBC ++ int alloca_onealt = __libc_use_alloca (alloca_used + pattern_len); ++ if (alloca_onealt) ++ onealt = alloca_account (pattern_len, alloca_used); ++ else ++#endif + { +- if (!(flags & GLOB_APPEND)) ++ onealt = (char *) malloc (pattern_len); ++ if (onealt == NULL) + { +- pglob->gl_pathc = 0; +- pglob->gl_pathv = NULL; ++ if (!(flags & GLOB_APPEND)) ++ { ++ pglob->gl_pathc = 0; ++ pglob->gl_pathv = NULL; ++ } ++ return GLOB_NOSPACE; + } +- return GLOB_NOSPACE; + } +-#endif + + /* We know the prefix for all sub-patterns. */ + alt_start = mempcpy (onealt, pattern, begin - pattern); +@@ -332,9 +343,11 @@ glob (pattern, flags, errfunc, pglob) + if (next == NULL) + { + /* It is an illegal expression. */ +-#ifndef __GNUC__ +- free (onealt); ++ illegal_brace: ++#ifdef _LIBC ++ if (__builtin_expect (!alloca_onealt, 0)) + #endif ++ free (onealt); + return glob (pattern, flags & ~GLOB_BRACE, errfunc, pglob); + } + +@@ -344,13 +357,8 @@ glob (pattern, flags, errfunc, pglob) + { + rest = next_brace_sub (rest + 1, flags); + if (rest == NULL) +- { +- /* It is an illegal expression. */ +-#ifndef __GNUC__ +- free (onealt); +-#endif +- return glob (pattern, flags & ~GLOB_BRACE, errfunc, pglob); +- } ++ /* It is an illegal expression. */ ++ goto illegal_brace; + } + /* Please note that we now can be sure the brace expression + is well-formed. */ +@@ -386,9 +394,10 @@ glob (pattern, flags, errfunc, pglob) + /* If we got an error, return it. */ + if (result && result != GLOB_NOMATCH) + { +-#ifndef __GNUC__ +- free (onealt); ++#ifdef _LIBC ++ if (__builtin_expect (!alloca_onealt, 0)) + #endif ++ free (onealt); + if (!(flags & GLOB_APPEND)) + { + globfree (pglob); +@@ -406,9 +415,10 @@ glob (pattern, flags, errfunc, pglob) + assert (next != NULL); + } + +-#ifndef __GNUC__ +- free (onealt); ++#ifdef _LIBC ++ if (__builtin_expect (!alloca_onealt, 0)) + #endif ++ free (onealt); + + if (pglob->gl_pathc != firstc) + /* We found some entries. */ +@@ -455,7 +465,7 @@ glob (pattern, flags, errfunc, pglob) + case is nothing but a notation for a directory. */ + if ((flags & (GLOB_TILDE|GLOB_TILDE_CHECK)) && pattern[0] == '~') + { +- dirname = pattern; ++ dirname = (char *) pattern; + dirlen = strlen (pattern); + + /* Set FILENAME to NULL as a special flag. This is ugly but +@@ -473,9 +483,9 @@ glob (pattern, flags, errfunc, pglob) + + filename = pattern; + #ifdef _AMIGA +- dirname = ""; ++ dirname = (char *) ""; + #else +- dirname = "."; ++ dirname = (char *) "."; + #endif + dirlen = 0; + } +@@ -485,7 +495,7 @@ glob (pattern, flags, errfunc, pglob) + && (flags & GLOB_NOESCAPE) == 0)) + { + /* "/pattern" or "\/pattern". */ +- dirname = "/"; ++ dirname = (char *) "/"; + dirlen = 1; + ++filename; + } +@@ -511,7 +521,17 @@ glob (pattern, flags, errfunc, pglob) + from "d:/", since "d:" and "d:/" are not the same.*/ + } + #endif +- newp = (char *) __alloca (dirlen + 1); ++#ifdef _LIBC ++ if (__libc_use_alloca (alloca_used + dirlen + 1)) ++ newp = alloca_account (dirlen + 1, alloca_used); ++ else ++#endif ++ { ++ newp = malloc (dirlen + 1); ++ if (newp == NULL) ++ return GLOB_NOSPACE; ++ malloc_dirname = 1; ++ } + *((char *) mempcpy (newp, pattern, dirlen)) = '\0'; + dirname = newp; + ++filename; +@@ -551,7 +571,8 @@ glob (pattern, flags, errfunc, pglob) + oldcount = pglob->gl_pathc + pglob->gl_offs; + goto no_matches; + } +- return val; ++ retval = val; ++ goto out; + } + } + +@@ -563,7 +584,8 @@ glob (pattern, flags, errfunc, pglob) + && (dirname[2] == '\0' || dirname[2] == '/'))) + { + /* Look up home directory. */ +- const char *home_dir = getenv ("HOME"); ++ char *home_dir = getenv ("HOME"); ++ int malloc_home_dir = 0; + # ifdef _AMIGA + if (home_dir == NULL || home_dir[0] == '\0') + home_dir = "SYS:"; +@@ -582,7 +604,7 @@ glob (pattern, flags, errfunc, pglob) + /* `sysconf' does not support _SC_LOGIN_NAME_MAX. Try + a moderate value. */ + buflen = 20; +- name = (char *) __alloca (buflen); ++ name = alloca_account (buflen, alloca_used); + + success = getlogin_r (name, buflen) == 0; + if (success) +@@ -592,6 +614,7 @@ glob (pattern, flags, errfunc, pglob) + long int pwbuflen = GETPW_R_SIZE_MAX (); + char *pwtmpbuf; + struct passwd pwbuf; ++ int malloc_pwtmpbuf = 0; + int save = errno; + + # ifndef _LIBC +@@ -600,7 +623,18 @@ glob (pattern, flags, errfunc, pglob) + Try a moderate value. */ + pwbuflen = 1024; + # endif +- pwtmpbuf = (char *) __alloca (pwbuflen); ++ if (__libc_use_alloca (alloca_used + pwbuflen)) ++ pwtmpbuf = alloca_account (pwbuflen, alloca_used); ++ else ++ { ++ pwtmpbuf = malloc (pwbuflen); ++ if (pwtmpbuf == NULL) ++ { ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ malloc_pwtmpbuf = 1; ++ } + + while (getpwnam_r (name, &pwbuf, pwtmpbuf, pwbuflen, &p) + != 0) +@@ -610,46 +644,115 @@ glob (pattern, flags, errfunc, pglob) + p = NULL; + break; + } +-# ifdef _LIBC +- pwtmpbuf = extend_alloca (pwtmpbuf, pwbuflen, ++ ++ if (!malloc_pwtmpbuf ++ && __libc_use_alloca (alloca_used ++ + 2 * pwbuflen)) ++ pwtmpbuf = extend_alloca_account (pwtmpbuf, pwbuflen, ++ 2 * pwbuflen, ++ alloca_used); ++ else ++ { ++ char *newp = realloc (malloc_pwtmpbuf ++ ? pwtmpbuf : NULL, + 2 * pwbuflen); +-# else +- pwbuflen *= 2; +- pwtmpbuf = (char *) __alloca (pwbuflen); +-# endif ++ if (newp == NULL) ++ { ++ if (__builtin_expect (malloc_pwtmpbuf, 0)) ++ free (pwtmpbuf); ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ pwtmpbuf = newp; ++ pwbuflen = 2 * pwbuflen; ++ malloc_pwtmpbuf = 1; ++ } + __set_errno (save); + } + # else + p = getpwnam (name); + # endif + if (p != NULL) +- home_dir = p->pw_dir; ++ { ++ if (!malloc_pwtmpbuf) ++ home_dir = p->pw_dir; ++ else ++ { ++ size_t home_dir_len = strlen (p->pw_dir) + 1; ++ if (__libc_use_alloca (alloca_used + home_dir_len)) ++ home_dir = alloca_account (home_dir_len, ++ alloca_used); ++ else ++ { ++ home_dir = malloc (home_dir_len); ++ if (home_dir == NULL) ++ { ++ free (pwtmpbuf); ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ malloc_home_dir = 1; ++ } ++ memcpy (home_dir, p->pw_dir, home_dir_len); ++ ++ free (pwtmpbuf); ++ } ++ } + } + } + if (home_dir == NULL || home_dir[0] == '\0') + { + if (flags & GLOB_TILDE_CHECK) +- return GLOB_NOMATCH; ++ { ++ if (__builtin_expect (malloc_home_dir, 0)) ++ free (home_dir); ++ retval = GLOB_NOMATCH; ++ goto out; ++ } + else +- home_dir = "~"; /* No luck. */ ++ home_dir = (char *) "~"; /* No luck. */ + } + # endif /* WINDOWS32 */ + # endif + /* Now construct the full directory. */ + if (dirname[1] == '\0') + { ++ if (__builtin_expect (malloc_dirname, 0)) ++ free (dirname); ++ + dirname = home_dir; + dirlen = strlen (dirname); ++ malloc_dirname = malloc_home_dir; + } + else + { + char *newp; + size_t home_len = strlen (home_dir); +- newp = (char *) __alloca (home_len + dirlen); ++ int use_alloca = __libc_use_alloca (alloca_used ++ + home_len + dirlen); ++ if (use_alloca) ++ newp = alloca_account (home_len + dirlen, alloca_used); ++ else ++ { ++ newp = malloc (home_len + dirlen); ++ if (newp == NULL) ++ { ++ if (__builtin_expect (malloc_home_dir, 0)) ++ free (home_dir); ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ } ++ + mempcpy (mempcpy (newp, home_dir, home_len), + &dirname[1], dirlen); ++ ++ if (__builtin_expect (malloc_dirname, 0)) ++ free (dirname); ++ + dirname = newp; + dirlen += home_len - 1; ++ malloc_dirname = !use_alloca; + } + dirname_modified = 1; + } +@@ -657,7 +760,8 @@ glob (pattern, flags, errfunc, pglob) + else + { + char *end_name = strchr (dirname, '/'); +- const char *user_name; ++ char *user_name; ++ int malloc_user_name = 0; + const char *home_dir; + char *unescape = NULL; + +@@ -677,7 +781,18 @@ glob (pattern, flags, errfunc, pglob) + else + { + char *newp; +- newp = (char *) __alloca (end_name - dirname); ++ if (__libc_use_alloca (alloca_used + (end_name - dirname))) ++ newp = alloca_account (end_name - dirname, alloca_used); ++ else ++ { ++ newp = malloc (end_name - dirname); ++ if (newp == NULL) ++ { ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ malloc_user_name = 1; ++ } + if (unescape != NULL) + { + char *p = mempcpy (newp, dirname + 1, +@@ -714,6 +829,7 @@ glob (pattern, flags, errfunc, pglob) + # if defined HAVE_GETPWNAM_R || defined _LIBC + long int buflen = GETPW_R_SIZE_MAX (); + char *pwtmpbuf; ++ int malloc_pwtmpbuf = 0; + struct passwd pwbuf; + int save = errno; + +@@ -723,7 +839,21 @@ glob (pattern, flags, errfunc, pglob) + moderate value. */ + buflen = 1024; + # endif +- pwtmpbuf = (char *) __alloca (buflen); ++ if (__libc_use_alloca (alloca_used + buflen)) ++ pwtmpbuf = alloca_account (buflen, alloca_used); ++ else ++ { ++ pwtmpbuf = malloc (buflen); ++ if (pwtmpbuf == NULL) ++ { ++ nomem_getpw: ++ if (__builtin_expect (malloc_user_name, 0)) ++ free (user_name); ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ malloc_pwtmpbuf = 1; ++ } + + while (getpwnam_r (user_name, &pwbuf, pwtmpbuf, buflen, &p) != 0) + { +@@ -732,40 +862,77 @@ glob (pattern, flags, errfunc, pglob) + p = NULL; + break; + } +-# ifdef _LIBC +- pwtmpbuf = extend_alloca (pwtmpbuf, buflen, 2 * buflen); +-# else +- buflen *= 2; +- pwtmpbuf = __alloca (buflen); +-# endif ++ if (!malloc_pwtmpbuf ++ && __libc_use_alloca (alloca_used + 2 * buflen)) ++ pwtmpbuf = extend_alloca_account (pwtmpbuf, buflen, ++ 2 * buflen, alloca_used); ++ else ++ { ++ char *newp = realloc (malloc_pwtmpbuf ? pwtmpbuf : NULL, ++ 2 * buflen); ++ if (newp == NULL) ++ { ++ if (__builtin_expect (malloc_pwtmpbuf, 0)) ++ free (pwtmpbuf); ++ goto nomem_getpw; ++ } ++ pwtmpbuf = newp; ++ malloc_pwtmpbuf = 1; ++ } + __set_errno (save); + } + # else + p = getpwnam (user_name); + # endif ++ ++ if (__builtin_expect (malloc_user_name, 0)) ++ free (user_name); ++ ++ /* If we found a home directory use this. */ + if (p != NULL) +- home_dir = p->pw_dir; ++ { ++ size_t home_len = strlen (p->pw_dir); ++ size_t rest_len = end_name == NULL ? 0 : strlen (end_name); ++ ++ if (__builtin_expect (malloc_dirname, 0)) ++ free (dirname); ++ malloc_dirname = 0; ++ ++ if (__libc_use_alloca (alloca_used + home_len + rest_len + 1)) ++ dirname = alloca_account (home_len + rest_len + 1, ++ alloca_used); ++ else ++ { ++ dirname = malloc (home_len + rest_len + 1); ++ if (dirname == NULL) ++ { ++ if (__builtin_expect (malloc_pwtmpbuf, 0)) ++ free (pwtmpbuf); ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ malloc_dirname = 1; ++ } ++ *((char *) mempcpy (mempcpy (dirname, p->pw_dir, home_len), ++ end_name, rest_len)) = '\0'; ++ ++ dirlen = home_len + rest_len; ++ dirname_modified = 1; ++ ++ if (__builtin_expect (malloc_pwtmpbuf, 0)) ++ free (pwtmpbuf); ++ } + else +- home_dir = NULL; ++ { ++ if (__builtin_expect (malloc_pwtmpbuf, 0)) ++ free (pwtmpbuf); ++ ++ if (flags & GLOB_TILDE_CHECK) ++ /* We have to regard it as an error if we cannot find the ++ home directory. */ ++ return GLOB_NOMATCH; ++ } + } +- /* If we found a home directory use this. */ +- if (home_dir != NULL) +- { +- char *newp; +- size_t home_len = strlen (home_dir); +- size_t rest_len = end_name == NULL ? 0 : strlen (end_name); +- newp = (char *) __alloca (home_len + rest_len + 1); +- *((char *) mempcpy (mempcpy (newp, home_dir, home_len), +- end_name, rest_len)) = '\0'; +- dirname = newp; +- dirlen = home_len + rest_len; +- dirname_modified = 1; +- } +- else +- if (flags & GLOB_TILDE_CHECK) +- /* We have to regard it as an error if we cannot find the +- home directory. */ +- return GLOB_NOMATCH; + } + # endif /* Not Amiga && not WINDOWS32. */ + } +@@ -899,7 +1066,7 @@ glob (pattern, flags, errfunc, pglob) + status = glob_in_dir (filename, dirs.gl_pathv[i], + ((flags | GLOB_APPEND) + & ~(GLOB_NOCHECK | GLOB_NOMAGIC)), +- errfunc, pglob); ++ errfunc, pglob, alloca_used); + if (status == GLOB_NOMATCH) + /* No matches in this directory. Try the next. */ + continue; +@@ -1000,7 +1167,8 @@ glob (pattern, flags, errfunc, pglob) + } + if (dirname_modified) + flags &= ~(GLOB_NOCHECK | GLOB_NOMAGIC); +- status = glob_in_dir (filename, dirname, flags, errfunc, pglob); ++ status = glob_in_dir (filename, dirname, flags, errfunc, pglob, ++ alloca_used); + if (status != 0) + { + if (status == GLOB_NOMATCH && flags != orig_flags +@@ -1063,7 +1231,11 @@ glob (pattern, flags, errfunc, pglob) + sizeof (char *), collated_compare); + } + +- return 0; ++ out: ++ if (__builtin_expect (malloc_dirname, 0)) ++ free (dirname); ++ ++ return retval; + } + #if defined _LIBC && !defined glob + libc_hidden_def (glob) +@@ -1273,7 +1445,7 @@ link_exists2_p (const char *dir, size_t dirlen, const char *fname, + static int + glob_in_dir (const char *pattern, const char *directory, int flags, + int (*errfunc) (const char *, int), +- glob_t *pglob) ++ glob_t *pglob, size_t alloca_used) + { + size_t dirlen = strlen (directory); + void *stream = NULL; +@@ -1288,11 +1460,12 @@ glob_in_dir (const char *pattern, const char *directory, int flags, + struct globnames *names = &init_names; + struct globnames *names_alloca = &init_names; + size_t nfound = 0; +- size_t allocasize = sizeof (init_names); + size_t cur = 0; + int meta; + int save; + ++ alloca_used += sizeof (init_names); ++ + init_names.next = NULL; + init_names.count = INITIAL_COUNT; + +@@ -1308,20 +1481,36 @@ glob_in_dir (const char *pattern, const char *directory, int flags, + { + /* Since we use the normal file functions we can also use stat() + to verify the file is there. */ +- struct stat st; +- struct_stat64 st64; ++ union ++ { ++ struct stat st; ++ struct_stat64 st64; ++ } ust; + size_t patlen = strlen (pattern); +- char *fullname = (char *) __alloca (dirlen + 1 + patlen + 1); ++ int alloca_fullname = __libc_use_alloca (alloca_used ++ + dirlen + 1 + patlen + 1); ++ char *fullname; ++ if (alloca_fullname) ++ fullname = alloca_account (dirlen + 1 + patlen + 1, alloca_used); ++ else ++ { ++ fullname = malloc (dirlen + 1 + patlen + 1); ++ if (fullname == NULL) ++ return GLOB_NOSPACE; ++ } + + mempcpy (mempcpy (mempcpy (fullname, directory, dirlen), + "/", 1), + pattern, patlen + 1); + if ((__builtin_expect (flags & GLOB_ALTDIRFUNC, 0) +- ? (*pglob->gl_stat) (fullname, &st) +- : __stat64 (fullname, &st64)) == 0) ++ ? (*pglob->gl_stat) (fullname, &ust.st) ++ : __stat64 (fullname, &ust.st64)) == 0) + /* We found this file to be existing. Now tell the rest + of the function to copy this name into the result. */ + flags |= GLOB_NOCHECK; ++ ++ if (__builtin_expect (!alloca_fullname, 0)) ++ free (fullname); + } + else + { +@@ -1409,9 +1598,9 @@ glob_in_dir (const char *pattern, const char *directory, int flags, + size_t size = (sizeof (struct globnames) + + ((count - INITIAL_COUNT) + * sizeof (char *))); +- allocasize += size; +- if (__libc_use_alloca (allocasize)) +- newnames = names_alloca = __alloca (size); ++ if (__libc_use_alloca (alloca_used + size)) ++ newnames = names_alloca ++ = alloca_account (size, alloca_used); + else if ((newnames = malloc (size)) + == NULL) + goto memory_error; diff --git a/src/patches/glibc/glibc-rh804630.patch b/src/patches/glibc/glibc-rh804630.patch new file mode 100644 index 0000000..75dbe94 --- /dev/null +++ b/src/patches/glibc/glibc-rh804630.patch @@ -0,0 +1,23 @@ +diff -rup c/resolv/res_send.c d/resolv/res_send.c +--- c/resolv/res_send.c 2012-01-01 05:16:32.000000000 -0700 ++++ d/resolv/res_send.c 2012-03-30 12:39:30.862467628 -0600 +@@ -409,6 +409,7 @@ __libc_res_nsend(res_state statp, const + */ + if (EXT(statp).nsinit == 0) { + unsigned char map[MAXNS]; ++ unsigned int ext_total_nscount; + + memset (map, MAXNS, sizeof (map)); + for (n = 0; n < MAXNS; n++) { +@@ -422,8 +423,9 @@ __libc_res_nsend(res_state statp, const + } + } + n = statp->nscount; +- if (statp->nscount > EXT(statp).nscount) +- for (n = EXT(statp).nscount, ns = 0; ++ ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6; ++ if (statp->nscount > ext_total_nscount) ++ for (n = ext_total_nscount, ns = 0; + n < statp->nscount; n++) { + while (ns < MAXNS + && EXT(statp).nsmap[ns] != MAXNS) diff --git a/src/patches/glibc/glibc-rh804689.patch b/src/patches/glibc/glibc-rh804689.patch new file mode 100644 index 0000000..a96a33f --- /dev/null +++ b/src/patches/glibc/glibc-rh804689.patch @@ -0,0 +1,23 @@ +diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +--- a/sysdeps/posix/getaddrinfo.c 2012-03-20 21:31:14.177358937 -0600 ++++ b/sysdeps/posix/getaddrinfo.c 2012-03-21 09:13:17.198290683 -0600 +@@ -560,15 +563,11 @@ gaih_inet (const char *name, const struc + int no_more; + int old_res_options; + +- /* If we do not have to look for IPv4 and IPv6 together, use +- the simple, old functions. */ +- if ((req->ai_family == AF_INET +- || (req->ai_family == AF_INET6 +- && ((req->ai_flags & AI_V4MAPPED) == 0 +- || (req->ai_flags & AI_ALL) == 0))) +- && (req->ai_flags & AI_CANONNAME) == 0) ++ /* If we do not have to look for IPv6 addresses, use ++ the simple, old functions, which do not support ++ IPv6 scope ids. */ ++ if (req->ai_family == AF_INET) + { +- int family = req->ai_family; + size_t tmpbuflen = 512; + assert (tmpbuf == NULL); + tmpbuf = alloca_account (tmpbuflen, alloca_used); diff --git a/src/patches/glibc/glibc-rh808337.patch b/src/patches/glibc/glibc-rh808337.patch new file mode 100644 index 0000000..bc20cbc --- /dev/null +++ b/src/patches/glibc/glibc-rh808337.patch @@ -0,0 +1,21 @@ +commit 6a5ee1029b3966c5ae9adaaa881e255b2880f511 +Author: Ulrich Drepper drepper@gmail.com +Date: Sun Mar 6 00:01:50 2011 -0500 + + Fix loading first object along a path when tracing. + +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 1ad16a0..f866066 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -2111,7 +2111,9 @@ _dl_map_object (struct link_map *loader, const char *name, + { + #ifdef SHARED + // XXX Correct to unconditionally default to namespace 0? +- l = loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded; ++ l = (loader ++ ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded ++ ?: &GL(dl_rtld_map)); + #else + l = loader; + #endif diff --git a/src/patches/glibc/glibc-rh808545.patch b/src/patches/glibc/glibc-rh808545.patch new file mode 100644 index 0000000..9a2cae3 --- /dev/null +++ b/src/patches/glibc/glibc-rh808545.patch @@ -0,0 +1,44 @@ +diff -rup a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c +--- a/resolv/nss_dns/dns-host.c 2012-04-18 11:17:31.527539744 -0600 ++++ b/resolv/nss_dns/dns-host.c 2012-04-18 11:21:45.441394159 -0600 +@@ -745,6 +745,10 @@ getanswer_r (const querybuf *answer, int + + if ((qtype == T_A || qtype == T_AAAA) && type == T_CNAME) + { ++ /* A CNAME could also have a TTL entry. */ ++ if (ttlp != NULL && ttl < *ttlp) ++ *ttlp = ttl; ++ + if (ap >= &host_data->aliases[MAX_NR_ALIASES - 1]) + continue; + n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf); +@@ -906,7 +910,7 @@ getanswer_r (const querybuf *answer, int + { + register int nn; + +- if (ttlp != NULL) ++ if (ttlp != NULL && ttl < *ttlp) + *ttlp = ttl; + if (canonp != NULL) + *canonp = bp; +@@ -1082,6 +1086,11 @@ gaih_getanswer_slice (const querybuf *an + if (type == T_CNAME) + { + char tbuf[MAXDNAME]; ++ ++ /* A CNAME could also have a TTL entry. */ ++ if (ttlp != NULL && ttl < *ttlp) ++ *ttlp = ttl; ++ + n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf); + if (__builtin_expect (n < 0 || res_hnok (tbuf) == 0, 0)) + { +@@ -1162,7 +1171,7 @@ gaih_getanswer_slice (const querybuf *an + + if (*firstp) + { +- if (ttlp != NULL) ++ if (ttlp != NULL && ttl < *ttlp) + *ttlp = ttl; + + (*pat)->name = canon ?: h_name; diff --git a/src/patches/glibc/glibc-rh809602.patch b/src/patches/glibc/glibc-rh809602.patch new file mode 100644 index 0000000..81aa63a --- /dev/null +++ b/src/patches/glibc/glibc-rh809602.patch @@ -0,0 +1,47 @@ +diff -rup a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c +--- a/nscd/nscd_getserv_r.c 2012-04-04 16:37:27.873951850 -0600 ++++ b/nscd/nscd_getserv_r.c 2012-04-04 16:37:49.904837348 -0600 +@@ -124,6 +123,7 @@ nscd_getserv_r (const char *crit, size_t + s_name = (char *) (&found->data[0].servdata + 1); + serv_resp = found->data[0].servdata; + s_proto = s_name + serv_resp.s_name_len; ++ alloca_aliases_len = 1; + aliases_len = (uint32_t *) (s_proto + serv_resp.s_proto_len); + aliases_list = ((char *) aliases_len + + serv_resp.s_aliases_cnt * sizeof (uint32_t)); +@@ -154,7 +154,9 @@ nscd_getserv_r (const char *crit, size_t + + (serv_resp.s_aliases_cnt + * sizeof (uint32_t))); + if (alloca_aliases_len) +- tmp = __alloca (serv_resp.s_aliases_cnt * sizeof (uint32_t)); ++ tmp = alloca_account (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t), ++ alloca_used); + else + { + tmp = malloc (serv_resp.s_aliases_cnt * sizeof (uint32_t)); +@@ -249,8 +251,9 @@ nscd_getserv_r (const char *crit, size_t + + (serv_resp.s_aliases_cnt + * sizeof (uint32_t))); + if (alloca_aliases_len) +- aliases_len = alloca (serv_resp.s_aliases_cnt +- * sizeof (uint32_t)); ++ aliases_len = alloca_account (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t), ++ alloca_used); + else + { + aliases_len = malloc (serv_resp.s_aliases_cnt +@@ -368,7 +371,11 @@ nscd_getserv_r (const char *crit, size_t + } + + if (retval != -1) +- goto retry; ++ { ++ if (!alloca_aliases_len) ++ free ((void *) aliases_len); ++ goto retry; ++ } + } + + if (!alloca_aliases_len) diff --git a/src/patches/glibc/glibc-rh833716.patch b/src/patches/glibc/glibc-rh833716.patch new file mode 100644 index 0000000..e44573c --- /dev/null +++ b/src/patches/glibc/glibc-rh833716.patch @@ -0,0 +1,45265 @@ +diff -Nrup a/stdio-common/Makefile b/stdio-common/Makefile +--- a/stdio-common/Makefile 2012-05-23 14:54:54.670443298 -0600 ++++ b/stdio-common/Makefile 2012-05-22 13:47:51.000000000 -0600 +@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ + bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ +- scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs ++ scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs bug23 bug23-2 bug23-3 + + test-srcs = tst-unbputc tst-printf + +diff -Nrup a/stdio-common/bug23-2.c b/stdio-common/bug23-2.c +--- a/stdio-common/bug23-2.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23-2.c 2012-05-24 07:12:55.331644716 -0600 +@@ -0,0 +1,70 @@ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++static int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return strcmp (buf, expected) != 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -Nrup a/stdio-common/bug23-3.c b/stdio-common/bug23-3.c +--- a/stdio-common/bug23-3.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23-3.c 2012-05-24 07:13:26.948480695 -0600 +@@ -0,0 +1,45076 @@ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++ ++ ++int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return (strcmp (buf, expected) != 0); ++} ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" ++ +diff -Nrup a/stdio-common/bug23.c b/stdio-common/bug23.c +--- a/stdio-common/bug23.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23.c 2012-05-24 07:12:27.636788393 -0600 +@@ -0,0 +1,22 @@ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++static int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return strcmp (buf, expected) != 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +--- a/stdio-common/vfprintf.c 2012-05-23 14:54:54.689443199 -0600 ++++ b/stdio-common/vfprintf.c 2012-05-23 23:16:55.376155638 -0600 +@@ -238,6 +238,12 @@ vfprintf (FILE *s, const CHAR_T *format, + /* For the argument descriptions, which may be allocated on the heap. */ + void *args_malloced = NULL; + ++ /* For positional argument handling. */ ++ struct printf_spec *specs; ++ ++ /* Track if we malloced the SPECS array and thus must free it. */ ++ bool specs_malloced = false; ++ + /* This table maps a character into a number representing a + class. In each step there is a destination label for each + class. */ +@@ -1638,10 +1644,10 @@ do_positional: + /* Array with information about the needed arguments. This has to + be dynamically extensible. */ + size_t nspecs = 0; +- size_t nspecs_max = 32; /* A more or less arbitrary start value. */ +- struct printf_spec *specs +- = alloca (nspecs_max * sizeof (struct printf_spec)); ++ /* A more or less arbitrary start value. */ ++ size_t nspecs_size = 32 * sizeof (struct printf_spec); + ++ specs = alloca (nspecs_size); + /* The number of arguments the format string requests. This will + determine the size of the array needed to store the argument + attributes. */ +@@ -1678,14 +1684,30 @@ do_positional: + + for (f = lead_str_end; *f != L_('\0'); f = specs[nspecs++].next_fmt) + { +- if (nspecs >= nspecs_max) ++ if (nspecs * sizeof (*specs) >= nspecs_size) + { + /* Extend the array of format specifiers. */ + struct printf_spec *old = specs; +- specs = extend_alloca (specs, nspecs_max, 2 * nspecs_max); ++ if (__libc_use_alloca (2 * nspecs_size)) ++ specs = extend_alloca (specs, nspecs_size, 2 * nspecs_size); ++ else ++ { ++ nspecs_size *= 2; ++ specs = malloc (nspecs_size); ++ } ++ + + /* Copy the old array's elements to the new space. */ +- memmove (specs, old, nspecs * sizeof (struct printf_spec)); ++ memmove (specs, old, nspecs * sizeof (*specs)); ++ ++ /* If we had previously malloc'd space for SPECS, then ++ release it after the copy is complete. */ ++ if (specs_malloced) ++ free (old); ++ ++ /* Now set SPECS_MALLOCED if needed. */ ++ if (!__libc_use_alloca (nspecs_size)) ++ specs_malloced = true; + } + + /* Parse the format specifier. */ +@@ -1998,6 +2020,8 @@ do_positional: + } + + all_done: ++ if (specs_malloced) ++ free (specs); + free (args_malloced); + free (workstart); + /* Unlock the stream. */ diff --git a/src/patches/glibc/glibc-rh837026.patch b/src/patches/glibc/glibc-rh837026.patch new file mode 100644 index 0000000..558ad4f --- /dev/null +++ b/src/patches/glibc/glibc-rh837026.patch @@ -0,0 +1,30 @@ +diff -rup a/resolv/res_send.c b/resolv/res_send.c +--- a/resolv/res_send.c 2012-06-28 11:55:38.361886650 -0600 ++++ b/resolv/res_send.c 2012-06-28 11:51:38.253963687 -0600 +@@ -424,17 +424,15 @@ __libc_res_nsend(res_state statp, const + } + n = statp->nscount; + ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6; +- if (statp->nscount > ext_total_nscount) +- for (n = ext_total_nscount, ns = 0; +- n < statp->nscount; n++) { +- while (ns < MAXNS +- && EXT(statp).nsmap[ns] != MAXNS) +- ns++; +- if (ns == MAXNS) +- break; +- EXT(statp).nsmap[ns] = n; +- map[n] = ns++; +- } ++ for (n = 0, ns = 0; n < statp->nscount - ext_total_nscount; n++) { ++ while (ns < MAXNS ++ && EXT(statp).nsmap[ns] != MAXNS) ++ ns++; ++ if (ns == MAXNS) ++ break; ++ EXT(statp).nsmap[ns] = n; ++ map[n] = ns++; ++ } + EXT(statp).nscount = n; + for (ns = 0; ns < EXT(statp).nscount; ns++) { + n = map[ns]; diff --git a/src/patches/grep-2.5.1a-redhat_fixes-2.patch b/src/patches/grep-2.5.1a-redhat_fixes-2.patch deleted file mode 100644 index 9c30342..0000000 --- a/src/patches/grep-2.5.1a-redhat_fixes-2.patch +++ /dev/null @@ -1,2109 +0,0 @@ -Submitted by: Alexander E. Patrakov -Date: 2005-08-13 -Initial Package Version: 2.5.1a -Upstream Status: Partially accepted, partially rejected, but required for LSB >= 2.0 certification -Origin: RedHat -Description: Various fixes from RedHat. Individual patches: - - grep-2.5.1-fgrep.patch - grep-2.5.1-bracket.patch - grep-2.5-i18n.patch - grep-2.5.1-oi.patch - grep-2.5.1-manpage.patch - grep-2.5.1-color.patch - grep-2.5.1-icolor.patch - grep-2.5.1-egf-speedup.patch - grep-2.5.1-dfa-optional.patch - grep-2.5.1-tests.patch - grep-2.5.1-w.patch - -Testcases: - - -fgrep: ???, but required for other patches - -bracket: echo "[" | LANG=en_US.UTF-8 grep "[[:space:]]" - -i18n: many fixes for multibyte locale support, required for LSB. - -oi: echo xxYYzz | LANG=C grep -i -o yy - -manpage: typo - -color: restore the background color correctly - -icolor: ??? echo 'spam foo SPAM FOO' | grep -i --color spam - (but that's also fixed by -oi. Is this patch just a cleanup?) - -egf-speedup: without this, grep is as slow as a snail in UTF-8 locales. - -dfa-optional: disables dfa in multibyte locales by default. - -w: (echo 'foo';echo 'fo') > /tmp/testfile && grep -F -w fo /tmp/testfile - -diff -urN grep-2.5.1a.orig/doc/grep.1 grep-2.5.1a/doc/grep.1 ---- grep-2.5.1a.orig/doc/grep.1 2004-11-12 16:26:37.000000000 +0500 -+++ grep-2.5.1a/doc/grep.1 2005-10-23 09:49:43.000000000 +0600 -@@ -191,6 +191,7 @@ - .I PATTERN - as a list of fixed strings, separated by newlines, - any of which is to be matched. -+.TP - .BR -P ", " -^-perl-regexp - Interpret - .I PATTERN -@@ -302,7 +303,7 @@ - This is especially useful for tools like zgrep, e.g. - .B "gzip -cd foo.gz |grep --label=foo something" - .TP --.BR -^-line-buffering -+.BR -^-line-buffered - Use line buffering, it can be a performance penality. - .TP - .BR -q ", " -^-quiet ", " -^-silent -diff -urN grep-2.5.1a.orig/lib/posix/regex.h grep-2.5.1a/lib/posix/regex.h ---- grep-2.5.1a.orig/lib/posix/regex.h 2001-04-02 23:56:50.000000000 +0600 -+++ grep-2.5.1a/lib/posix/regex.h 2005-10-23 09:49:31.000000000 +0600 -@@ -109,6 +109,10 @@ - If not set, {, }, {, and } are literals. */ - #define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) - -+/* If this bit is set, then ignore case when matching. -+ If not set, then case is significant. */ -+#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) -+ - /* If this bit is set, +, ? and | aren't recognized as operators. - If not set, they are. */ - #define RE_LIMITED_OPS (RE_INTERVALS << 1) -diff -urN grep-2.5.1a.orig/src/dfa.c grep-2.5.1a/src/dfa.c ---- grep-2.5.1a.orig/src/dfa.c 2001-09-26 22:57:55.000000000 +0600 -+++ grep-2.5.1a/src/dfa.c 2005-10-23 09:49:17.000000000 +0600 -@@ -414,7 +414,7 @@ - - /* This function fetch a wide character, and update cur_mb_len, - used only if the current locale is a multibyte environment. */ --static wchar_t -+static wint_t - fetch_wc (char const *eoferr) - { - wchar_t wc; -@@ -423,7 +423,7 @@ - if (eoferr != 0) - dfaerror (eoferr); - else -- return -1; -+ return WEOF; - } - - cur_mb_len = mbrtowc(&wc, lexptr, lexleft, &mbs); -@@ -459,7 +459,7 @@ - static void - parse_bracket_exp_mb () - { -- wchar_t wc, wc1, wc2; -+ wint_t wc, wc1, wc2; - - /* Work area to build a mb_char_classes. */ - struct mb_char_classes *work_mbc; -@@ -496,7 +496,7 @@ - work_mbc->invert = 0; - do - { -- wc1 = -1; /* mark wc1 is not initialized". */ -+ wc1 = WEOF; /* mark wc1 is not initialized". */ - - /* Note that if we're looking at some other [:...:] construct, - we just treat it as a bunch of ordinary characters. We can do -@@ -586,7 +586,7 @@ - work_mbc->coll_elems[work_mbc->ncoll_elems++] = elem; - } - } -- wc = -1; -+ wc1 = wc = WEOF; - } - else - /* We treat '[' as a normal character here. */ -@@ -600,7 +600,7 @@ - wc = fetch_wc(("Unbalanced [")); - } - -- if (wc1 == -1) -+ if (wc1 == WEOF) - wc1 = fetch_wc(_("Unbalanced [")); - - if (wc1 == L'-') -@@ -630,17 +630,17 @@ - } - REALLOC_IF_NECESSARY(work_mbc->range_sts, wchar_t, - range_sts_al, work_mbc->nranges + 1); -- work_mbc->range_sts[work_mbc->nranges] = wc; -+ work_mbc->range_sts[work_mbc->nranges] = (wchar_t)wc; - REALLOC_IF_NECESSARY(work_mbc->range_ends, wchar_t, - range_ends_al, work_mbc->nranges + 1); -- work_mbc->range_ends[work_mbc->nranges++] = wc2; -+ work_mbc->range_ends[work_mbc->nranges++] = (wchar_t)wc2; - } -- else if (wc != -1) -+ else if (wc != WEOF) - /* build normal characters. */ - { - REALLOC_IF_NECESSARY(work_mbc->chars, wchar_t, chars_al, - work_mbc->nchars + 1); -- work_mbc->chars[work_mbc->nchars++] = wc; -+ work_mbc->chars[work_mbc->nchars++] = (wchar_t)wc; - } - } - while ((wc = wc1) != L']'); -@@ -2552,6 +2552,8 @@ - } - - /* match with a character? */ -+ if (case_fold) -+ wc = towlower (wc); - for (i = 0; i<work_mbc->nchars; i++) - { - if (wc == work_mbc->chars[i]) -diff -urN grep-2.5.1a.orig/src/grep.c grep-2.5.1a/src/grep.c ---- grep-2.5.1a.orig/src/grep.c 2004-11-12 16:25:35.000000000 +0500 -+++ grep-2.5.1a/src/grep.c 2005-10-23 09:50:06.000000000 +0600 -@@ -30,6 +30,12 @@ - # include <sys/time.h> - # include <sys/resource.h> - #endif -+#if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC -+/* We can handle multibyte string. */ -+# define MBS_SUPPORT -+# include <wchar.h> -+# include <wctype.h> -+#endif - #include <stdio.h> - #include "system.h" - #include "getopt.h" -@@ -558,33 +564,6 @@ - { - size_t match_size; - size_t match_offset; -- if(match_icase) -- { -- /* Yuck, this is tricky */ -- char *buf = (char*) xmalloc (lim - beg); -- char *ibeg = buf; -- char *ilim = ibeg + (lim - beg); -- int i; -- for (i = 0; i < lim - beg; i++) -- ibeg[i] = tolower (beg[i]); -- while ((match_offset = (*execute) (ibeg, ilim-ibeg, &match_size, 1)) -- != (size_t) -1) -- { -- char const *b = beg + match_offset; -- if (b == lim) -- break; -- fwrite (beg, sizeof (char), match_offset, stdout); -- printf ("\33[%sm", grep_color); -- fwrite (b, sizeof (char), match_size, stdout); -- fputs ("\33[00m", stdout); -- beg = b + match_size; -- ibeg = ibeg + match_offset + match_size; -- } -- fwrite (beg, 1, lim - beg, stdout); -- free (buf); -- lastout = lim; -- return; -- } - while (lim-beg && (match_offset = (*execute) (beg, lim - beg, &match_size, 1)) - != (size_t) -1) - { -@@ -601,6 +580,7 @@ - fputs ("\33[00m", stdout); - beg = b + match_size; - } -+ fputs ("\33[K", stdout); - } - fwrite (beg, 1, lim - beg, stdout); - if (ferror (stdout)) -@@ -1697,6 +1677,37 @@ - if (!install_matcher (matcher) && !install_matcher ("default")) - abort (); - -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX != 1 && match_icase) -+ { -+ wchar_t wc; -+ mbstate_t cur_state, prev_state; -+ int i, len = strlen(keys); -+ -+ memset(&cur_state, 0, sizeof(mbstate_t)); -+ for (i = 0; i <= len ;) -+ { -+ size_t mbclen; -+ mbclen = mbrtowc(&wc, keys + i, len - i, &cur_state); -+ if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0) -+ { -+ /* An invalid sequence, or a truncated multibyte character. -+ We treat it as a singlebyte character. */ -+ mbclen = 1; -+ } -+ else -+ { -+ if (iswupper((wint_t)wc)) -+ { -+ wc = towlower((wint_t)wc); -+ wcrtomb(keys + i, wc, &cur_state); -+ } -+ } -+ i += mbclen; -+ } -+ } -+#endif /* MBS_SUPPORT */ -+ - (*compile)(keys, keycc); - - if ((argc - optind > 1 && !no_filenames) || with_filenames) -diff -urN grep-2.5.1a.orig/src/search.c grep-2.5.1a/src/search.c ---- grep-2.5.1a.orig/src/search.c 2001-04-19 09:42:14.000000000 +0600 -+++ grep-2.5.1a/src/search.c 2005-10-23 09:51:25.000000000 +0600 -@@ -18,9 +18,13 @@ - - /* Written August 1992 by Mike Haertel. */ - -+#ifndef _GNU_SOURCE -+# define _GNU_SOURCE 1 -+#endif - #ifdef HAVE_CONFIG_H - # include <config.h> - #endif -+#include <assert.h> - #include <sys/types.h> - #if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC - /* We can handle multibyte string. */ -@@ -31,7 +35,7 @@ - - #include "system.h" - #include "grep.h" --#include "regex.h" -+#include <regex.h> - #include "dfa.h" - #include "kwset.h" - #include "error.h" -@@ -39,6 +43,9 @@ - #ifdef HAVE_LIBPCRE - # include <pcre.h> - #endif -+#ifdef HAVE_LANGINFO_CODESET -+# include <langinfo.h> -+#endif - - #define NCHAR (UCHAR_MAX + 1) - -@@ -70,9 +77,10 @@ - call the regexp matcher at all. */ - static int kwset_exact_matches; - --#if defined(MBS_SUPPORT) --static char* check_multibyte_string PARAMS ((char const *buf, size_t size)); --#endif -+/* UTF-8 encoding allows some optimizations that we can't otherwise -+ assume in a multibyte encoding. */ -+static int using_utf8; -+ - static void kwsinit PARAMS ((void)); - static void kwsmusts PARAMS ((void)); - static void Gcompile PARAMS ((char const *, size_t)); -@@ -84,6 +92,15 @@ - static size_t Pexecute PARAMS ((char const *, size_t, size_t *, int)); - - void -+check_utf8 (void) -+{ -+#ifdef HAVE_LANGINFO_CODESET -+ if (strcmp (nl_langinfo (CODESET), "UTF-8") == 0) -+ using_utf8 = 1; -+#endif -+} -+ -+void - dfaerror (char const *mesg) - { - error (2, 0, mesg); -@@ -141,38 +158,6 @@ - } - } - --#ifdef MBS_SUPPORT --/* This function allocate the array which correspond to "buf". -- Then this check multibyte string and mark on the positions which -- are not singlebyte character nor the first byte of a multibyte -- character. Caller must free the array. */ --static char* --check_multibyte_string(char const *buf, size_t size) --{ -- char *mb_properties = malloc(size); -- mbstate_t cur_state; -- int i; -- memset(&cur_state, 0, sizeof(mbstate_t)); -- memset(mb_properties, 0, sizeof(char)*size); -- for (i = 0; i < size ;) -- { -- size_t mbclen; -- mbclen = mbrlen(buf + i, size - i, &cur_state); -- -- if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0) -- { -- /* An invalid sequence, or a truncated multibyte character. -- We treat it as a singlebyte character. */ -- mbclen = 1; -- } -- mb_properties[i] = mbclen; -- i += mbclen; -- } -- -- return mb_properties; --} --#endif -- - static void - Gcompile (char const *pattern, size_t size) - { -@@ -181,7 +166,8 @@ - size_t total = size; - char const *motif = pattern; - -- re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE); -+ check_utf8 (); -+ re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | (match_icase ? RE_ICASE : 0)); - dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte); - - /* For GNU regex compiler we have to pass the patterns separately to detect -@@ -233,7 +219,7 @@ - static char const line_end[] = "\)$"; - static char const word_beg[] = "\(^\|[^[:alnum:]_]\)\("; - static char const word_end[] = "\)\([^[:alnum:]_]\|$\)"; -- char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end); -+ char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end); - size_t i; - strcpy (n, match_lines ? line_beg : word_beg); - i = strlen (n); -@@ -257,14 +243,15 @@ - size_t total = size; - char const *motif = pattern; - -+ check_utf8 (); - if (strcmp (matcher, "awk") == 0) - { -- re_set_syntax (RE_SYNTAX_AWK); -+ re_set_syntax (RE_SYNTAX_AWK | (match_icase ? RE_ICASE : 0)); - dfasyntax (RE_SYNTAX_AWK, match_icase, eolbyte); - } - else - { -- re_set_syntax (RE_SYNTAX_POSIX_EGREP); -+ re_set_syntax (RE_SYNTAX_POSIX_EGREP | (match_icase ? RE_ICASE : 0)); - dfasyntax (RE_SYNTAX_POSIX_EGREP, match_icase, eolbyte); - } - -@@ -316,7 +303,7 @@ - static char const line_end[] = ")$"; - static char const word_beg[] = "(^|[^[:alnum:]_])("; - static char const word_end[] = ")([^[:alnum:]_]|$)"; -- char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end); -+ char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end); - size_t i; - strcpy (n, match_lines ? line_beg : word_beg); - i = strlen(n); -@@ -339,15 +326,35 @@ - char eol = eolbyte; - int backref, start, len; - struct kwsmatch kwsm; -- size_t i; -+ size_t i, ret_val; -+ static int use_dfa; -+ static int use_dfa_checked = 0; - #ifdef MBS_SUPPORT -- char *mb_properties = NULL; -+ const char *last_char = NULL; -+ int mb_cur_max = MB_CUR_MAX; -+ mbstate_t mbs; -+ memset (&mbs, '\0', sizeof (mbstate_t)); - #endif /* MBS_SUPPORT */ - -+ if (!use_dfa_checked) -+ { -+ char *grep_use_dfa = getenv ("GREP_USE_DFA"); -+ if (!grep_use_dfa) -+ { - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1 && kwset) -- mb_properties = check_multibyte_string(buf, size); -+ /* Turn off DFA when processing multibyte input. */ -+ use_dfa = (MB_CUR_MAX == 1); -+#else -+ use_dfa = 1; - #endif /* MBS_SUPPORT */ -+ } -+ else -+ { -+ use_dfa = atoi (grep_use_dfa); -+ } -+ -+ use_dfa_checked = 1; -+ } - - buflim = buf + size; - -@@ -358,47 +365,124 @@ - if (kwset) - { - /* Find a possible match using the KWset matcher. */ -- size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm); -+#ifdef MBS_SUPPORT -+ size_t bytes_left = 0; -+#endif /* MBS_SUPPORT */ -+ size_t offset; -+#ifdef MBS_SUPPORT -+ /* kwsexec doesn't work with match_icase and multibyte input. */ -+ if (match_icase && mb_cur_max > 1) -+ /* Avoid kwset */ -+ offset = 0; -+ else -+#endif /* MBS_SUPPORT */ -+ offset = kwsexec (kwset, beg, buflim - beg, &kwsm); - if (offset == (size_t) -1) -- { -+ goto failure; - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free(mb_properties); --#endif -- return (size_t)-1; -+ if (mb_cur_max > 1 && !using_utf8) -+ { -+ bytes_left = offset; -+ while (bytes_left) -+ { -+ size_t mlen = mbrlen (beg, bytes_left, &mbs); -+ -+ last_char = beg; -+ if (mlen == (size_t) -1 || mlen == 0) -+ { -+ /* Incomplete character: treat as single-byte. */ -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ beg++; -+ bytes_left--; -+ continue; -+ } -+ -+ if (mlen == (size_t) -2) -+ /* Offset points inside multibyte character: -+ * no good. */ -+ break; -+ -+ beg += mlen; -+ bytes_left -= mlen; -+ } - } -+ else -+#endif /* MBS_SUPPORT */ - beg += offset; - /* Narrow down to the line containing the candidate, and - run it through DFA. */ - end = memchr(beg, eol, buflim - beg); - end++; - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0) -+ if (mb_cur_max > 1 && bytes_left) - continue; --#endif -+#endif /* MBS_SUPPORT */ - while (beg > buf && beg[-1] != eol) - --beg; -- if (kwsm.index < kwset_exact_matches) -- goto success; -- if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) -+ if ( -+#ifdef MBS_SUPPORT -+ !(match_icase && mb_cur_max > 1) && -+#endif /* MBS_SUPPORT */ -+ (kwsm.index < kwset_exact_matches)) -+ goto success_in_beg_and_end; -+ if (use_dfa && -+ dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) - continue; - } - else - { - /* No good fixed strings; start with DFA. */ -- size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref); -+#ifdef MBS_SUPPORT -+ size_t bytes_left = 0; -+#endif /* MBS_SUPPORT */ -+ size_t offset = 0; -+ if (use_dfa) -+ offset = dfaexec (&dfa, beg, buflim - beg, &backref); - if (offset == (size_t) -1) - break; - /* Narrow down to the line we've found. */ -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1 && !using_utf8) -+ { -+ bytes_left = offset; -+ while (bytes_left) -+ { -+ size_t mlen = mbrlen (beg, bytes_left, &mbs); -+ -+ last_char = beg; -+ if (mlen == (size_t) -1 || mlen == 0) -+ { -+ /* Incomplete character: treat as single-byte. */ -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ beg++; -+ bytes_left--; -+ continue; -+ } -+ -+ if (mlen == (size_t) -2) -+ /* Offset points inside multibyte character: -+ * no good. */ -+ break; -+ -+ beg += mlen; -+ bytes_left -= mlen; -+ } -+ } -+ else -+#endif /* MBS_SUPPORT */ - beg += offset; - end = memchr (beg, eol, buflim - beg); - end++; -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1 && bytes_left) -+ continue; -+#endif /* MBS_SUPPORT */ - while (beg > buf && beg[-1] != eol) - --beg; - } - /* Successful, no backreferences encountered! */ -- if (!backref) -- goto success; -+ if (use_dfa && !backref) -+ goto success_in_beg_and_end; - } - else - end = beg + size; -@@ -413,14 +497,11 @@ - end - beg - 1, &(patterns[i].regs)))) - { - len = patterns[i].regs.end[0] - start; -- if (exact) -- { -- *match_size = len; -- return start; -- } -+ if (exact && !match_words) -+ goto success_in_start_and_len; - if ((!match_lines && !match_words) - || (match_lines && len == end - beg - 1)) -- goto success; -+ goto success_in_beg_and_end; - /* If -w, check if the match aligns with word boundaries. - We do this iteratively because: - (a) the line may contain more than one occurence of the -@@ -431,10 +512,84 @@ - if (match_words) - while (start >= 0) - { -- if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1])) -- && (len == end - beg - 1 -- || !WCHAR ((unsigned char) beg[start + len]))) -- goto success; -+ int lword_match = 0; -+ if (start == 0) -+ lword_match = 1; -+ else -+ { -+ assert (start > 0); -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1) -+ { -+ const char *s; -+ int mr; -+ wchar_t pwc; -+ -+ if (using_utf8) -+ { -+ s = beg + start - 1; -+ while (s > buf -+ && (unsigned char) *s >= 0x80 -+ && (unsigned char) *s <= 0xbf) -+ --s; -+ } -+ else -+ s = last_char; -+ mr = mbtowc (&pwc, s, beg + start - s); -+ if (mr <= 0) -+ { -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ lword_match = 1; -+ } -+ else if (!(iswalnum (pwc) || pwc == L'_') -+ && mr == (int) (beg + start - s)) -+ lword_match = 1; -+ } -+ else -+#endif /* MBS_SUPPORT */ -+ if (!WCHAR ((unsigned char) beg[start - 1])) -+ lword_match = 1; -+ } -+ -+ if (lword_match) -+ { -+ int rword_match = 0; -+ if (start + len == end - beg - 1) -+ rword_match = 1; -+ else -+ { -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1) -+ { -+ wchar_t nwc; -+ int mr; -+ -+ mr = mbtowc (&nwc, beg + start + len, -+ end - beg - start - len - 1); -+ if (mr <= 0) -+ { -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ rword_match = 1; -+ } -+ else if (!iswalnum (nwc) && nwc != L'_') -+ rword_match = 1; -+ } -+ else -+#endif /* MBS_SUPPORT */ -+ if (!WCHAR ((unsigned char) beg[start + len])) -+ rword_match = 1; -+ } -+ -+ if (rword_match) -+ { -+ if (!exact) -+ /* Returns the whole line. */ -+ goto success_in_beg_and_end; -+ else -+ /* Returns just this word match. */ -+ goto success_in_start_and_len; -+ } -+ } - if (len > 0) - { - /* Try a shorter length anchored at the same place. */ -@@ -461,26 +616,154 @@ - } - } /* for Regex patterns. */ - } /* for (beg = end ..) */ --#ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1 && mb_properties) -- free (mb_properties); --#endif /* MBS_SUPPORT */ -+ -+ failure: - return (size_t) -1; - -- success: --#ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1 && mb_properties) -- free (mb_properties); --#endif /* MBS_SUPPORT */ -- *match_size = end - beg; -- return beg - buf; -+ success_in_beg_and_end: -+ len = end - beg; -+ start = beg - buf; -+ /* FALLTHROUGH */ -+ -+ success_in_start_and_len: -+ *match_size = len; -+ return start; - } - -+#ifdef MBS_SUPPORT -+static int f_i_multibyte; /* whether we're using the new -Fi MB method */ -+static struct -+{ -+ wchar_t **patterns; -+ size_t count, maxlen; -+ unsigned char *match; -+} Fimb; -+#endif -+ - static void - Fcompile (char const *pattern, size_t size) - { -+ int mb_cur_max = MB_CUR_MAX; - char const *beg, *lim, *err; - -+ check_utf8 (); -+#ifdef MBS_SUPPORT -+ /* Support -F -i for UTF-8 input. */ -+ if (match_icase && mb_cur_max > 1) -+ { -+ mbstate_t mbs; -+ wchar_t *wcpattern = xmalloc ((size + 1) * sizeof (wchar_t)); -+ const char *patternend = pattern; -+ size_t wcsize; -+ kwset_t fimb_kwset = NULL; -+ char *starts = NULL; -+ wchar_t *wcbeg, *wclim; -+ size_t allocated = 0; -+ -+ memset (&mbs, '\0', sizeof (mbs)); -+# ifdef __GNU_LIBRARY__ -+ wcsize = mbsnrtowcs (wcpattern, &patternend, size, size, &mbs); -+ if (patternend != pattern + size) -+ wcsize = (size_t) -1; -+# else -+ { -+ char *patterncopy = xmalloc (size + 1); -+ -+ memcpy (patterncopy, pattern, size); -+ patterncopy[size] = '\0'; -+ patternend = patterncopy; -+ wcsize = mbsrtowcs (wcpattern, &patternend, size, &mbs); -+ if (patternend != patterncopy + size) -+ wcsize = (size_t) -1; -+ free (patterncopy); -+ } -+# endif -+ if (wcsize + 2 <= 2) -+ { -+fimb_fail: -+ free (wcpattern); -+ free (starts); -+ if (fimb_kwset) -+ kwsfree (fimb_kwset); -+ free (Fimb.patterns); -+ Fimb.patterns = NULL; -+ } -+ else -+ { -+ if (!(fimb_kwset = kwsalloc (NULL))) -+ error (2, 0, _("memory exhausted")); -+ -+ starts = xmalloc (mb_cur_max * 3); -+ wcbeg = wcpattern; -+ do -+ { -+ int i; -+ size_t wclen; -+ -+ if (Fimb.count >= allocated) -+ { -+ if (allocated == 0) -+ allocated = 128; -+ else -+ allocated *= 2; -+ Fimb.patterns = xrealloc (Fimb.patterns, -+ sizeof (wchar_t *) * allocated); -+ } -+ Fimb.patterns[Fimb.count++] = wcbeg; -+ for (wclim = wcbeg; -+ wclim < wcpattern + wcsize && *wclim != L'\n'; ++wclim) -+ *wclim = towlower (*wclim); -+ *wclim = L'\0'; -+ wclen = wclim - wcbeg; -+ if (wclen > Fimb.maxlen) -+ Fimb.maxlen = wclen; -+ if (wclen > 3) -+ wclen = 3; -+ if (wclen == 0) -+ { -+ if ((err = kwsincr (fimb_kwset, "", 0)) != 0) -+ error (2, 0, err); -+ } -+ else -+ for (i = 0; i < (1 << wclen); i++) -+ { -+ char *p = starts; -+ int j, k; -+ -+ for (j = 0; j < wclen; ++j) -+ { -+ wchar_t wc = wcbeg[j]; -+ if (i & (1 << j)) -+ { -+ wc = towupper (wc); -+ if (wc == wcbeg[j]) -+ continue; -+ } -+ k = wctomb (p, wc); -+ if (k <= 0) -+ goto fimb_fail; -+ p += k; -+ } -+ if ((err = kwsincr (fimb_kwset, starts, p - starts)) != 0) -+ error (2, 0, err); -+ } -+ if (wclim < wcpattern + wcsize) -+ ++wclim; -+ wcbeg = wclim; -+ } -+ while (wcbeg < wcpattern + wcsize); -+ f_i_multibyte = 1; -+ kwset = fimb_kwset; -+ free (starts); -+ Fimb.match = xmalloc (Fimb.count); -+ if ((err = kwsprep (kwset)) != 0) -+ error (2, 0, err); -+ return; -+ } -+ } -+#endif /* MBS_SUPPORT */ -+ -+ - kwsinit (); - beg = pattern; - do -@@ -499,6 +782,76 @@ - error (2, 0, err); - } - -+#ifdef MBS_SUPPORT -+static int -+Fimbexec (const char *buf, size_t size, size_t *plen, int exact) -+{ -+ size_t len, letter, i; -+ int ret = -1; -+ mbstate_t mbs; -+ wchar_t wc; -+ int patterns_left; -+ -+ assert (match_icase && f_i_multibyte == 1); -+ assert (MB_CUR_MAX > 1); -+ -+ memset (&mbs, '\0', sizeof (mbs)); -+ memset (Fimb.match, '\1', Fimb.count); -+ letter = len = 0; -+ patterns_left = 1; -+ while (patterns_left && len <= size) -+ { -+ size_t c; -+ -+ patterns_left = 0; -+ if (len < size) -+ { -+ c = mbrtowc (&wc, buf + len, size - len, &mbs); -+ if (c + 2 <= 2) -+ return ret; -+ -+ wc = towlower (wc); -+ } -+ else -+ { -+ c = 1; -+ wc = L'\0'; -+ } -+ -+ for (i = 0; i < Fimb.count; i++) -+ { -+ if (Fimb.match[i]) -+ { -+ if (Fimb.patterns[i][letter] == L'\0') -+ { -+ /* Found a match. */ -+ *plen = len; -+ if (!exact && !match_words) -+ return 0; -+ else -+ { -+ /* For -w or exact look for longest match. */ -+ ret = 0; -+ Fimb.match[i] = '\0'; -+ continue; -+ } -+ } -+ -+ if (Fimb.patterns[i][letter] == wc) -+ patterns_left = 1; -+ else -+ Fimb.match[i] = '\0'; -+ } -+ } -+ -+ len += c; -+ letter++; -+ } -+ -+ return ret; -+} -+#endif /* MBS_SUPPORT */ -+ - static size_t - Fexecute (char const *buf, size_t size, size_t *match_size, int exact) - { -@@ -506,88 +859,268 @@ - register size_t len; - char eol = eolbyte; - struct kwsmatch kwsmatch; -+ size_t ret_val; - #ifdef MBS_SUPPORT -- char *mb_properties; -- if (MB_CUR_MAX > 1) -- mb_properties = check_multibyte_string (buf, size); -+ int mb_cur_max = MB_CUR_MAX; -+ mbstate_t mbs; -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ const char *last_char = NULL; - #endif /* MBS_SUPPORT */ - - for (beg = buf; beg <= buf + size; ++beg) - { -- size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); -+ size_t offset; -+ offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); -+ - if (offset == (size_t) -1) -- { -+ goto failure; - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free(mb_properties); --#endif /* MBS_SUPPORT */ -- return offset; -+ if (mb_cur_max > 1 && !using_utf8) -+ { -+ size_t bytes_left = offset; -+ while (bytes_left) -+ { -+ size_t mlen = mbrlen (beg, bytes_left, &mbs); -+ -+ last_char = beg; -+ if (mlen == (size_t) -1 || mlen == 0) -+ { -+ /* Incomplete character: treat as single-byte. */ -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ beg++; -+ bytes_left--; -+ continue; -+ } -+ -+ if (mlen == (size_t) -2) -+ /* Offset points inside multibyte character: no good. */ -+ break; -+ -+ beg += mlen; -+ bytes_left -= mlen; -+ } -+ -+ if (bytes_left) -+ continue; - } --#ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0) -- continue; /* It is a part of multibyte character. */ -+ else - #endif /* MBS_SUPPORT */ - beg += offset; -- len = kwsmatch.size[0]; -- if (exact) -- { -- *match_size = len; - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free (mb_properties); -+ /* For f_i_multibyte, the string at beg now matches first 3 chars of -+ one of the search strings (less if there are shorter search strings). -+ See if this is a real match. */ -+ if (f_i_multibyte -+ && Fimbexec (beg, buf + size - beg, &kwsmatch.size[0], exact)) -+ goto next_char; - #endif /* MBS_SUPPORT */ -- return beg - buf; -- } -+ len = kwsmatch.size[0]; -+ if (exact && !match_words) -+ goto success_in_beg_and_len; - if (match_lines) - { - if (beg > buf && beg[-1] != eol) -- continue; -+ goto next_char; - if (beg + len < buf + size && beg[len] != eol) -- continue; -+ goto next_char; - goto success; - } - else if (match_words) -- for (try = beg; len; ) -- { -- if (try > buf && WCHAR((unsigned char) try[-1])) -- break; -- if (try + len < buf + size && WCHAR((unsigned char) try[len])) -- { -- offset = kwsexec (kwset, beg, --len, &kwsmatch); -- if (offset == (size_t) -1) -- { -+ { -+ while (len) -+ { -+ int word_match = 0; -+ if (beg > buf) -+ { - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free (mb_properties); -+ if (mb_cur_max > 1) -+ { -+ const char *s; -+ int mr; -+ wchar_t pwc; -+ -+ if (using_utf8) -+ { -+ s = beg - 1; -+ while (s > buf -+ && (unsigned char) *s >= 0x80 -+ && (unsigned char) *s <= 0xbf) -+ --s; -+ } -+ else -+ s = last_char; -+ mr = mbtowc (&pwc, s, beg - s); -+ if (mr <= 0) -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ else if ((iswalnum (pwc) || pwc == L'_') -+ && mr == (int) (beg - s)) -+ goto next_char; -+ } -+ else - #endif /* MBS_SUPPORT */ -- return offset; -- } -- try = beg + offset; -- len = kwsmatch.size[0]; -- } -- else -- goto success; -- } -+ if (WCHAR ((unsigned char) beg[-1])) -+ goto next_char; -+ } -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1) -+ { -+ wchar_t nwc; -+ int mr; -+ -+ mr = mbtowc (&nwc, beg + len, buf + size - beg - len); -+ if (mr <= 0) -+ { -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ word_match = 1; -+ } -+ else if (!iswalnum (nwc) && nwc != L'_') -+ word_match = 1; -+ } -+ else -+#endif /* MBS_SUPPORT */ -+ if (beg + len >= buf + size || !WCHAR ((unsigned char) beg[len])) -+ word_match = 1; -+ if (word_match) -+ { -+ if (!exact) -+ /* Returns the whole line now we know there's a word match. */ -+ goto success; -+ else -+ /* Returns just this word match. */ -+ goto success_in_beg_and_len; -+ } -+ if (len > 0) -+ { -+ /* Try a shorter length anchored at the same place. */ -+ --len; -+ offset = kwsexec (kwset, beg, len, &kwsmatch); -+ -+ if (offset == -1) -+ goto next_char; /* Try a different anchor. */ -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1 && !using_utf8) -+ { -+ size_t bytes_left = offset; -+ while (bytes_left) -+ { -+ size_t mlen = mbrlen (beg, bytes_left, &mbs); -+ -+ last_char = beg; -+ if (mlen == (size_t) -1 || mlen == 0) -+ { -+ /* Incomplete character: treat as single-byte. */ -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ beg++; -+ bytes_left--; -+ continue; -+ } -+ -+ if (mlen == (size_t) -2) -+ { -+ /* Offset points inside multibyte character: -+ * no good. */ -+ break; -+ } -+ -+ beg += mlen; -+ bytes_left -= mlen; -+ } -+ -+ if (bytes_left) -+ { -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ goto next_char; /* Try a different anchor. */ -+ } -+ } -+ else -+#endif /* MBS_SUPPORT */ -+ beg += offset; -+#ifdef MBS_SUPPORT -+ /* The string at beg now matches first 3 chars of one of -+ the search strings (less if there are shorter search -+ strings). See if this is a real match. */ -+ if (f_i_multibyte -+ && Fimbexec (beg, len - offset, &kwsmatch.size[0], -+ exact)) -+ goto next_char; -+#endif /* MBS_SUPPORT */ -+ len = kwsmatch.size[0]; -+ } -+ } -+ } - else - goto success; -- } -- -+next_char:; - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free (mb_properties); -+ /* Advance to next character. For MB_CUR_MAX == 1 case this is handled -+ by ++beg above. */ -+ if (mb_cur_max > 1) -+ { -+ if (using_utf8) -+ { -+ unsigned char c = *beg; -+ if (c >= 0xc2) -+ { -+ if (c < 0xe0) -+ ++beg; -+ else if (c < 0xf0) -+ beg += 2; -+ else if (c < 0xf8) -+ beg += 3; -+ else if (c < 0xfc) -+ beg += 4; -+ else if (c < 0xfe) -+ beg += 5; -+ } -+ } -+ else -+ { -+ size_t l = mbrlen (beg, buf + size - beg, &mbs); -+ -+ last_char = beg; -+ if (l + 2 >= 2) -+ beg += l - 1; -+ else -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ } -+ } - #endif /* MBS_SUPPORT */ -+ } -+ -+ failure: - return -1; - - success: -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1 && !using_utf8) -+ { -+ end = beg + len; -+ while (end < buf + size) -+ { -+ size_t mlen = mbrlen (end, buf + size - end, &mbs); -+ if (mlen == (size_t) -1 || mlen == (size_t) -2 || mlen == 0) -+ { -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ mlen = 1; -+ } -+ if (mlen == 1 && *end == eol) -+ break; -+ -+ end += mlen; -+ } -+ } -+ else -+#endif /* MBS_SUPPORT */ - end = memchr (beg + len, eol, (buf + size) - (beg + len)); -+ - end++; - while (buf < beg && beg[-1] != eol) - --beg; -- *match_size = end - beg; --#ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free (mb_properties); --#endif /* MBS_SUPPORT */ -+ len = end - beg; -+ /* FALLTHROUGH */ -+ -+ success_in_beg_and_len: -+ *match_size = len; - return beg - buf; - } - -diff -urN grep-2.5.1a.orig/src/search.c.orig grep-2.5.1a/src/search.c.orig ---- grep-2.5.1a.orig/src/search.c.orig 1970-01-01 05:00:00.000000000 +0500 -+++ grep-2.5.1a/src/search.c.orig 2005-10-23 09:48:39.000000000 +0600 -@@ -0,0 +1,714 @@ -+/* search.c - searching subroutines using dfa, kwset and regex for grep. -+ Copyright 1992, 1998, 2000 Free Software Foundation, Inc. -+ -+ This program is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 2, or (at your option) -+ any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program; if not, write to the Free Software -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+ 02111-1307, USA. */ -+ -+/* Written August 1992 by Mike Haertel. */ -+ -+#ifdef HAVE_CONFIG_H -+# include <config.h> -+#endif -+#include <sys/types.h> -+#if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC -+/* We can handle multibyte string. */ -+# define MBS_SUPPORT -+# include <wchar.h> -+# include <wctype.h> -+#endif -+ -+#include "system.h" -+#include "grep.h" -+#include "regex.h" -+#include "dfa.h" -+#include "kwset.h" -+#include "error.h" -+#include "xalloc.h" -+#ifdef HAVE_LIBPCRE -+# include <pcre.h> -+#endif -+ -+#define NCHAR (UCHAR_MAX + 1) -+ -+/* For -w, we also consider _ to be word constituent. */ -+#define WCHAR(C) (ISALNUM(C) || (C) == '_') -+ -+/* DFA compiled regexp. */ -+static struct dfa dfa; -+ -+/* The Regex compiled patterns. */ -+static struct patterns -+{ -+ /* Regex compiled regexp. */ -+ struct re_pattern_buffer regexbuf; -+ struct re_registers regs; /* This is here on account of a BRAIN-DEAD -+ Q@#%!# library interface in regex.c. */ -+} patterns0; -+ -+struct patterns *patterns; -+size_t pcount; -+ -+/* KWset compiled pattern. For Ecompile and Gcompile, we compile -+ a list of strings, at least one of which is known to occur in -+ any string matching the regexp. */ -+static kwset_t kwset; -+ -+/* Number of compiled fixed strings known to exactly match the regexp. -+ If kwsexec returns < kwset_exact_matches, then we don't need to -+ call the regexp matcher at all. */ -+static int kwset_exact_matches; -+ -+#if defined(MBS_SUPPORT) -+static char* check_multibyte_string PARAMS ((char const *buf, size_t size)); -+#endif -+static void kwsinit PARAMS ((void)); -+static void kwsmusts PARAMS ((void)); -+static void Gcompile PARAMS ((char const *, size_t)); -+static void Ecompile PARAMS ((char const *, size_t)); -+static size_t EGexecute PARAMS ((char const *, size_t, size_t *, int )); -+static void Fcompile PARAMS ((char const *, size_t)); -+static size_t Fexecute PARAMS ((char const *, size_t, size_t *, int)); -+static void Pcompile PARAMS ((char const *, size_t )); -+static size_t Pexecute PARAMS ((char const *, size_t, size_t *, int)); -+ -+void -+dfaerror (char const *mesg) -+{ -+ error (2, 0, mesg); -+} -+ -+static void -+kwsinit (void) -+{ -+ static char trans[NCHAR]; -+ int i; -+ -+ if (match_icase) -+ for (i = 0; i < NCHAR; ++i) -+ trans[i] = TOLOWER (i); -+ -+ if (!(kwset = kwsalloc (match_icase ? trans : (char *) 0))) -+ error (2, 0, _("memory exhausted")); -+} -+ -+/* If the DFA turns out to have some set of fixed strings one of -+ which must occur in the match, then we build a kwset matcher -+ to find those strings, and thus quickly filter out impossible -+ matches. */ -+static void -+kwsmusts (void) -+{ -+ struct dfamust const *dm; -+ char const *err; -+ -+ if (dfa.musts) -+ { -+ kwsinit (); -+ /* First, we compile in the substrings known to be exact -+ matches. The kwset matcher will return the index -+ of the matching string that it chooses. */ -+ for (dm = dfa.musts; dm; dm = dm->next) -+ { -+ if (!dm->exact) -+ continue; -+ ++kwset_exact_matches; -+ if ((err = kwsincr (kwset, dm->must, strlen (dm->must))) != 0) -+ error (2, 0, err); -+ } -+ /* Now, we compile the substrings that will require -+ the use of the regexp matcher. */ -+ for (dm = dfa.musts; dm; dm = dm->next) -+ { -+ if (dm->exact) -+ continue; -+ if ((err = kwsincr (kwset, dm->must, strlen (dm->must))) != 0) -+ error (2, 0, err); -+ } -+ if ((err = kwsprep (kwset)) != 0) -+ error (2, 0, err); -+ } -+} -+ -+#ifdef MBS_SUPPORT -+/* This function allocate the array which correspond to "buf". -+ Then this check multibyte string and mark on the positions which -+ are not singlebyte character nor the first byte of a multibyte -+ character. Caller must free the array. */ -+static char* -+check_multibyte_string(char const *buf, size_t size) -+{ -+ char *mb_properties = malloc(size); -+ mbstate_t cur_state; -+ int i; -+ memset(&cur_state, 0, sizeof(mbstate_t)); -+ memset(mb_properties, 0, sizeof(char)*size); -+ for (i = 0; i < size ;) -+ { -+ size_t mbclen; -+ mbclen = mbrlen(buf + i, size - i, &cur_state); -+ -+ if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0) -+ { -+ /* An invalid sequence, or a truncated multibyte character. -+ We treat it as a singlebyte character. */ -+ mbclen = 1; -+ } -+ mb_properties[i] = mbclen; -+ i += mbclen; -+ } -+ -+ return mb_properties; -+} -+#endif -+ -+static void -+Gcompile (char const *pattern, size_t size) -+{ -+ const char *err; -+ char const *sep; -+ size_t total = size; -+ char const *motif = pattern; -+ -+ re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE); -+ dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte); -+ -+ /* For GNU regex compiler we have to pass the patterns separately to detect -+ errors like "[\nallo\n]\n". The patterns here are "[", "allo" and "]" -+ GNU regex should have raise a syntax error. The same for backref, where -+ the backref should have been local to each pattern. */ -+ do -+ { -+ size_t len; -+ sep = memchr (motif, '\n', total); -+ if (sep) -+ { -+ len = sep - motif; -+ sep++; -+ total -= (len + 1); -+ } -+ else -+ { -+ len = total; -+ total = 0; -+ } -+ -+ patterns = realloc (patterns, (pcount + 1) * sizeof (*patterns)); -+ if (patterns == NULL) -+ error (2, errno, _("memory exhausted")); -+ -+ patterns[pcount] = patterns0; -+ -+ if ((err = re_compile_pattern (motif, len, -+ &(patterns[pcount].regexbuf))) != 0) -+ error (2, 0, err); -+ pcount++; -+ -+ motif = sep; -+ } while (sep && total != 0); -+ -+ /* In the match_words and match_lines cases, we use a different pattern -+ for the DFA matcher that will quickly throw out cases that won't work. -+ Then if DFA succeeds we do some hairy stuff using the regex matcher -+ to decide whether the match should really count. */ -+ if (match_words || match_lines) -+ { -+ /* In the whole-word case, we use the pattern: -+ (^|[^[:alnum:]_])(userpattern)([^[:alnum:]_]|$). -+ In the whole-line case, we use the pattern: -+ ^(userpattern)$. */ -+ -+ static char const line_beg[] = "^\("; -+ static char const line_end[] = "\)$"; -+ static char const word_beg[] = "\(^\|[^[:alnum:]_]\)\("; -+ static char const word_end[] = "\)\([^[:alnum:]_]\|$\)"; -+ char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end); -+ size_t i; -+ strcpy (n, match_lines ? line_beg : word_beg); -+ i = strlen (n); -+ memcpy (n + i, pattern, size); -+ i += size; -+ strcpy (n + i, match_lines ? line_end : word_end); -+ i += strlen (n + i); -+ pattern = n; -+ size = i; -+ } -+ -+ dfacomp (pattern, size, &dfa, 1); -+ kwsmusts (); -+} -+ -+static void -+Ecompile (char const *pattern, size_t size) -+{ -+ const char *err; -+ const char *sep; -+ size_t total = size; -+ char const *motif = pattern; -+ -+ if (strcmp (matcher, "awk") == 0) -+ { -+ re_set_syntax (RE_SYNTAX_AWK); -+ dfasyntax (RE_SYNTAX_AWK, match_icase, eolbyte); -+ } -+ else -+ { -+ re_set_syntax (RE_SYNTAX_POSIX_EGREP); -+ dfasyntax (RE_SYNTAX_POSIX_EGREP, match_icase, eolbyte); -+ } -+ -+ /* For GNU regex compiler we have to pass the patterns separately to detect -+ errors like "[\nallo\n]\n". The patterns here are "[", "allo" and "]" -+ GNU regex should have raise a syntax error. The same for backref, where -+ the backref should have been local to each pattern. */ -+ do -+ { -+ size_t len; -+ sep = memchr (motif, '\n', total); -+ if (sep) -+ { -+ len = sep - motif; -+ sep++; -+ total -= (len + 1); -+ } -+ else -+ { -+ len = total; -+ total = 0; -+ } -+ -+ patterns = realloc (patterns, (pcount + 1) * sizeof (*patterns)); -+ if (patterns == NULL) -+ error (2, errno, _("memory exhausted")); -+ patterns[pcount] = patterns0; -+ -+ if ((err = re_compile_pattern (motif, len, -+ &(patterns[pcount].regexbuf))) != 0) -+ error (2, 0, err); -+ pcount++; -+ -+ motif = sep; -+ } while (sep && total != 0); -+ -+ /* In the match_words and match_lines cases, we use a different pattern -+ for the DFA matcher that will quickly throw out cases that won't work. -+ Then if DFA succeeds we do some hairy stuff using the regex matcher -+ to decide whether the match should really count. */ -+ if (match_words || match_lines) -+ { -+ /* In the whole-word case, we use the pattern: -+ (^|[^[:alnum:]_])(userpattern)([^[:alnum:]_]|$). -+ In the whole-line case, we use the pattern: -+ ^(userpattern)$. */ -+ -+ static char const line_beg[] = "^("; -+ static char const line_end[] = ")$"; -+ static char const word_beg[] = "(^|[^[:alnum:]_])("; -+ static char const word_end[] = ")([^[:alnum:]_]|$)"; -+ char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end); -+ size_t i; -+ strcpy (n, match_lines ? line_beg : word_beg); -+ i = strlen(n); -+ memcpy (n + i, pattern, size); -+ i += size; -+ strcpy (n + i, match_lines ? line_end : word_end); -+ i += strlen (n + i); -+ pattern = n; -+ size = i; -+ } -+ -+ dfacomp (pattern, size, &dfa, 1); -+ kwsmusts (); -+} -+ -+static size_t -+EGexecute (char const *buf, size_t size, size_t *match_size, int exact) -+{ -+ register char const *buflim, *beg, *end; -+ char eol = eolbyte; -+ int backref, start, len; -+ struct kwsmatch kwsm; -+ size_t i; -+#ifdef MBS_SUPPORT -+ char *mb_properties = NULL; -+#endif /* MBS_SUPPORT */ -+ -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1 && kwset) -+ mb_properties = check_multibyte_string(buf, size); -+#endif /* MBS_SUPPORT */ -+ -+ buflim = buf + size; -+ -+ for (beg = end = buf; end < buflim; beg = end) -+ { -+ if (!exact) -+ { -+ if (kwset) -+ { -+ /* Find a possible match using the KWset matcher. */ -+ size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm); -+ if (offset == (size_t) -1) -+ goto failure; -+ beg += offset; -+ /* Narrow down to the line containing the candidate, and -+ run it through DFA. */ -+ end = memchr(beg, eol, buflim - beg); -+ end++; -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0) -+ continue; -+#endif -+ while (beg > buf && beg[-1] != eol) -+ --beg; -+ if (kwsm.index < kwset_exact_matches) -+ goto success_in_beg_and_end; -+ if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) -+ continue; -+ } -+ else -+ { -+ /* No good fixed strings; start with DFA. */ -+ size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref); -+ if (offset == (size_t) -1) -+ break; -+ /* Narrow down to the line we've found. */ -+ beg += offset; -+ end = memchr (beg, eol, buflim - beg); -+ end++; -+ while (beg > buf && beg[-1] != eol) -+ --beg; -+ } -+ /* Successful, no backreferences encountered! */ -+ if (!backref) -+ goto success_in_beg_and_end; -+ } -+ else -+ end = beg + size; -+ -+ /* If we've made it to this point, this means DFA has seen -+ a probable match, and we need to run it through Regex. */ -+ for (i = 0; i < pcount; i++) -+ { -+ patterns[i].regexbuf.not_eol = 0; -+ if (0 <= (start = re_search (&(patterns[i].regexbuf), beg, -+ end - beg - 1, 0, -+ end - beg - 1, &(patterns[i].regs)))) -+ { -+ len = patterns[i].regs.end[0] - start; -+ if (exact && !match_words) -+ goto success_in_start_and_len; -+ if ((!match_lines && !match_words) -+ || (match_lines && len == end - beg - 1)) -+ goto success_in_beg_and_end; -+ /* If -w, check if the match aligns with word boundaries. -+ We do this iteratively because: -+ (a) the line may contain more than one occurence of the -+ pattern, and -+ (b) Several alternatives in the pattern might be valid at a -+ given point, and we may need to consider a shorter one to -+ find a word boundary. */ -+ if (match_words) -+ while (start >= 0) -+ { -+ if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1])) -+ && (len == end - beg - 1 -+ || !WCHAR ((unsigned char) beg[start + len]))) -+ goto success_in_beg_and_end; -+ if (len > 0) -+ { -+ /* Try a shorter length anchored at the same place. */ -+ --len; -+ patterns[i].regexbuf.not_eol = 1; -+ len = re_match (&(patterns[i].regexbuf), beg, -+ start + len, start, -+ &(patterns[i].regs)); -+ } -+ if (len <= 0) -+ { -+ /* Try looking further on. */ -+ if (start == end - beg - 1) -+ break; -+ ++start; -+ patterns[i].regexbuf.not_eol = 0; -+ start = re_search (&(patterns[i].regexbuf), beg, -+ end - beg - 1, -+ start, end - beg - 1 - start, -+ &(patterns[i].regs)); -+ len = patterns[i].regs.end[0] - start; -+ } -+ } -+ } -+ } /* for Regex patterns. */ -+ } /* for (beg = end ..) */ -+ -+ failure: -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1 && mb_properties) -+ free (mb_properties); -+#endif /* MBS_SUPPORT */ -+ return (size_t) -1; -+ -+ success_in_beg_and_end: -+ len = end - beg; -+ start = beg - buf; -+ /* FALLTHROUGH */ -+ -+ success_in_start_and_len: -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1 && mb_properties) -+ free (mb_properties); -+#endif /* MBS_SUPPORT */ -+ *match_size = len; -+ return start; -+} -+ -+static void -+Fcompile (char const *pattern, size_t size) -+{ -+ char const *beg, *lim, *err; -+ -+ kwsinit (); -+ beg = pattern; -+ do -+ { -+ for (lim = beg; lim < pattern + size && *lim != '\n'; ++lim) -+ ; -+ if ((err = kwsincr (kwset, beg, lim - beg)) != 0) -+ error (2, 0, err); -+ if (lim < pattern + size) -+ ++lim; -+ beg = lim; -+ } -+ while (beg < pattern + size); -+ -+ if ((err = kwsprep (kwset)) != 0) -+ error (2, 0, err); -+} -+ -+static size_t -+Fexecute (char const *buf, size_t size, size_t *match_size, int exact) -+{ -+ register char const *beg, *try, *end; -+ register size_t len; -+ char eol = eolbyte; -+ struct kwsmatch kwsmatch; -+#ifdef MBS_SUPPORT -+ char *mb_properties; -+ if (MB_CUR_MAX > 1) -+ mb_properties = check_multibyte_string (buf, size); -+#endif /* MBS_SUPPORT */ -+ -+ for (beg = buf; beg <= buf + size; ++beg) -+ { -+ size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); -+ if (offset == (size_t) -1) -+ goto failure; -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0) -+ continue; /* It is a part of multibyte character. */ -+#endif /* MBS_SUPPORT */ -+ beg += offset; -+ len = kwsmatch.size[0]; -+ if (exact && !match_words) -+ goto success_in_beg_and_len; -+ if (match_lines) -+ { -+ if (beg > buf && beg[-1] != eol) -+ continue; -+ if (beg + len < buf + size && beg[len] != eol) -+ continue; -+ goto success; -+ } -+ else if (match_words) -+ for (try = beg; len; ) -+ { -+ if (try > buf && WCHAR((unsigned char) try[-1])) -+ break; -+ if (try + len < buf + size && WCHAR((unsigned char) try[len])) -+ { -+ offset = kwsexec (kwset, beg, --len, &kwsmatch); -+ if (offset == (size_t) -1) -+ { -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1) -+ free (mb_properties); -+#endif /* MBS_SUPPORT */ -+ return offset; -+ } -+ try = beg + offset; -+ len = kwsmatch.size[0]; -+ } -+ else -+ goto success; -+ } -+ else -+ goto success; -+ } -+ -+ failure: -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1) -+ free (mb_properties); -+#endif /* MBS_SUPPORT */ -+ return -1; -+ -+ success: -+ end = memchr (beg + len, eol, (buf + size) - (beg + len)); -+ end++; -+ while (buf < beg && beg[-1] != eol) -+ --beg; -+ len = end - beg; -+ /* FALLTHROUGH */ -+ -+ success_in_beg_and_len: -+ *match_size = len; -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1) -+ free (mb_properties); -+#endif /* MBS_SUPPORT */ -+ return beg - buf; -+} -+ -+#if HAVE_LIBPCRE -+/* Compiled internal form of a Perl regular expression. */ -+static pcre *cre; -+ -+/* Additional information about the pattern. */ -+static pcre_extra *extra; -+#endif -+ -+static void -+Pcompile (char const *pattern, size_t size) -+{ -+#if !HAVE_LIBPCRE -+ error (2, 0, _("The -P option is not supported")); -+#else -+ int e; -+ char const *ep; -+ char *re = xmalloc (4 * size + 7); -+ int flags = PCRE_MULTILINE | (match_icase ? PCRE_CASELESS : 0); -+ char const *patlim = pattern + size; -+ char *n = re; -+ char const *p; -+ char const *pnul; -+ -+ /* FIXME: Remove this restriction. */ -+ if (eolbyte != '\n') -+ error (2, 0, _("The -P and -z options cannot be combined")); -+ -+ *n = '\0'; -+ if (match_lines) -+ strcpy (n, "^("); -+ if (match_words) -+ strcpy (n, "\b("); -+ n += strlen (n); -+ -+ /* The PCRE interface doesn't allow NUL bytes in the pattern, so -+ replace each NUL byte in the pattern with the four characters -+ "\000", removing a preceding backslash if there are an odd -+ number of backslashes before the NUL. -+ -+ FIXME: This method does not work with some multibyte character -+ encodings, notably Shift-JIS, where a multibyte character can end -+ in a backslash byte. */ -+ for (p = pattern; (pnul = memchr (p, '\0', patlim - p)); p = pnul + 1) -+ { -+ memcpy (n, p, pnul - p); -+ n += pnul - p; -+ for (p = pnul; pattern < p && p[-1] == '\'; p--) -+ continue; -+ n -= (pnul - p) & 1; -+ strcpy (n, "\000"); -+ n += 4; -+ } -+ -+ memcpy (n, p, patlim - p); -+ n += patlim - p; -+ *n = '\0'; -+ if (match_words) -+ strcpy (n, ")\b"); -+ if (match_lines) -+ strcpy (n, ")$"); -+ -+ cre = pcre_compile (re, flags, &ep, &e, pcre_maketables ()); -+ if (!cre) -+ error (2, 0, ep); -+ -+ extra = pcre_study (cre, 0, &ep); -+ if (ep) -+ error (2, 0, ep); -+ -+ free (re); -+#endif -+} -+ -+static size_t -+Pexecute (char const *buf, size_t size, size_t *match_size, int exact) -+{ -+#if !HAVE_LIBPCRE -+ abort (); -+ return -1; -+#else -+ /* This array must have at least two elements; everything after that -+ is just for performance improvement in pcre_exec. */ -+ int sub[300]; -+ -+ int e = pcre_exec (cre, extra, buf, size, 0, 0, -+ sub, sizeof sub / sizeof *sub); -+ -+ if (e <= 0) -+ { -+ switch (e) -+ { -+ case PCRE_ERROR_NOMATCH: -+ return -1; -+ -+ case PCRE_ERROR_NOMEMORY: -+ error (2, 0, _("Memory exhausted")); -+ -+ default: -+ abort (); -+ } -+ } -+ else -+ { -+ /* Narrow down to the line we've found. */ -+ char const *beg = buf + sub[0]; -+ char const *end = buf + sub[1]; -+ char const *buflim = buf + size; -+ char eol = eolbyte; -+ if (!exact) -+ { -+ end = memchr (end, eol, buflim - end); -+ end++; -+ while (buf < beg && beg[-1] != eol) -+ --beg; -+ } -+ -+ *match_size = end - beg; -+ return beg - buf; -+ } -+#endif -+} -+ -+struct matcher const matchers[] = { -+ { "default", Gcompile, EGexecute }, -+ { "grep", Gcompile, EGexecute }, -+ { "egrep", Ecompile, EGexecute }, -+ { "awk", Ecompile, EGexecute }, -+ { "fgrep", Fcompile, Fexecute }, -+ { "perl", Pcompile, Pexecute }, -+ { "", 0, 0 }, -+}; -diff -urN grep-2.5.1a.orig/tests/fmbtest.sh grep-2.5.1a/tests/fmbtest.sh ---- grep-2.5.1a.orig/tests/fmbtest.sh 1970-01-01 05:00:00.000000000 +0500 -+++ grep-2.5.1a/tests/fmbtest.sh 2005-10-23 09:51:12.000000000 +0600 -@@ -0,0 +1,111 @@ -+#!/bin/sh -+ -+: ${srcdir=.} -+ -+# If cs_CZ.UTF-8 locale doesn't work, skip this test silently -+LC_ALL=cs_CZ.UTF-8 locale -k LC_CTYPE 2>/dev/null | ${GREP} -q charmap.*UTF-8 \ -+ || exit 77 -+ -+failures=0 -+ -+cat > csinput <<EOF -+01 ÅœluÅ¥ouÄká ÄÃÅ¡e -+ÄÃÅ E 02 -+03 Z ÄÃÅ¡Ã ÄiÅ¡Ã cosi -+04 Äà -+Å e 05 -+06 ÄÄÄÄÄÄÄÃÅ¡ÄÃÅ ÄÃÅ¡ -+07 ÄÄÄ ÄÄÄÄÃÅ¡ÄÃÅ ÄÃÅ¡EEEE -+ÄAs 08 -+09Äapka -+10ÄaSy se mÄnà -+ÄÃÅ¡E11 -+Äas12 -+ðÄÃÅ¡Eð13 -+ÅœÄÃÅ¡Eð14 -+ðÄÃÅ¡EÅœ15 -+ÅœÄÃÅ¡EÅœ16 -+ÄÃÅ¡Eð17 -+ÄÃÅ¡EÅœ18 -+19ðÄÃÅ¡e -+20ÅœÄÃÅ¡e -+EOF -+cat > cspatfile <<EOF -+ÄÃÅ¡E -+Äas -+EOF -+ -+for mode in F G E; do -+ -+test1="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode} -f cspatfile csinput \ -+ | LC_ALL=C sed 's/^.*([0-9][0-9]).*$/\1/'`)" -+if test "$test1" != "11 12 13 14 15 16 17 18"; then -+ echo "Test #1 ${mode} failed: $test1" -+ failures=1 -+fi -+ -+test2="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}i -f cspatfile csinput \ -+ | LC_ALL=C sed 's/^.*([0-9][0-9]).*$/\1/'`)" -+if test "$test2" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then -+ echo "Test #2 ${mode} failed: $test2" -+ failures=1 -+fi -+ -+test3="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}i -e 'ÄÃÅ¡E' -e 'Äas' csinput \ -+ | LC_ALL=C sed 's/^.*([0-9][0-9]).*$/\1/'`)" -+if test "$test3" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then -+ echo "Test #3 ${mode} failed: $test3" -+ failures=1 -+fi -+ -+test4="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}iw -f cspatfile csinput \ -+ | LC_ALL=C sed 's/^.*([0-9][0-9]).*$/\1/'`)" -+if test "$test4" != "01 02 08 13 17 19"; then -+ echo "Test #4 ${mode} failed: $test4" -+ failures=1 -+fi -+ -+done -+ -+# Test that -F --color=always prefers longer matches. -+test5="`echo 'Cosi tu ÄiÅ¡Ã...' \ -+ | LC_ALL=cs_CZ.UTF-8 ${GREP} --color=always -Fi -e 'ÄiÅ¡' -e 'ÄiÅ¡Ã'`" -+if echo "$test5" | LC_ALL=C ${GREP} -q 'Cosi tu .*[.*mÄiÅ¡Ã.*[.*m(.[K)?...'; then -+ : -+else -+ echo "Test #5 F failed: $test5" -+ failures=1 -+fi -+ -+for mode in G E; do -+ -+# Test that -{G,E} --color=always prefers earlier pattern matches. -+test6="`echo 'Cosi tu ÄiÅ¡Ã...' \ -+ | LC_ALL=cs_CZ.UTF-8 ${GREP} --color=always -${mode}i -e 'ÄiÅ¡' -e 'ÄiÅ¡Ã'`" -+if echo "$test6" | LC_ALL=C ${GREP} -q 'Cosi tu .*[.*mÄiÅ¡.*[.*m(.[K)?Ã...'; then -+ : -+else -+ echo "Test #6 ${mode} failed: $test6" -+ failures=1 -+fi -+ -+# Test that -{G,E} --color=always prefers earlier pattern matches. -+test7="`echo 'Cosi tu ÄiÅ¡Ã...' \ -+ | LC_ALL=cs_CZ.UTF-8 ${GREP} --color=always -${mode}i -e 'ÄiÅ¡Ã' -e 'ÄiÅ¡'`" -+if echo "$test7" | LC_ALL=C ${GREP} -q 'Cosi tu .*[.*mÄiÅ¡Ã.*[.*m(.[K)?...'; then -+ : -+else -+ echo "Test #7 ${mode} failed: $test7" -+ failures=1 -+fi -+ -+test8="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}i -e 'Ä.Å¡E' -e 'Ä[a-f]s' csinput \ -+ | LC_ALL=C sed 's/^.*([0-9][0-9]).*$/\1/'`)" -+if test "$test8" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then -+ echo "Test #8 ${mode} failed: $test8" -+ failures=1 -+fi -+ -+done -+ -+exit $failures -diff -urN grep-2.5.1a.orig/tests/Makefile.am grep-2.5.1a/tests/Makefile.am ---- grep-2.5.1a.orig/tests/Makefile.am 2001-03-07 09:11:27.000000000 +0500 -+++ grep-2.5.1a/tests/Makefile.am 2005-10-23 09:51:12.000000000 +0600 -@@ -3,7 +3,8 @@ - AWK=@AWK@ - - TESTS = warning.sh khadafy.sh spencer1.sh bre.sh ere.sh \ -- status.sh empty.sh options.sh backref.sh file.sh -+ status.sh empty.sh options.sh backref.sh file.sh \ -+ fmbtest.sh - EXTRA_DIST = $(TESTS) \ - khadafy.lines khadafy.regexp \ - spencer1.awk spencer1.tests \ -diff -urN grep-2.5.1a.orig/tests/Makefile.in grep-2.5.1a/tests/Makefile.in ---- grep-2.5.1a.orig/tests/Makefile.in 2002-03-26 21:09:36.000000000 +0500 -+++ grep-2.5.1a/tests/Makefile.in 2005-10-23 09:51:13.000000000 +0600 -@@ -97,7 +97,8 @@ - AWK = @AWK@ - - TESTS = warning.sh khadafy.sh spencer1.sh bre.sh ere.sh \ -- status.sh empty.sh options.sh backref.sh file.sh -+ status.sh empty.sh options.sh backref.sh file.sh \ -+ fmbtest.sh - - EXTRA_DIST = $(TESTS) \ - khadafy.lines khadafy.regexp \ diff --git a/src/patches/grub-0.90-append.patch b/src/patches/grub-0.90-append.patch deleted file mode 100644 index 88f79d0..0000000 --- a/src/patches/grub-0.90-append.patch +++ /dev/null @@ -1,111 +0,0 @@ ---- grub-0.90/stage2/stage2.c.append Thu Dec 20 08:20:48 2001 -+++ grub-0.90/stage2/stage2.c Thu Dec 20 17:01:20 2001 -@@ -500,7 +500,8 @@ - if (config_entries) - printf ("\ - Press enter to boot the selected OS, 'e' to edit the\n\ -- commands before booting, or 'c' for a command-line."); -+ commands before booting, 'a' to modify the kernel arguments\n\ -+ before booting, or 'c' for a command-line."); - else - printf ("\ - Press 'b' to boot, 'e' to edit the selected command in the\n\ -@@ -787,6 +788,98 @@ - enter_cmdline (heap, 0); - goto restart; - } -+ if (config_entries && c == 'a') -+ { -+ int new_num_entries = 0, i = 0, j; -+ int needs_padding, amount; -+ char *new_heap; -+ char * entries; -+ char * entry_copy; -+ char * append_line; -+ char * start; -+ -+ entry_copy = new_heap = heap; -+ cur_entry = get_entry (config_entries, first_entry + entryno, -+ 1); -+ -+ do -+ { -+ while ((*(new_heap++) = cur_entry[i++]) != 0); -+ new_num_entries++; -+ } -+ while (config_entries && cur_entry[i]); -+ -+ /* this only needs to be done if config_entries is non-NULL, -+ but it doesn't hurt to do it always */ -+ *(new_heap++) = 0; -+ -+ new_heap = heap + NEW_HEAPSIZE + 1; -+ -+ entries = entry_copy; -+ while (*entries) -+ { -+ if ((strstr(entries, "kernel") == entries) && -+ isspace(entries[6])) -+ break; -+ -+ while (*entries) entries++; -+ entries++; -+ } -+ -+ if (!*entries) -+ goto restart; -+ -+ start = entries + 6; -+ -+ /* skip the white space */ -+ while (*start && isspace(*start)) start++; -+ /* skip the kernel name */ -+ while (*start && !isspace(*start)) start++; -+ -+ /* skip the white space */ -+ needs_padding = (!*start || !isspace(*start)); -+ while (*start && isspace(*start)) start++; -+ -+ append_line = new_heap; -+ grub_strcpy(append_line, start); -+ -+ cls(); -+ print_cmdline_message (CMDLINE_EDIT_MODE); -+ -+ if (get_cmdline(PACKAGE " append> ", -+ append_line, NEW_HEAPSIZE + 1, -+ 0, 1)) -+ goto restart; -+ -+ /* have new args; append_line points to the -+ new args and start points to the old -+ args */ -+ -+ i = grub_strlen(start); -+ j = grub_strlen(append_line); -+ -+ if (i > (j + needs_padding)) -+ amount = i; -+ else -+ amount = j + needs_padding; -+ -+ /* align rest of commands properly */ -+ memmove (start + j + needs_padding, start + i, -+ ((int) append_line) - ((int) start) - (amount)); -+ -+ if (needs_padding) -+ *start = ' '; -+ -+ /* copy command to correct area */ -+ memmove (start + needs_padding, append_line, j); -+ -+ /* set up this entry to boot */ -+ config_entries = NULL; -+ cur_entry = entry_copy; -+ heap = new_heap; -+ -+ break; -+ } - #ifdef GRUB_UTIL - if (c == 'q') - { diff --git a/src/patches/grub-0.90-symlinkmenulst.patch b/src/patches/grub-0.90-symlinkmenulst.patch deleted file mode 100644 index 553d15a..0000000 --- a/src/patches/grub-0.90-symlinkmenulst.patch +++ /dev/null @@ -1,16 +0,0 @@ -Only in grub: ChangeLog~ -diff -ur grub-0.90/util/grub-install.in grub/util/grub-install.in ---- grub-0.90/util/grub-install.in Wed Sep 5 15:50:06 2001 -+++ grub/util/grub-install.in Wed Sep 5 15:50:24 2001 -@@ -320,6 +320,10 @@ - exit 1 - fi - -+if ! test -e ${grubdir}/grub.conf ; then -+ test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf -+fi -+ - # Create a safe temporary file. - test -x /bin/mktemp && log_file=`/bin/mktemp /tmp/grub-install.log.XXXXXX` - -Only in grub/util: grub-install.in.orig diff --git a/src/patches/grub-0.91-splashimagehelp.patch b/src/patches/grub-0.91-splashimagehelp.patch deleted file mode 100644 index cc78073..0000000 --- a/src/patches/grub-0.91-splashimagehelp.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -ur grub-0.91/docs/grub.texi grub/docs/grub.texi ---- grub-0.91/docs/grub.texi Mon Jan 21 22:57:46 2002 -+++ grub/docs/grub.texi Mon Jan 21 22:57:51 2002 -@@ -1891,6 +1891,7 @@ - * rarp:: Initialize a network device via RARP - * serial:: Set up a serial device - * setkey:: Configure the key map -+* splashimage:: Use a splash image - * terminal:: Choose a terminal - * tftpserver:: Specify a TFTP server - * unhide:: Unhide a partition -@@ -2260,6 +2261,16 @@ - @end deffn - - -+@node splashimage -+@subsection splashimage -+ -+@deffn Command splashimage file -+Select an image to use as the background image. This should be -+specified using normal GRUB device naming syntax. The format of the -+file is a gzipped xpm which is 640x480 with a 14 color palette. -+@end deffn -+ -+ - @node terminal - @subsection terminal - diff --git a/src/patches/grub-0.93-configfile.patch b/src/patches/grub-0.93-configfile.patch deleted file mode 100644 index 9cb1182..0000000 --- a/src/patches/grub-0.93-configfile.patch +++ /dev/null @@ -1,75 +0,0 @@ ---- grub-0.93/stage2/asm.S.config 2002-12-02 18:18:56.000000000 -0500 -+++ grub-0.93/stage2/asm.S 2002-12-28 22:01:24.000000000 -0500 -@@ -97,7 +97,7 @@ - .string VERSION - VARIABLE(config_file) - #ifndef STAGE1_5 -- .string "/boot/grub/menu.lst" -+ .string "/boot/grub/grub.conf" - #else /* STAGE1_5 */ - .long 0xffffffff - .string "/boot/grub/stage2" ---- grub-0.93/stage2/builtins.c.config 2002-12-03 23:41:57.000000000 -0500 -+++ grub-0.93/stage2/builtins.c 2002-12-28 22:01:24.000000000 -0500 -@@ -3838,7 +3838,7 @@ - - /* The prefix was determined. */ - grub_sprintf (stage2, "%s%s", prefix, "/stage2"); -- grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst"); -+ grub_sprintf (config_filename, "%s%s", prefix, "/grub.conf"); - *real_config_filename = 0; - - /* Check if stage2 exists. */ ---- grub-0.93/grub/asmstub.c.config 2002-12-02 18:20:45.000000000 -0500 -+++ grub-0.93/grub/asmstub.c 2002-12-28 22:01:24.000000000 -0500 -@@ -71,7 +71,7 @@ - unsigned long boot_drive = 0; - int saved_entryno = 0; - char version_string[] = VERSION; --char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */ -+char config_file[128] = "/boot/grub/grub.conf"; /* FIXME: arbitrary */ - unsigned long linux_text_len = 0; - char *linux_data_tmp_addr = 0; - char *linux_data_real_addr = 0; ---- grub-0.93/docs/grub.8.config 2002-12-07 22:17:59.000000000 -0500 -+++ grub-0.93/docs/grub.8 2002-12-28 22:01:24.000000000 -0500 -@@ -15,7 +15,7 @@ - specify stage2 boot_drive [default=0x0] - .TP - \fB--config-file\fR=\fIFILE\fR --specify stage2 config_file [default=/boot/grub/menu.lst] -+specify stage2 config_file [default=/boot/grub/grub.conf] - .TP - \fB--device-map\fR=\fIFILE\fR - use the device map file FILE ---- grub-0.93/docs/grub.texi.config 2002-12-02 17:35:28.000000000 -0500 -+++ grub-0.93/docs/grub.texi 2002-12-28 22:01:24.000000000 -0500 -@@ -989,7 +989,7 @@ - keys) that will do everything to boot an OS. - - To enable the menu, you need a configuration file, --@file{menu.lst} under the boot directory. We'll analyze an example -+@file{grub.conf} under the boot directory. We'll analyze an example - file. - - The file first contains some general settings, the menu interface -@@ -1596,8 +1596,8 @@ - - An absolute file name resembles a Unix absolute file name, using - @samp{/} for the directory separator (not @samp{} as in DOS). One --example is @samp{(hd0,0)/boot/grub/menu.lst}. This means the file --@file{/boot/grub/menu.lst} in the first partition of the first hard -+example is @samp{(hd0,0)/boot/grub/grub.conf}. This means the file -+@file{/boot/grub/grub.conf} in the first partition of the first hard - disk. If you omit the device name in an absolute file name, GRUB uses - GRUB's @dfn{root device} implicitly. So if you set the root device to, - say, @samp{(hd1,0)} by the command @command{root} (@pxref{root}), then -@@ -3249,7 +3249,7 @@ - - @item --config-file=@var{file} - Read the configuration file @var{file} instead of --@file{/boot/grub/menu.lst}. The format is the same as the normal GRUB -+@file{/boot/grub/grub.conf}. The format is the same as the normal GRUB - syntax. See @ref{Filesystem}, for more information. - - @item --boot-drive=@var{drive} diff --git a/src/patches/grub-0.93-endedit.patch b/src/patches/grub-0.93-endedit.patch deleted file mode 100644 index eb0463c..0000000 --- a/src/patches/grub-0.93-endedit.patch +++ /dev/null @@ -1,77 +0,0 @@ -Index: stage2/cmdline.c -=================================================================== -RCS file: /cvsroot/grub/grub/stage2/cmdline.c,v -retrieving revision 1.27 -diff -u -r1.27 cmdline.c ---- stage2/cmdline.c 3 Dec 2002 00:02:53 -0000 1.27 -+++ stage2/cmdline.c 6 Jan 2003 05:33:33 -0000 -@@ -48,12 +48,17 @@ - - /* Print a helpful message for the command-line interface. */ - void --print_cmdline_message (int forever) -+print_cmdline_message (int type) - { - printf (" [ Minimal BASH-like line editing is supported. For the first word, TAB\n" - " lists possible command completions. Anywhere else TAB lists the possible\n" -- " completions of a device/filename.%s ]\n", -- (forever ? "" : " ESC at any time exits.")); -+ " completions of a device/filename."); -+ if (type == CMDLINE_NORMAL_MODE) -+ printf(" ESC at any time exits."); -+ if (type == CMDLINE_EDIT_MODE) -+ printf(" ESC at any time cancels. ENTER \n" -+ " at any time accepts your changes."); -+ printf("]\n"); - } - - /* Find the builtin whose command name is COMMAND and return the -@@ -128,7 +133,7 @@ - print_network_configuration (); - grub_putchar ('\n'); - #endif -- print_cmdline_message (forever); -+ print_cmdline_message (forever ? CMDLINE_FOREVER_MODE : CMDLINE_NORMAL_MODE); - - while (1) - { -Index: stage2/shared.h -=================================================================== -RCS file: /cvsroot/grub/grub/stage2/shared.h,v -retrieving revision 1.90 -diff -u -r1.90 shared.h ---- stage2/shared.h 3 Dec 2002 00:02:53 -0000 1.90 -+++ stage2/shared.h 6 Jan 2003 05:33:33 -0000 -@@ -843,9 +843,15 @@ - void init_config (void); - char *skip_to (int after_equal, char *cmdline); - struct builtin *find_command (char *command); --void print_cmdline_message (int forever); - void enter_cmdline (char *heap, int forever); - int run_script (char *script, char *heap); -+ -+/* the flags for the cmdline message */ -+#define CMDLINE_FOREVER_MODE 0x0 -+#define CMDLINE_NORMAL_MODE 0x1 -+#define CMDLINE_EDIT_MODE 0x2 -+ -+void print_cmdline_message (int type); - #endif - - /* C library replacement functions with identical semantics. */ -Index: stage2/stage2.c -=================================================================== -RCS file: /cvsroot/grub/grub/stage2/stage2.c,v -retrieving revision 1.42 -diff -u -r1.42 stage2.c ---- stage2/stage2.c 4 Dec 2002 00:55:45 -0000 1.42 -+++ stage2/stage2.c 6 Jan 2003 05:33:33 -0000 -@@ -655,7 +655,7 @@ - else - { - cls (); -- print_cmdline_message (0); -+ print_cmdline_message (CMDLINE_EDIT_MODE); - - new_heap = heap + NEW_HEAPSIZE + 1; - diff --git a/src/patches/grub-0.93-graphics-bootterm.patch b/src/patches/grub-0.93-graphics-bootterm.patch deleted file mode 100644 index 1e2be9a..0000000 --- a/src/patches/grub-0.93-graphics-bootterm.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- grub-0.93/stage2/builtins.c.bootterm 2002-12-29 02:01:50.000000000 -0500 -+++ grub-0.93/stage2/builtins.c 2002-12-29 02:01:07.000000000 -0500 -@@ -233,12 +233,22 @@ - static int - boot_func (char *arg, int flags) - { -+ struct term_entry *prev_term = current_term; - /* Clear the int15 handler if we can boot the kernel successfully. - This assumes that the boot code never fails only if KERNEL_TYPE is - not KERNEL_TYPE_NONE. Is this assumption is bad? */ - if (kernel_type != KERNEL_TYPE_NONE) - unset_int15_handler (); - -+ /* if our terminal needed initialization, we should shut it down -+ * before booting the kernel, but we want to save what it was so -+ * we can come back if needed */ -+ if (current_term->shutdown) -+ { -+ (*current_term->shutdown)(); -+ current_term = term_table; /* assumption: console is first */ -+ } -+ - #ifdef SUPPORT_NETBOOT - /* Shut down the networking. */ - cleanup_net (); -@@ -302,6 +312,13 @@ - return 1; - } - -+ /* if we get back here, we should go back to what our term was before */ -+ current_term = prev_term; -+ if (current_term->startup) -+ /* if our terminal fails to initialize, fall back to console since -+ * it should always work */ -+ if ((*current_term->startup)() == 0) -+ current_term = term_table; /* we know that console is first */ - return 0; - } - diff --git a/src/patches/grub-0.93-special-device-names.patch b/src/patches/grub-0.93-special-device-names.patch deleted file mode 100644 index 894f3e8..0000000 --- a/src/patches/grub-0.93-special-device-names.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- grub-0.93/lib/device.c.raid 2002-05-20 05:53:46.000000000 -0400 -+++ grub-0.93/lib/device.c 2002-12-28 23:24:10.000000000 -0500 -@@ -689,7 +689,14 @@ - if (strcmp (dev + strlen(dev) - 5, "/disc") == 0) - strcpy (dev + strlen(dev) - 5, "/part"); - } -- sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1); -+ -+ sprintf (dev + strlen(dev), "%s%d", -+ /* Compaq smart and others */ -+ (strncmp(dev, "/dev/ida/", 9) == 0 || -+ strncmp(dev, "/dev/ataraid/", 13) == 0 || -+ strncmp(dev, "/dev/cciss/", 11) == 0 || -+ strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "", -+ ((partition >> 16) & 0xFF) + 1); - - /* Open the partition. */ - fd = open (dev, O_RDWR); diff --git a/src/patches/grub-0.94-i2o.patch b/src/patches/grub-0.94-i2o.patch deleted file mode 100644 index 2af846c..0000000 --- a/src/patches/grub-0.94-i2o.patch +++ /dev/null @@ -1,45 +0,0 @@ -Only in grub-0.94/docs: grub.info -Only in grub-0.94/docs: multiboot.info -diff -ur grub-0.94/lib/device.c grub-0.94.new/lib/device.c ---- grub-0.94/lib/device.c 2004-05-07 04:50:36.375238696 +0200 -+++ grub-0.94.new/lib/device.c 2004-05-07 04:48:57.611253104 +0200 -@@ -419,6 +419,12 @@ - { - sprintf (name, "/dev/rd/c%dd%d", controller, drive); - } -+ -+static void -+get_i2o_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/i2o/hd%c", unit + 'a'); -+} - #endif - - /* Check if DEVICE can be read. If an error occurs, return zero, -@@ -789,6 +795,26 @@ - } - } - } -+ -+ /* I2O disks. */ -+ for (i = 0; i < 8; i++) -+ { -+ char name[16]; -+ -+ get_i2o_disk_name (name, i); -+ if (check_device (name)) -+ { -+ (*map)[num_hd + 0x80] = strdup (name); -+ assert ((*map)[num_hd + 0x80]); -+ -+ /* If the device map file is opened, write the map. */ -+ if (fp) -+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); -+ -+ num_hd++; -+ } -+ } -+ - #endif /* __linux__ */ - - /* OK, close the device map file if opened. */ diff --git a/src/patches/grub-0.94-installcopyonly.patch b/src/patches/grub-0.94-installcopyonly.patch deleted file mode 100644 index a2e38fb..0000000 --- a/src/patches/grub-0.94-installcopyonly.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- grub-0.94/util/grub-install.in.copyonly 2004-02-02 16:33:29.172127985 -0500 -+++ grub-0.94/util/grub-install.in 2004-02-02 16:34:26.027454320 -0500 -@@ -40,6 +40,7 @@ - force_lba= - recheck=no - debug=no -+justcopy=no - - # look for secure tempfile creation wrappers on this platform - if test -x /bin/tempfile; then -@@ -221,6 +222,17 @@ - echo "$tmp_fname" - } - -+copy_images() { -+ # Copy the GRUB images to the GRUB directory. -+ for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -+ rm -f $file || exit 1 -+ done -+ for file in \ -+ ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do -+ cp -f $file ${grubdir} || exit 1 -+ done -+} -+ - # Check the arguments. - for option in "$@"; do - case "$option" in -@@ -240,6 +252,8 @@ - force_lba="--force-lba" ;; - --recheck) - recheck=yes ;; -+ --just-copy) -+ justcopy=yes ;; - # This is an undocumented feature... - --debug) - debug=yes ;; -@@ -258,12 +272,6 @@ - esac - done - --if test "x$install_device" = x; then -- echo "install_device not specified." 1>&2 -- usage -- exit 1 --fi -- - # If the debugging feature is enabled, print commands. - if test $debug = yes; then - set -x -@@ -286,6 +294,18 @@ - grubdir=${bootdir}/grub - device_map=${grubdir}/device.map - -+# if they just want the images copied, copy the images and then exit -+if test $justcopy = yes; then -+ copy_images -+ exit 0 -+fi -+ -+if test "x$install_device" = x; then -+ echo "install_device not specified." 1>&2 -+ usage -+ exit 1 -+fi -+ - # Check if GRUB is installed. - # This is necessary, because the user can specify "grub --read-only". - set $grub_shell dummy -@@ -317,14 +337,7 @@ - test -d "$bootdir" || mkdir "$bootdir" || exit 1 - test -d "$grubdir" || mkdir "$grubdir" || exit 1 - --# Copy the GRUB images to the GRUB directory. --for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -- rm -f $file || exit 1 --done --for file in \ -- ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do -- cp -f $file ${grubdir} || exit 1 --done -+copy_images - - # If --recheck is specified, remove the device map, if present. - if test $recheck = yes; then diff --git a/src/patches/grub-0.95-graphics.patch b/src/patches/grub-0.95-graphics.patch deleted file mode 100644 index 0c62b77..0000000 --- a/src/patches/grub-0.95-graphics.patch +++ /dev/null @@ -1,1283 +0,0 @@ ---- grub-0.95/stage2/asm.S.graphics 2004-06-18 17:35:51.932054040 -0400 -+++ grub-0.95/stage2/asm.S 2004-06-18 17:35:52.473971656 -0400 -@@ -2215,6 +2215,156 @@ - pop %ebx - pop %ebp - ret -+ -+/* graphics mode functions */ -+#ifdef SUPPORT_GRAPHICS -+VARIABLE(cursorX) -+.word 0 -+VARIABLE(cursorY) -+.word 0 -+VARIABLE(cursorCount) -+.word 0 -+VARIABLE(cursorBuf) -+.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -+ -+ -+/* -+ * int set_videomode(mode) -+ * BIOS call "INT 10H Function 0h" to set video mode -+ * Call with %ah = 0x0 -+ * %al = video mode -+ * Returns old videomode. -+ */ -+ENTRY(set_videomode) -+ push %ebp -+ push %ebx -+ push %ecx -+ -+ movb 0x10(%esp), %cl -+ -+ call EXT_C(prot_to_real) -+ .code16 -+ -+ xorw %bx, %bx -+ movb $0xf, %ah -+ int $0x10 /* Get Current Video mode */ -+ movb %al, %ch -+ xorb %ah, %ah -+ movb %cl, %al -+ int $0x10 /* Set Video mode */ -+ -+ DATA32 call EXT_C(real_to_prot) -+ .code32 -+ -+ xorb %ah, %ah -+ movb %ch, %al -+ -+ pop %ecx -+ pop %ebx -+ pop %ebp -+ ret -+ -+ -+/* -+ * unsigned char * graphics_get_font() -+ * BIOS call "INT 10H Function 11h" to set font -+ * Call with %ah = 0x11 -+ */ -+ENTRY(graphics_get_font) -+ push %ebp -+ push %ebx -+ push %ecx -+ push %edx -+ -+ call EXT_C(prot_to_real) -+ .code16 -+ -+ movw $0x1130, %ax -+ movb $6, %bh /* font 8x16 */ -+ int $0x10 -+ movw %bp, %dx -+ movw %es, %cx -+ -+ DATA32 call EXT_C(real_to_prot) -+ .code32 -+ -+ xorl %eax, %eax -+ movw %cx, %ax -+ shll $4, %eax -+ movw %dx, %ax -+ -+ pop %edx -+ pop %ecx -+ pop %ebx -+ pop %ebp -+ ret -+ -+ -+ -+/* -+ * graphics_set_palette(index, red, green, blue) -+ * BIOS call "INT 10H Function 10h" to set individual dac register -+ * Call with %ah = 0x10 -+ * %bx = register number -+ * %ch = new value for green (0-63) -+ * %cl = new value for blue (0-63) -+ * %dh = new value for red (0-63) -+ */ -+ -+ENTRY(graphics_set_palette) -+ push %ebp -+ push %eax -+ push %ebx -+ push %ecx -+ push %edx -+ -+ movw $0x3c8, %bx /* address write mode register */ -+ -+ /* wait vertical retrace */ -+ -+ movw $0x3da, %dx -+l1b: inb %dx, %al /* wait vertical active display */ -+ test $8, %al -+ jnz l1b -+ -+l2b: inb %dx, %al /* wait vertical retrace */ -+ test $8, %al -+ jnz l2b -+ -+ mov %bx, %dx -+ movb 0x18(%esp), %al /* index */ -+ outb %al, %dx -+ inc %dx -+ -+ movb 0x1c(%esp), %al /* red */ -+ outb %al, %dx -+ -+ movb 0x20(%esp), %al /* green */ -+ outb %al, %dx -+ -+ movb 0x24(%esp), %al /* blue */ -+ outb %al, %dx -+ -+ movw 0x18(%esp), %bx -+ -+ call EXT_C(prot_to_real) -+ .code16 -+ -+ movb %bl, %bh -+ movw $0x1000, %ax -+ int $0x10 -+ -+ DATA32 call EXT_C(real_to_prot) -+ .code32 -+ -+ pop %edx -+ pop %ecx -+ pop %ebx -+ pop %eax -+ pop %ebp -+ ret -+ -+#endif /* SUPPORT_GRAPHICS */ - - /* - * getrtsecs() ---- grub-0.95/stage2/stage2.c.graphics 2004-06-18 17:35:52.314995824 -0400 -+++ grub-0.95/stage2/stage2.c 2004-06-18 17:35:52.494968464 -0400 -@@ -233,6 +233,7 @@ - { - int c, time1, time2 = -1, first_entry = 0; - char *cur_entry = 0; -+ struct term_entry *prev_term = NULL; - - /* - * Main loop for menu UI. -@@ -807,6 +808,15 @@ - - cls (); - setcursor (1); -+ /* if our terminal needed initialization, we should shut it down -+ * before booting the kernel, but we want to save what it was so -+ * we can come back if needed */ -+ prev_term = current_term; -+ if (current_term->shutdown) -+ { -+ (*current_term->shutdown)(); -+ current_term = term_table; /* assumption: console is first */ -+ } - - while (1) - { -@@ -838,6 +848,13 @@ - break; - } - -+ /* if we get back here, we should go back to what our term was before */ -+ current_term = prev_term; -+ if (current_term->startup) -+ /* if our terminal fails to initialize, fall back to console since -+ * it should always work */ -+ if ((*current_term->startup)() == 0) -+ current_term = term_table; /* we know that console is first */ - show_menu = 1; - goto restart; - } -@@ -1082,6 +1099,10 @@ - while (is_preset); - } - -+ /* go ahead and make sure the terminal is setup */ -+ if (current_term->startup) -+ (*current_term->startup)(); -+ - if (! num_entries) - { - /* If no acceptable config file, goto command-line, starting ---- grub-0.95/stage2/builtins.c.graphics 2004-06-18 17:35:52.370987312 -0400 -+++ grub-0.95/stage2/builtins.c 2004-06-18 17:35:52.482970288 -0400 -@@ -858,6 +858,138 @@ - }; - #endif /* SUPPORT_NETBOOT */ - -+static int terminal_func (char *arg, int flags); -+ -+#ifdef SUPPORT_GRAPHICS -+ -+static int splashimage_func(char *arg, int flags) { -+ char splashimage[64]; -+ int i; -+ -+ /* filename can only be 64 characters due to our buffer size */ -+ if (strlen(arg) > 63) -+ return 1; -+ if (flags == BUILTIN_CMDLINE) { -+ if (!grub_open(arg)) -+ return 1; -+ grub_close(); -+ } -+ -+ strcpy(splashimage, arg); -+ -+ /* get rid of TERM_NEED_INIT from the graphics terminal. */ -+ for (i = 0; term_table[i].name; i++) { -+ if (grub_strcmp (term_table[i].name, "graphics") == 0) { -+ term_table[i].flags &= ~TERM_NEED_INIT; -+ break; -+ } -+ } -+ -+ graphics_set_splash(splashimage); -+ -+ if (flags == BUILTIN_CMDLINE && graphics_inited) { -+ graphics_end(); -+ graphics_init(); -+ graphics_cls(); -+ } -+ -+ /* FIXME: should we be explicitly switching the terminal as a -+ * side effect here? */ -+ terminal_func("graphics", flags); -+ -+ return 0; -+} -+ -+static struct builtin builtin_splashimage = -+{ -+ "splashimage", -+ splashimage_func, -+ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, -+ "splashimage FILE", -+ "Load FILE as the background image when in graphics mode." -+}; -+ -+ -+/* foreground */ -+static int -+foreground_func(char *arg, int flags) -+{ -+ if (grub_strlen(arg) == 6) { -+ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; -+ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; -+ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; -+ -+ foreground = (r << 16) | (g << 8) | b; -+ if (graphics_inited) -+ graphics_set_palette(15, r, g, b); -+ -+ return (0); -+ } -+ -+ return (1); -+} -+ -+static struct builtin builtin_foreground = -+{ -+ "foreground", -+ foreground_func, -+ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, -+ "foreground RRGGBB", -+ "Sets the foreground color when in graphics mode." -+ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." -+}; -+ -+ -+/* background */ -+static int -+background_func(char *arg, int flags) -+{ -+ if (grub_strlen(arg) == 6) { -+ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; -+ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; -+ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; -+ -+ background = (r << 16) | (g << 8) | b; -+ if (graphics_inited) -+ graphics_set_palette(0, r, g, b); -+ return (0); -+ } -+ -+ return (1); -+} -+ -+static struct builtin builtin_background = -+{ -+ "background", -+ background_func, -+ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, -+ "background RRGGBB", -+ "Sets the background color when in graphics mode." -+ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." -+}; -+ -+#endif /* SUPPORT_GRAPHICS */ -+ -+ -+/* clear */ -+static int -+clear_func() -+{ -+ if (current_term->cls) -+ current_term->cls(); -+ -+ return 0; -+} -+ -+static struct builtin builtin_clear = -+{ -+ "clear", -+ clear_func, -+ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, -+ "clear", -+ "Clear the screen" -+}; -+ - - /* displayapm */ - static int -@@ -4090,7 +4222,7 @@ - }; - - --#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) -+#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) - /* terminal */ - static int - terminal_func (char *arg, int flags) -@@ -4249,17 +4381,21 @@ - end: - current_term = term_table + default_term; - current_term->flags = term_flags; -- -+ - if (lines) - max_lines = lines; - else -- /* 24 would be a good default value. */ -- max_lines = 24; -- -+ max_lines = current_term->max_lines; -+ - /* If the interface is currently the command-line, - restart it to repaint the screen. */ -- if (current_term != prev_term && (flags & BUILTIN_CMDLINE)) -+ if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){ -+ if (prev_term->shutdown) -+ prev_term->shutdown(); -+ if (current_term->startup) -+ current_term->startup(); - grub_longjmp (restart_cmdline_env, 0); -+ } - - return 0; - } -@@ -4269,7 +4405,7 @@ - "terminal", - terminal_func, - BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, -- "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]", -+ "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]", - "Select a terminal. When multiple terminals are specified, wait until" - " you push any key to continue. If both console and serial are specified," - " the terminal to which you input a key first will be selected. If no" -@@ -4281,7 +4417,7 @@ - " seconds. The option --lines specifies the maximum number of lines." - " The option --silent is used to suppress messages." - }; --#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ -+#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ - - - #ifdef SUPPORT_SERIAL -@@ -4809,6 +4945,9 @@ - /* The table of builtin commands. Sorted in dictionary order. */ - struct builtin *builtin_table[] = - { -+#ifdef SUPPORT_GRAPHICS -+ &builtin_background, -+#endif - &builtin_blocklist, - &builtin_boot, - #ifdef SUPPORT_NETBOOT -@@ -4816,6 +4955,7 @@ - #endif /* SUPPORT_NETBOOT */ - &builtin_cat, - &builtin_chainloader, -+ &builtin_clear, - &builtin_cmp, - &builtin_color, - &builtin_configfile, -@@ -4835,6 +4975,9 @@ - &builtin_embed, - &builtin_fallback, - &builtin_find, -+#ifdef SUPPORT_GRAPHICS -+ &builtin_foreground, -+#endif - &builtin_fstest, - &builtin_geometry, - &builtin_halt, -@@ -4878,9 +5021,12 @@ - #endif /* SUPPORT_SERIAL */ - &builtin_setkey, - &builtin_setup, --#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) -+#ifdef SUPPORT_GRAPHICS -+ &builtin_splashimage, -+#endif /* SUPPORT_GRAPHICS */ -+#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) - &builtin_terminal, --#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ -+#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ - #ifdef SUPPORT_SERIAL - &builtin_terminfo, - #endif /* SUPPORT_SERIAL */ ---- /dev/null 2004-02-23 16:02:56.000000000 -0500 -+++ grub-0.95/stage2/graphics.c 2004-06-18 17:35:52.488969376 -0400 -@@ -0,0 +1,552 @@ -+/* graphics.c - graphics mode support for GRUB */ -+/* Implemented as a terminal type by Jeremy Katz katzj@redhat.com based -+ * on a patch by Paulo César Pereira de Andrade pcpa@conectiva.com.br -+ */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2001,2002 Red Hat, Inc. -+ * Portions copyright (C) 2000 Conectiva, Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+ -+ -+#ifdef SUPPORT_GRAPHICS -+ -+#include <term.h> -+#include <shared.h> -+#include <graphics.h> -+ -+int saved_videomode; -+unsigned char *font8x16; -+ -+int graphics_inited = 0; -+static char splashimage[64]; -+ -+#define VSHADOW VSHADOW1 -+unsigned char VSHADOW1[38400]; -+unsigned char VSHADOW2[38400]; -+unsigned char VSHADOW4[38400]; -+unsigned char VSHADOW8[38400]; -+ -+/* constants to define the viewable area */ -+const int x0 = 0; -+const int x1 = 80; -+const int y0 = 0; -+const int y1 = 30; -+ -+/* text buffer has to be kept around so that we can write things as we -+ * scroll and the like */ -+unsigned short text[80 * 30]; -+ -+/* why do these have to be kept here? */ -+int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0; -+ -+/* current position */ -+static int fontx = 0; -+static int fonty = 0; -+ -+/* global state so that we don't try to recursively scroll or cursor */ -+static int no_scroll = 0; -+ -+/* color state */ -+static int graphics_standard_color = A_NORMAL; -+static int graphics_normal_color = A_NORMAL; -+static int graphics_highlight_color = A_REVERSE; -+static int graphics_current_color = A_NORMAL; -+static color_state graphics_color_state = COLOR_STATE_STANDARD; -+ -+ -+/* graphics local functions */ -+static void graphics_setxy(int col, int row); -+static void graphics_scroll(); -+ -+/* FIXME: where do these really belong? */ -+static inline void outb(unsigned short port, unsigned char val) -+{ -+ __asm __volatile ("outb %0,%1"::"a" (val), "d" (port)); -+} -+ -+static void MapMask(int value) { -+ outb(0x3c4, 2); -+ outb(0x3c5, value); -+} -+ -+/* bit mask register */ -+static void BitMask(int value) { -+ outb(0x3ce, 8); -+ outb(0x3cf, value); -+} -+ -+ -+ -+/* Set the splash image */ -+void graphics_set_splash(char *splashfile) { -+ grub_strcpy(splashimage, splashfile); -+} -+ -+/* Get the current splash image */ -+char *graphics_get_splash(void) { -+ return splashimage; -+} -+ -+/* Initialize a vga16 graphics display with the palette based off of -+ * the image in splashimage. If the image doesn't exist, leave graphics -+ * mode. */ -+int graphics_init() -+{ -+ if (!graphics_inited) { -+ saved_videomode = set_videomode(0x12); -+ } -+ -+ if (!read_image(splashimage)) { -+ set_videomode(saved_videomode); -+ grub_printf("failed to read image\n"); -+ return 0; -+ } -+ -+ font8x16 = (unsigned char*)graphics_get_font(); -+ -+ graphics_inited = 1; -+ -+ /* make sure that the highlight color is set correctly */ -+ graphics_highlight_color = ((graphics_normal_color >> 4) | -+ ((graphics_normal_color & 0xf) << 4)); -+ -+ return 1; -+} -+ -+/* Leave graphics mode */ -+void graphics_end(void) -+{ -+ if (graphics_inited) { -+ set_videomode(saved_videomode); -+ graphics_inited = 0; -+ } -+} -+ -+/* Print ch on the screen. Handle any needed scrolling or the like */ -+void graphics_putchar(int ch) { -+ ch &= 0xff; -+ -+ graphics_cursor(0); -+ -+ if (ch == '\n') { -+ if (fonty + 1 < y1) -+ graphics_setxy(fontx, fonty + 1); -+ else -+ graphics_scroll(); -+ graphics_cursor(1); -+ return; -+ } else if (ch == '\r') { -+ graphics_setxy(x0, fonty); -+ graphics_cursor(1); -+ return; -+ } -+ -+ graphics_cursor(0); -+ -+ text[fonty * 80 + fontx] = ch; -+ text[fonty * 80 + fontx] &= 0x00ff; -+ if (graphics_current_color & 0xf0) -+ text[fonty * 80 + fontx] |= 0x100; -+ -+ graphics_cursor(0); -+ -+ if ((fontx + 1) >= x1) { -+ graphics_setxy(x0, fonty); -+ if (fonty + 1 < y1) -+ graphics_setxy(x0, fonty + 1); -+ else -+ graphics_scroll(); -+ } else { -+ graphics_setxy(fontx + 1, fonty); -+ } -+ -+ graphics_cursor(1); -+} -+ -+/* get the current location of the cursor */ -+int graphics_getxy(void) { -+ return (fontx << 8) | fonty; -+} -+ -+void graphics_gotoxy(int x, int y) { -+ graphics_cursor(0); -+ -+ graphics_setxy(x, y); -+ -+ graphics_cursor(1); -+} -+ -+void graphics_cls(void) { -+ int i; -+ unsigned char *mem, *s1, *s2, *s4, *s8; -+ -+ graphics_cursor(0); -+ graphics_gotoxy(x0, y0); -+ -+ mem = (unsigned char*)VIDEOMEM; -+ s1 = (unsigned char*)VSHADOW1; -+ s2 = (unsigned char*)VSHADOW2; -+ s4 = (unsigned char*)VSHADOW4; -+ s8 = (unsigned char*)VSHADOW8; -+ -+ for (i = 0; i < 80 * 30; i++) -+ text[i] = ' '; -+ graphics_cursor(1); -+ -+ BitMask(0xff); -+ -+ /* plano 1 */ -+ MapMask(1); -+ grub_memcpy(mem, s1, 38400); -+ -+ /* plano 2 */ -+ MapMask(2); -+ grub_memcpy(mem, s2, 38400); -+ -+ /* plano 3 */ -+ MapMask(4); -+ grub_memcpy(mem, s4, 38400); -+ -+ /* plano 4 */ -+ MapMask(8); -+ grub_memcpy(mem, s8, 38400); -+ -+ MapMask(15); -+ -+} -+ -+void graphics_setcolorstate (color_state state) { -+ switch (state) { -+ case COLOR_STATE_STANDARD: -+ graphics_current_color = graphics_standard_color; -+ break; -+ case COLOR_STATE_NORMAL: -+ graphics_current_color = graphics_normal_color; -+ break; -+ case COLOR_STATE_HIGHLIGHT: -+ graphics_current_color = graphics_highlight_color; -+ break; -+ default: -+ graphics_current_color = graphics_standard_color; -+ break; -+ } -+ -+ graphics_color_state = state; -+} -+ -+void graphics_setcolor (int normal_color, int highlight_color) { -+ graphics_normal_color = normal_color; -+ graphics_highlight_color = highlight_color; -+ -+ graphics_setcolorstate (graphics_color_state); -+} -+ -+void graphics_setcursor (int on) { -+ /* FIXME: we don't have a cursor in graphics */ -+ return; -+} -+ -+/* Read in the splashscreen image and set the palette up appropriately. -+ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and -+ * 640x480. */ -+int read_image(char *s) -+{ -+ char buf[32], pal[16]; -+ unsigned char c, base, mask, *s1, *s2, *s4, *s8; -+ unsigned i, len, idx, colors, x, y, width, height; -+ -+ if (!grub_open(s)) -+ return 0; -+ -+ /* read header */ -+ if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) { -+ grub_close(); -+ return 0; -+ } -+ -+ /* parse info */ -+ while (grub_read(&c, 1)) { -+ if (c == '"') -+ break; -+ } -+ -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ i = 0; -+ width = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ width = width * 10 + c - '0'; -+ else -+ break; -+ } -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ height = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ height = height * 10 + c - '0'; -+ else -+ break; -+ } -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ colors = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ colors = colors * 10 + c - '0'; -+ else -+ break; -+ } -+ -+ base = 0; -+ while (grub_read(&c, 1) && c != '"') -+ ; -+ -+ /* palette */ -+ for (i = 0, idx = 1; i < colors; i++) { -+ len = 0; -+ -+ while (grub_read(&c, 1) && c != '"') -+ ; -+ grub_read(&c, 1); /* char */ -+ base = c; -+ grub_read(buf, 4); /* \t c # */ -+ -+ while (grub_read(&c, 1) && c != '"') { -+ if (len < sizeof(buf)) -+ buf[len++] = c; -+ } -+ -+ if (len == 6 && idx < 15) { -+ int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2; -+ int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2; -+ int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2; -+ -+ pal[idx] = base; -+ graphics_set_palette(idx, r, g, b); -+ ++idx; -+ } -+ } -+ -+ x = y = len = 0; -+ -+ s1 = (unsigned char*)VSHADOW1; -+ s2 = (unsigned char*)VSHADOW2; -+ s4 = (unsigned char*)VSHADOW4; -+ s8 = (unsigned char*)VSHADOW8; -+ -+ for (i = 0; i < 38400; i++) -+ s1[i] = s2[i] = s4[i] = s8[i] = 0; -+ -+ /* parse xpm data */ -+ while (y < height) { -+ while (1) { -+ if (!grub_read(&c, 1)) { -+ grub_close(); -+ return 0; -+ } -+ if (c == '"') -+ break; -+ } -+ -+ while (grub_read(&c, 1) && c != '"') { -+ for (i = 1; i < 15; i++) -+ if (pal[i] == c) { -+ c = i; -+ break; -+ } -+ -+ mask = 0x80 >> (x & 7); -+ if (c & 1) -+ s1[len + (x >> 3)] |= mask; -+ if (c & 2) -+ s2[len + (x >> 3)] |= mask; -+ if (c & 4) -+ s4[len + (x >> 3)] |= mask; -+ if (c & 8) -+ s8[len + (x >> 3)] |= mask; -+ -+ if (++x >= 640) { -+ x = 0; -+ -+ if (y < 480) -+ len += 80; -+ ++y; -+ } -+ } -+ } -+ -+ grub_close(); -+ -+ graphics_set_palette(0, (background >> 16), (background >> 8) & 63, -+ background & 63); -+ graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, -+ foreground & 63); -+ graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, -+ border & 63); -+ -+ return 1; -+} -+ -+ -+/* Convert a character which is a hex digit to the appropriate integer */ -+int hex(int v) -+{ -+ if (v >= 'A' && v <= 'F') -+ return (v - 'A' + 10); -+ if (v >= 'a' && v <= 'f') -+ return (v - 'a' + 10); -+ return (v - '0'); -+} -+ -+ -+/* move the graphics cursor location to col, row */ -+static void graphics_setxy(int col, int row) { -+ if (col >= x0 && col < x1) { -+ fontx = col; -+ cursorX = col << 3; -+ } -+ if (row >= y0 && row < y1) { -+ fonty = row; -+ cursorY = row << 4; -+ } -+} -+ -+/* scroll the screen */ -+static void graphics_scroll() { -+ int i, j; -+ -+ /* we don't want to scroll recursively... that would be bad */ -+ if (no_scroll) -+ return; -+ no_scroll = 1; -+ -+ /* move everything up a line */ -+ for (j = y0 + 1; j < y1; j++) { -+ graphics_gotoxy(x0, j - 1); -+ for (i = x0; i < x1; i++) { -+ graphics_putchar(text[j * 80 + i]); -+ } -+ } -+ -+ /* last line should be blank */ -+ graphics_gotoxy(x0, y1 - 1); -+ for (i = x0; i < x1; i++) -+ graphics_putchar(' '); -+ graphics_setxy(x0, y1 - 1); -+ -+ no_scroll = 0; -+} -+ -+ -+void graphics_cursor(int set) { -+ unsigned char *pat, *mem, *ptr, chr[16 << 2]; -+ int i, ch, invert, offset; -+ -+ if (set && no_scroll) -+ return; -+ -+ offset = cursorY * 80 + fontx; -+ ch = text[fonty * 80 + fontx] & 0xff; -+ invert = (text[fonty * 80 + fontx] & 0xff00) != 0; -+ pat = font8x16 + (ch << 4); -+ -+ mem = (unsigned char*)VIDEOMEM + offset; -+ -+ if (!set) { -+ for (i = 0; i < 16; i++) { -+ unsigned char mask = pat[i]; -+ -+ if (!invert) { -+ chr[i ] = ((unsigned char*)VSHADOW1)[offset]; -+ chr[16 + i] = ((unsigned char*)VSHADOW2)[offset]; -+ chr[32 + i] = ((unsigned char*)VSHADOW4)[offset]; -+ chr[48 + i] = ((unsigned char*)VSHADOW8)[offset]; -+ -+ /* FIXME: if (shade) */ -+ if (1) { -+ if (ch == DISP_VERT || ch == DISP_LL || -+ ch == DISP_UR || ch == DISP_LR) { -+ unsigned char pmask = ~(pat[i] >> 1); -+ -+ chr[i ] &= pmask; -+ chr[16 + i] &= pmask; -+ chr[32 + i] &= pmask; -+ chr[48 + i] &= pmask; -+ } -+ if (i > 0 && ch != DISP_VERT) { -+ unsigned char pmask = ~(pat[i - 1] >> 1); -+ -+ chr[i ] &= pmask; -+ chr[16 + i] &= pmask; -+ chr[32 + i] &= pmask; -+ chr[48 + i] &= pmask; -+ if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) { -+ pmask = ~pat[i - 1]; -+ -+ chr[i ] &= pmask; -+ chr[16 + i] &= pmask; -+ chr[32 + i] &= pmask; -+ chr[48 + i] &= pmask; -+ } -+ } -+ } -+ chr[i ] |= mask; -+ chr[16 + i] |= mask; -+ chr[32 + i] |= mask; -+ chr[48 + i] |= mask; -+ -+ offset += 80; -+ } -+ else { -+ chr[i ] = mask; -+ chr[16 + i] = mask; -+ chr[32 + i] = mask; -+ chr[48 + i] = mask; -+ } -+ } -+ } -+ else { -+ MapMask(15); -+ ptr = mem; -+ for (i = 0; i < 16; i++, ptr += 80) { -+ cursorBuf[i] = pat[i]; -+ *ptr = ~pat[i]; -+ } -+ return; -+ } -+ -+ offset = 0; -+ for (i = 1; i < 16; i <<= 1, offset += 16) { -+ int j; -+ -+ MapMask(i); -+ ptr = mem; -+ for (j = 0; j < 16; j++, ptr += 80) -+ *ptr = chr[j + offset]; -+ } -+ -+ MapMask(15); -+} -+ -+#endif /* SUPPORT_GRAPHICS */ ---- grub-0.95/stage2/Makefile.am.graphics 2004-06-13 13:57:27.000000000 -0400 -+++ grub-0.95/stage2/Makefile.am 2004-06-18 17:36:58.289966104 -0400 -@@ -7,7 +7,7 @@ - fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \ - imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \ - nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \ -- terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h -+ terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h - EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS) - - # For <stage1.h>. -@@ -19,7 +19,7 @@ - disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \ - fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ - fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \ -- terminfo.c tparm.c -+ terminfo.c tparm.c graphics.c - libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ - -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ - -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ -@@ -80,8 +80,14 @@ - HERCULES_FLAGS = - endif - -+if GRAPHICS_SUPPORT -+GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1 -+else -+GRAPHICS_FLAGS = -+endif -+ - STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) -+ $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS) - - STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 - STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 -@@ -91,7 +97,8 @@ - cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ - fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ - fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ -- hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c -+ hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \ -+ graphics.c - pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) - pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) - pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK) ---- grub-0.95/stage2/term.h.graphics 2003-07-09 07:45:53.000000000 -0400 -+++ grub-0.95/stage2/term.h 2004-06-18 17:35:52.496968160 -0400 -@@ -60,6 +60,8 @@ - const char *name; - /* The feature flags defined above. */ - unsigned long flags; -+ /* Default for maximum number of lines if not specified */ -+ unsigned short max_lines; - /* Put a character. */ - void (*putchar) (int c); - /* Check if any input character is available. */ -@@ -79,6 +81,11 @@ - void (*setcolor) (int normal_color, int highlight_color); - /* Turn on/off the cursor. */ - int (*setcursor) (int on); -+ -+ /* function to start a terminal */ -+ int (*startup) (void); -+ /* function to use to shutdown a terminal */ -+ void (*shutdown) (void); - }; - - /* This lists up available terminals. */ -@@ -124,4 +131,23 @@ - int hercules_setcursor (int on); - #endif - -+#ifdef SUPPORT_GRAPHICS -+extern int foreground, background, border, graphics_inited; -+ -+void graphics_set_splash(char *splashfile); -+int set_videomode (int mode); -+void graphics_putchar (int c); -+int graphics_getxy(void); -+void graphics_gotoxy(int x, int y); -+void graphics_cls(void); -+void graphics_setcolorstate (color_state state); -+void graphics_setcolor (int normal_color, int highlight_color); -+void graphics_setcursor (int on); -+int graphics_init(void); -+void graphics_end(void); -+ -+int hex(int v); -+void graphics_set_palette(int idx, int red, int green, int blue); -+#endif /* SUPPORT_GRAPHICS */ -+ - #endif /* ! GRUB_TERM_HEADER */ ---- /dev/null 2004-02-23 16:02:56.000000000 -0500 -+++ grub-0.95/stage2/graphics.h 2004-06-18 17:35:52.490969072 -0400 -@@ -0,0 +1,42 @@ -+/* graphics.h - graphics console interface */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2002 Free Software Foundation, Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#ifndef GRAPHICS_H -+#define GRAPHICS_H -+ -+/* magic constant */ -+#define VIDEOMEM 0xA0000 -+ -+/* function prototypes */ -+char *graphics_get_splash(void); -+ -+int read_image(char *s); -+void graphics_cursor(int set); -+ -+/* function prototypes for asm functions */ -+void * graphics_get_font(); -+void graphics_set_palette(int idx, int red, int green, int blue); -+void set_int1c_handler(); -+void unset_int1c_handler(); -+ -+extern short cursorX, cursorY; -+extern char cursorBuf[16]; -+ -+#endif /* GRAPHICS_H */ ---- grub-0.95/stage2/shared.h.graphics 2004-06-18 17:35:52.372987008 -0400 -+++ grub-0.95/stage2/shared.h 2004-06-18 17:35:52.492968768 -0400 -@@ -873,6 +873,7 @@ - int grub_tolower (int c); - int grub_isspace (int c); - int grub_strncat (char *s1, const char *s2, int n); -+void grub_memcpy(void *dest, const void *src, int len); - void *grub_memmove (void *to, const void *from, int len); - void *grub_memset (void *start, int c, int len); - int grub_strncat (char *s1, const char *s2, int n); ---- grub-0.95/stage2/char_io.c.graphics 2004-05-23 12:45:43.000000000 -0400 -+++ grub-0.95/stage2/char_io.c 2004-06-18 17:35:52.485969832 -0400 -@@ -35,6 +35,7 @@ - { - "console", - 0, -+ 24, - console_putchar, - console_checkkey, - console_getkey, -@@ -43,13 +44,16 @@ - console_cls, - console_setcolorstate, - console_setcolor, -- console_setcursor -+ console_setcursor, -+ 0, -+ 0 - }, - #ifdef SUPPORT_SERIAL - { - "serial", - /* A serial device must be initialized. */ - TERM_NEED_INIT, -+ 24, - serial_putchar, - serial_checkkey, - serial_getkey, -@@ -58,6 +62,8 @@ - serial_cls, - serial_setcolorstate, - 0, -+ 0, -+ 0, - 0 - }, - #endif /* SUPPORT_SERIAL */ -@@ -65,6 +71,7 @@ - { - "hercules", - 0, -+ 24, - hercules_putchar, - console_checkkey, - console_getkey, -@@ -73,9 +80,28 @@ - hercules_cls, - hercules_setcolorstate, - hercules_setcolor, -- hercules_setcursor -+ hercules_setcursor, -+ 0, -+ 0 - }, - #endif /* SUPPORT_HERCULES */ -+#ifdef SUPPORT_GRAPHICS -+ { "graphics", -+ TERM_NEED_INIT, /* flags */ -+ 30, /* number of lines */ -+ graphics_putchar, /* putchar */ -+ console_checkkey, /* checkkey */ -+ console_getkey, /* getkey */ -+ graphics_getxy, /* getxy */ -+ graphics_gotoxy, /* gotoxy */ -+ graphics_cls, /* cls */ -+ graphics_setcolorstate, /* setcolorstate */ -+ graphics_setcolor, /* setcolor */ -+ graphics_setcursor, /* nocursor */ -+ graphics_init, /* initialize */ -+ graphics_end /* shutdown */ -+ }, -+#endif /* SUPPORT_GRAPHICS */ - /* This must be the last entry. */ - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } - }; -@@ -1046,13 +1072,15 @@ - the following grub_printf call will print newlines. */ - count_lines = -1; - -+ grub_printf("\n"); - if (current_term->setcolorstate) - current_term->setcolorstate (COLOR_STATE_HIGHLIGHT); - -- grub_printf ("\n[Hit return to continue]"); -+ grub_printf ("[Hit return to continue]"); - - if (current_term->setcolorstate) - current_term->setcolorstate (COLOR_STATE_NORMAL); -+ - - do - { -@@ -1090,7 +1118,7 @@ - cls (void) - { - /* If the terminal is dumb, there is no way to clean the terminal. */ -- if (current_term->flags & TERM_DUMB) -+ if (current_term->flags & TERM_DUMB) - grub_putchar ('\n'); - else - current_term->cls (); -@@ -1214,6 +1242,16 @@ - return ! errnum; - } - -+void -+grub_memcpy(void *dest, const void *src, int len) -+{ -+ int i; -+ register char *d = (char*)dest, *s = (char*)src; -+ -+ for (i = 0; i < len; i++) -+ d[i] = s[i]; -+} -+ - void * - grub_memmove (void *to, const void *from, int len) - { ---- grub-0.95/configure.ac.graphics 2004-06-18 17:35:52.211011632 -0400 -+++ grub-0.95/configure.ac 2004-06-18 17:35:52.498967856 -0400 -@@ -595,6 +595,11 @@ - [ --enable-diskless enable diskless support]) - AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes) - -+dnl Graphical splashscreen support -+AC_ARG_ENABLE(graphics, -+ [ --disable-graphics disable graphics terminal support]) -+AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno) -+ - dnl Hercules terminal - AC_ARG_ENABLE(hercules, - [ --disable-hercules disable hercules terminal support]) diff --git a/src/patches/grub-0.95-hiddenmenu-tweak.patch b/src/patches/grub-0.95-hiddenmenu-tweak.patch deleted file mode 100644 index 56fb083..0000000 --- a/src/patches/grub-0.95-hiddenmenu-tweak.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- grub-0.95/stage2/stage2.c.hidden 2004-09-30 16:39:38.028893664 -0400 -+++ grub-0.95/stage2/stage2.c 2004-09-30 16:42:07.981097464 -0400 -@@ -235,6 +235,8 @@ - char *cur_entry = 0; - struct term_entry *prev_term = NULL; - -+ cls(); -+ - /* - * Main loop for menu UI. - */ -@@ -262,14 +264,16 @@ - /* Get current time. */ - while ((time1 = getrtsecs ()) == 0xFF) - ; -+ grub_printf("\rPress any key to enter the menu\n\n\n"); - - while (1) - { - /* Check if ESC is pressed. */ -- if (checkkey () != -1 && ASCII_CHAR (getkey ()) == '\e') -+ if (checkkey () != -1) - { - grub_timeout = -1; - show_menu = 1; -+ getkey (); - break; - } - -@@ -288,7 +292,8 @@ - grub_timeout--; - - /* Print a message. */ -- grub_printf ("\rPress `ESC' to enter the menu... %d ", -+ grub_printf ("\rBooting %s in %d seconds...", -+ get_entry(menu_entries, first_entry + entryno, 0), - grub_timeout); - } - } diff --git a/src/patches/grub-0.95-md-mbr.patch b/src/patches/grub-0.95-md-mbr.patch deleted file mode 100644 index 1aaa3e9..0000000 --- a/src/patches/grub-0.95-md-mbr.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- grub-0.95/util/grub-install.in.md-mbr 2005-02-20 17:56:48.000000000 -0500 -+++ grub-0.95/util/grub-install.in 2005-02-20 17:57:12.000000000 -0500 -@@ -444,7 +444,7 @@ - /dev/*) - install_device=`resolve_symlink "$install_device"` - for install_drive in `find_real_devs $install_device` ; do -- install_drive=`convert $install_drive` -+ install_drive=`convert $install_drive | sed 's/,[0-9]*)/)/'` - if [ "x$install_drive" = "x" ]; then - exit 1 - fi diff --git a/src/patches/grub-0.95-md-rework.patch b/src/patches/grub-0.95-md-rework.patch deleted file mode 100644 index cff1977..0000000 --- a/src/patches/grub-0.95-md-rework.patch +++ /dev/null @@ -1,183 +0,0 @@ ---- grub-0.95/util/grub-install.in.md2 2005-01-03 14:49:18.133866107 -0500 -+++ grub-0.95/util/grub-install.in 2005-01-03 16:35:44.923732271 -0500 -@@ -35,6 +35,7 @@ - rootdir= - grub_prefix=/boot/grub - -+install_drives= - install_device= - no_floppy= - force_lba= -@@ -272,6 +273,30 @@ - done - } - -+ -+dump_boot_block () { -+ sync -+ $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file -+dump ${root_drive}${tmp} ${img_file} -+quit -+EOF -+} -+ -+ -+install_boot_block () { -+ # Before all invocations of the grub shell, call sync to make sure -+ # the raw device is in sync with any bufferring in filesystems. -+ sync -+ -+ # Now perform the installation. -+ $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file -+root $1 -+setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $2 -+quit -+EOF -+} -+ -+ - # Check the arguments. - for option in "$@"; do - case "$option" in -@@ -416,28 +441,32 @@ - # Check for INSTALL_DEVICE. - case "$install_device" in - /dev/*) -- # If we are running md on a Linux box, just use the first physical device -- # at this point. - install_device=`resolve_symlink "$install_device"` -- install_device=`find_real_devs $install_device | awk '{print $1}'` -- -- install_drive=`convert "$install_device"` -- # I don't know why, but some shells wouldn't die if exit is -- # called in a function. -- if test "x$install_drive" = x; then -+ for install_drive in `find_real_devs $install_device` ; do -+ install_drive=`convert $install_drive` -+ if [ "x$install_drive" = "x" ]; then -+ exit 1 -+ fi -+ install_drives="${install_drives} ${install_drive}" -+ done -+ unset install_drive -+ -+ if test "x$install_drives" = x ; then - exit 1 - fi ;; - ([hf]d[0-9]*)) -- install_drive="$install_device" ;; -+ install_drives="$install_device" ;; - [hf]d[0-9]*) - # The GRUB format with no parenthesis. -- install_drive="($install_device)" ;; -+ install_drives="($install_device)" ;; - *) - echo "Format of install_device not recognized." 1>&2 - usage - exit 1 ;; - esac - -+unset install_device -+ - # Get the root drive. - root_device=`find_device ${rootdir}` - bootdir_device=`find_device ${bootdir}` -@@ -465,41 +494,39 @@ - test -n "$mkimg" && img_file=`$mkimg` - test -n "$mklog" && log_file=`$mklog` - --for real_device in `find_real_devs $root_device`; do -- # Convert the root deviceto a GRUB drive. -- root_drive=`convert "$real_device"` -- if [ "x$root_drive" = x ]; then -- exit 1 -- fi -+# There's not a real root device, so just pick the first -+if is_raid1_device $root_device ; then -+ root_device=`find_real_devs $root_device | awk '{print $1}'` -+fi - -- for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -- count=5 -- tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` -- while test $count -gt 0; do -- sync -- $grub_shell --batch $no_floppy --device-map=$device_map \ -- <<EOF >$log_file --dump ${root_drive}${tmp} ${img_file} --quit --EOF -- if grep "Error [0-9]*: " $log_file >/dev/null; then -- : -- elif cmp $file $img_file >/dev/null; then -- break -- fi -- sleep 1 -- count=`expr $count - 1` -- done -- if test $count -eq 0; then -- echo "The file $file not read correctly." 1>&2 -- exit 1 -- fi -- done -+# Convert the root deviceto a GRUB drive. -+root_drive=`convert "$root_device"` -+if [ "x$root_drive" = x ]; then -+ exit 1 -+fi - -- rm -f $img_file -- rm -f $log_file -+for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -+ count=5 -+ tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` -+ while test $count -gt 0; do -+ dump_boot_block $root_drive $img_file -+ if grep "Error [0-9]*: " $log_file >/dev/null; then -+ : -+ elif cmp $file $img_file >/dev/null; then -+ break -+ fi -+ sleep 1 -+ count=`expr $count - 1` -+ done -+ if test $count -eq 0; then -+ echo "The file $file not read correctly." 1>&2 -+ exit 1 -+ fi - done - -+rm -f $img_file -+rm -f $log_file -+ - if ! test -e ${grubdir}/grub.conf ; then - test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf - fi -@@ -507,24 +534,13 @@ - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - --for real_device in `find_real_devs $root_device`; do -+for install_drive in $install_drives; do - # Convert the root deviceto a GRUB drive. -- root_drive=`convert "$real_device"` -+ root_drive=`convert "$root_device"` - if [ "x$root_drive" = x ]; then - exit 1 - fi -- -- # Before all invocations of the grub shell, call sync to make sure -- # the raw device is in sync with any bufferring in filesystems. -- sync -- -- # Now perform the installation. -- $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file --root $root_drive --setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $root_drive --quit --EOF -- -+ install_boot_block $root_drive $install_drive - done - - if grep "Error [0-9]*: " $log_file >/dev/null ; then diff --git a/src/patches/grub-0.95-md.patch b/src/patches/grub-0.95-md.patch deleted file mode 100644 index 9e4ff89..0000000 --- a/src/patches/grub-0.95-md.patch +++ /dev/null @@ -1,183 +0,0 @@ ---- grub-0.95/util/grub-install.in.support_md 2004-12-17 17:50:45.000000000 -0500 -+++ grub-0.95/util/grub-install.in 2004-12-19 19:19:20.509409160 -0500 -@@ -207,6 +207,43 @@ - echo "$tmp_fname" - } - -+# Usage: is_raid1_device devicename -+# Returns 0 if devicename is a raid1 md device, 1 if it is not. -+is_raid1_device () { -+ case "$host_os" in -+ linux*) -+ level=`mdadm --query --detail $1 2>/dev/null | \ -+ awk '/Raid Level :/ {print $4}'` -+ if [ "$level" = "raid1" ]; then -+ return 0 -+ fi -+ ;; -+ esac -+ return 1 -+} -+ -+# Usage: find_real_devs device -+# Returns space separated list of devices for linux if device is -+# a raid1 device. In all other cases, the provided value is returned. -+find_real_devs () { -+ source_device=$1 -+ case "$host_os" in -+ linux*) -+ if is_raid1_device $source_device ; then -+ list="" -+ for device in `mdadm --query --detail "${source_device}" | \ -+ awk '//dev/[^(md)]/ {print $7}'` ; do -+ list="$list $device" -+ done -+ echo $list -+ return 0 -+ fi -+ ;; -+ esac -+ echo $source_device -+ return 0 -+} -+ - # Usage: find_device file - # Find block device on which the file resides. - find_device () { -@@ -219,7 +256,7 @@ - exit 1 - fi - -- tmp_fname=`resolve_symlink $tmp_fname` -+ tmp_fname=`resolve_symlink $tmp_fname` - - echo "$tmp_fname" - } -@@ -379,7 +416,11 @@ - # Check for INSTALL_DEVICE. - case "$install_device" in - /dev/*) -+ # If we are running md on a Linux box, just use the first physical device -+ # at this point. - install_device=`resolve_symlink "$install_device"` -+ install_device=`find_real_devs $install_device | awk '{print $1}'` -+ - install_drive=`convert "$install_device"` - # I don't know why, but some shells wouldn't die if exit is - # called in a function. -@@ -408,14 +449,7 @@ - grub_prefix="/grub" - fi - --# Convert the root device to a GRUB drive. --root_drive=`convert "$root_device"` --if test "x$root_drive" = x; then -- exit 1 --fi -- --# Check if the root directory exists in the same device as the grub --# directory. -+# Check if the root directory exists in the same device as the grub directory. - grubdir_device=`find_device ${grubdir}` - - if test "x$grubdir_device" != "x$root_device"; then -@@ -431,30 +465,40 @@ - test -n "$mkimg" && img_file=`$mkimg` - test -n "$mklog" && log_file=`$mklog` - --for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -- count=5 -- tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` -- while test $count -gt 0; do -- $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file -+for real_device in `find_real_devs $root_device`; do -+ # Convert the root deviceto a GRUB drive. -+ root_drive=`convert "$real_device"` -+ if [ "x$root_drive" = x ]; then -+ exit 1 -+ fi -+ -+ for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -+ count=5 -+ tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` -+ while test $count -gt 0; do -+ sync -+ $grub_shell --batch $no_floppy --device-map=$device_map \ -+ <<EOF >$log_file - dump ${root_drive}${tmp} ${img_file} - quit - EOF -- if grep "Error [0-9]*: " $log_file >/dev/null; then -- : -- elif cmp $file $img_file >/dev/null; then -- break -+ if grep "Error [0-9]*: " $log_file >/dev/null; then -+ : -+ elif cmp $file $img_file >/dev/null; then -+ break -+ fi -+ sleep 1 -+ count=`expr $count - 1` -+ done -+ if test $count -eq 0; then -+ echo "The file $file not read correctly." 1>&2 -+ exit 1 - fi -- sleep 1 -- count=`expr $count - 1` - done -- if test $count -eq 0; then -- echo "The file $file not read correctly." 1>&2 -- exit 1 -- fi --done - --rm -f $img_file --rm -f $log_file -+ rm -f $img_file -+ rm -f $log_file -+done - - if ! test -e ${grubdir}/grub.conf ; then - test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf -@@ -463,21 +507,33 @@ - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - --# Before all invocations of the grub shell, call sync to make sure --# the raw device is in sync with any bufferring in filesystems. --sync -+for real_device in `find_real_devs $root_device`; do -+ # Convert the root deviceto a GRUB drive. -+ root_drive=`convert "$real_device"` -+ if [ "x$root_drive" = x ]; then -+ exit 1 -+ fi -+ -+ # Before all invocations of the grub shell, call sync to make sure -+ # the raw device is in sync with any bufferring in filesystems. -+ sync - --# Now perform the installation. --$grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file -+ # Now perform the installation. -+ $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file - root $root_drive --setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $install_drive -+setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $root_drive - quit - EOF - --if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then -+done -+ -+if grep "Error [0-9]*: " $log_file >/dev/null ; then - cat $log_file 1>&2 - exit 1 - fi -+if test $debug = yes; then -+ cat $log_file 1>&2 -+fi - - rm -f $log_file - diff --git a/src/patches/grub-0.95-moreraid.patch b/src/patches/grub-0.95-moreraid.patch deleted file mode 100644 index 39db234..0000000 --- a/src/patches/grub-0.95-moreraid.patch +++ /dev/null @@ -1,100 +0,0 @@ ---- grub-0.95/lib/device.c.moreraid 2004-11-30 17:09:36.736099360 -0500 -+++ grub-0.95/lib/device.c 2004-11-30 17:12:17.319686944 -0500 -@@ -544,6 +544,17 @@ - } - - static void -+get_cciss_disk_name (char * name, int controller, int drive) -+{ -+ sprintf (name, "/dev/cciss/c%dd%d", controller, drive); -+} -+ -+static void -+get_cpqarray_disk_name (char * name, int controller, int drive) -+{ -+ sprintf (name, "/dev/ida/c%dd%d", controller, drive); -+} -+static void - get_ataraid_disk_name (char *name, int unit) - { - sprintf (name, "/dev/ataraid/d%c", unit + '0'); -@@ -920,7 +931,7 @@ - - for (controller = 0; controller < 8; controller++) - { -- for (drive = 0; drive < 15; drive++) -+ for (drive = 0; drive < 32; drive++) - { - char name[24]; - -@@ -940,6 +951,70 @@ - } - } - #endif /* __linux__ */ -+ -+#ifdef __linux__ -+ /* This is for cciss - we have -+ /dev/cciss/c<controller>d<logical drive>p<partition>. -+ -+ cciss driver currently supports up to 8 controllers, 16 logical -+ drives, and 7 partitions. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 16; drive++) -+ { -+ char name[24]; -+ -+ get_cciss_disk_name (name, controller, drive); -+ if (check_device (name)) -+ { -+ (*map)[num_hd + 0x80] = strdup (name); -+ assert ((*map)[num_hd + 0x80]); -+ -+ /* If the device map file is opened, write the map. */ -+ if (fp) -+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); -+ -+ num_hd++; -+ } -+ } -+ } -+ } -+#endif /* __linux__ */ -+ -+#ifdef __linux__ -+ /* This is for cpqarray - we have -+ /dev/ida/c<controller>d<logical drive>p<partition>. -+ -+ cpqarray driver currently supports up to 8 controllers, 16 logical -+ drives, and 15 partitions. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 15; drive++) -+ { -+ char name[24]; -+ -+ get_cpqarray_disk_name (name, controller, drive); -+ if (check_device (name)) -+ { -+ (*map)[num_hd + 0x80] = strdup (name); -+ assert ((*map)[num_hd + 0x80]); -+ -+ /* If the device map file is opened, write the map. */ -+ if (fp) -+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); -+ -+ num_hd++; -+ } -+ } -+ } -+ } -+#endif /* __linux__ */ - - /* OK, close the device map file if opened. */ - if (fp) diff --git a/src/patches/grub-0.95-nonmbr.patch b/src/patches/grub-0.95-nonmbr.patch deleted file mode 100644 index 35bd5f3..0000000 --- a/src/patches/grub-0.95-nonmbr.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- grub-0.95/util/grub-install.in.nonmbr 2005-03-16 10:02:50.000000000 -0500 -+++ grub-0.95/util/grub-install.in 2005-03-16 10:02:13.000000000 -0500 -@@ -444,7 +444,10 @@ - /dev/*) - install_device=`resolve_symlink "$install_device"` - for install_drive in `find_real_devs $install_device` ; do -- install_drive=`convert $install_drive | sed 's/,[0-9]*)/)/'` -+ install_drive=`convert $install_drive` -+ if is_raid1_device $install_device; then -+ install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'` -+ fi - if [ "x$install_drive" = "x" ]; then - exit 1 - fi diff --git a/src/patches/grub-0.95-odirect.patch b/src/patches/grub-0.95-odirect.patch deleted file mode 100644 index 12dd9d9..0000000 --- a/src/patches/grub-0.95-odirect.patch +++ /dev/null @@ -1,115 +0,0 @@ ---- grub-0.95/grub/asmstub.c.odirect 2004-11-30 16:58:06.577019488 -0500 -+++ grub-0.95/grub/asmstub.c 2004-11-30 16:59:56.057375944 -0500 -@@ -53,6 +53,9 @@ - # ifndef BLKFLSBUF - # define BLKFLSBUF _IO (0x12,97) /* flush buffer cache */ - # endif /* ! BLKFLSBUF */ -+# ifndef O_DIRECT -+# define O_DIRECT 040000 -+# endif /* ! O_DIRECT */ - #endif /* __linux__ */ - - /* We want to prevent any circularararity in our stubs, as well as -@@ -764,7 +767,7 @@ - { - /* The unpartitioned device name: /dev/XdX */ - char *devname = device_map[drive]; -- char buf[512]; -+ char * buf, * buf_unaligned; - - if (! devname) - return -1; -@@ -775,13 +778,13 @@ - - /* Open read/write, or read-only if that failed. */ - if (! read_only) -- disks[drive].flags = open (devname, O_RDWR); -+ disks[drive].flags = open (devname, O_RDWR | O_DIRECT); - - if (disks[drive].flags == -1) - { - if (read_only || errno == EACCES || errno == EROFS || errno == EPERM) - { -- disks[drive].flags = open (devname, O_RDONLY); -+ disks[drive].flags = open (devname, O_RDONLY | O_DIRECT); - if (disks[drive].flags == -1) - { - assign_device_name (drive, 0); -@@ -795,6 +798,10 @@ - } - } - -+ buf_unaligned = malloc((512 * sizeof(char)) + 4095); -+ buf = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); -+ - /* Attempt to read the first sector. */ - if (read (disks[drive].flags, buf, 512) != 512) - { -@@ -806,6 +813,7 @@ - - if (disks[drive].flags != -1) - get_drive_geometry (&disks[drive], device_map, drive); -+ free(buf_unaligned); - } - - if (disks[drive].flags == -1) -@@ -827,24 +835,34 @@ - nread (int fd, char *buf, size_t len) - { - int size = len; -+ char * buf_unaligned, * buff, * obuff; -+ int ret; -+ -+ buf_unaligned = malloc((len * sizeof(char)) + 4095); -+ obuff = buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); -+ - - while (len) - { -- int ret = read (fd, buf, len); -+ ret = read (fd, buff, len); - - if (ret <= 0) - { - if (errno == EINTR) - continue; - else -- return ret; -+ break; - } - - len -= ret; -- buf += ret; -+ buff += ret; - } - -- return size; -+ if (!len) ret = size; -+ -+ buf = memcpy(buf, obuff, size); -+ return ret; - } - - /* Write LEN bytes from BUF to FD. Return less than or equal to zero if an -@@ -853,10 +871,18 @@ - nwrite (int fd, char *buf, size_t len) - { - int size = len; -+ char * buf_unaligned, * buff; -+ -+ buf_unaligned = malloc((len * sizeof(char)) + 4095); -+ buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); - - while (len) - { -- int ret = write (fd, buf, len); -+ int ret; -+ -+ memcpy(buff, buf, len); -+ ret = write (fd, buff, len); - - if (ret <= 0) - { diff --git a/src/patches/grub-0.95-recheck-bad.patch b/src/patches/grub-0.95-recheck-bad.patch deleted file mode 100644 index b55c6ae..0000000 --- a/src/patches/grub-0.95-recheck-bad.patch +++ /dev/null @@ -1,83 +0,0 @@ ---- grub-0.95/docs/grub.texi.recheck-bad 2005-07-25 17:55:57.000000000 -0400 -+++ grub-0.95/docs/grub.texi 2005-07-25 17:58:00.000000000 -0400 -@@ -3417,8 +3417,9 @@ - - @item --recheck - Recheck the device map, even if @file{/boot/grub/device.map} already --exists. You should use this option whenever you add/remove a disk --into/from your computer. -+exists. -+ -+This option is unreliable and its use is strongly discouraged. - @end table - - ---- grub-0.95/util/grub-install.in.recheck-bad 2005-07-25 17:58:19.000000000 -0400 -+++ grub-0.95/util/grub-install.in 2005-07-25 18:05:14.000000000 -0400 -@@ -68,6 +68,8 @@ - --force-lba force GRUB to use LBA mode even for a buggy - BIOS - --recheck probe a device map even if it already exists -+ This flag is unreliable and its use is -+ strongly discouraged. - - INSTALL_DEVICE can be a GRUB device name or a system device filename. - -@@ -328,7 +330,7 @@ - - # If --recheck is specified, remove the device map, if present. - if test $recheck = yes; then -- rm -f $device_map -+ mv $device_map ${device_map}.backup - fi - - # Create the device map file if it is not present. -@@ -357,7 +359,22 @@ - tmp=`sed -n '/^([fh]d[0-9]*)/s/(^(.*)).*/\1/p' $device_map \ - | sort | uniq -d | sed -n 1p` - if test -n "$tmp"; then -- echo "The drive $tmp is defined multiple times in the device map $device_map" 1>&2 -+ echo "The drive $tmp is defined multiple times in the new device map." 1>&2 -+ if test $recheck = yes; then -+ echo "Reverting to backed up copy." 1>&2 -+ mv ${device_map}.backup $device_map -+ fi -+ exit 1 -+fi -+ -+# Make sure device.map has at least one hd device -+grep -q "^(hd[0-9]+)" $device_map -+if [ "x$?" != "x0" ]; then -+ echo "No suitable drive was found in the generated device map." 1>&2 -+ if test $recheck = yes; then -+ echo "Reverting to backed up copy." 1>&2 -+ mv ${device_map}.backup $device_map -+ fi - exit 1 - fi - ---- grub-0.95/docs/grub-install.8.recheck-bad 2004-06-13 13:44:59.000000000 -0400 -+++ grub-0.95/docs/grub-install.8 2005-07-25 18:15:02.000000000 -0400 -@@ -30,6 +30,8 @@ - .TP - \fB--recheck\fR - probe a device map even if it already exists -+ -+This option is unreliable and its use is strongly discouraged. - .PP - INSTALL_DEVICE can be a GRUB device name or a system device filename. - .SH "REPORTING BUGS" ---- grub-0.95/docs/grub.info.recheck-bad 2004-05-11 08:22:54.000000000 -0400 -+++ grub-0.95/docs/grub.info 2005-07-25 18:16:09.000000000 -0400 -@@ -3373,9 +3373,9 @@ - - `--recheck' - Recheck the device map, even if `/boot/grub/device.map' already -- exists. You should use this option whenever you add/remove a disk -- into/from your computer. -+ exists. - -+ This option is unreliable and its use is strongly discouraged. - - File: grub.info, Node: Invoking grub-md5-crypt, Next: Invoking grub-terminfo, Prev: Invoking grub-install, Up: Top - diff --git a/src/patches/grub-0.95-splash-error-term.patch b/src/patches/grub-0.95-splash-error-term.patch deleted file mode 100644 index 71b036a..0000000 --- a/src/patches/grub-0.95-splash-error-term.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- grub-0.95/stage2/graphics.c.old 2005-01-11 09:34:17.125451981 -0500 -+++ grub-0.95/stage2/graphics.c 2005-01-11 09:34:03.743949015 -0500 -@@ -108,12 +108,8 @@ - * mode. */ - int graphics_init() - { -- if (!graphics_inited) { -- saved_videomode = set_videomode(0x12); -- } -- - if (!read_image(splashimage)) { -- set_videomode(saved_videomode); -+ current_term = term_table; - grub_printf("failed to read image\n"); - return 0; - } -@@ -303,6 +299,8 @@ - if (!xpm_open(s)) - return 0; - -+ saved_videomode = set_videomode(0x12); -+ - /* parse info */ - while (grub_read(&c, 1)) { - if (c == '"') diff --git a/src/patches/grub-0.95-staticcurses.patch b/src/patches/grub-0.95-staticcurses.patch deleted file mode 100644 index ff87dd3..0000000 --- a/src/patches/grub-0.95-staticcurses.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- grub-0.95/configure.ac.static 2004-06-13 13:38:17.000000000 -0400 -+++ grub-0.95/configure.ac 2004-06-18 17:35:23.513374336 -0400 -@@ -207,9 +207,9 @@ - - # Unless the user specify --without-curses, check for curses. - if test "x$with_curses" != "xno"; then -- AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses" -+ AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lncurses -Wl,-Bdynamic" - AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])], -- [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses" -+ [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lcurses -Wl,-Bdynamic" - AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])]) - fi - diff --git a/src/patches/grub-0.95-xpmjunk.patch b/src/patches/grub-0.95-xpmjunk.patch deleted file mode 100644 index de02897..0000000 --- a/src/patches/grub-0.95-xpmjunk.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- grub-0.95/stage2/graphics.c.xpmjunk 2005-01-04 17:01:35.492804523 -0500 -+++ grub-0.95/stage2/graphics.c 2005-01-04 17:02:52.722495885 -0500 -@@ -262,6 +262,35 @@ - return; - } - -+/* Open the file, and search for a valid XPM header. Return 1 if one is found, -+ * leaving the current position as the start of the next line. Else, -+ * return 0. -+ */ -+int xpm_open(const char *s) { -+ char buf, prev, target[]="/* XPM */\n"; -+ int pos=0; -+ -+ if (!grub_open(s)) -+ return 0; -+ -+ prev='\n'; -+ buf=0; -+ do { -+ if (grub_read(&buf, 1) != 1) { -+ grub_close(); -+ return 0; -+ } -+ if ((pos == 0 && prev == '\n') || pos > 0) { -+ if (buf == target[pos]) -+ pos++; -+ else -+ pos=0; -+ } -+ prev=buf; -+ } while (target[pos]); -+ return 1; -+} -+ - /* Read in the splashscreen image and set the palette up appropriately. - * Format of splashscreen is an xpm (can be gzipped) with 16 colors and - * 640x480. */ -@@ -271,15 +300,9 @@ - unsigned char c, base, mask, *s1, *s2, *s4, *s8; - unsigned i, len, idx, colors, x, y, width, height; - -- if (!grub_open(s)) -+ if (!xpm_open(s)) - return 0; - -- /* read header */ -- if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) { -- grub_close(); -- return 0; -- } -- - /* parse info */ - while (grub_read(&c, 1)) { - if (c == '"') diff --git a/src/patches/grub-0.97-bz429187-cciss.patch b/src/patches/grub-0.97-bz429187-cciss.patch deleted file mode 100644 index 32f18bc..0000000 --- a/src/patches/grub-0.97-bz429187-cciss.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff -up grub-0.97/util/grub-install.in.cciss grub-0.97/util/grub-install.in ---- grub-0.97/util/grub-install.in.cciss 2008-02-04 14:30:31.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2008-02-07 18:34:14.000000000 -0500 -@@ -100,25 +100,56 @@ convert () { - # Break the device name into the disk part and the partition part. - case "$host_os" in - linux*) -+ # formats that need to be handled (disk name -> partition name): -+ # floppies: /dev/fd0 -+ # normal sd/hd devices: /dev/hda -> /dev/hda3 -+ # md: /dev/md0 -> /dev/md0p0 -+ # ide raid devs: /dev/ide/host0/bus0/target0/lun0/disc -+ # -> /dev/ide/host0/bus0/target0/lun0/part1 -+ # cciss: /dev/cciss/c0d0 -> /dev/cciss/c0d0p1 -+ # mpath devs: /dev/mapper/mpath0 -> /dev/mapper/mpath0p1 -+ # /dev/mapper/lalala -> /dev/mapper/lalalap1 -+ # dmraid devs: /dev/mapper/via_abcdef -> /dev/mapper/via_abcdefp1 -+ # /dev/mapper/isw_Volume0_abcdef -> /dev/mapper/isw_Volume0_abcdefp1 -+ # the known list (to me) is (X means we should handle it): -+ # X asr_[unfettered crap] -+ # hpt[0-9]+x_[0-9]+-[0-9]+ -+ # X hpt[0-9]+x_[0-9]+ -+ # hpt[0-9]+x_SPARE -+ # isw_[a-z]+_[a-z]+[0-9]+ -+ # X isw_[a-z]+ -+ # jm_[0-9]+-[0-9]+ -+ # X jm_[0-9]+ -+ # lsi_[0-9]+-[0-9]+ -+ # X lsi_[0-9]+ -+ # nvidia_[a-z]+-[0-9]+ -+ # X nvidia_[a-z]+ -+ # pdc_[a-z]+-[0-9]+ -+ # X pdc_[a-z]+ -+ # sil_[0-9]+-[0-9]+ -+ # X sil_[0-9]+ -+ # via_[a-z]+-[0-9]+ -+ # X via_[a-z]+ -+ # -+ # more? - tmp_disk=`echo "$1" | grep -v '/mapper/control$' | -- grep -v '/mapper/[[:alnum:]]+-[[:alnum:]]+$' | uniq | -+ grep -v '/mapper/[[:alnum:]_]+-[[:digit:]]+$' | uniq | - sed -e 's%([sh]d[a-z])[0-9]*$%\1%' \ -- -e 's%(d[0-9]*)p[0-9]*$%\1%' \ -- -e 's%(fd[0-9]*)$%\1%' \ -- -e 's%/part[0-9]*$%/disc%' \ -- -e 's%(c[0-7]d[0-9]*).*$%\1%' \ -- -e 's%(/mapper/[[:alpha:]]+[[:digit:]]+)p[[:digit:]]+$%\1%' \ -- -e 's%(/mapper/[[:alpha:]]+_[[:alpha:]]+)[[:digit:]]+$%\1%'` -+ -e 's%(/c[0-9]+d[0-9]+).*$%\1%' \ -+ -e 's%(fd[0-9]*)$%\1%' \ -+ -e 's%/part[0-9]*$%/disc%' \ -+ -e 's%(/mapper/[[:alnum:]_-]+)+p[[:digit:]]+$%\1%'\ -+ -e 's%(/mapper/[[:alnum:]]+(_[[:alnum:]]+)+)\p[[:digit:]]+$%\1%'` - tmp_part=`echo "$1" | grep -v '/mapper/control$' | -- grep -v '/mapper/[[:alnum:]]+-[[:alnum:]]+$' | uniq | -+ grep -v '/mapper/[[:alnum:]_]+-[[:digit:]]+$' | uniq | - sed -e 's%.*/[sh]d[a-z]([0-9]*)$%\1%' \ -- -e 's%.*d[0-9]*p%%' \ -- -e 's%.*/fd[0-9]*$%%' \ -- -e 's%.*/floppy/[0-9]*$%%' \ -- -e 's%.*/(disc|part([0-9]*))$%\2%' \ -- -e 's%.*c[0-7]d[0-9]*p%%' \ -- -e 's%.*/mapper/[[:alpha:]]+[[:digit:]]+p([[:digit:]]+)$%\1%' \ -- -e 's%.*/mapper/[[:alpha:]]+_[[:alpha:]]+([[:digit:]]+)$%\1%' | -+ -e 's%.*/c[0-9]+d[0-9]+p([[:digit:]]+)%\1%' \ -+ -e 's%.*/c[0-9]+d[0-9]+$%%' \ -+ -e 's%.*/fd[0-9]+$%%' \ -+ -e 's%.*/floppy/[0-9]*$%%' \ -+ -e 's%.*/(disc|part([0-9]*))$%\2%' \ -+ -e 's%.*/mapper/[[:alpha:]]+[[:digit:]]+p([[:digit:]]+)$%\1%' \ -+ -e 's%.*/mapper/[[:alnum:]]+(_[[:alpha:]]+[[:digit:]]*)+p([[:digit:]]+)$%\2%' | - grep -v '.*/mapper/.*'` - ;; - gnu*) diff --git a/src/patches/grub-0.97-cmdline-size.patch b/src/patches/grub-0.97-cmdline-size.patch deleted file mode 100644 index e93aa98..0000000 --- a/src/patches/grub-0.97-cmdline-size.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git a/stage2/boot.c b/stage2/boot.c -index bf442e1..a6872e0 100644 ---- a/stage2/boot.c -+++ b/stage2/boot.c -@@ -241,6 +241,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - } - - if (lh->version >= 0x0202) -+ /* version 0x0202 and higher can handle 4096 */ - lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_OFFSET; - else - { -@@ -403,8 +404,10 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - { - char *src = skip_to (0, arg); - char *dest = linux_data_tmp_addr + LINUX_CL_OFFSET; -- -- while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src) -+ unsigned long cl_end_offset = lh->version < 0x0202 ? -+ LINUX_CL_END_OFFSET : LINUX_CL_END_OFFSET_202; -+ -+ while (dest < linux_data_tmp_addr + cl_end_offset && *src) - *(dest++) = *(src++); - - /* Old Linux kernels have problems determining the amount of -diff --git a/stage2/shared.h b/stage2/shared.h -index d05644b..c052480 100644 ---- a/stage2/shared.h -+++ b/stage2/shared.h -@@ -160,10 +160,13 @@ extern void *grub_scratch_mem; - #define LINUX_VID_MODE_ASK 0xFFFD - - #define LINUX_CL_OFFSET 0x9000 --#define LINUX_CL_END_OFFSET 0x90FF --#define LINUX_SETUP_MOVE_SIZE 0x9100 - #define LINUX_CL_MAGIC 0xA33F - -+#define LINUX_CL_END_OFFSET 0x90FF -+#define LINUX_CL_END_OFFSET_202 0x9FFF /* version 0x0202 or higher */ -+#define LINUX_SETUP_MOVE_SIZE 0xA000 /* where am I putting it? */ -+ -+ - /* - * General disk stuff - */ diff --git a/src/patches/grub-0.97-datadir.patch b/src/patches/grub-0.97-datadir.patch deleted file mode 100644 index eaa89f0..0000000 --- a/src/patches/grub-0.97-datadir.patch +++ /dev/null @@ -1,229 +0,0 @@ ---- grub-0.97/stage1/Makefile.am.datadir 2005-12-14 11:07:01.000000000 -0500 -+++ grub-0.97/stage1/Makefile.am 2005-12-14 11:07:21.000000000 -0500 -@@ -1,7 +1,7 @@ --pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) --nodist_pkglib_DATA = stage1 -+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -+nodist_pkgdata_DATA = stage1 - --CLEANFILES = $(nodist_pkglib_DATA) -+CLEANFILES = $(nodist_pkgdata_DATA) - - # We can't use builtins or standard includes. - AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc ---- grub-0.97/stage1/Makefile.in.datadir 2005-05-07 22:42:36.000000000 -0400 -+++ grub-0.97/stage1/Makefile.in 2005-12-14 11:08:13.000000000 -0500 -@@ -1,8 +1,8 @@ --# Makefile.in generated by automake 1.9.4 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004 Free Software Foundation, Inc. -+# 2003, 2004, 2005 Free Software Foundation, Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -15,8 +15,6 @@ - @SET_MAKE@ - - --SOURCES = $(stage1_exec_SOURCES) -- - srcdir = @srcdir@ - top_srcdir = @top_srcdir@ - VPATH = @srcdir@ -@@ -67,13 +65,13 @@ - *) f=$$p;; \ - esac; - am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; --am__installdirs = "$(DESTDIR)$(pkglibdir)" --nodist_pkglibDATA_INSTALL = $(INSTALL_DATA) --DATA = $(nodist_pkglib_DATA) -+am__installdirs = "$(DESTDIR)$(pkgdatadir)" -+nodist_pkgdataDATA_INSTALL = $(INSTALL_DATA) -+DATA = $(nodist_pkgdata_DATA) - ETAGS = etags - CTAGS = ctags - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) --pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) - ACLOCAL = @ACLOCAL@ - AMDEP_FALSE = @AMDEP_FALSE@ - AMDEP_TRUE = @AMDEP_TRUE@ -@@ -102,6 +100,8 @@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ - FSYS_CFLAGS = @FSYS_CFLAGS@ -+GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@ -+GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@ - GRUB_CFLAGS = @GRUB_CFLAGS@ - GRUB_LIBS = @GRUB_LIBS@ - HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ -@@ -172,6 +172,7 @@ - infodir = @infodir@ - install_sh = @install_sh@ - libdir = @libdir@ -+datadir = @datadir@ - libexecdir = @libexecdir@ - localstatedir = @localstatedir@ - mandir = @mandir@ -@@ -183,8 +184,8 @@ - sharedstatedir = @sharedstatedir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ --nodist_pkglib_DATA = stage1 --CLEANFILES = $(nodist_pkglib_DATA) -+nodist_pkgdata_DATA = stage1 -+CLEANFILES = $(nodist_pkgdata_DATA) - - # We can't use builtins or standard includes. - AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc -@@ -242,22 +243,22 @@ - .S.obj: - $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'` - uninstall-info-am: --install-nodist_pkglibDATA: $(nodist_pkglib_DATA) -+install-nodist_pkgdataDATA: $(nodist_pkgdata_DATA) - @$(NORMAL_INSTALL) -- test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" -- @list='$(nodist_pkglib_DATA)'; for p in $$list; do \ -+ test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)" -+ @list='$(nodist_pkgdata_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ -- echo " $(nodist_pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ -- $(nodist_pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ -+ echo " $(nodist_pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \ -+ $(nodist_pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \ - done - --uninstall-nodist_pkglibDATA: -+uninstall-nodist_pkgdataDATA: - @$(NORMAL_UNINSTALL) -- @list='$(nodist_pkglib_DATA)'; for p in $$list; do \ -+ @list='$(nodist_pkgdata_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ -- echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ -- rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ -+ echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \ -+ rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \ - done - - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -339,7 +340,7 @@ - check: check-am - all-am: Makefile $(PROGRAMS) $(DATA) - installdirs: -- for dir in "$(DESTDIR)$(pkglibdir)"; do \ -+ for dir in "$(DESTDIR)$(pkgdatadir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done - install: install-am -@@ -388,7 +389,7 @@ - - install-data-am: - --install-exec-am: install-nodist_pkglibDATA -+install-exec-am: install-nodist_pkgdataDATA - - install-info: install-info-am - -@@ -412,19 +413,19 @@ - - ps-am: - --uninstall-am: uninstall-info-am uninstall-nodist_pkglibDATA -+uninstall-am: uninstall-info-am uninstall-nodist_pkgdataDATA - - .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstPROGRAMS ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ -- install-info-am install-man install-nodist_pkglibDATA \ -+ install-info-am install-man install-nodist_pkgdataDATA \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-info-am \ -- uninstall-nodist_pkglibDATA -+ uninstall-nodist_pkgdataDATA - - .exec: - $(OBJCOPY) -O binary $< $@ ---- grub-0.97/util/grub-install.in.datadir 2005-12-14 11:00:21.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2005-12-14 11:00:21.000000000 -0500 -@@ -21,13 +21,13 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ - sbindir=@sbindir@ --libdir=@libdir@ -+datadir=@datadir@ - PACKAGE=@PACKAGE@ - VERSION=@VERSION@ - host_cpu=@host_cpu@ - host_os=@host_os@ - host_vendor=@host_vendor@ --pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor} -+pkgdatadir=${datadir}/${PACKAGE}/${host_cpu}-${host_vendor} - - grub_shell=${sbindir}/grub - mdadm=${sbindir}/mdadm -@@ -388,17 +388,17 @@ - exit 1 - fi - --if test -f "$pkglibdir/stage1"; then -+if test -f "$pkgdatadir/stage1"; then - : - else -- echo "${pkglibdir}/stage1: Not found." 1>&2 -+ echo "${pkgdatadir}/stage1: Not found." 1>&2 - exit 1 - fi - --if test -f "$pkglibdir/stage2"; then -+if test -f "$pkgdatadir/stage2"; then - : - else -- echo "${pkglibdir}/stage2: Not found." 1>&2 -+ echo "${pkgdatadir}/stage2: Not found." 1>&2 - exit 1 - fi - ---- grub-0.97/stage2/Makefile.am.datadir 2005-12-14 11:03:54.000000000 -0500 -+++ grub-0.97/stage2/Makefile.am 2005-12-14 11:05:04.000000000 -0500 -@@ -27,12 +27,12 @@ - -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 - - # Stage 2 and Stage 1.5's. --pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) - - EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec - - if DISKLESS_SUPPORT --pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ -+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ - ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ - reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \ - nbgrub pxegrub -@@ -43,7 +43,7 @@ - reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \ - xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec - else --pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ -+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ - ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ - reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 - noinst_DATA = pre_stage2 start start_eltorito -@@ -112,7 +112,7 @@ - BUILT_SOURCES = stage2_size.h - endif - --CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES) -+CLEANFILES = $(pkgdata_DATA) $(noinst_DATA) $(BUILT_SOURCES) - - stage2_size.h: pre_stage2 - -rm -f stage2_size.h diff --git a/src/patches/grub-0.97-disk_geometry-1.patch b/src/patches/grub-0.97-disk_geometry-1.patch deleted file mode 100644 index e09686d..0000000 --- a/src/patches/grub-0.97-disk_geometry-1.patch +++ /dev/null @@ -1,892 +0,0 @@ -Submitted By: Jim Gifford jim@linuxfromscratch.org -Date: 05-28-2006 -Initial Package Version: 0.97 -Upstream Status: Unknown -Origin: Fedora and Mandriva -Description: This patch fixes issues with disk geometry not being - detected properly. Part of this patch also fixes - gcc 4 compile errors, which are a part of the issue. - -diff -Naur grub-0.97.orig/configure grub-0.97/configure ---- grub-0.97.orig/configure 2005-05-07 19:48:12.000000000 -0700 -+++ grub-0.97/configure 2006-05-28 20:29:36.025466751 -0700 -@@ -3485,9 +3485,9 @@ - echo "$as_me:$LINENO: result: $size_flag" >&5 - echo "${ECHO_T}$size_flag" >&6 - if test "x$size_flag" = xyes; then -- STAGE2_CFLAGS="-Os" -+ STAGE2_CFLAGS="-Os -fno-strict-aliasing" - else -- STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops" -+ STAGE2_CFLAGS="-O2 -fno-strict-aliasing -fno-strength-reduce -fno-unroll-loops" - fi - # OpenBSD has a GCC extension for protecting applications from - # stack smashing attacks, but GRUB doesn't want this feature. -diff -Naur grub-0.97.orig/configure.ac grub-0.97/configure.ac ---- grub-0.97.orig/configure.ac 2005-05-07 19:36:03.000000000 -0700 -+++ grub-0.97/configure.ac 2006-05-28 20:28:41.538819726 -0700 -@@ -93,9 +93,9 @@ - CFLAGS=$saved_CFLAGS - ]) - if test "x$size_flag" = xyes; then -- STAGE2_CFLAGS="-Os" -+ STAGE2_CFLAGS="-Os -fno-strict-aliasing" - else -- STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops" -+ STAGE2_CFLAGS="-O2 -fno-strict-aliasing -fno-strength-reduce -fno-unroll-loops" - fi - # OpenBSD has a GCC extension for protecting applications from - # stack smashing attacks, but GRUB doesn't want this feature. -diff -Naur grub-0.97.orig/lib/device.c grub-0.97/lib/device.c ---- grub-0.97.orig/lib/device.c 2005-03-27 15:14:25.000000000 -0800 -+++ grub-0.97/lib/device.c 2006-05-28 20:34:03.546804777 -0700 -@@ -131,6 +131,152 @@ - #include <shared.h> - #include <device.h> - -+#if defined(__linux__) -+/* The 2.6 kernel has removed all of the geometry handling for IDE drives -+ * that did fixups for LBA, etc. This means that the geometry we get -+ * with the ioctl has a good chance of being wrong. So, we get to -+ * also know about partition tables and try to read what the geometry -+ * is there. *grumble* Very closely based on code from cfdisk -+ */ -+static void get_kernel_geometry(int fd, long long *cyl, int *heads, int *sectors) { -+ struct hd_geometry hdg; -+ -+ if (ioctl (fd, HDIO_GETGEO, &hdg)) -+ return; -+ -+ *cyl = hdg.cylinders; -+ *heads = hdg.heads; -+ *sectors = hdg.sectors; -+} -+ -+struct partition { -+ unsigned char boot_ind; /* 0x80 - active */ -+ unsigned char head; /* starting head */ -+ unsigned char sector; /* starting sector */ -+ unsigned char cyl; /* starting cylinder */ -+ unsigned char sys_ind; /* What partition type */ -+ unsigned char end_head; /* end head */ -+ unsigned char end_sector; /* end sector */ -+ unsigned char end_cyl; /* end cylinder */ -+ unsigned char start4[4]; /* starting sector counting from 0 */ -+ unsigned char size4[4]; /* nr of sectors in partition */ -+}; -+ -+#define ALIGNMENT 2 -+typedef union { -+ struct { -+ unsigned char align[ALIGNMENT]; -+ unsigned char b[SECTOR_SIZE]; -+ } c; -+ struct { -+ unsigned char align[ALIGNMENT]; -+ unsigned char buffer[0x1BE]; -+ struct partition part[4]; -+ unsigned char magicflag[2]; -+ } p; -+} partition_table; -+ -+#define PART_TABLE_FLAG0 0x55 -+#define PART_TABLE_FLAG1 0xAA -+ -+static void -+get_partition_table_geometry(partition_table *bufp, long long *cyl, int *heads, -+ int *sectors) { -+ struct partition *p; -+ int i,h,s,hh,ss; -+ int first = 1; -+ int bad = 0; -+ -+ if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 || -+ bufp->p.magicflag[1] != PART_TABLE_FLAG1) { -+ /* Matthew Wilcox: slightly friendlier version of -+ fatal(_("Bad signature on partition table"), 3); -+ */ -+ fprintf(stderr, "Unknown partition table signature\n"); -+ return; -+ } -+ -+ hh = ss = 0; -+ for (i=0; i<4; i++) { -+ p = &(bufp->p.part[i]); -+ if (p->sys_ind != 0) { -+ h = p->end_head + 1; -+ s = (p->end_sector & 077); -+ if (first) { -+ hh = h; -+ ss = s; -+ first = 0; -+ } else if (hh != h || ss != s) -+ bad = 1; -+ } -+ } -+ -+ if (!first && !bad) { -+ *heads = hh; -+ *sectors = ss; -+ } -+} -+ -+static long long my_lseek (unsigned int fd, long long offset, -+ unsigned int origin) -+{ -+#if defined(__linux__) && (!defined(__GLIBC__) || \ -+ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) -+ /* Maybe libc doesn't have large file support. */ -+ loff_t offset, result; -+ static int _llseek (uint filedes, ulong hi, ulong lo, -+ loff_t *res, uint wh); -+ _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, -+ loff_t *, res, uint, wh); -+ -+ if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET) < 0) -+ return (long long) -1; -+ return result; -+#else -+ return lseek(fd, offset, SEEK_SET); -+#endif -+} -+ -+static void get_linux_geometry (int fd, struct geometry *geom) { -+ long long kern_cyl = 0; int kern_head = 0, kern_sectors = 0; -+ long long pt_cyl = 0; int pt_head = 0, pt_sectors = 0; -+ partition_table bufp; -+ char *buff, *buf_unaligned; -+ -+ buf_unaligned = malloc(sizeof(partition_table) + 4095); -+ buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); -+ -+ get_kernel_geometry(fd, &kern_cyl, &kern_head, &kern_sectors); -+ -+ if (my_lseek (fd, 0*SECTOR_SIZE, SEEK_SET) < 0) { -+ fprintf(stderr, "Unable to seek"); -+ } -+ -+ if (read(fd, buff, SECTOR_SIZE) == SECTOR_SIZE) { -+ memcpy(bufp.c.b, buff, SECTOR_SIZE); -+ get_partition_table_geometry(&bufp, &pt_cyl, &pt_head, &pt_sectors); -+ } else { -+ fprintf(stderr, "Unable to read partition table: %s\n", strerror(errno)); -+ } -+ -+ if (pt_head && pt_sectors) { -+ int cyl_size; -+ -+ geom->heads = pt_head; -+ geom->sectors = pt_sectors; -+ cyl_size = pt_head * pt_sectors; -+ geom->cylinders = geom->total_sectors/cyl_size; -+ } else { -+ geom->heads = kern_head; -+ geom->sectors = kern_sectors; -+ geom->cylinders = kern_cyl; -+ } -+ -+ return; -+} -+#endif -+ - /* Get the geometry of a drive DRIVE. */ - void - get_drive_geometry (struct geometry *geom, char **map, int drive) -@@ -151,21 +297,16 @@ - #if defined(__linux__) - /* Linux */ - { -- struct hd_geometry hdg; - unsigned long nr; -- -- if (ioctl (fd, HDIO_GETGEO, &hdg)) -- goto fail; - - if (ioctl (fd, BLKGETSIZE, &nr)) - goto fail; - - /* Got the geometry, so save it. */ -- geom->cylinders = hdg.cylinders; -- geom->heads = hdg.heads; -- geom->sectors = hdg.sectors; - geom->total_sectors = nr; -- -+ get_linux_geometry(fd, geom); -+ if (!geom->heads && !geom->cylinders && !geom->sectors) -+ goto fail; - goto success; - } - -@@ -844,6 +985,7 @@ - { - char dev[PATH_MAX]; /* XXX */ - int fd; -+ off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; - - if ((partition & 0x00FF00) != 0x00FF00) - { -@@ -870,35 +1012,13 @@ - errnum = ERR_NO_PART; - return 0; - } -- --#if defined(__linux__) && (!defined(__GLIBC__) || \ -- ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) -- /* Maybe libc doesn't have large file support. */ -- { -- loff_t offset, result; -- static int _llseek (uint filedes, ulong hi, ulong lo, -- loff_t *res, uint wh); -- _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, -- loff_t *, res, uint, wh); - -- offset = (loff_t) sector * (loff_t) SECTOR_SIZE; -- if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET)) -- { -- errnum = ERR_DEV_VALUES; -- return 0; -- } -- } --#else -- { -- off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; - -- if (lseek (fd, offset, SEEK_SET) != offset) -- { -- errnum = ERR_DEV_VALUES; -- return 0; -- } -- } --#endif -+ if (my_lseek(fd, offset, SEEK_SET) != offset) -+ { -+ errnum = ERR_DEV_VALUES; -+ return 0; -+ } - - if (write (fd, buf, size * SECTOR_SIZE) != (size * SECTOR_SIZE)) - { -diff -Naur grub-0.97.orig/stage2/Makefile.am grub-0.97/stage2/Makefile.am ---- grub-0.97.orig/stage2/Makefile.am 2005-02-02 12:37:35.000000000 -0800 -+++ grub-0.97/stage2/Makefile.am 2006-05-28 20:28:41.590818435 -0700 -@@ -24,7 +24,8 @@ - -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ - -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ - -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \ -- -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -+ -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 \ -+ -fno-strict-aliasing - - # Stage 2 and Stage 1.5's. - pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -diff -Naur grub-0.97.orig/stage2/boot.c grub-0.97/stage2/boot.c ---- grub-0.97.orig/stage2/boot.c 2004-03-30 03:44:08.000000000 -0800 -+++ grub-0.97/stage2/boot.c 2006-05-28 20:33:30.123638792 -0700 -@@ -55,7 +55,7 @@ - pu; - /* presuming that MULTIBOOT_SEARCH is large enough to encompass an - executable header */ -- unsigned char buffer[MULTIBOOT_SEARCH]; -+ char buffer[MULTIBOOT_SEARCH]; - - /* sets the header pointer to point to the beginning of the - buffer by default */ -@@ -98,7 +98,7 @@ - /* ELF loading supported if multiboot, FreeBSD and NetBSD. */ - if ((type == KERNEL_TYPE_MULTIBOOT - || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD -- || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0 -+ || grub_strcmp ((char *) pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0 - || suggested_type == KERNEL_TYPE_NETBSD) - && len > sizeof (Elf32_Ehdr) - && BOOTABLE_I386_ELF ((*((Elf32_Ehdr *) buffer)))) -@@ -824,8 +824,12 @@ - moveto = (mbi.mem_upper + 0x400) << 10; - - moveto = (moveto - len) & 0xfffff000; -+#if 0 - max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203 - ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS); -+#else -+ max_addr = LINUX_INITRD_MAX_ADDRESS; -+#endif - if (moveto + len >= max_addr) - moveto = (max_addr - len) & 0xfffff000; - -diff -Naur grub-0.97.orig/stage2/disk_io.c grub-0.97/stage2/disk_io.c ---- grub-0.97.orig/stage2/disk_io.c 2004-05-23 09:35:24.000000000 -0700 -+++ grub-0.97/stage2/disk_io.c 2006-05-28 20:28:41.582818634 -0700 -@@ -127,12 +127,19 @@ - int filepos; - int filemax; - --static inline unsigned long --log2 (unsigned long word) -+#define log2(n) ffz(~(n)) -+ -+/* include/asm-i386/bitops.h */ -+/* -+ * ffz = Find First Zero in word. Undefined if no zero exists, -+ * so code should check against ~0UL first.. -+ */ -+static __inline__ unsigned long -+ffz (unsigned long word) - { -- asm volatile ("bsfl %1,%0" -- : "=r" (word) -- : "r" (word)); -+ __asm__ ("bsfl %1,%0" -+: "=r" (word) -+: "r" (~word)); - return word; - } - -diff -Naur grub-0.97.orig/stage2/freebsd.h grub-0.97/stage2/freebsd.h ---- grub-0.97.orig/stage2/freebsd.h 2003-07-09 04:45:52.000000000 -0700 -+++ grub-0.97/stage2/freebsd.h 2006-05-28 20:28:41.582818634 -0700 -@@ -78,7 +78,7 @@ - struct bootinfo - { - unsigned int bi_version; -- unsigned char *bi_kernelname; -+ char *bi_kernelname; - struct nfs_diskless *bi_nfs_diskless; - /* End of fields that are always present. */ - #define bi_endcommon bi_n_bios_used -diff -Naur grub-0.97.orig/stage2/fsys_fat.c grub-0.97/stage2/fsys_fat.c ---- grub-0.97.orig/stage2/fsys_fat.c 2005-03-15 08:52:00.000000000 -0800 -+++ grub-0.97/stage2/fsys_fat.c 2006-05-28 20:28:41.582818634 -0700 -@@ -54,12 +54,19 @@ - - #define FAT_CACHE_SIZE 2048 - -+#define log2(n) ffz(~(n)) -+ -+/* include/asm-i386/bitops.h */ -+/* -+ * ffz = Find First Zero in word. Undefined if no zero exists, -+ * so code should check against ~0UL first.. -+ */ - static __inline__ unsigned long --log2 (unsigned long word) -+ffz (unsigned long word) - { - __asm__ ("bsfl %1,%0" -- : "=r" (word) -- : "r" (word)); -+: "=r" (word) -+: "r" (~word)); - return word; - } - -diff -Naur grub-0.97.orig/stage2/fsys_iso9660.c grub-0.97/stage2/fsys_iso9660.c ---- grub-0.97.orig/stage2/fsys_iso9660.c 2004-05-11 05:11:19.000000000 -0700 -+++ grub-0.97/stage2/fsys_iso9660.c 2006-05-28 20:28:41.582818634 -0700 -@@ -55,13 +55,19 @@ - #define RRCONT_BUF ((unsigned char *)(FSYS_BUF + 6144)) - #define NAME_BUF ((unsigned char *)(FSYS_BUF + 8192)) - -+#define log2(n) ffz(~(n)) - --static inline unsigned long --log2 (unsigned long word) -+/* include/asm-i386/bitops.h */ -+/* -+ * ffz = Find First Zero in word. Undefined if no zero exists, -+ * so code should check against ~0UL first.. -+ */ -+static __inline__ unsigned long -+ffz (unsigned long word) - { -- asm volatile ("bsfl %1,%0" -- : "=r" (word) -- : "r" (word)); -+ __asm__ ("bsfl %1,%0" -+: "=r" (word) -+: "r" (~word)); - return word; - } - -@@ -120,7 +126,7 @@ - break; - /* check ISO_VD_PRIMARY and ISO_STANDARD_ID */ - if (PRIMDESC->type.l == ISO_VD_PRIMARY -- && !memcmp(PRIMDESC->id, ISO_STANDARD_ID, sizeof(PRIMDESC->id))) -+ && !memcmp((char *) PRIMDESC->id, ISO_STANDARD_ID, sizeof(PRIMDESC->id))) - { - ISO_SUPER->vol_sector = sector; - INODE->file_start = 0; -@@ -175,7 +181,7 @@ - for (; idr->length.l > 0; - idr = (struct iso_directory_record *)((char *)idr + idr->length.l) ) - { -- const char *name = idr->name; -+ const u_int8_t *name = idr->name; - unsigned int name_len = idr->name_len.l; - - file_type = (idr->flags.l & 2) ? ISO_DIRECTORY : ISO_REGULAR; -@@ -198,7 +204,7 @@ - rr_len = (idr->length.l - idr->name_len.l - - sizeof(struct iso_directory_record) - + sizeof(idr->name)); -- rr_ptr.ptr = ((unsigned char *)idr + idr->name_len.l -+ rr_ptr.ptr = ((char *)idr + idr->name_len.l - + sizeof(struct iso_directory_record) - - sizeof(idr->name)); - if (rr_ptr.i & 1) -@@ -331,9 +337,9 @@ - memcpy(NAME_BUF, name, name_len); - name = NAME_BUF; - } -- rr_ptr.ptr = RRCONT_BUF + ce_ptr->u.ce.offset.l; -+ rr_ptr.ptr = (char *) RRCONT_BUF + ce_ptr->u.ce.offset.l; - rr_len = ce_ptr->u.ce.size.l; -- if (!iso9660_devread(ce_ptr->u.ce.extent.l, 0, ISO_SECTOR_SIZE, RRCONT_BUF)) -+ if (!iso9660_devread(ce_ptr->u.ce.extent.l, 0, ISO_SECTOR_SIZE, (char *) RRCONT_BUF)) - { - errnum = 0; /* this is not fatal. */ - break; -@@ -344,7 +350,7 @@ - - filemax = MAXINT; - if (name_len >= pathlen -- && !memcmp(name, dirname, pathlen)) -+ && !memcmp((char *) name, dirname, pathlen)) - { - if (dirname[pathlen] == '/' || !print_possibilities) - { -@@ -381,7 +387,7 @@ - print_possibilities = -print_possibilities; - memcpy(NAME_BUF, name, name_len); - NAME_BUF[name_len] = '\0'; -- print_a_completion (NAME_BUF); -+ print_a_completion ((char *) NAME_BUF); - #endif - } - } -diff -Naur grub-0.97.orig/stage2/fsys_reiserfs.c grub-0.97/stage2/fsys_reiserfs.c ---- grub-0.97.orig/stage2/fsys_reiserfs.c 2004-02-18 14:09:10.000000000 -0800 -+++ grub-0.97/stage2/fsys_reiserfs.c 2006-05-28 20:28:41.586818535 -0700 -@@ -365,13 +365,19 @@ - #define JOURNAL_START ((__u32 *) (INFO + 1)) - #define JOURNAL_END ((__u32 *) (FSYS_BUF + FSYS_BUFLEN)) - -+#define log2(n) ffz(~(n)) - -+/* include/asm-i386/bitops.h */ -+/* -+ * ffz = Find First Zero in word. Undefined if no zero exists, -+ * so code should check against ~0UL first.. -+ */ - static __inline__ unsigned long --log2 (unsigned long word) -+ffz (unsigned long word) - { - __asm__ ("bsfl %1,%0" -- : "=r" (word) -- : "r" (word)); -+: "=r" (word) -+: "r" (~word)); - return word; - } - -diff -Naur grub-0.97.orig/stage2/fsys_vstafs.c grub-0.97/stage2/fsys_vstafs.c ---- grub-0.97.orig/stage2/fsys_vstafs.c 2003-07-09 04:45:53.000000000 -0700 -+++ grub-0.97/stage2/fsys_vstafs.c 2006-05-28 20:28:41.586818535 -0700 -@@ -186,35 +186,35 @@ - int - vstafs_read (char *addr, int len) - { -- struct alloc *a; -+ struct alloc *b; - int size, ret = 0, offset, curr_len = 0; -- int curr_ext; -+ int curr_exten; - char extent; - int ext_size; - char *curr_pos; - - get_file_info (f_sector); - size = FILE_INFO->len-VSTAFS_START_DATA; -- a = FILE_INFO->blocks; -+ b = FILE_INFO->blocks; - - if (filepos > 0) - { -- if (filepos < a[0].a_len * 512 - VSTAFS_START_DATA) -+ if (filepos < b[0].a_len * 512 - VSTAFS_START_DATA) - { - offset = filepos + VSTAFS_START_DATA; - extent = 0; -- curr_len = a[0].a_len * 512 - offset - filepos; -+ curr_len = b[0].a_len * 512 - offset - filepos; - } - else - { -- ext_size = a[0].a_len * 512 - VSTAFS_START_DATA; -+ ext_size = b[0].a_len * 512 - VSTAFS_START_DATA; - offset = filepos - ext_size; - extent = 1; - do - { - curr_len -= ext_size; - offset -= ext_size; -- ext_size = a[extent+1].a_len * 512; -+ ext_size = b[extent+1].a_len * 512; - } - while (extent < FILE_INFO->extents && offset>ext_size); - } -@@ -223,16 +223,16 @@ - { - offset = VSTAFS_START_DATA; - extent = 0; -- curr_len = a[0].a_len * 512 - offset; -+ curr_len = b[0].a_len * 512 - offset; - } - - curr_pos = addr; - if (curr_len > len) - curr_len = len; - -- for (curr_ext=extent; -- curr_ext < FILE_INFO->extents; -- curr_len = a[curr_ext].a_len * 512, curr_pos += curr_len, curr_ext++) -+ for (curr_exten = extent; -+ curr_exten < FILE_INFO->extents; -+ curr_len = b[curr_exten].a_len * 512, curr_pos += curr_len, curr_exten++) - { - ret += curr_len; - size -= curr_len; -@@ -242,7 +242,7 @@ - curr_len += size; - } - -- devread (a[curr_ext].a_start,offset, curr_len, curr_pos); -+ devread (b[curr_exten].a_start, offset, curr_len, curr_pos); - offset = 0; - } - -diff -Naur grub-0.97.orig/stage2/fsys_xfs.c grub-0.97/stage2/fsys_xfs.c ---- grub-0.97.orig/stage2/fsys_xfs.c 2005-05-07 19:15:55.000000000 -0700 -+++ grub-0.97/stage2/fsys_xfs.c 2006-05-28 20:28:41.586818535 -0700 -@@ -97,7 +97,7 @@ - return ino & XFS_INO_MASK(XFS_INO_OFFSET_BITS); - } - --static inline __const__ xfs_uint16_t -+static inline __attribute__((const)) xfs_uint16_t - le16 (xfs_uint16_t x) - { - __asm__("xchgb %b0,%h0" \ -@@ -106,7 +106,7 @@ - return x; - } - --static inline __const__ xfs_uint32_t -+static inline __attribute__((const)) xfs_uint32_t - le32 (xfs_uint32_t x) - { - #if 0 -@@ -122,7 +122,7 @@ - return x; - } - --static inline __const__ xfs_uint64_t -+static inline __attribute__((const)) xfs_uint64_t - le64 (xfs_uint64_t x) - { - xfs_uint32_t h = x >> 32; -@@ -368,7 +368,7 @@ - default: - namelen = sfe->namelen; - *ino = sf_ino ((char *)sfe, namelen); -- name = sfe->name; -+ name = (char *) sfe->name; - sfe = (xfs_dir2_sf_entry_t *) - ((char *)sfe + namelen + 11 - xfs.i8param); - } -diff -Naur grub-0.97.orig/stage2/gunzip.c grub-0.97/stage2/gunzip.c ---- grub-0.97.orig/stage2/gunzip.c 2003-07-09 04:45:53.000000000 -0700 -+++ grub-0.97/stage2/gunzip.c 2006-05-28 20:28:41.586818535 -0700 -@@ -277,7 +277,7 @@ - * is a compressed file, and simply mark it as such. - */ - if (no_decompression -- || grub_read (buf, 10) != 10 -+ || grub_read ((char *) buf, 10) != 10 - || ((*((unsigned short *) buf) != GZIP_HDR_LE) - && (*((unsigned short *) buf) != OLD_GZIP_HDR_LE))) - { -@@ -293,7 +293,7 @@ - if (buf[2] != DEFLATED - || (buf[3] & UNSUPP_FLAGS) - || ((buf[3] & EXTRA_FIELD) -- && (grub_read (buf, 2) != 2 -+ && (grub_read ((char *) buf, 2) != 2 - || bad_field (*((unsigned short *) buf)))) - || ((buf[3] & ORIG_NAME) && bad_field (-1)) - || ((buf[3] & COMMENT) && bad_field (-1))) -@@ -308,7 +308,7 @@ - - filepos = filemax - 8; - -- if (grub_read (buf, 8) != 8) -+ if (grub_read ((char *) buf, 8) != 8) - { - if (! errnum) - errnum = ERR_BAD_GZIP_HEADER; -@@ -485,8 +485,8 @@ - - #define INBUFSIZ 0x2000 - --static uch inbuf[INBUFSIZ]; --static int bufloc; -+static unsigned char inbuf[INBUFSIZ]; -+static int bufloc; - - static int - get_byte (void) -@@ -494,7 +494,7 @@ - if (filepos == gzip_data_offset || bufloc == INBUFSIZ) - { - bufloc = 0; -- grub_read (inbuf, INBUFSIZ); -+ grub_read ((char *) inbuf, INBUFSIZ); - } - - return inbuf[bufloc++]; -@@ -925,7 +925,7 @@ - unsigned m; /* mask for bit lengths table */ - unsigned n; /* number of lengths to get */ - unsigned nb; /* number of bit length codes */ -- unsigned nl; /* number of literal/length codes */ -+ unsigned nc; /* number of literal/length codes */ - unsigned nd; /* number of distance codes */ - unsigned ll[286 + 30]; /* literal/length and distance code lengths */ - register ulg b; /* bit buffer */ -@@ -937,7 +937,7 @@ - - /* read in table lengths */ - NEEDBITS (5); -- nl = 257 + ((unsigned) b & 0x1f); /* number of literal/length codes */ -+ nc = 257 + ((unsigned) b & 0x1f); /* number of literal/length codes */ - DUMPBITS (5); - NEEDBITS (5); - nd = 1 + ((unsigned) b & 0x1f); /* number of distance codes */ -@@ -945,7 +945,7 @@ - NEEDBITS (4); - nb = 4 + ((unsigned) b & 0xf); /* number of bit length codes */ - DUMPBITS (4); -- if (nl > 286 || nd > 30) -+ if (nc > 286 || nd > 30) - { - errnum = ERR_BAD_GZIP_DATA; - return; -@@ -970,7 +970,7 @@ - } - - /* read in literal and distance code lengths */ -- n = nl + nd; -+ n = nc + nd; - m = mask_bits[bl]; - i = l = 0; - while ((unsigned) i < n) -@@ -1034,7 +1034,7 @@ - - /* build the decoding tables for literal/length and distance codes */ - bl = lbits; -- if ((i = huft_build (ll, nl, 257, cplens, cplext, &tl, &bl)) != 0) -+ if ((i = huft_build (ll, nc, 257, cplens, cplext, &tl, &bl)) != 0) - { - #if 0 - if (i == 1) -@@ -1045,7 +1045,7 @@ - return; - } - bd = dbits; -- if ((i = huft_build (ll + nl, nd, 0, cpdist, cpdext, &td, &bd)) != 0) -+ if ((i = huft_build (ll + nc, nd, 0, cpdist, cpdext, &td, &bd)) != 0) - { - #if 0 - if (i == 1) -diff -Naur grub-0.97.orig/stage2/md5.c grub-0.97/stage2/md5.c ---- grub-0.97.orig/stage2/md5.c 2003-07-09 04:45:53.000000000 -0700 -+++ grub-0.97/stage2/md5.c 2006-05-28 20:28:41.590818435 -0700 -@@ -166,7 +166,7 @@ - inputlen -= 64 - buflen; - while (inputlen >= 64) - { -- md5_transform (input); -+ md5_transform ((unsigned char *) input); - input += 64; - inputlen -= 64; - } -@@ -211,7 +211,7 @@ - char *p; - int saltlen; - int i, n; -- unsigned char alt_result[16]; -+ char alt_result[16]; - unsigned char *digest; - - if (check) -diff -Naur grub-0.97.orig/stage2/start_eltorito.S grub-0.97/stage2/start_eltorito.S ---- grub-0.97.orig/stage2/start_eltorito.S 2004-03-27 08:14:20.000000000 -0800 -+++ grub-0.97/stage2/start_eltorito.S 2006-05-28 20:31:17.770936712 -0700 -@@ -40,9 +40,9 @@ - #define ABS(x) (x-_start+BOOTSEC_LOCATION) - - #ifdef STAGE1_5 --# define STAGE_ADDR 0x2000 -+# define STAGE_ADDR 0x2200 - #else --# define STAGE_ADDR 0x8000 -+# define STAGE_ADDR 0x8200 - #endif /* STAGE1_5 */ - - /* Print message string */ -@@ -71,12 +71,14 @@ - . = _start + 8 /* Pad to file offset 8 */ - - /* This table gets filled in by mkisofs using the -- -boot-info-table option */ --bi_pvd: .long 0xDEADBEEF /* LBA of primary volume descript */ --bi_file: .long 0xDEADBEEF /* LBA of boot file */ --bi_length: .long 0xDEADBEEF /* Length of boot file */ --bi_csum: .long 0xDEADBEEF /* Checksum of boot file */ --bi_reserved: .space (10*4) /* Reserved */ -+ -boot-info-table option If not, the values in this -+ table are default values that we can use to get us -+ what we need, at least under a certain set of assumptions. */ -+bi_pvd: .long 16 /* LBA of primary volume descript */ -+bi_file: .long 0 /* LBA of boot file */ -+bi_length: .long 0xDEADBEEF /* Length of boot file */ -+bi_csum: .long 0xDEADBEEF /* Checksum of boot file */ -+bi_reserved: .space (10*4) /* Reserved */ - - real_start: - xor %ax, %ax -@@ -92,10 +94,28 @@ - /* save drive reference first thing! */ - mov %dl, ABS(BootDrive) - -- /* print a notification message on the screen */ -- MSG(notification_string) -+ /* check if machine support IBM/MS int 13h extensions */ -+ mov $0x41, %ah -+ mov $0x55AA, %bx -+ int $0x13 -+ jnc load_image -+ -+ /* bios doesn't support int 13h extensions, print error messages */ -+ MSG(int13_error_string1) -+ MSG(notification_done) -+ MSG(int13_error_string2) -+ MSG(notification_done) -+ MSG(int13_error_string3) -+ MSG(notification_done) -+ /* even when bios says that it doesn't support int 13h -+ extensions, do not stop here and try to load image anyway, -+ because some bioses says that there isn't support for -+ extended functions but have the needed extended read function -+ (int 13h, function AH=42h) */ - - load_image: -+ /* print a notification message on the screen */ -+ MSG(notification_string) - /* Set up boot file sector, size, load address */ - mov ABS(bi_length), %eax - add $(ISO_SECTOR_SIZE-1), %eax -@@ -105,6 +125,8 @@ - mov %bx, %es - xor %bx, %bx - mov ABS(bi_file), %eax -+ inc %eax /* do not reload the first sector (this code) */ -+ dec %bp /* this way we have more room for code in stage1 */ - call getlinsec - mov %ds, %ax - mov %ax, %es -@@ -115,7 +137,7 @@ - mov $ABS(firstlist - BOOTSEC_LISTSIZE), %si - mov (%si), %ebp - mov ABS(BootDrive), %dl /* this makes sure %dl is our "boot" drive */ -- ljmp $0, $(STAGE_ADDR+SECTOR_SIZE) /* jump to main() in asm.S */ -+ ljmp $0, $(STAGE_ADDR) /* jump to main() in asm.S */ - - /* go here when you need to stop the machine hard after an error condition */ - stop: jmp stop -@@ -171,11 +193,11 @@ - */ - xint13: - movb $6, ABS(RetryCount) -- pushal - .try: -+ pushal - int $0x13 - jc 1f -- add $(8*4), %sp /* Clean up stack */ -+ popal /* Clean up stack */ - ret - 1: - mov %ah, %dl /* Save error code */ -@@ -276,6 +298,10 @@ - - read_error_string: .string "Read error 0x" - -+int13_error_string1: .string "Support for IBM/MS INT 13h extensions not found" -+int13_error_string2: .string "GRUB cannot be loaded if int 13h/function AH=42h isn't present" -+int13_error_string3: .string "Trying to load stage 2 anyway..." -+ - /* - * EBIOS disk address packet - */ -@@ -306,7 +332,8 @@ - .word 0 - .word 0 - -- . = _start + SECTOR_SIZE - BOOTSEC_LISTSIZE -+ /* size of the code we can place between main body and fixed top location */ -+ . = _start + 1536 - BOOTSEC_LISTSIZE - - /* fill the first data listing with the default */ - blocklist_default_start:/* this is the sector start parameter, in logical -@@ -321,6 +348,12 @@ - #endif - blocklist_default_seg: /* this is the segment of the starting address - to load the data into */ -- .word (STAGE_ADDR + SECTOR_SIZE) >> 4 -+ .word (STAGE_ADDR) >> 4 - - firstlist: /* this label has to be after the list data!!! */ -+ -+ /* this is a workaround to allow more code to be added in stage1, -+ it allows more code to be added for this stage, but for this -+ we can't reload the first sector. So we have to align the code -+ to ISO_SECTOR_SIZE. */ -+ . = _start + ISO_SECTOR_SIZE -diff -Naur grub-0.97.orig/util/grub-install.in grub-0.97/util/grub-install.in ---- grub-0.97.orig/util/grub-install.in 2004-07-24 11:57:31.000000000 -0700 -+++ grub-0.97/util/grub-install.in 2006-05-28 20:30:31.484088268 -0700 -@@ -336,6 +336,10 @@ - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - -+ # Before all invocations of the grub shell, call sync to make sure -+ # the raw device is in sync with any bufferring in filesystems. -+ sync -+ - $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file - quit - EOF -@@ -450,6 +454,10 @@ - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - -+# Before all invocations of the grub shell, call sync to make sure -+# the raw device is in sync with any bufferring in filesystems. -+sync -+ - # Now perform the installation. - $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file - root $root_drive diff --git a/src/patches/grub-0.97-dmraid-partition-names.patch b/src/patches/grub-0.97-dmraid-partition-names.patch deleted file mode 100644 index 9390b29..0000000 --- a/src/patches/grub-0.97-dmraid-partition-names.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- grub-0.97/lib/device.c.dmraid-partition-names 2006-02-13 18:53:59.000000000 -0500 -+++ grub-0.97/lib/device.c 2006-02-13 18:56:04.000000000 -0500 -@@ -1106,6 +1106,7 @@ - /* Compaq smart and others */ - (strncmp(dev, "/dev/ida/", 9) == 0 || - strncmp(dev, "/dev/ataraid/", 13) == 0 || -+ strncmp(dev, "/dev/mapper/", 12) == 0 || - strncmp(dev, "/dev/cciss/", 11) == 0 || - strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "", - ((partition >> 16) & 0xFF) + 1); diff --git a/src/patches/grub-0.97-dmraid-recheck-bad.patch b/src/patches/grub-0.97-dmraid-recheck-bad.patch deleted file mode 100644 index 49b33ae..0000000 --- a/src/patches/grub-0.97-dmraid-recheck-bad.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- grub-0.97/util/grub-install.in.dmraid-recheck-bad 2006-01-13 17:04:26.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2006-01-13 17:05:00.000000000 -0500 -@@ -415,6 +415,14 @@ - grubdir=${bootdir}/grub - device_map=${grubdir}/device.map - -+if [ "$recheck" == "yes" ]; then -+ if grep 'mapper' ${device_map} >/dev/null; then -+ echo 'grub-install does not support reprobing of device.map when' 1>&2 -+ echo 'using a device-mapper based boot device.' 1>&2 -+ exit 1 -+ fi -+fi -+ - # if they just want the images copied, copy the images and then exit - if test $justcopy = yes; then - copy_images diff --git a/src/patches/grub-0.97-dmraid.patch b/src/patches/grub-0.97-dmraid.patch deleted file mode 100644 index 5aad8c4..0000000 --- a/src/patches/grub-0.97-dmraid.patch +++ /dev/null @@ -1,92 +0,0 @@ ---- grub-0.97/util/grub-install.in.dmraid 2006-01-13 16:40:24.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2006-01-13 16:40:37.000000000 -0500 -@@ -101,17 +101,24 @@ - # Break the device name into the disk part and the partition part. - case "$host_os" in - linux*) -- tmp_disk=`echo "$1" | sed -e 's%([sh]d[a-z])[0-9]*$%\1%' \ -+ tmp_disk=`echo "$1" | grep -v '/mapper/control$' | -+ grep -v '/mapper/[[:alnum:]]+-[[:alnum:]]+$' | uniq | -+ sed -e 's%([sh]d[a-z])[0-9]*$%\1%' \ - -e 's%(d[0-9]*)p[0-9]*$%\1%' \ - -e 's%(fd[0-9]*)$%\1%' \ - -e 's%/part[0-9]*$%/disc%' \ -- -e 's%(c[0-7]d[0-9]*).*$%\1%'` -- tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]([0-9]*)$%\1%' \ -+ -e 's%(c[0-7]d[0-9]*).*$%\1%' \ -+ -e 's%(/mapper/[[:alpha:]]+_[[:alpha:]]+)[[:digit:]]+$%\1%'` -+ tmp_part=`echo "$1" | grep -v '/mapper/control$' | -+ grep -v '/mapper/[[:alnum:]]+-[[:alnum:]]+$' | uniq | -+ sed -e 's%.*/[sh]d[a-z]([0-9]*)$%\1%' \ - -e 's%.*d[0-9]*p%%' \ - -e 's%.*/fd[0-9]*$%%' \ - -e 's%.*/floppy/[0-9]*$%%' \ - -e 's%.*/(disc|part([0-9]*))$%\2%' \ -- -e 's%.*c[0-7]d[0-9]*p%%'` -+ -e 's%.*c[0-7]d[0-9]*p%%' \ -+ -e 's%.*/mapper/[[:alpha:]]+_[[:alpha:]]+([[:digit:]]+)$%\1%' | -+ grep -v '.*/mapper/.*'` - ;; - gnu*) - tmp_disk=`echo "$1" | sed 's%([sh]d[0-9]*).*%\1%'` -@@ -253,6 +260,43 @@ - return 0 - } - -+# Usage: stat_device file -+# Find major:minor of a device node. -+stat_device() { -+ majmin=`stat -c "%t:%T" "$1" 2>/dev/null` -+ if test -z "$majmin"; then -+ echo "Could not find device for $1" 2>&1 -+ exit 1 -+ fi -+ -+ echo "$majmin" -+} -+ -+# Usage: find_mapper_device file -+# Find a file in /dev/mapper with the same major:minor as the specified node. -+find_mapper_device() { -+ if [ -b "$1" ]; then -+ dev="$1" -+ else -+ mntpnt=`echo "$1" | sed 's,/,\\/,g'` -+ dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab` -+ fi -+ if test -z "$dev"; then -+ echo "Could not find device for $1" 2>&1 -+ exit 1 -+ fi -+ -+ majmin=`stat_device $dev` -+ for x in /dev/mapper/* ; do -+ devmajmin=`stat_device "$x"` -+ if [ "$majmin" == "$devmajmin" ]; then -+ echo "$x" -+ return 0 -+ fi -+ done -+ return 1 -+} -+ - # Usage: find_device file - # Find block device on which the file resides. - find_device () { -@@ -265,9 +309,14 @@ - exit 1 - fi - -- tmp_fname=`resolve_symlink $tmp_fname` -+ ret_fname=`resolve_symlink $tmp_fname` -+ tmp_fname=`find_mapper_device $ret_fname` -+ if test -n "$tmp_fname"; then -+ ret_fname="$tmp_fname" -+ fi - -- echo "$tmp_fname" -+ echo "$ret_fname" -+ return 0 - } - - copy_images() { diff --git a/src/patches/grub-0.97-install.in.patch b/src/patches/grub-0.97-install.in.patch deleted file mode 100644 index a9f2aef..0000000 --- a/src/patches/grub-0.97-install.in.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- grub-0.97/util/grub-install.in.install 2005-12-12 18:15:45.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2005-12-12 18:18:11.000000000 -0500 -@@ -324,6 +324,15 @@ - test -d "$bootdir" || mkdir "$bootdir" || exit 1 - test -d "$grubdir" || mkdir "$grubdir" || exit 1 - -+# Copy the GRUB images to the GRUB directory. -+for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -+ rm -f $file || exit 1 -+done -+for file in \ -+ ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do -+ cp -f $file ${grubdir} || exit 1 -+done -+ - # If --recheck is specified, remove the device map, if present. - if test $recheck = yes; then - rm -f $device_map -@@ -406,15 +415,6 @@ - exit 1 - fi - --# Copy the GRUB images to the GRUB directory. --for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -- rm -f $file || exit 1 --done --for file in \ -- ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do -- cp -f $file ${grubdir} || exit 1 --done -- - # Make a default file. - ${grub_set_default} --root-directory=${rootdir} default - diff --git a/src/patches/grub-0.97-mactel-kbd.patch b/src/patches/grub-0.97-mactel-kbd.patch deleted file mode 100644 index f1de19f..0000000 --- a/src/patches/grub-0.97-mactel-kbd.patch +++ /dev/null @@ -1,100 +0,0 @@ ---- grub-0.97/stage2/asm.S.mactel-kbd 2006-06-12 17:00:10.000000000 -0400 -+++ grub-0.97/stage2/asm.S 2006-06-12 17:03:38.000000000 -0400 -@@ -1651,7 +1651,30 @@ - jnz 3f - ret - --3: /* use keyboard controller */ -+3: /* -+ * try to switch gateA20 using PORT92, the "Fast A20 and Init" -+ * register -+ */ -+ mov $0x92, %dx -+ inb %dx, %al -+ /* skip the port92 code if it's unimplemented (read returns 0xff) */ -+ cmpb $0xff, %al -+ jz 6f -+ -+ /* set or clear bit1, the ALT_A20_GATE bit */ -+ movb 4(%esp), %ah -+ testb %ah, %ah -+ jz 4f -+ orb $2, %al -+ jmp 5f -+4: and $0xfd, %al -+ -+ /* clear the INIT_NOW bit; don't accidently reset the machine */ -+5: and $0xfe, %al -+ outb %al, %dx -+ -+ -+6: /* use keyboard controller */ - pushl %eax - - call gloop1 -@@ -1661,9 +1684,12 @@ - - gloopint1: - inb $K_STATUS -+ cmpb $0xff, %al -+ jz gloopint1_done - andb $K_IBUF_FUL, %al - jnz gloopint1 - -+gloopint1_done: - movb $KB_OUTPUT_MASK, %al - cmpb $0, 0x8(%esp) - jz gdoit -@@ -1684,6 +1710,8 @@ - - gloop1: - inb $K_STATUS -+ cmpb $0xff, %al -+ jz gloop2ret - andb $K_IBUF_FUL, %al - jnz gloop1 - -@@ -1994,8 +2022,25 @@ - call EXT_C(prot_to_real) - .code16 - -+.again: -+ mov $0x11, %ah /* poll kbd */ - int $0x16 - -+ jz .again -+#if 0 -+/* XXX handle serial here? -- pj */ -+ jnz .kbd -+#endif -+.kbd: -+ mov $0x10, %ah -+ int $0x16 -+ cmp $0xe0, %al -+ jnz .not_ext -+ xor %al, %al -+.not_ext: -+ and %al, %al -+ jz .func_key -+.func_key: - movw %ax, %dx /* real_to_prot uses %eax */ - call translate_keycode - call remap_ascii_char -@@ -2003,7 +2048,7 @@ - DATA32 call EXT_C(real_to_prot) - .code32 - -- movw %dx, %ax -+ mov %dx, %ax - - pop %ebp - ret -@@ -2029,7 +2074,7 @@ - call EXT_C(prot_to_real) /* enter real mode */ - .code16 - -- movb $0x1, %ah -+ movb $0x11, %ah - int $0x16 - - DATA32 jz notpending diff --git a/src/patches/grub-0.97-mdadm-path.patch b/src/patches/grub-0.97-mdadm-path.patch deleted file mode 100644 index fff301c..0000000 --- a/src/patches/grub-0.97-mdadm-path.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- grub-0.97/util/grub-install.in.mdadm-path 2005-12-12 18:42:23.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2005-12-12 18:44:15.000000000 -0500 -@@ -30,5 +30,6 @@ - pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor} - - grub_shell=${sbindir}/grub -+mdadm=${sbindir}/mdadm - log_file=/tmp/grub-install.log.$$ - img_file=/tmp/grub-install.img.$$ -@@ -217,7 +218,7 @@ - is_raid1_device () { - case "$host_os" in - linux*) -- level=`mdadm --query --detail $1 2>/dev/null | \ -+ level=`$mdadm --query --detail $1 2>/dev/null | \ - awk '/Raid Level :/ {print $4}'` - if [ "$level" = "raid1" ]; then - return 0 -@@ -236,7 +237,7 @@ - linux*) - if is_raid1_device $source_device ; then - list="" -- for device in `mdadm --query --detail "${source_device}" | \ -+ for device in `$mdadm --query --detail "${source_device}" | \ - awk '//dev/[^(md)]/ {print $7}'` ; do - list="$list $device" - done diff --git a/src/patches/grub-0.97-mpath.patch b/src/patches/grub-0.97-mpath.patch deleted file mode 100644 index 4b7edf3..0000000 --- a/src/patches/grub-0.97-mpath.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- grub-0.97/util/grub-install.in.mpath 2006-08-02 17:21:53.000000000 -0400 -+++ grub-0.97/util/grub-install.in 2006-08-02 17:23:23.000000000 -0400 -@@ -107,6 +107,7 @@ - -e 's%(fd[0-9]*)$%\1%' \ - -e 's%/part[0-9]*$%/disc%' \ - -e 's%(c[0-7]d[0-9]*).*$%\1%' \ -+ -e 's%(/mapper/[[:alpha:]]+[[:digit:]]+)p[[:digit:]]+$%\1%' \ - -e 's%(/mapper/[[:alpha:]]+_[[:alpha:]]+)[[:digit:]]+$%\1%'` - tmp_part=`echo "$1" | grep -v '/mapper/control$' | - grep -v '/mapper/[[:alnum:]]+-[[:alnum:]]+$' | uniq | -@@ -116,6 +117,7 @@ - -e 's%.*/floppy/[0-9]*$%%' \ - -e 's%.*/(disc|part([0-9]*))$%\2%' \ - -e 's%.*c[0-7]d[0-9]*p%%' \ -+ -e 's%.*/mapper/[[:alpha:]]+[[:digit:]]+p([[:digit:]]+)$%\1%' \ - -e 's%.*/mapper/[[:alpha:]]+_[[:alpha:]]+([[:digit:]]+)$%\1%' | - grep -v '.*/mapper/.*'` - ;; diff --git a/src/patches/grub-0.97-nx-multiinstall.patch b/src/patches/grub-0.97-nx-multiinstall.patch deleted file mode 100644 index f0e4ec0..0000000 --- a/src/patches/grub-0.97-nx-multiinstall.patch +++ /dev/null @@ -1,60 +0,0 @@ -2006-03-09 Alexandre Oliva oliva@gnu.org - - * lib/builtins.c (install_blocklist_helper): Move static - last_lenght... - (install_func_context): ... here. - (install_func): Reset it. - -Index: grub-0.97/stage2/builtins.c -=================================================================== ---- grub-0.97.orig/stage2/builtins.c 2006-03-09 10:26:41.000000000 -0300 -+++ grub-0.97/stage2/builtins.c 2006-03-09 11:36:18.000000000 -0300 -@@ -1926,11 +1926,13 @@ static struct { - int saved_sector; - int installaddr; - int installlist; -+ int last_length; - char *stage2_first_buffer; - } install_func_context = { - .saved_sector = 0, - .installaddr = 0, - .installlist = 0, -+ .last_length = SECTOR_SIZE, - .stage2_first_buffer = NULL, - }; - -@@ -1960,19 +1962,19 @@ install_blocklist_helper (int sector, in - int *installlist = &install_func_context.installlist; - char **stage2_first_buffer = &install_func_context.stage2_first_buffer; - /* Was the last sector full? */ -- static int last_length = SECTOR_SIZE; -+ int *last_length = &install_func_context.last_length; - - if (debug) - printf("[%d]", sector); - -- if (offset != 0 || last_length != SECTOR_SIZE) -+ if (offset != 0 || *last_length != SECTOR_SIZE) - { - /* We found a non-sector-aligned data block. */ - errnum = ERR_UNALIGNED; - return; - } - -- last_length = length; -+ *last_length = length; - - if (*((unsigned long *) (*installlist - 4)) - + *((unsigned short *) *installlist) != sector -@@ -2027,7 +2029,11 @@ install_func (char *arg, int flags) - int is_open = 0; - /* If LBA is forced? */ - int is_force_lba = 0; -+ int *last_length = &install_func_context.last_length; - -+ /* Reset state. */ -+ *last_length = SECTOR_SIZE; -+ - *stage2_first_buffer = old_sect + SECTOR_SIZE; - #ifdef GRUB_UTIL - /* If the Stage 2 is in a partition mounted by an OS, this will store diff --git a/src/patches/grub-0.97-nxstack.patch b/src/patches/grub-0.97-nxstack.patch deleted file mode 100644 index 92742cd..0000000 --- a/src/patches/grub-0.97-nxstack.patch +++ /dev/null @@ -1,615 +0,0 @@ ---- grub-0.97/stage2/shared.h.nxstack 2005-12-12 18:31:41.000000000 -0500 -+++ grub-0.97/stage2/shared.h 2005-12-12 18:31:42.000000000 -0500 -@@ -36,8 +36,8 @@ - - /* Maybe redirect memory requests through grub_scratch_mem. */ - #ifdef GRUB_UTIL --extern char *grub_scratch_mem; --# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem) -+extern void *grub_scratch_mem; -+# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem) - # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4) - #else - # define RAW_ADDR(x) (x) ---- grub-0.97/stage2/builtins.c.nxstack 2005-12-12 18:31:41.000000000 -0500 -+++ grub-0.97/stage2/builtins.c 2005-12-12 18:41:47.000000000 -0500 -@@ -131,62 +131,97 @@ - } - - -+/* blocklist_read_helper nee disk_read_blocklist_func was a nested -+ * function, to which pointers were taken and exposed globally. Even -+ * in the GNU-C nested functions extension, they have local linkage, -+ * and aren't guaranteed to be accessable *at all* outside of their -+ * containing scope. -+ * -+ * Above and beyond all of that, the variables within blocklist_func_context -+ * are originally local variables, with local (not even static) linkage, -+ * from within blocklist_func. These were each referenced by -+ * disk_read_blocklist_func, which is only called from other functions -+ * through a globally scoped pointer. -+ * -+ * The documentation in GCC actually uses the words "all hell will break -+ * loose" to describe this scenario. -+ * -+ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn -+ * about it (possibly because of the scoping madness?) -+ */ -+ -+static struct { -+ int start_sector; -+ int num_sectors; -+ int num_entries; -+ int last_length; -+} blocklist_func_context = { -+ .start_sector = 0, -+ .num_sectors = 0, -+ .num_entries = 0, -+ .last_length = 0 -+}; -+ -+/* Collect contiguous blocks into one entry as many as possible, -+ and print the blocklist notation on the screen. */ -+static void -+blocklist_read_helper (int sector, int offset, int length) -+{ -+ int *start_sector = &blocklist_func_context.start_sector; -+ int *num_sectors = &blocklist_func_context.num_sectors; -+ int *num_entries = &blocklist_func_context.num_entries; -+ int *last_length = &blocklist_func_context.last_length; -+ -+ if (*num_sectors > 0) -+ { -+ if (*start_sector + *num_sectors == sector -+ && offset == 0 && *last_length == SECTOR_SIZE) -+ { -+ *num_sectors++; -+ *last_length = length; -+ return; -+ } -+ else -+ { -+ if (*last_length == SECTOR_SIZE) -+ grub_printf ("%s%d+%d", *num_entries ? "," : "", -+ *start_sector - part_start, *num_sectors); -+ else if (*num_sectors > 1) -+ grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "", -+ *start_sector - part_start, *num_sectors-1, -+ *start_sector + *num_sectors-1 - part_start, -+ *last_length); -+ else -+ grub_printf ("%s%d[0-%d]", *num_entries ? "," : "", -+ *start_sector - part_start, *last_length); -+ *num_entries++; -+ *num_sectors = 0; -+ } -+ } -+ -+ if (offset > 0) -+ { -+ grub_printf("%s%d[%d-%d]", *num_entries ? "," : "", -+ sector-part_start, offset, offset+length); -+ *num_entries++; -+ } -+ else -+ { -+ *start_sector = sector; -+ *num_sectors = 1; -+ *last_length = length; -+ } -+} -+ - /* blocklist */ - static int - blocklist_func (char *arg, int flags) - { - char *dummy = (char *) RAW_ADDR (0x100000); -- int start_sector; -- int num_sectors = 0; -- int num_entries = 0; -- int last_length = 0; - -- auto void disk_read_blocklist_func (int sector, int offset, int length); -- -- /* Collect contiguous blocks into one entry as many as possible, -- and print the blocklist notation on the screen. */ -- auto void disk_read_blocklist_func (int sector, int offset, int length) -- { -- if (num_sectors > 0) -- { -- if (start_sector + num_sectors == sector -- && offset == 0 && last_length == SECTOR_SIZE) -- { -- num_sectors++; -- last_length = length; -- return; -- } -- else -- { -- if (last_length == SECTOR_SIZE) -- grub_printf ("%s%d+%d", num_entries ? "," : "", -- start_sector - part_start, num_sectors); -- else if (num_sectors > 1) -- grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "", -- start_sector - part_start, num_sectors-1, -- start_sector + num_sectors-1 - part_start, -- last_length); -- else -- grub_printf ("%s%d[0-%d]", num_entries ? "," : "", -- start_sector - part_start, last_length); -- num_entries++; -- num_sectors = 0; -- } -- } -- -- if (offset > 0) -- { -- grub_printf("%s%d[%d-%d]", num_entries ? "," : "", -- sector-part_start, offset, offset+length); -- num_entries++; -- } -- else -- { -- start_sector = sector; -- num_sectors = 1; -- last_length = length; -- } -- } -+ int *start_sector = &blocklist_func_context.start_sector; -+ int *num_sectors = &blocklist_func_context.num_sectors; -+ int *num_entries = &blocklist_func_context.num_entries; - - /* Open the file. */ - if (! grub_open (arg)) -@@ -206,15 +241,15 @@ - grub_printf (")"); - - /* Read in the whole file to DUMMY. */ -- disk_read_hook = disk_read_blocklist_func; -+ disk_read_hook = blocklist_read_helper; - if (! grub_read (dummy, -1)) - goto fail; - - /* The last entry may not be printed yet. Don't check if it is a - * full sector, since it doesn't matter if we read too much. */ -- if (num_sectors > 0) -- grub_printf ("%s%d+%d", num_entries ? "," : "", -- start_sector - part_start, num_sectors); -+ if (*num_sectors > 0) -+ grub_printf ("%s%d+%d", *num_entries ? "," : "", -+ *start_sector - part_start, *num_sectors); - - grub_printf ("\n"); - -@@ -1889,6 +1924,77 @@ - - - /* install */ -+static struct { -+ int saved_sector; -+ int installaddr; -+ int installlist; -+ char *stage2_first_buffer; -+} install_func_context = { -+ .saved_sector = 0, -+ .installaddr = 0, -+ .installlist = 0, -+ .stage2_first_buffer = NULL, -+}; -+ -+/* Save the first sector of Stage2 in STAGE2_SECT. */ -+/* Formerly disk_read_savesect_func with local scope inside install_func */ -+static void -+install_savesect_helper(int sector, int offset, int length) -+{ -+ if (debug) -+ printf ("[%d]", sector); -+ -+ /* ReiserFS has files which sometimes contain data not aligned -+ on sector boundaries. Returning an error is better than -+ silently failing. */ -+ if (offset != 0 || length != SECTOR_SIZE) -+ errnum = ERR_UNALIGNED; -+ -+ install_func_context.saved_sector = sector; -+} -+ -+/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and INSTALLSECT. */ -+/* Formerly disk_read_blocklist_func with local scope inside install_func */ -+static void -+install_blocklist_helper (int sector, int offset, int length) -+{ -+ int *installaddr = &install_func_context.installaddr; -+ int *installlist = &install_func_context.installlist; -+ char **stage2_first_buffer = &install_func_context.stage2_first_buffer; -+ /* Was the last sector full? */ -+ static int last_length = SECTOR_SIZE; -+ -+ if (debug) -+ printf("[%d]", sector); -+ -+ if (offset != 0 || last_length != SECTOR_SIZE) -+ { -+ /* We found a non-sector-aligned data block. */ -+ errnum = ERR_UNALIGNED; -+ return; -+ } -+ -+ last_length = length; -+ -+ if (*((unsigned long *) (*installlist - 4)) -+ + *((unsigned short *) *installlist) != sector -+ || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4) -+ { -+ *installlist -= 8; -+ -+ if (*((unsigned long *) (*installlist - 8))) -+ errnum = ERR_WONT_FIT; -+ else -+ { -+ *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4); -+ *((unsigned long *) (*installlist - 4)) = sector; -+ } -+ } -+ -+ *((unsigned short *) *installlist) += 1; -+ *installaddr += 512; -+} -+ - static int - install_func (char *arg, int flags) - { -@@ -1896,8 +2002,12 @@ - char *stage1_buffer = (char *) RAW_ADDR (0x100000); - char *stage2_buffer = stage1_buffer + SECTOR_SIZE; - char *old_sect = stage2_buffer + SECTOR_SIZE; -- char *stage2_first_buffer = old_sect + SECTOR_SIZE; -- char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; -+ /* stage2_first_buffer used to be defined as: -+ * char *stage2_first_buffer = old_sect + SECTOR_SIZE; */ -+ char **stage2_first_buffer = &install_func_context.stage2_first_buffer; -+ /* and stage2_second_buffer was: -+ * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */ -+ char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE; - /* XXX: Probably SECTOR_SIZE is reasonable. */ - char *config_filename = stage2_second_buffer + SECTOR_SIZE; - char *dummy = config_filename + SECTOR_SIZE; -@@ -1906,10 +2016,11 @@ - int src_drive, src_partition, src_part_start; - int i; - struct geometry dest_geom, src_geom; -- int saved_sector; -+ int *saved_sector = &install_func_context.saved_sector; - int stage2_first_sector, stage2_second_sector; - char *ptr; -- int installaddr, installlist; -+ int *installaddr = &install_func_context.installaddr; -+ int *installlist = &install_func_context.installlist; - /* Point to the location of the name of a configuration file in Stage 2. */ - char *config_file_location; - /* If FILE is a Stage 1.5? */ -@@ -1918,68 +2029,14 @@ - int is_open = 0; - /* If LBA is forced? */ - int is_force_lba = 0; -- /* Was the last sector full? */ -- int last_length = SECTOR_SIZE; - -+ *stage2_first_buffer = old_sect + SECTOR_SIZE; - #ifdef GRUB_UTIL - /* If the Stage 2 is in a partition mounted by an OS, this will store - the filename under the OS. */ - char *stage2_os_file = 0; - #endif /* GRUB_UTIL */ - -- auto void disk_read_savesect_func (int sector, int offset, int length); -- auto void disk_read_blocklist_func (int sector, int offset, int length); -- -- /* Save the first sector of Stage2 in STAGE2_SECT. */ -- auto void disk_read_savesect_func (int sector, int offset, int length) -- { -- if (debug) -- printf ("[%d]", sector); -- -- /* ReiserFS has files which sometimes contain data not aligned -- on sector boundaries. Returning an error is better than -- silently failing. */ -- if (offset != 0 || length != SECTOR_SIZE) -- errnum = ERR_UNALIGNED; -- -- saved_sector = sector; -- } -- -- /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and -- INSTALLSECT. */ -- auto void disk_read_blocklist_func (int sector, int offset, int length) -- { -- if (debug) -- printf("[%d]", sector); -- -- if (offset != 0 || last_length != SECTOR_SIZE) -- { -- /* We found a non-sector-aligned data block. */ -- errnum = ERR_UNALIGNED; -- return; -- } -- -- last_length = length; -- -- if (*((unsigned long *) (installlist - 4)) -- + *((unsigned short *) installlist) != sector -- || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4) -- { -- installlist -= 8; -- -- if (*((unsigned long *) (installlist - 8))) -- errnum = ERR_WONT_FIT; -- else -- { -- *((unsigned short *) (installlist + 2)) = (installaddr >> 4); -- *((unsigned long *) (installlist - 4)) = sector; -- } -- } -- -- *((unsigned short *) installlist) += 1; -- installaddr += 512; -- } -- - /* First, check the GNU-style long option. */ - while (1) - { -@@ -2011,10 +2068,10 @@ - addr = skip_to (0, file); - - /* Get the installation address. */ -- if (! safe_parse_maxint (&addr, &installaddr)) -+ if (! safe_parse_maxint (&addr, installaddr)) - { - /* ADDR is not specified. */ -- installaddr = 0; -+ *installaddr = 0; - ptr = addr; - errnum = 0; - } -@@ -2110,17 +2167,17 @@ - = 0x9090; - - /* Read the first sector of Stage 2. */ -- disk_read_hook = disk_read_savesect_func; -- if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) -+ disk_read_hook = install_savesect_helper; -+ if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) - goto fail; - -- stage2_first_sector = saved_sector; -+ stage2_first_sector = *saved_sector; - - /* Read the second sector of Stage 2. */ - if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE) - goto fail; - -- stage2_second_sector = saved_sector; -+ stage2_second_sector = *saved_sector; - - /* Check for the version of Stage 2. */ - if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS)) -@@ -2136,27 +2193,27 @@ - - /* If INSTALLADDR is not specified explicitly in the command-line, - determine it by the Stage 2 id. */ -- if (! installaddr) -+ if (! *installaddr) - { - if (! is_stage1_5) - /* Stage 2. */ -- installaddr = 0x8000; -+ *installaddr = 0x8000; - else - /* Stage 1.5. */ -- installaddr = 0x2000; -+ *installaddr = 0x2000; - } - - *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR)) - = stage2_first_sector; - *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS)) -- = installaddr; -+ = *installaddr; - *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT)) -- = installaddr >> 4; -+ = *installaddr >> 4; - -- i = (int) stage2_first_buffer + SECTOR_SIZE - 4; -+ i = (int) *stage2_first_buffer + SECTOR_SIZE - 4; - while (*((unsigned long *) i)) - { -- if (i < (int) stage2_first_buffer -+ if (i < (int) *stage2_first_buffer - || (*((int *) (i - 4)) & 0x80000000) - || *((unsigned short *) i) >= 0xA00 - || *((short *) (i + 2)) == 0) -@@ -2170,13 +2227,13 @@ - i -= 8; - } - -- installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4; -- installaddr += SECTOR_SIZE; -+ *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4; -+ *installaddr += SECTOR_SIZE; - - /* Read the whole of Stage2 except for the first sector. */ - grub_seek (SECTOR_SIZE); - -- disk_read_hook = disk_read_blocklist_func; -+ disk_read_hook = install_blocklist_helper; - if (! grub_read (dummy, -1)) - goto fail; - -@@ -2259,7 +2316,7 @@ - /* Skip the first sector. */ - grub_seek (SECTOR_SIZE); - -- disk_read_hook = disk_read_savesect_func; -+ disk_read_hook = install_savesect_helper; - if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE) - goto fail; - -@@ -2329,7 +2386,7 @@ - else - #endif /* GRUB_UTIL */ - { -- if (! devwrite (saved_sector - part_start, 1, stage2_buffer)) -+ if (! devwrite (*saved_sector - part_start, 1, stage2_buffer)) - goto fail; - } - } -@@ -2351,7 +2408,7 @@ - goto fail; - } - -- if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) -+ if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) - { - fclose (fp); - errnum = ERR_WRITE; -@@ -2378,7 +2435,7 @@ - goto fail; - - if (! devwrite (stage2_first_sector - src_part_start, 1, -- stage2_first_buffer)) -+ *stage2_first_buffer)) - goto fail; - - if (! devwrite (stage2_second_sector - src_part_start, 1, ---- grub-0.97/grub/asmstub.c.nxstack 2005-12-12 18:31:41.000000000 -0500 -+++ grub-0.97/grub/asmstub.c 2005-12-12 18:31:42.000000000 -0500 -@@ -42,6 +42,7 @@ - #include <sys/time.h> - #include <termios.h> - #include <signal.h> -+#include <sys/mman.h> - - #ifdef __linux__ - # include <sys/ioctl.h> /* ioctl */ -@@ -82,7 +83,7 @@ - struct apm_info apm_bios_info; - - /* Emulation requirements. */ --char *grub_scratch_mem = 0; -+void *grub_scratch_mem = 0; - - struct geometry *disks = 0; - -@@ -106,14 +107,62 @@ - static unsigned int serial_speed; - #endif /* SIMULATE_SLOWNESS_OF_SERIAL */ - -+/* This allocates page-aligned storage of the specified size, which must be -+ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE) -+ */ -+#ifdef __linux__ -+static void * -+grub_mmap_alloc(size_t len) -+{ -+ int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE|MAP_EXECUTABLE; -+ -+#ifdef MAP_32BIT -+ mmap_flags |= MAP_32BIT; -+#endif -+ /* Mark the simulated stack executable, as GCC uses stack trampolines -+ * to implement nested functions. */ -+ return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0); -+} -+#else /* !defined(__linux__) */ -+static void * -+grub_mmap_alloc(size_t len) -+{ -+ int fd = 0, offset = 0, ret = 0; -+ void *pa = MAP_FAILED; -+ char template[] = "/tmp/grub_mmap_alloc_XXXXXX"; -+ errno_t e; -+ -+ fd = mkstemp(template); -+ if (fd < 0) -+ return pa; -+ -+ unlink(template); -+ -+ ret = ftruncate(fd, len); -+ if (ret < 0) -+ return pa; -+ -+ /* Mark the simulated stack executable, as GCC uses stack trampolines -+ * to implement nested functions. */ -+ pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, -+ MAP_PRIVATE|MAP_EXECUTABLE, fd, offset); -+ -+ e = errno; -+ close(fd); -+ errno = e; -+ return pa; -+} -+#endif /* defined(__linux__) */ -+ - /* The main entry point into this mess. */ - int - grub_stage2 (void) - { - /* These need to be static, because they survive our stack transitions. */ - static int status = 0; -- static char *realstack; -- char *scratch, *simstack; -+ static void *realstack; -+ void *simstack_alloc_base, *simstack; -+ size_t simstack_size, page_size; - int i; - - auto void doit (void); -@@ -145,9 +194,35 @@ - } - - assert (grub_scratch_mem == 0); -- scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15); -- assert (scratch); -- grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4); -+ -+ /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and -+ * make sure the memory is aligned to a multiple of the system's -+ * page size */ -+ page_size = sysconf (_SC_PAGESIZE); -+ simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15); -+ if (simstack_size % page_size) -+ { -+ /* If we're not on a page_size boundary, round up to the next one */ -+ simstack_size &= ~(page_size-1); -+ simstack_size += page_size; -+ } -+ -+ /* Add one for a PROT_NONE boundary page at each end. */ -+ simstack_size += 2 * page_size; -+ -+ simstack_alloc_base = grub_mmap_alloc(simstack_size); -+ assert (simstack_alloc_base != MAP_FAILED); -+ -+ /* mark pages above and below our simstack area as innaccessable. -+ * If the implementation we're using doesn't support that, then the -+ * new protection modes are undefined. It's safe to just ignore -+ * them, though. It'd be nice if we knew that we'd get a SEGV for -+ * touching the area, but that's all. it'd be nice to have. */ -+ mprotect (simstack_alloc_base, page_size, PROT_NONE); -+ mprotect ((void *)((unsigned long)simstack_alloc_base + -+ simstack_size - page_size), page_size, PROT_NONE); -+ -+ grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size); - - /* FIXME: simulate the memory holes using mprot, if available. */ - -@@ -220,7 +295,7 @@ - device_map = 0; - free (disks); - disks = 0; -- free (scratch); -+ munmap(simstack_alloc_base, simstack_size); - grub_scratch_mem = 0; - - if (serial_device) diff --git a/src/patches/grub-0.97-once.patch b/src/patches/grub-0.97-once.patch deleted file mode 100644 index 6fb9a8d..0000000 --- a/src/patches/grub-0.97-once.patch +++ /dev/null @@ -1,513 +0,0 @@ ---- grub-0.97/stage2/builtins.c.bootonce 2005-12-12 18:23:12.000000000 -0500 -+++ grub-0.97/stage2/builtins.c 2005-12-12 18:29:20.000000000 -0500 -@@ -3217,146 +3217,175 @@ - }; - - --/* savedefault */ -+ -+#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) -+/* Write specified default entry number into stage2 file. */ - static int --savedefault_func (char *arg, int flags) -+savedefault_helper(int new_default) - { --#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) -- unsigned long tmp_drive = saved_drive; -- unsigned long tmp_partition = saved_partition; -- char *default_file = (char *) DEFAULT_FILE_BUF; -- char buf[10]; -- char sect[SECTOR_SIZE]; -- int entryno; -- int sector_count = 0; -- int saved_sectors[2]; -- int saved_offsets[2]; -- int saved_lengths[2]; -- -- /* Save sector information about at most two sectors. */ -- auto void disk_read_savesect_func (int sector, int offset, int length); -- void disk_read_savesect_func (int sector, int offset, int length) -- { -- if (sector_count < 2) -- { -- saved_sectors[sector_count] = sector; -- saved_offsets[sector_count] = offset; -- saved_lengths[sector_count] = length; -- } -- sector_count++; -- } -- -- /* This command is only useful when you boot an entry from the menu -- interface. */ -- if (! (flags & BUILTIN_SCRIPT)) -+ char buffer[512]; -+ int *entryno_ptr; -+ -+ /* Get the geometry of the boot drive (i.e. the disk which contains -+ this stage2). */ -+ if (get_diskinfo (boot_drive, &buf_geom)) - { -- errnum = ERR_UNRECOGNIZED; -+ errnum = ERR_NO_DISK; - return 1; - } - -- /* Determine a saved entry number. */ -- if (*arg) -+ /* Load the second sector of this stage2. */ -+ if (! rawread (boot_drive, install_second_sector, 0, SECTOR_SIZE, buffer)) - { -- if (grub_memcmp (arg, "fallback", sizeof ("fallback") - 1) == 0) -- { -- int i; -- int index = 0; -- -- for (i = 0; i < MAX_FALLBACK_ENTRIES; i++) -- { -- if (fallback_entries[i] < 0) -- break; -- if (fallback_entries[i] == current_entryno) -- { -- index = i + 1; -- break; -- } -- } -- -- if (index >= MAX_FALLBACK_ENTRIES || fallback_entries[index] < 0) -- { -- /* This is the last. */ -- errnum = ERR_BAD_ARGUMENT; -- return 1; -- } -+ return 1; -+ } - -- entryno = fallback_entries[index]; -- } -- else if (! safe_parse_maxint (&arg, &entryno)) -- return 1; -+ /* Sanity check. */ -+ if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2 -+ || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION) -+ { -+ errnum = ERR_BAD_VERSION; -+ return 1; - } -- else -- entryno = current_entryno; -+ -+ entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO); - -- /* Open the default file. */ -- saved_drive = boot_drive; -- saved_partition = install_partition; -- if (grub_open (default_file)) -+ /* Check if the saved entry number differs from current entry number. */ -+ if (*entryno_ptr != new_default) - { -- int len; -+ /* Overwrite the saved entry number. */ -+ *entryno_ptr = new_default; - -- disk_read_hook = disk_read_savesect_func; -- len = grub_read (buf, sizeof (buf)); -- disk_read_hook = 0; -- grub_close (); -+ /* Save the image in the disk. */ -+ if (! rawwrite (boot_drive, install_second_sector, buffer)) -+ return 1; - -- if (len != sizeof (buf)) -- { -- /* This is too small. Do not modify the file manually, please! */ -- errnum = ERR_READ; -- goto fail; -- } -+ /* Clear the cache. */ -+ buf_track = -1; -+ } - -- if (sector_count > 2) -- { -- /* Is this possible?! Too fragmented! */ -- errnum = ERR_FSYS_CORRUPT; -- goto fail; -- } -- -- /* Set up a string to be written. */ -- grub_memset (buf, '\n', sizeof (buf)); -- grub_sprintf (buf, "%d", entryno); -- -- if (saved_lengths[0] < sizeof (buf)) -- { -- /* The file is anchored to another file and the first few bytes -- are spanned in two sectors. Uggh... */ -- if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE, -- sect)) -- goto fail; -- grub_memmove (sect + saved_offsets[0], buf, saved_lengths[0]); -- if (! rawwrite (current_drive, saved_sectors[0], sect)) -- goto fail; -+ return 0; -+} -+#endif - -- if (! rawread (current_drive, saved_sectors[1], 0, SECTOR_SIZE, -- sect)) -- goto fail; -- grub_memmove (sect + saved_offsets[1], -- buf + saved_lengths[0], -- sizeof (buf) - saved_lengths[0]); -- if (! rawwrite (current_drive, saved_sectors[1], sect)) -- goto fail; -- } -+#if !defined(SUPPORT_DISKLESS) && defined(GRUB_UTIL) -+/* -+ * Full implementation of new `savedefault' for GRUB shell. -+ * XXX This needs fixing for stage2 files which aren't accessible -+ * through a mounted filesystem. -+ */ -+static int -+savedefault_shell(char *arg, int flags) -+{ -+ char *stage2_os_file = "/boot/grub/stage2"; /* Default filename */ -+ FILE *fp; -+ char buffer[512]; -+ int *entryno_ptr; -+ int new_default = 0; -+ int old_default = 0; -+ -+ while (1) -+ { -+ if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0) -+ { -+ stage2_os_file = arg + sizeof ("--stage2=") - 1; -+ arg = skip_to (0, arg); -+ nul_terminate (stage2_os_file); -+ } -+ else if (grub_memcmp ("--default=", arg, sizeof ("--default=") - 1) == 0) -+ { -+ char *p = arg + sizeof ("--default=") - 1; -+ if (! safe_parse_maxint (&p, &new_default)) -+ return 1; -+ arg = skip_to (0, arg); -+ } -+ else if (grub_memcmp ("--once", arg, sizeof ("--once") - 1) == 0) -+ { -+ new_default <<= 8; -+ new_default |= STAGE2_ONCEONLY_ENTRY; -+ arg = skip_to (0, arg); -+ } - else -- { -- /* This is a simple case. It fits into a single sector. */ -- if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE, -- sect)) -- goto fail; -- grub_memmove (sect + saved_offsets[0], buf, sizeof (buf)); -- if (! rawwrite (current_drive, saved_sectors[0], sect)) -- goto fail; -- } -+ break; -+ } - -- /* Clear the cache. */ -- buf_track = -1; -+ if (! (fp = fopen(stage2_os_file, "r+"))) -+ { -+ errnum = ERR_FILE_NOT_FOUND; -+ return 1; -+ } -+ -+ if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0) -+ { -+ fclose (fp); -+ errnum = ERR_BAD_VERSION; -+ return 1; -+ } -+ -+ if (fread (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) -+ { -+ fclose (fp); -+ errnum = ERR_READ; -+ return 1; - } - -- fail: -- saved_drive = tmp_drive; -- saved_partition = tmp_partition; -- return errnum; -+ /* Sanity check. */ -+ if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2 -+ || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION) -+ { -+ errnum = ERR_BAD_VERSION; -+ return 1; -+ } -+ -+ entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO); -+ if (new_default & STAGE2_ONCEONLY_ENTRY) -+ { -+ old_default=*entryno_ptr; -+ *entryno_ptr = new_default + (old_default & 0xFF); -+ } -+ else -+ { -+ *entryno_ptr = new_default; -+ } -+ -+ if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0) -+ { -+ fclose (fp); -+ errnum = ERR_BAD_VERSION; -+ return 1; -+ } -+ -+ if (fwrite (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) -+ { -+ fclose (fp); -+ errnum = ERR_WRITE; -+ return 1; -+ } -+ -+ (void)fflush (fp); -+ fclose (fp); -+ return 0; -+} -+#endif -+ -+/* savedefault */ -+static int -+savedefault_func (char *arg, int flags) -+{ -+#if !defined(SUPPORT_DISKLESS) -+#if !defined(GRUB_UTIL) -+ /* This command is only useful when you boot an entry from the menu -+ interface. */ -+ if (! (flags & BUILTIN_SCRIPT)) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ return 1; -+ } -+ -+ return savedefault_helper(current_entryno); -+#else /* defined(GRUB_UTIL) */ -+ return savedefault_shell(arg, flags); -+#endif - #else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */ - errnum = ERR_UNRECOGNIZED; - return 1; -@@ -3368,10 +3397,14 @@ - "savedefault", - savedefault_func, - BUILTIN_CMDLINE, -- "savedefault [NUM | `fallback']", -- "Save the current entry as the default boot entry if no argument is" -- " specified. If a number is specified, this number is saved. If" -- " `fallback' is used, next fallback entry is saved." -+#ifdef GRUB_UTIL -+ "savedefault [--stage2=STAGE2_FILE] [--default=DEFAULT] [--once]", -+ "Save DEFAULT as the default boot entry in STAGE2_FILE. If '--once'" -+ " is specified, the default is reset after the next reboot." -+#else -+ "savedefault", -+ "Save the current entry as the default boot entry." -+#endif - }; - - -@@ -4598,6 +4631,15 @@ - static int - timeout_func (char *arg, int flags) - { -+ /* One-shot default shenanigans -- don't piss around with the menu! */ -+ if (grub_timeout != -1) -+ return 0; -+ if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0) -+ { -+ grub_timeout = 0; -+ return 0; -+ } -+ - if (! safe_parse_maxint (&arg, &grub_timeout)) - return 1; - ---- grub-0.97/stage2/shared.h.bootonce 2005-12-12 18:23:13.000000000 -0500 -+++ grub-0.97/stage2/shared.h 2005-12-12 18:23:13.000000000 -0500 -@@ -200,6 +200,8 @@ - #define STAGE2_FORCE_LBA 0x11 - #define STAGE2_VER_STR_OFFS 0x12 - -+#define STAGE2_ONCEONLY_ENTRY 0x10000 -+ - /* Stage 2 identifiers */ - #define STAGE2_ID_STAGE2 0 - #define STAGE2_ID_FFS_STAGE1_5 1 ---- grub-0.97/stage2/builtins.c.bootonce 2006-03-13 16:55:11.000000000 -0500 -+++ grub-0.97/stage2/builtins.c 2006-03-13 16:56:01.000000000 -0500 -@@ -761,11 +761,25 @@ - }; - - -+#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) -+static int savedefault_helper(int); -+#endif - /* default */ - static int - default_func (char *arg, int flags) - { - #ifndef SUPPORT_DISKLESS -+#ifndef GRUB_UTIL -+ /* Has a forced once-only default been specified? */ -+ if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0) -+ { -+ int old_defaults=saved_entryno & ~STAGE2_ONCEONLY_ENTRY; -+ grub_timeout = 0; -+ default_entry = old_defaults >> 8; -+ savedefault_helper(old_defaults & 0xff); -+ return 0; -+ } -+#endif - if (grub_strcmp (arg, "saved") == 0) - { - default_entry = saved_entryno; ---- grub-0.97/stage2/stage2.c.bootonce 2006-03-13 17:27:40.000000000 -0500 -+++ grub-0.97/stage2/stage2.c 2006-03-13 17:29:11.000000000 -0500 -@@ -960,38 +960,8 @@ - if (use_config_file) - #endif /* GRUB_UTIL */ - { -- char *default_file = (char *) DEFAULT_FILE_BUF; - int i; -- -- /* Get a saved default entry if possible. */ -- saved_entryno = 0; -- *default_file = 0; -- grub_strncat (default_file, config_file, DEFAULT_FILE_BUFLEN); -- for (i = grub_strlen(default_file); i >= 0; i--) -- if (default_file[i] == '/') -- { -- i++; -- break; -- } -- default_file[i] = 0; -- grub_strncat (default_file + i, "default", DEFAULT_FILE_BUFLEN - i); -- if (grub_open (default_file)) -- { -- char buf[10]; /* This is good enough. */ -- char *p = buf; -- int len; -- -- len = grub_read (buf, sizeof (buf)); -- if (len > 0) -- { -- buf[sizeof (buf) - 1] = 0; -- safe_parse_maxint (&p, &saved_entryno); -- } - -- grub_close (); -- } -- errnum = ERR_NONE; -- - do - { - /* STATE 0: Before any title command. ---- grub-0.97/util/grub-install.in.bootonce 2006-03-13 17:39:35.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2006-03-13 17:39:50.000000000 -0500 -@@ -30,7 +30,6 @@ - pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor} - - grub_shell=${sbindir}/grub --grub_set_default=${sbindir}/grub-set-default - log_file=/tmp/grub-install.log.$$ - img_file=/tmp/grub-install.img.$$ - rootdir= -@@ -432,9 +431,6 @@ - exit 1 - fi - --# Make a default file. --${grub_set_default} --root-directory=${rootdir} default -- - # Make sure that GRUB reads the same images as the host OS. - test -n "$mkimg" && img_file=`$mkimg` - test -n "$mklog" && log_file=`$mklog` ---- grub-0.97/configure.bootonce 2006-03-13 17:49:05.000000000 -0500 -+++ grub-0.97/configure 2006-03-13 17:49:16.000000000 -0500 -@@ -6135,7 +6135,7 @@ - - - -- ac_config_files="$ac_config_files Makefile stage1/Makefile stage2/Makefile docs/Makefile lib/Makefile util/Makefile grub/Makefile netboot/Makefile util/grub-image util/grub-install util/grub-md5-crypt util/grub-terminfo util/grub-set-default" -+ ac_config_files="$ac_config_files Makefile stage1/Makefile stage2/Makefile docs/Makefile lib/Makefile util/Makefile grub/Makefile netboot/Makefile util/grub-image util/grub-install util/grub-md5-crypt util/grub-terminfo" - - cat >confcache <<_ACEOF - # This file is a shell script that caches the results of configure -@@ -6754,7 +6754,6 @@ - "util/grub-install" ) CONFIG_FILES="$CONFIG_FILES util/grub-install" ;; - "util/grub-md5-crypt" ) CONFIG_FILES="$CONFIG_FILES util/grub-md5-crypt" ;; - "util/grub-terminfo" ) CONFIG_FILES="$CONFIG_FILES util/grub-terminfo" ;; -- "util/grub-set-default" ) CONFIG_FILES="$CONFIG_FILES util/grub-set-default" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 ---- grub-0.97/configure.ac.bootonce 2006-03-13 17:47:24.000000000 -0500 -+++ grub-0.97/configure.ac 2006-03-13 17:47:37.000000000 -0500 -@@ -666,5 +666,5 @@ - docs/Makefile lib/Makefile util/Makefile \ - grub/Makefile netboot/Makefile util/grub-image \ - util/grub-install util/grub-md5-crypt \ -- util/grub-terminfo util/grub-set-default]) -+ util/grub-terminfo]) - AC_OUTPUT ---- grub-0.97/util/Makefile.am.bootonce 2006-03-13 17:48:39.000000000 -0500 -+++ grub-0.97/util/Makefile.am 2006-03-13 17:48:45.000000000 -0500 -@@ -1,6 +1,5 @@ - bin_PROGRAMS = mbchk --sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \ -- grub-set-default -+sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo - noinst_SCRIPTS = grub-image mkbimage - - EXTRA_DIST = mkbimage ---- grub-0.97/util/Makefile.in.bootonce 2006-03-13 17:47:56.000000000 -0500 -+++ grub-0.97/util/Makefile.in 2006-03-13 17:48:34.000000000 -0500 -@@ -43,8 +43,7 @@ - subdir = util - DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/grub-image.in $(srcdir)/grub-install.in \ -- $(srcdir)/grub-md5-crypt.in $(srcdir)/grub-set-default.in \ -- $(srcdir)/grub-terminfo.in -+ $(srcdir)/grub-md5-crypt.in $(srcdir)/grub-terminfo.in - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 - am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -@@ -52,8 +51,7 @@ - $(ACLOCAL_M4) - mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs - CONFIG_HEADER = $(top_builddir)/config.h --CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt \ -- grub-terminfo grub-set-default -+CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt grub-terminfo - am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" - binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) - PROGRAMS = $(bin_PROGRAMS) -@@ -183,8 +181,7 @@ - sharedstatedir = @sharedstatedir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ --sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \ -- grub-set-default -+sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo - - noinst_SCRIPTS = grub-image mkbimage - EXTRA_DIST = mkbimage -@@ -234,8 +231,6 @@ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - grub-terminfo: $(top_builddir)/config.status $(srcdir)/grub-terminfo.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ --grub-set-default: $(top_builddir)/config.status $(srcdir)/grub-set-default.in -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" diff --git a/src/patches/grub-0.97-prototypes.patch b/src/patches/grub-0.97-prototypes.patch deleted file mode 100644 index 21d65d5..0000000 --- a/src/patches/grub-0.97-prototypes.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- grub-0.97/acinclude.m4.prototypes 2005-12-12 19:07:24.000000000 -0500 -+++ grub-0.97/acinclude.m4 2005-12-12 19:07:56.000000000 -0500 -@@ -44,6 +44,8 @@ - [AC_MSG_CHECKING([whether ${OBJCOPY} works for absolute addresses]) - AC_CACHE_VAL(grub_cv_prog_objcopy_absolute, - [cat > conftest.c <<\EOF -+void cmain(void); -+ - void - cmain (void) - { diff --git a/src/patches/grub-0.97-stderr.patch b/src/patches/grub-0.97-stderr.patch deleted file mode 100644 index 71d20ad..0000000 --- a/src/patches/grub-0.97-stderr.patch +++ /dev/null @@ -1,102 +0,0 @@ ---- grub-0.97/util/grub-install.in.stderr 2006-07-07 10:56:37.000000000 -0400 -+++ grub-0.97/util/grub-install.in 2006-07-07 11:01:35.000000000 -0400 -@@ -207,7 +207,7 @@ - while test -L $tmp_fname; do - tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> (.*)%\1%p'` - if test -z "$tmp_new_fname"; then -- echo "Unrecognized ls output" 2>&1 -+ echo "Unrecognized ls output" 1>&2 - exit 1 - fi - -@@ -264,7 +264,7 @@ - stat_device() { - majmin=`stat -c "%t:%T" "$1" 2>/dev/null` - if test -z "$majmin"; then -- echo "Could not find device for $1" 2>&1 -+ echo "Could not find device for $1" 1>&2 - exit 1 - fi - -@@ -281,7 +281,7 @@ - dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab` - fi - if test -z "$dev"; then -- echo "Could not find device for $1" 2>&1 -+ echo "Could not find device for $1" 1>&2 - exit 1 - fi - -@@ -304,11 +304,11 @@ - tmp_fname=`df $1/ | sed -n 's%.*(/dev/[^ ]*).*%\1%p'` - - if test -z "$tmp_fname"; then -- echo "Could not find device for $1" 2>&1 -+ echo "Could not find device for $1" 1>&2 - exit 1 - fi - -- ret_fname=`resolve_symlink $tmp_fname` -+ ret_fname=`resolve_symlink $tmp_fname` || exit 1 - tmp_fname=`find_mapper_device $ret_fname` - if test -n "$tmp_fname"; then - ret_fname="$tmp_fname" -@@ -325,7 +325,7 @@ - done - for file in \ - ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do -- cp -f $file ${grubdir} || exit 1 -+ cp -f $file ${grubdir} 1>&2 || exit 1 - done - } - -@@ -520,9 +520,9 @@ - # Check for INSTALL_DEVICE. - case "$install_device" in - /dev/*) -- install_device=`resolve_symlink "$install_device"` -+ install_device=`resolve_symlink "$install_device"` || exit 1 - for install_drive in `find_real_devs $install_device` ; do -- install_drive=`convert $install_drive` -+ install_drive=`convert $install_drive` || exit 1 - if is_raid1_device $install_device; then - install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'` - fi -@@ -550,8 +550,8 @@ - unset install_device - - # Get the root drive. --root_device=`find_device ${rootdir}` --bootdir_device=`find_device ${bootdir}` -+root_device=`find_device ${rootdir}` || exit 1 -+bootdir_device=`find_device ${bootdir}` || exit 1 - - # Check if the boot directory is in the same device as the root directory. - if test "x$root_device" != "x$bootdir_device"; then -@@ -561,7 +561,7 @@ - fi - - # Check if the root directory exists in the same device as the grub directory. --grubdir_device=`find_device ${grubdir}` -+grubdir_device=`find_device ${grubdir}` || exit 1 - - if test "x$grubdir_device" != "x$root_device"; then - # For now, cannot deal with this situation. -@@ -582,7 +582,7 @@ - fi - - # Convert the root deviceto a GRUB drive. --root_drive=`convert "$root_device"` -+root_drive=`convert "$root_device"` || exit 1 - if [ "x$root_drive" = x ]; then - exit 1 - fi -@@ -618,7 +618,7 @@ - - for install_drive in $install_drives; do - # Convert the root deviceto a GRUB drive. -- root_drive=`convert "$root_device"` -+ root_drive=`convert "$root_device"` || exit 1 - if [ "x$root_drive" = x ]; then - exit 1 - fi diff --git a/src/patches/grub-0.97_grub-install_virtio.patch b/src/patches/grub-0.97_grub-install_virtio.patch deleted file mode 100644 index 86afba9..0000000 --- a/src/patches/grub-0.97_grub-install_virtio.patch +++ /dev/null @@ -1,52 +0,0 @@ ---- grub-0.97/util/grub-install.in 2010-06-24 08:47:23.000000000 +0200 -+++ grub-0.97/util/grub-install.in 2010-06-24 09:20:42.000000000 +0200 -@@ -102,7 +102,7 @@ - linux*) - # formats that need to be handled (disk name -> partition name): - # floppies: /dev/fd0 -- # normal sd/hd devices: /dev/hda -> /dev/hda3 -+ # normal sd/hd/vd devices: /dev/hda -> /dev/hda3 - # md: /dev/md0 -> /dev/md0p0 - # ide raid devs: /dev/ide/host0/bus0/target0/lun0/disc - # -> /dev/ide/host0/bus0/target0/lun0/part1 -@@ -134,7 +134,7 @@ - # more? - tmp_disk=`echo "$1" | grep -v '/mapper/control$' | - grep -v '/mapper/[[:alnum:]_]+-[[:digit:]]+$' | uniq | -- sed -e 's%([sh]d[a-z])[0-9]*$%\1%' \ -+ sed -e 's%([shv]d[a-z])[0-9]*$%\1%' \ - -e 's%(/c[0-9]+d[0-9]+).*$%\1%' \ - -e 's%(fd[0-9]*)$%\1%' \ - -e 's%/part[0-9]*$%/disc%' \ -@@ -142,7 +142,7 @@ - -e 's%(/mapper/[[:alnum:]]+(_[[:alnum:]]+)+)\p[[:digit:]]+$%\1%'` - tmp_part=`echo "$1" | grep -v '/mapper/control$' | - grep -v '/mapper/[[:alnum:]_]+-[[:digit:]]+$' | uniq | -- sed -e 's%.*/[sh]d[a-z]([0-9]*)$%\1%' \ -+ sed -e 's%.*/[shv]d[a-z]([0-9]*)$%\1%' \ - -e 's%.*/c[0-9]+d[0-9]+p([[:digit:]]+)%\1%' \ - -e 's%.*/c[0-9]+d[0-9]+$%%' \ - -e 's%.*/fd[0-9]+$%%' \ -@@ -509,6 +509,10 @@ - if test -f "$device_map"; then - : - else -+ -+ tmp_disk=`echo "$install_device" | grep "/dev/vd"` -+ if test "x$tmp_disk" = x; then -+ - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - -@@ -525,6 +529,11 @@ - fi - - rm -f $log_file -+ -+ else -+ echo "Create fake device.map for virtio device $1" 1>&2 -+ echo "(hd0) $install_device" > $device_map -+ fi - fi - - # Make sure that there is no duplicated entry. diff --git a/src/patches/grub-gentoo-14.patch b/src/patches/grub-gentoo-14.patch new file mode 100644 index 0000000..d2bb959 --- /dev/null +++ b/src/patches/grub-gentoo-14.patch @@ -0,0 +1,16087 @@ +diff -Nur grub-0.97/acinclude.m4 grub-0.97-patched/acinclude.m4 +--- grub-0.97/acinclude.m4 2004-04-27 22:48:06.000000000 +0200 ++++ grub-0.97-patched/acinclude.m4 2012-11-11 17:07:12.710729053 +0100 +@@ -57,7 +57,7 @@ + fi + grub_cv_prog_objcopy_absolute=yes + for link_addr in 2000 8000 7C00; do +- if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then : ++ if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} ${LDFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then : + else + AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr]) + fi +diff -Nur grub-0.97/ChangeLog grub-0.97-patched/ChangeLog +--- grub-0.97/ChangeLog 2005-05-08 04:47:02.000000000 +0200 ++++ grub-0.97-patched/ChangeLog 2012-11-11 17:07:12.708728989 +0100 +@@ -1,3 +1,127 @@ ++2008-05-20 Robert Millan rmh@aybabtu.com ++ ++ * netboot/cs89x0.c: Fix license violation. ++ * netboot/cs89x0.h: Likewise. ++ ++2008-04-10 Pavel Roskin proski@gnu.org ++ ++ * configure.ac: Always use "_cv_" in cache variables for ++ compatibility with Autoconf 2.62. ++ ++2008-03-28 Robert Millan rmh@aybabtu.com ++ ++ Surpass 1 TiB disk addressing limit. Note: there are no plans to handle ++ the 2 TiB disk limit in GRUB Legacy, since that would need considerable ++ rework. If you have >2TiB disks, use GRUB 2 instead. ++ ++ * grub/asmstub.c (biosdisk): Add unsigned qualifier to `sector'. ++ * stage2/bios.c (biosdisk): Likewise. ++ * stage2/disk_io.c (rawread, devread, rawwrite, devwrite): Likewise. ++ * stage2/shared.h (rawread, devread, rawwrite, devwrite): Likewise. ++ * lib/device.c (get_drive_geometry): Replace BLKGETSIZE with ++ BLKGETSIZE64. ++ ++2007-10-29 Pavel Roskin proski@gnu.org ++ ++ * configure.ac: Test if '--build-id=none' is supported by the ++ linker and add it to LDFLAGS if possible. Build ID causes ++ objcopy to generate huge binary files. ++ * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when ++ linking, so that build ID doesn't break the test. ++ * stage1/Makefile.am: Preserve LDFLAGS, use stage1_exec_LDFLAGS. ++ ++2007-02-22 Pavel Roskin proski@gnu.org ++ ++ * stage2/iso9660.h: Remove unnecessary packed attributes. ++ ++2007-02-22 Robert Millan rmh@aybabtu.com ++ ++ * util/mkbimage: Update my email address, and remove my name from ++ some places where unnecessary credit is given. ++ ++2006-09-10 Pavel Roskin proski@gnu.org ++ ++ * netboot/natsemi.c: Fix compile error with gcc 4.1.1. Cast ++ cannot make a variable volatile - it should be declared as such. ++ * netboot/sis900.c: Likewise. ++ ++2006-09-08 Pavel Roskin proski@gnu.org ++ ++ * netboot/etherboot.h: Remove incorrect extern declarations of ++ the variables later declared static. Move BOOTP_DATA_ADDR ... ++ * netboot/main.c: ... here. Eliminate end_of_rfc1533 - it's ++ write-only. ++ ++2006-06-24 Yoshinori K. Okuji okuji@enbug.org ++ ++ * docs/grub.texi: Changed the license term to the GNU Free ++ Documentation License 1.2. ++ ++ * docs/multiboot.texi: Reformatted to show the license term ++ and the version number explicitly. ++ ++ * docs/fdl.texi: New file. ++ ++ * docs/Makefile.am (grub_TEXINFOS): Added fdl.texi. ++ ++2006-06-24 Robert Millan robertmh@gnu.org ++ ++ * lib/device.c (write_to_partition): /dev/ataraid/ and /dev/rd/ ++ partitions have a "p" prefix. Add it. ++ ++2006-06-24 Robert Millan robertmh@gnu.org ++ ++ * lib/device.c (get_i2o_disk_name): New function. ++ (init_device_map) [__linux__]: Add support for I2O devices. ++ ++2006-05-02 Pavel Roskin proski@gnu.org ++ ++ * stage2/stage2.c (run_menu): Fix "savedefault" to save only top ++ level menu positions. Remember current position when calling a ++ submenu. Don't recalculate it when booting from a submenu. ++ ++ * grub/main.c (main): Make sure the boot drive number doesn't ++ exceed 255. ++ ++2006-05-02 Vesa Jaaskelainen chaac@nic.fi ++ ++ * stage2/shared.h (vbe_mode): Back ported aligment fix from GRUB 2 ++ to GRUB Legacy. Problem reported by Gerardo Richarte. ++ ++2006-04-23 Robert Millan robertmh@gnu.org ++ ++ * grub/asmstub.c (get_diskinfo): Optimize sysctl routine. ++ ++2006-04-20 Robert Millan robertmh@gnu.org ++ ++ Fixes for kernel of FreeBSD: ++ * grub/asmstub.c (get_diskinfo): Toggle "kern.geom.debugflags" sysctl ++ before opening a device for writing. ++ * util/grub-install.in: Devices don't have this "r" prefix anymore. ++ ++2006-04-16 Yoshinori K. Okuji okuji@enbug.org ++ ++ * docs/multiboot.texi: Correct the offset of address ++ fields. Reported by Jeroen Dekkers. ++ ++2006-03-21 Yoshinori K. Okuji okuji@enbug.org ++ ++ * stage2/builtins.c (setup_func): Specify the size of DEVICE to ++ grub_strncat instead of a strange number 256. Reported by Vitaly ++ Fertman vitaly@namesys.com. ++ ++2005-09-29 Yoshinori K. Okuji okuji@enbug.org ++ ++ * docs/multiboot.texi: Fix a bug in the byte order of ++ boot_device. I hope this won't affect any OS image. ++ Increased the version number to 0.6.94. ++ ++2005-09-28 Yoshinori K. Okuji okuji@enbug.org ++ ++ * stage2/boot.c (load_image): Even if an OS image is an ELF ++ object, use the a.out kludge if MULTIBOOT_AOUT_KLUDGE is ++ specified. ++ + 2005-05-08 Yoshinori K. Okuji okuji@enbug.org + + * configure.ac (AC_INIT): Upgraded to 0.97. +diff -Nur grub-0.97/configure.ac grub-0.97-patched/configure.ac +--- grub-0.97/configure.ac 2005-05-08 04:36:03.000000000 +0200 ++++ grub-0.97-patched/configure.ac 2012-11-11 17:07:12.752730394 +0100 +@@ -21,8 +21,12 @@ + AC_CANONICAL_HOST + + case "$host_cpu" in +-i[[3456]]86) host_cpu=i386 ;; +-x86_64) host_cpu=x86_64 ;; ++i[[3456]]86) ++ STAGE_MARCH="-march=$host_cpu" ++ host_cpu=i386 ;; ++x86_64) ++ STAGE_MARCH="-march=i686" ++ host_cpu=x86_64 ;; + *) AC_MSG_ERROR([unsupported CPU type]) ;; + esac + +@@ -56,12 +60,7 @@ + + AC_CHECK_TOOL(CC, gcc) + AC_PROG_CC +-# We need this for older versions of Autoconf. +-_AM_DEPENDENCIES(CC) +- +-dnl Because recent automake complains about AS, set it here. +-CCAS="$CC" +-AC_SUBST(CCAS) ++AM_PROG_AS + + AC_ARG_WITH(binutils, + [ --with-binutils=DIR search the directory DIR to find binutils]) +@@ -86,13 +85,13 @@ + fi + STAGE1_CFLAGS="-O2" + GRUB_CFLAGS="-O2" +- AC_CACHE_CHECK([whether optimization for size works], size_flag, [ ++ AC_CACHE_CHECK([whether optimization for size works], grub_cv_cc_Os, [ + saved_CFLAGS=$CFLAGS + CFLAGS="-Os -g" +- AC_TRY_COMPILE(, , size_flag=yes, size_flag=no) ++ AC_TRY_COMPILE(, , grub_cv_cc_Os=yes, grub_cv_cc_Os=no) + CFLAGS=$saved_CFLAGS + ]) +- if test "x$size_flag" = xyes; then ++ if test "x$grub_cv_cc_Os" = xyes; then + STAGE2_CFLAGS="-Os" + else + STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops" +@@ -100,21 +99,38 @@ + # OpenBSD has a GCC extension for protecting applications from + # stack smashing attacks, but GRUB doesn't want this feature. + AC_CACHE_CHECK([whether gcc has -fno-stack-protector], +- no_stack_protector_flag, [ ++ grub_cv_cc_no_stack_protector, [ + saved_CFLAGS=$CFLAGS + CFLAGS="-fno-stack-protector" + AC_TRY_COMPILE(, + , +- no_stack_protector_flag=yes, +- no_stack_protector_flag=no) ++ grub_cv_cc_no_stack_protector=yes, ++ grub_cv_cc_no_stack_protector=no) + CFLAGS=$saved_CFLAGS + ]) +- if test "x$no_stack_protector_flag" = xyes; then ++ if test "x$grub_cv_cc_no_stack_protector" = xyes; then + STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-stack-protector" + fi ++ # Position Independent Executables, but GRUB doesn't want this feature. ++ AC_CACHE_CHECK([whether gcc has -fPIE on as default], grub_cv_cc_fpie, [ ++ AC_TRY_COMPILE(,[ ++ #if ! defined (__PIC__) || ! defined (__PIE__) ++ #error ++ #endif ++ ], ++ grub_cv_cc_fpie=yes, ++ grub_cv_cc_fpie=no) ++ ]) ++ if test "x$grub_cv_cc_fpie" = xyes; then ++ STAGE1_CFLAGS="$STAGE1_CFLAGS -nopie" ++ STAGE2_CFLAGS="$STAGE2_CFLAGS -nopie" ++ fi + fi + fi + ++STAGE1_CFLAGS="$STAGE1_CFLAGS -fno-strict-aliasing $STAGE_MARCH" ++STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-strict-aliasing $STAGE_MARCH" ++GRUB_CFLAGS="$GRUB_CFLAGS -fno-strict-aliasing" + AC_SUBST(STAGE1_CFLAGS) + AC_SUBST(STAGE2_CFLAGS) + AC_SUBST(GRUB_CFLAGS) +@@ -123,33 +139,44 @@ + CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused -Wshadow" + CPPFLAGS="$CPPFLAGS -Wpointer-arith" + +-AC_CACHE_CHECK([whether -Wundef works], undef_flag, [ ++AC_CACHE_CHECK([whether -Wundef works], grub_cv_cc_Wundef, [ + saved_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="-Wundef" +- AC_TRY_COMPILE(, , undef_flag=yes, undef_flag=no) ++ AC_TRY_COMPILE(, , grub_cv_cc_Wundef=yes, grub_cv_cc_Wundef=no) + CPPFLAGS="$saved_CPPFLAGS" + ]) + + # The options `-falign-*' are supported by gcc 3.0 or later. + # Probably it is sufficient to only check for -falign-loops. +-AC_CACHE_CHECK([whether -falign-loops works], [falign_loop_flag], [ ++AC_CACHE_CHECK([whether -falign-loops works], [grub_cv_cc_falign_loop], [ + saved_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="-falign-loops=1" +- AC_TRY_COMPILE(, , [falign_loop_flag=yes], [falign_loop_flag=no]) ++ AC_TRY_COMPILE(, , [grub_cv_cc_falign_loop=yes], [grub_cv_cc_falign_loop=no]) + CPPFLAGS="$saved_CPPFLAGS" + ]) + + # Force no alignment to save space. +-if test "x$falign_loop_flag" = xyes; then ++if test "x$grub_cv_cc_falign_loop" = xyes; then + CPPFLAGS="$CPPFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1" + else + CPPFLAGS="$CPPFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1" + fi + +-if test "x$undef_flag" = xyes; then ++if test "x$grub_cv_cc_Wundef" = xyes; then + CPPFLAGS="$CPPFLAGS -Wundef" + fi + ++# Check if build ID can be disabled in the linker ++AC_MSG_CHECKING([whether linker accepts `--build-id=none']) ++save_LDFLAGS="$LDFLAGS" ++LDFLAGS="$LDFLAGS -Wl,--build-id=none" ++AC_TRY_LINK(, , build_id_flag=yes, build_id_flag=no) ++AC_MSG_RESULT([$build_id_flag]) ++LDFLAGS="$save_LDFLAGS" ++if test "x$build_id_flag" = xyes; then ++ LDFLAGS="$LDFLAGS -Wl,--build-id=none" ++fi ++ + if test "x$with_binutils" != x; then + dnl AC_PATH_TOOL(OBJCOPY, objcopy, , "$with_binutils:$PATH") + AC_PATH_PROG(OBJCOPY, objcopy, , "$with_binutils:$PATH") +@@ -595,6 +622,11 @@ + [ --enable-diskless enable diskless support]) + AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes) + ++dnl Graphical splashscreen support ++AC_ARG_ENABLE(graphics, ++ [ --disable-graphics disable graphics terminal support]) ++AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno) ++ + dnl Hercules terminal + AC_ARG_ENABLE(hercules, + [ --disable-hercules disable hercules terminal support]) +diff -Nur grub-0.97/docs/fdl.texi grub-0.97-patched/docs/fdl.texi +--- grub-0.97/docs/fdl.texi 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/docs/fdl.texi 2012-11-11 17:07:12.712729117 +0100 +@@ -0,0 +1,452 @@ ++ ++@node GNU Free Documentation License ++@appendixsec GNU Free Documentation License ++ ++@cindex FDL, GNU Free Documentation License ++@center Version 1.2, November 2002 ++ ++@display ++Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. ++51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ ++Everyone is permitted to copy and distribute verbatim copies ++of this license document, but changing it is not allowed. ++@end display ++ ++@enumerate 0 ++@item ++PREAMBLE ++ ++The purpose of this License is to make a manual, textbook, or other ++functional and useful document @dfn{free} in the sense of freedom: to ++assure everyone the effective freedom to copy and redistribute it, ++with or without modifying it, either commercially or noncommercially. ++Secondarily, this License preserves for the author and publisher a way ++to get credit for their work, while not being considered responsible ++for modifications made by others. ++ ++This License is a kind of ``copyleft'', which means that derivative ++works of the document must themselves be free in the same sense. It ++complements the GNU General Public License, which is a copyleft ++license designed for free software. ++ ++We have designed this License in order to use it for manuals for free ++software, because free software needs free documentation: a free ++program should come with manuals providing the same freedoms that the ++software does. But this License is not limited to software manuals; ++it can be used for any textual work, regardless of subject matter or ++whether it is published as a printed book. We recommend this License ++principally for works whose purpose is instruction or reference. ++ ++@item ++APPLICABILITY AND DEFINITIONS ++ ++This License applies to any manual or other work, in any medium, that ++contains a notice placed by the copyright holder saying it can be ++distributed under the terms of this License. Such a notice grants a ++world-wide, royalty-free license, unlimited in duration, to use that ++work under the conditions stated herein. The ``Document'', below, ++refers to any such manual or work. Any member of the public is a ++licensee, and is addressed as ``you''. You accept the license if you ++copy, modify or distribute the work in a way requiring permission ++under copyright law. ++ ++A ``Modified Version'' of the Document means any work containing the ++Document or a portion of it, either copied verbatim, or with ++modifications and/or translated into another language. ++ ++A ``Secondary Section'' is a named appendix or a front-matter section ++of the Document that deals exclusively with the relationship of the ++publishers or authors of the Document to the Document's overall ++subject (or to related matters) and contains nothing that could fall ++directly within that overall subject. (Thus, if the Document is in ++part a textbook of mathematics, a Secondary Section may not explain ++any mathematics.) The relationship could be a matter of historical ++connection with the subject or with related matters, or of legal, ++commercial, philosophical, ethical or political position regarding ++them. ++ ++The ``Invariant Sections'' are certain Secondary Sections whose titles ++are designated, as being those of Invariant Sections, in the notice ++that says that the Document is released under this License. If a ++section does not fit the above definition of Secondary then it is not ++allowed to be designated as Invariant. The Document may contain zero ++Invariant Sections. If the Document does not identify any Invariant ++Sections then there are none. ++ ++The ``Cover Texts'' are certain short passages of text that are listed, ++as Front-Cover Texts or Back-Cover Texts, in the notice that says that ++the Document is released under this License. A Front-Cover Text may ++be at most 5 words, and a Back-Cover Text may be at most 25 words. ++ ++A ``Transparent'' copy of the Document means a machine-readable copy, ++represented in a format whose specification is available to the ++general public, that is suitable for revising the document ++straightforwardly with generic text editors or (for images composed of ++pixels) generic paint programs or (for drawings) some widely available ++drawing editor, and that is suitable for input to text formatters or ++for automatic translation to a variety of formats suitable for input ++to text formatters. A copy made in an otherwise Transparent file ++format whose markup, or absence of markup, has been arranged to thwart ++or discourage subsequent modification by readers is not Transparent. ++An image format is not Transparent if used for any substantial amount ++of text. A copy that is not ``Transparent'' is called ``Opaque''. ++ ++Examples of suitable formats for Transparent copies include plain ++@sc{ascii} without markup, Texinfo input format, La@TeX{} input ++format, @acronym{SGML} or @acronym{XML} using a publicly available ++@acronym{DTD}, and standard-conforming simple @acronym{HTML}, ++PostScript or @acronym{PDF} designed for human modification. Examples ++of transparent image formats include @acronym{PNG}, @acronym{XCF} and ++@acronym{JPG}. Opaque formats include proprietary formats that can be ++read and edited only by proprietary word processors, @acronym{SGML} or ++@acronym{XML} for which the @acronym{DTD} and/or processing tools are ++not generally available, and the machine-generated @acronym{HTML}, ++PostScript or @acronym{PDF} produced by some word processors for ++output purposes only. ++ ++The ``Title Page'' means, for a printed book, the title page itself, ++plus such following pages as are needed to hold, legibly, the material ++this License requires to appear in the title page. For works in ++formats which do not have any title page as such, ``Title Page'' means ++the text near the most prominent appearance of the work's title, ++preceding the beginning of the body of the text. ++ ++A section ``Entitled XYZ'' means a named subunit of the Document whose ++title either is precisely XYZ or contains XYZ in parentheses following ++text that translates XYZ in another language. (Here XYZ stands for a ++specific section name mentioned below, such as ``Acknowledgements'', ++``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' ++of such a section when you modify the Document means that it remains a ++section ``Entitled XYZ'' according to this definition. ++ ++The Document may include Warranty Disclaimers next to the notice which ++states that this License applies to the Document. These Warranty ++Disclaimers are considered to be included by reference in this ++License, but only as regards disclaiming warranties: any other ++implication that these Warranty Disclaimers may have is void and has ++no effect on the meaning of this License. ++ ++@item ++VERBATIM COPYING ++ ++You may copy and distribute the Document in any medium, either ++commercially or noncommercially, provided that this License, the ++copyright notices, and the license notice saying this License applies ++to the Document are reproduced in all copies, and that you add no other ++conditions whatsoever to those of this License. You may not use ++technical measures to obstruct or control the reading or further ++copying of the copies you make or distribute. However, you may accept ++compensation in exchange for copies. If you distribute a large enough ++number of copies you must also follow the conditions in section 3. ++ ++You may also lend copies, under the same conditions stated above, and ++you may publicly display copies. ++ ++@item ++COPYING IN QUANTITY ++ ++If you publish printed copies (or copies in media that commonly have ++printed covers) of the Document, numbering more than 100, and the ++Document's license notice requires Cover Texts, you must enclose the ++copies in covers that carry, clearly and legibly, all these Cover ++Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on ++the back cover. Both covers must also clearly and legibly identify ++you as the publisher of these copies. The front cover must present ++the full title with all words of the title equally prominent and ++visible. You may add other material on the covers in addition. ++Copying with changes limited to the covers, as long as they preserve ++the title of the Document and satisfy these conditions, can be treated ++as verbatim copying in other respects. ++ ++If the required texts for either cover are too voluminous to fit ++legibly, you should put the first ones listed (as many as fit ++reasonably) on the actual cover, and continue the rest onto adjacent ++pages. ++ ++If you publish or distribute Opaque copies of the Document numbering ++more than 100, you must either include a machine-readable Transparent ++copy along with each Opaque copy, or state in or with each Opaque copy ++a computer-network location from which the general network-using ++public has access to download using public-standard network protocols ++a complete Transparent copy of the Document, free of added material. ++If you use the latter option, you must take reasonably prudent steps, ++when you begin distribution of Opaque copies in quantity, to ensure ++that this Transparent copy will remain thus accessible at the stated ++location until at least one year after the last time you distribute an ++Opaque copy (directly or through your agents or retailers) of that ++edition to the public. ++ ++It is requested, but not required, that you contact the authors of the ++Document well before redistributing any large number of copies, to give ++them a chance to provide you with an updated version of the Document. ++ ++@item ++MODIFICATIONS ++ ++You may copy and distribute a Modified Version of the Document under ++the conditions of sections 2 and 3 above, provided that you release ++the Modified Version under precisely this License, with the Modified ++Version filling the role of the Document, thus licensing distribution ++and modification of the Modified Version to whoever possesses a copy ++of it. In addition, you must do these things in the Modified Version: ++ ++@enumerate A ++@item ++Use in the Title Page (and on the covers, if any) a title distinct ++from that of the Document, and from those of previous versions ++(which should, if there were any, be listed in the History section ++of the Document). You may use the same title as a previous version ++if the original publisher of that version gives permission. ++ ++@item ++List on the Title Page, as authors, one or more persons or entities ++responsible for authorship of the modifications in the Modified ++Version, together with at least five of the principal authors of the ++Document (all of its principal authors, if it has fewer than five), ++unless they release you from this requirement. ++ ++@item ++State on the Title page the name of the publisher of the ++Modified Version, as the publisher. ++ ++@item ++Preserve all the copyright notices of the Document. ++ ++@item ++Add an appropriate copyright notice for your modifications ++adjacent to the other copyright notices. ++ ++@item ++Include, immediately after the copyright notices, a license notice ++giving the public permission to use the Modified Version under the ++terms of this License, in the form shown in the Addendum below. ++ ++@item ++Preserve in that license notice the full lists of Invariant Sections ++and required Cover Texts given in the Document's license notice. ++ ++@item ++Include an unaltered copy of this License. ++ ++@item ++Preserve the section Entitled ``History'', Preserve its Title, and add ++to it an item stating at least the title, year, new authors, and ++publisher of the Modified Version as given on the Title Page. If ++there is no section Entitled ``History'' in the Document, create one ++stating the title, year, authors, and publisher of the Document as ++given on its Title Page, then add an item describing the Modified ++Version as stated in the previous sentence. ++ ++@item ++Preserve the network location, if any, given in the Document for ++public access to a Transparent copy of the Document, and likewise ++the network locations given in the Document for previous versions ++it was based on. These may be placed in the ``History'' section. ++You may omit a network location for a work that was published at ++least four years before the Document itself, or if the original ++publisher of the version it refers to gives permission. ++ ++@item ++For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve ++the Title of the section, and preserve in the section all the ++substance and tone of each of the contributor acknowledgements and/or ++dedications given therein. ++ ++@item ++Preserve all the Invariant Sections of the Document, ++unaltered in their text and in their titles. Section numbers ++or the equivalent are not considered part of the section titles. ++ ++@item ++Delete any section Entitled ``Endorsements''. Such a section ++may not be included in the Modified Version. ++ ++@item ++Do not retitle any existing section to be Entitled ``Endorsements'' or ++to conflict in title with any Invariant Section. ++ ++@item ++Preserve any Warranty Disclaimers. ++@end enumerate ++ ++If the Modified Version includes new front-matter sections or ++appendices that qualify as Secondary Sections and contain no material ++copied from the Document, you may at your option designate some or all ++of these sections as invariant. To do this, add their titles to the ++list of Invariant Sections in the Modified Version's license notice. ++These titles must be distinct from any other section titles. ++ ++You may add a section Entitled ``Endorsements'', provided it contains ++nothing but endorsements of your Modified Version by various ++parties---for example, statements of peer review or that the text has ++been approved by an organization as the authoritative definition of a ++standard. ++ ++You may add a passage of up to five words as a Front-Cover Text, and a ++passage of up to 25 words as a Back-Cover Text, to the end of the list ++of Cover Texts in the Modified Version. Only one passage of ++Front-Cover Text and one of Back-Cover Text may be added by (or ++through arrangements made by) any one entity. If the Document already ++includes a cover text for the same cover, previously added by you or ++by arrangement made by the same entity you are acting on behalf of, ++you may not add another; but you may replace the old one, on explicit ++permission from the previous publisher that added the old one. ++ ++The author(s) and publisher(s) of the Document do not by this License ++give permission to use their names for publicity for or to assert or ++imply endorsement of any Modified Version. ++ ++@item ++COMBINING DOCUMENTS ++ ++You may combine the Document with other documents released under this ++License, under the terms defined in section 4 above for modified ++versions, provided that you include in the combination all of the ++Invariant Sections of all of the original documents, unmodified, and ++list them all as Invariant Sections of your combined work in its ++license notice, and that you preserve all their Warranty Disclaimers. ++ ++The combined work need only contain one copy of this License, and ++multiple identical Invariant Sections may be replaced with a single ++copy. If there are multiple Invariant Sections with the same name but ++different contents, make the title of each such section unique by ++adding at the end of it, in parentheses, the name of the original ++author or publisher of that section if known, or else a unique number. ++Make the same adjustment to the section titles in the list of ++Invariant Sections in the license notice of the combined work. ++ ++In the combination, you must combine any sections Entitled ``History'' ++in the various original documents, forming one section Entitled ++``History''; likewise combine any sections Entitled ``Acknowledgements'', ++and any sections Entitled ``Dedications''. You must delete all ++sections Entitled ``Endorsements.'' ++ ++@item ++COLLECTIONS OF DOCUMENTS ++ ++You may make a collection consisting of the Document and other documents ++released under this License, and replace the individual copies of this ++License in the various documents with a single copy that is included in ++the collection, provided that you follow the rules of this License for ++verbatim copying of each of the documents in all other respects. ++ ++You may extract a single document from such a collection, and distribute ++it individually under this License, provided you insert a copy of this ++License into the extracted document, and follow this License in all ++other respects regarding verbatim copying of that document. ++ ++@item ++AGGREGATION WITH INDEPENDENT WORKS ++ ++A compilation of the Document or its derivatives with other separate ++and independent documents or works, in or on a volume of a storage or ++distribution medium, is called an ``aggregate'' if the copyright ++resulting from the compilation is not used to limit the legal rights ++of the compilation's users beyond what the individual works permit. ++When the Document is included in an aggregate, this License does not ++apply to the other works in the aggregate which are not themselves ++derivative works of the Document. ++ ++If the Cover Text requirement of section 3 is applicable to these ++copies of the Document, then if the Document is less than one half of ++the entire aggregate, the Document's Cover Texts may be placed on ++covers that bracket the Document within the aggregate, or the ++electronic equivalent of covers if the Document is in electronic form. ++Otherwise they must appear on printed covers that bracket the whole ++aggregate. ++ ++@item ++TRANSLATION ++ ++Translation is considered a kind of modification, so you may ++distribute translations of the Document under the terms of section 4. ++Replacing Invariant Sections with translations requires special ++permission from their copyright holders, but you may include ++translations of some or all Invariant Sections in addition to the ++original versions of these Invariant Sections. You may include a ++translation of this License, and all the license notices in the ++Document, and any Warranty Disclaimers, provided that you also include ++the original English version of this License and the original versions ++of those notices and disclaimers. In case of a disagreement between ++the translation and the original version of this License or a notice ++or disclaimer, the original version will prevail. ++ ++If a section in the Document is Entitled ``Acknowledgements'', ++``Dedications'', or ``History'', the requirement (section 4) to Preserve ++its Title (section 1) will typically require changing the actual ++title. ++ ++@item ++TERMINATION ++ ++You may not copy, modify, sublicense, or distribute the Document except ++as expressly provided for under this License. Any other attempt to ++copy, modify, sublicense or distribute the Document is void, and will ++automatically terminate your rights under this License. However, ++parties who have received copies, or rights, from you under this ++License will not have their licenses terminated so long as such ++parties remain in full compliance. ++ ++@item ++FUTURE REVISIONS OF THIS LICENSE ++ ++The Free Software Foundation may publish new, revised versions ++of the GNU Free Documentation License from time to time. Such new ++versions will be similar in spirit to the present version, but may ++differ in detail to address new problems or concerns. See ++@uref{http://www.gnu.org/copyleft/%7D. ++ ++Each version of the License is given a distinguishing version number. ++If the Document specifies that a particular numbered version of this ++License ``or any later version'' applies to it, you have the option of ++following the terms and conditions either of that specified version or ++of any later version that has been published (not as a draft) by the ++Free Software Foundation. If the Document does not specify a version ++number of this License, you may choose any version ever published (not ++as a draft) by the Free Software Foundation. ++@end enumerate ++ ++@page ++@appendixsubsec ADDENDUM: How to use this License for your documents ++ ++To use this License in a document you have written, include a copy of ++the License in the document and put the following copyright and ++license notices just after the title page: ++ ++@smallexample ++@group ++ Copyright (C) @var{year} @var{your name}. ++ Permission is granted to copy, distribute and/or modify this document ++ under the terms of the GNU Free Documentation License, Version 1.2 ++ or any later version published by the Free Software Foundation; ++ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover ++ Texts. A copy of the license is included in the section entitled ``GNU ++ Free Documentation License''. ++@end group ++@end smallexample ++ ++If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, ++replace the ``with...Texts.'' line with this: ++ ++@smallexample ++@group ++ with the Invariant Sections being @var{list their titles}, with ++ the Front-Cover Texts being @var{list}, and with the Back-Cover Texts ++ being @var{list}. ++@end group ++@end smallexample ++ ++If you have Invariant Sections without Cover Texts, or some other ++combination of the three, merge those two alternatives to suit the ++situation. ++ ++If your document contains nontrivial examples of program code, we ++recommend releasing these examples in parallel under your choice of ++free software license, such as the GNU General Public License, ++to permit their use in free software. ++ ++@c Local Variables: ++@c ispell-local-pdict: "ispell-dict" ++@c End: ++ +diff -Nur grub-0.97/docs/grub.8 grub-0.97-patched/docs/grub.8 +--- grub-0.97/docs/grub.8 2005-05-08 04:48:56.000000000 +0200 ++++ grub-0.97-patched/docs/grub.8 2012-11-11 17:07:12.715729211 +0100 +@@ -1,5 +1,5 @@ + ." DO NOT MODIFY THIS FILE! It was generated by help2man 1.23. +-.TH GRUB "8" "May 2005" "grub (GNU GRUB 0.97)" FSF ++.TH GRUB "8" "June 2006" "grub (GNU GRUB 0.97)" FSF + .SH NAME + grub - the grub shell + .SH SYNOPSIS +diff -Nur grub-0.97/docs/grub.8.additions grub-0.97-patched/docs/grub.8.additions +--- grub-0.97/docs/grub.8.additions 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/docs/grub.8.additions 2012-11-11 17:07:12.702728798 +0100 +@@ -0,0 +1,3 @@ ++[SEE ALSO] ++.BR update-grub (8), ++.BR grub-install (8). +diff -Nur grub-0.97/docs/grub-install.8 grub-0.97-patched/docs/grub-install.8 +--- grub-0.97/docs/grub-install.8 2005-05-08 04:48:56.000000000 +0200 ++++ grub-0.97-patched/docs/grub-install.8 2012-11-11 17:07:12.713729149 +0100 +@@ -1,5 +1,5 @@ + ." DO NOT MODIFY THIS FILE! It was generated by help2man 1.23. +-.TH GRUB-INSTALL "8" "May 2005" "grub-install (GNU GRUB 0.97)" FSF ++.TH GRUB-INSTALL "8" "June 2006" "grub-install (GNU GRUB 0.97)" FSF + .SH NAME + grub-install - install GRUB on your drive + .SH SYNOPSIS +diff -Nur grub-0.97/docs/grub-install.8.additions grub-0.97-patched/docs/grub-install.8.additions +--- grub-0.97/docs/grub-install.8.additions 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/docs/grub-install.8.additions 2012-11-11 17:07:12.703728829 +0100 +@@ -0,0 +1,3 @@ ++[SEE ALSO] ++.BR grub (8), ++.BR update-grub (8). +diff -Nur grub-0.97/docs/grub-md5-crypt.8 grub-0.97-patched/docs/grub-md5-crypt.8 +--- grub-0.97/docs/grub-md5-crypt.8 2005-05-08 04:48:56.000000000 +0200 ++++ grub-0.97-patched/docs/grub-md5-crypt.8 2012-11-11 17:07:12.713729149 +0100 +@@ -1,5 +1,5 @@ + ." DO NOT MODIFY THIS FILE! It was generated by help2man 1.23. +-.TH GRUB-MD5-CRYPT "8" "May 2005" "grub-md5-crypt (GNU GRUB )" FSF ++.TH GRUB-MD5-CRYPT "8" "June 2006" "grub-md5-crypt (GNU GRUB )" FSF + .SH NAME + grub-md5-crypt - Encrypt a password in MD5 format + .SH SYNOPSIS +diff -Nur grub-0.97/docs/grub-terminfo.8 grub-0.97-patched/docs/grub-terminfo.8 +--- grub-0.97/docs/grub-terminfo.8 2005-05-08 04:48:56.000000000 +0200 ++++ grub-0.97-patched/docs/grub-terminfo.8 2012-11-11 17:07:12.714729180 +0100 +@@ -1,5 +1,5 @@ + ." DO NOT MODIFY THIS FILE! It was generated by help2man 1.23. +-.TH GRUB-TERMINFO "8" "May 2005" "grub-terminfo (GNU GRUB 0.97)" FSF ++.TH GRUB-TERMINFO "8" "June 2006" "grub-terminfo (GNU GRUB 0.97)" FSF + .SH NAME + grub-terminfo - Generate a terminfo command from a terminfo name + .SH SYNOPSIS +diff -Nur grub-0.97/docs/grub.texi grub-0.97-patched/docs/grub.texi +--- grub-0.97/docs/grub.texi 2005-05-08 04:59:59.000000000 +0200 ++++ grub-0.97-patched/docs/grub.texi 2012-11-11 17:07:12.717729276 +0100 +@@ -2,22 +2,41 @@ + @c -*-texinfo-*- + @c %**start of header + @setfilename grub.info +-@settitle GRUB Manual +-@c %**end of header +- + @include version.texi +- ++@settitle GNU GRUB Manual @value{VERSION} + @c Unify all our little indices for now. + @syncodeindex fn cp + @syncodeindex vr cp + @syncodeindex ky cp + @syncodeindex pg cp + @syncodeindex tp cp ++@c %**end of header + + @footnotestyle separate + @paragraphindent 3 + @finalout + ++@copying ++This manual is for GNU GRUB (version @value{VERSION}, ++@value{UPDATED}). ++ ++Copyright @copyright{} 1999,2000,2001,2002,2004,2006 Free Software Foundation, Inc. ++ ++@quotation ++Permission is granted to copy, distribute and/or modify this document ++under the terms of the GNU Free Documentation License, Version 1.2 or ++any later version published by the Free Software Foundation; with no ++Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,'' ++and with the Back-Cover Texts as in (a) below. A copy of the ++license is included in the section entitled ``GNU Free Documentation ++License.'' ++ ++(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify ++this GNU Manual, like GNU software. Copies published by the Free ++Software Foundation raise funds for GNU development.'' ++@end quotation ++@end copying ++ + @dircategory Kernel + @direntry + * GRUB: (grub). The GRand Unified Bootloader +@@ -34,53 +53,16 @@ + + @setchapternewpage odd + +-@ifinfo +-Copyright @copyright{} 1999,2000,2001,2002,2004 Free Software Foundation, Inc. +- +-Permission is granted to make and distribute verbatim copies of +-this manual provided the copyright notice and this permission notice +-are preserved on all copies. +- +-@ignore +-Permission is granted to process this file through TeX and print the +-results, provided the printed document carries a copying permission +-notice identical to this one except for the removal of this paragraph +-(this paragraph not being relevant to the printed manual). +- +-@end ignore +- +-Permission is granted to copy and distribute modified versions of this +-manual under the conditions for verbatim copying, provided also that +-the entire resulting derived work is distributed under the terms of a +-permission notice identical to this one. +- +-Permission is granted to copy and distribute translations of this manual +-into another language, under the above conditions for modified versions. +-@end ifinfo +- + @titlepage + @sp 10 +-@title the GRUB manual ++@title the GNU GRUB manual + @subtitle The GRand Unified Bootloader, version @value{VERSION}, @value{UPDATED}. + @author Gordon Matzigkeit + @author Yoshinori K. Okuji + @c The following two commands start the copyright page. + @page + @vskip 0pt plus 1filll +-Copyright @copyright{} 1999,2000,2001,2002,2004 Free Software Foundation, Inc. +- +-Permission is granted to make and distribute verbatim copies of +-this manual provided the copyright notice and this permission notice +-are preserved on all copies. +-Permission is granted to copy and distribute modified versions of this +-manual under the conditions for verbatim copying, provided that the entire +-resulting derived work is distributed under the terms of a permission +-notice identical to this one. +- +-Permission is granted to copy and distribute translations of this manual +-into another language, under the above conditions for modified versions, +-except that this permission notice may be stated in a translation approved +-by Free Software Foundation. ++@insertcopying + @end titlepage + + @c Output the table of contents at the beginning. +@@ -91,12 +73,14 @@ + + @ifnottex + @node Top +-@top GRUB manual ++@top GNU GRUB manual + + This is the documentation of GNU GRUB, the GRand Unified Bootloader, + a flexible and powerful boot loader program for @sc{pc}s. + + This edition documents version @value{VERSION}. ++ ++@insertcopying + @end ifnottex + + @menu +@@ -124,6 +108,7 @@ + * Reporting bugs:: Where you should send a bug report + * Future:: Some future plans on GRUB + * Internals:: Hacking GRUB ++* Copying This Manual:: Copying This Manual + * Index:: + @end menu + +@@ -3965,6 +3950,16 @@ + @include internals.texi + + ++@node Copying This Manual ++@appendix Copying This Manual ++ ++@menu ++* GNU Free Documentation License:: License for copying this manual. ++@end menu ++ ++@include fdl.texi ++ ++ + @node Index + @unnumbered Index + +diff -Nur grub-0.97/docs/help2man grub-0.97-patched/docs/help2man +--- grub-0.97/docs/help2man 2003-07-09 13:45:36.000000000 +0200 ++++ grub-0.97-patched/docs/help2man 2012-11-11 17:07:12.701728766 +0100 +@@ -455,7 +455,9 @@ + $include{$sect} .= <<EOT; + The full documentation for + .B $program +-is maintained as a Texinfo manual. If the ++is maintained as a Texinfo manual in the ++.B grub-doc ++package. If the + .B info + and + .B $program +diff -Nur grub-0.97/docs/Makefile.am grub-0.97-patched/docs/Makefile.am +--- grub-0.97/docs/Makefile.am 2003-07-09 13:45:35.000000000 +0200 ++++ grub-0.97-patched/docs/Makefile.am 2012-11-11 17:07:12.711729085 +0100 +@@ -1,5 +1,5 @@ + info_TEXINFOS = grub.texi multiboot.texi +-grub_TEXINFOS = internals.texi ++grub_TEXINFOS = internals.texi fdl.texi + EXAMPLES = boot.S kernel.c multiboot.h + multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi + man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8 grub-terminfo.8 +@@ -37,14 +37,14 @@ + $(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@ + + if MAINTAINER_MODE +-$(srcdir)/grub.8: ../grub/grub $(srcdir)/$(HELP2MAN) ++$(srcdir)/grub.8: ../grub/grub $(srcdir)/$(HELP2MAN) $(srcdir)/grub.8.additions + $(PERL) $(srcdir)/$(HELP2MAN) --name="the grub shell" \ +- --section=8 --output=$@ $< ++ --section=8 --include=$@.additions --output=$@ $< + +-$(srcdir)/grub-install.8: ../util/grub-install $(srcdir)/$(HELP2MAN) ++$(srcdir)/grub-install.8: ../util/grub-install $(srcdir)/$(HELP2MAN) $(srcdir)/grub-install.8.additions + chmod 755 $< + $(PERL) $(srcdir)/$(HELP2MAN) --name="install GRUB on your drive" \ +- --section=8 --output=$@ $< ++ --section=8 --include=$@.additions --output=$@ $< + + $(srcdir)/mbchk.1: ../util/mbchk $(srcdir)/$(HELP2MAN) + $(PERL) $(srcdir)/$(HELP2MAN) \ +diff -Nur grub-0.97/docs/mbchk.1 grub-0.97-patched/docs/mbchk.1 +--- grub-0.97/docs/mbchk.1 2005-05-08 04:48:56.000000000 +0200 ++++ grub-0.97-patched/docs/mbchk.1 2012-11-11 17:07:12.717729276 +0100 +@@ -1,5 +1,5 @@ + ." DO NOT MODIFY THIS FILE! It was generated by help2man 1.23. +-.TH MBCHK "1" "May 2005" "mbchk (GNU GRUB 0.97)" FSF ++.TH MBCHK "1" "June 2006" "mbchk (GNU GRUB 0.97)" FSF + .SH NAME + mbchk - check the format of a Multiboot kernel + .SH SYNOPSIS +diff -Nur grub-0.97/docs/menu.lst grub-0.97-patched/docs/menu.lst +--- grub-0.97/docs/menu.lst 2004-05-11 14:11:17.000000000 +0200 ++++ grub-0.97-patched/docs/menu.lst 2012-11-11 17:07:07.225553829 +0100 +@@ -11,6 +11,9 @@ + # Fallback to the second entry. + fallback 1 + ++# Splash image to show behind grub. ++splashimage=(hd0,0)/boot/grub/splash.xpm.gz ++ + # For booting GNU/Hurd + title GNU/Hurd + root (hd0,0) +@@ -23,6 +26,11 @@ + kernel /vmlinuz root=/dev/hdb1 + #initrd /initrd.img + ++# For booting Gentoo with the static rescue shell ++title Gentoo (rescue shell) ++root (hd1,0) ++kernel /vmlinuz root=/dev/hdb1 init=/bin/bb ++ + # For booting GNU/kFreeBSD + title GNU/kFreeBSD + root (hd0,2,a) +diff -Nur grub-0.97/docs/menu.lst.orig grub-0.97-patched/docs/menu.lst.orig +--- grub-0.97/docs/menu.lst.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/docs/menu.lst.orig 2004-05-11 14:11:17.000000000 +0200 +@@ -0,0 +1,82 @@ ++# ++# Sample boot menu configuration file ++# ++ ++# Boot automatically after 30 secs. ++timeout 30 ++ ++# By default, boot the first entry. ++default 0 ++ ++# Fallback to the second entry. ++fallback 1 ++ ++# For booting GNU/Hurd ++title GNU/Hurd ++root (hd0,0) ++kernel /boot/gnumach.gz root=hd0s1 ++module /boot/serverboot.gz ++ ++# For booting GNU/Linux ++title GNU/Linux ++root (hd1,0) ++kernel /vmlinuz root=/dev/hdb1 ++#initrd /initrd.img ++ ++# For booting GNU/kFreeBSD ++title GNU/kFreeBSD ++root (hd0,2,a) ++kernel /boot/loader.gz ++ ++# For booting GNU/kNetBSD ++title GNU/kNetBSD ++root (hd0,2,a) ++kernel --type=netbsd /boot/knetbsd.gz ++ ++# For booting Mach (getting kernel from floppy) ++title Utah Mach4 multiboot ++root (hd0,2) ++pause Insert the diskette now!! ++kernel (fd0)/boot/kernel root=hd0s3 ++module (fd0)/boot/bootstrap ++ ++# For booting FreeBSD ++title FreeBSD ++root (hd0,2,a) ++kernel /boot/loader ++ ++# For booting NetBSD ++title NetBSD ++root (hd0,2,a) ++kernel --type=netbsd /netbsd ++ ++# For booting OpenBSD ++title OpenBSD ++root (hd0,2,a) ++kernel --type=netbsd /bsd ++ ++# For booting OS/2 ++title OS/2 ++root (hd0,1) ++makeactive ++# chainload OS/2 bootloader from the first sector ++chainloader +1 ++# This is similar to "chainload", but loads a specific file ++#chainloader /boot/chain.os2 ++ ++# For booting Windows NT or Windows95 ++title Windows NT / Windows 95 boot menu ++rootnoverify (hd0,0) ++makeactive ++chainloader +1 ++# For loading DOS if Windows NT is installed ++# chainload /bootsect.dos ++ ++# For installing GRUB into the hard disk ++title Install GRUB into the hard disk ++root (hd0,0) ++setup (hd0) ++ ++# Change the colors. ++title Change the colors ++color light-green/brown blink-red/blue +diff -Nur grub-0.97/docs/multiboot.texi grub-0.97-patched/docs/multiboot.texi +--- grub-0.97/docs/multiboot.texi 2003-07-09 13:45:36.000000000 +0200 ++++ grub-0.97-patched/docs/multiboot.texi 2012-11-11 17:07:12.718729309 +0100 +@@ -1,32 +1,28 @@ + \input texinfo @c -*-texinfo-*- +-@c -*-texinfo-*- + @c %**start of header + @setfilename multiboot.info +-@settitle Multiboot Specification +-@c %**end of header +- ++@set VERSION 0.6.95 ++@settitle Multiboot Specification version @value{VERSION} + @c Unify all our little indices for now. + @syncodeindex fn cp + @syncodeindex vr cp + @syncodeindex ky cp + @syncodeindex pg cp + @syncodeindex tp cp ++@c %**end of header + + @footnotestyle separate + @paragraphindent 3 + @finalout + ++@copying ++Copyright @copyright{} 1995,96 Bryan Ford <baford@@cs.utah.edu> + +-@dircategory Kernel +-@direntry +-* Multiboot Specification: (multiboot). Multiboot Specification. +-@end direntry ++Copyright @copyright{} 1995,96 Erich Stefan Boleyn <erich@@uruk.org> + +-@ifinfo +-Copyright @copyright{} 1995, 96 Bryan Ford <baford@@cs.utah.edu> +-Copyright @copyright{} 1995, 96 Erich Stefan Boleyn <erich@@uruk.org> +-Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ++Copyright @copyright{} 1999,2000,2001,2002,2005,2006 Free Software Foundation, Inc. + ++@quotation + Permission is granted to make and distribute verbatim copies of + this manual provided the copyright notice and this permission notice + are preserved on all copies. +@@ -36,7 +32,6 @@ + results, provided the printed document carries a copying permission + notice identical to this one except for the removal of this paragraph + (this paragraph not being relevant to the printed manual). +- + @end ignore + + Permission is granted to copy and distribute modified versions of this +@@ -45,31 +40,23 @@ + permission notice identical to this one. + + Permission is granted to copy and distribute translations of this manual +-into another language, under the above conditions for modified versions. +-@end ifinfo ++into another language, under the above conditions for modified ++versions. ++@end quotation ++@end copying ++ ++@dircategory Kernel ++@direntry ++* Multiboot Specification: (multiboot). Multiboot Specification. ++@end direntry + + @titlepage + @sp 10 +-@title The Multiboot Specification ++@title The Multiboot Specification version @value{VERSION} + @author Yoshinori K. Okuji, Bryan Ford, Erich Stefan Boleyn, Kunihiro Ishiguro + @page +- + @vskip 0pt plus 1filll +-Copyright @copyright{} 1995, 96 Bryan Ford <baford@@cs.utah.edu> +-Copyright @copyright{} 1995, 96 Erich Stefan Boleyn <erich@@uruk.org> +-Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +- +-Permission is granted to make and distribute verbatim copies of +-this manual provided the copyright notice and this permission notice +-are preserved on all copies. +- +-Permission is granted to copy and distribute modified versions of this +-manual under the conditions for verbatim copying, provided also that +-the entire resulting derived work is distributed under the terms of a +-permission notice identical to this one. +- +-Permission is granted to copy and distribute translations of this manual +-into another language, under the above conditions for modified versions. ++@insertcopying + @end titlepage + + @finalout +@@ -80,7 +67,9 @@ + @top Multiboot Specification + + This file documents Multiboot Specification, the proposal for the boot +-sequence standard. This edition documents version 0.6.93. ++sequence standard. This edition documents version @value{VERSION}. ++ ++@insertcopying + @end ifnottex + + @menu +@@ -426,7 +415,7 @@ + kernel. + + If bit 16 in the @samp{flags} word is set, then the fields at offsets +-8-24 in the Multiboot header are valid, and the boot loader should use ++12-28 in the Multiboot header are valid, and the boot loader should use + them instead of the fields in the actual executable header to calculate + where to load the OS image. This information does not need to be + provided if the kernel image is in @sc{elf} format, but it @emph{must} +@@ -677,7 +666,7 @@ + @example + @group + +-------+-------+-------+-------+ +-| drive | part1 | part2 | part3 | ++| part3 | part2 | part1 | drive | + +-------+-------+-------+-------+ + @end group + @end example +@@ -1197,6 +1186,17 @@ + @item + The maintainer changes to the GNU GRUB maintainer team + @email{bug-grub@@gnu.org}, from Bryan Ford and Erich Stefan Boleyn. ++ ++@item ++The byte order of the @samp{boot_device} in Multiboot information is ++reversed. This was a mistake. ++ ++@item ++The offset of the address fields were wrong. ++ ++@item ++The format is adapted to a newer Texinfo, and the version number is ++specified more explicitly in the title. + @end itemize + + @item 0.6 +diff -Nur grub-0.97/grub/asmstub.c grub-0.97-patched/grub/asmstub.c +--- grub-0.97/grub/asmstub.c 2005-02-16 21:45:14.000000000 +0100 ++++ grub-0.97-patched/grub/asmstub.c 2012-11-11 17:07:12.719729342 +0100 +@@ -42,6 +42,7 @@ + #include <sys/time.h> + #include <termios.h> + #include <signal.h> ++#include <sys/mman.h> + + #ifdef __linux__ + # include <sys/ioctl.h> /* ioctl */ +@@ -55,6 +56,10 @@ + # endif /* ! BLKFLSBUF */ + #endif /* __linux__ */ + ++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__) ++# include <sys/sysctl.h> ++#endif ++ + /* We want to prevent any circularararity in our stubs, as well as + libc name clashes. */ + #define WITHOUT_LIBC_STUBS 1 +@@ -79,7 +84,7 @@ + struct apm_info apm_bios_info; + + /* Emulation requirements. */ +-char *grub_scratch_mem = 0; ++void *grub_scratch_mem = 0; + + struct geometry *disks = 0; + +@@ -103,14 +108,62 @@ + static unsigned int serial_speed; + #endif /* SIMULATE_SLOWNESS_OF_SERIAL */ + ++/* This allocates page-aligned storage of the specified size, which must be ++ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE) ++ */ ++#ifdef __linux__ ++static void * ++grub_mmap_alloc(size_t len) ++{ ++ int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE; ++ ++#ifdef MAP_32BIT ++ mmap_flags |= MAP_32BIT; ++#endif ++ /* Mark the simulated stack executable, as GCC uses stack trampolines ++ * to implement nested functions. */ ++ return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0); ++} ++#else /* !defined(__linux__) */ ++static void * ++grub_mmap_alloc(size_t len) ++{ ++ int fd = 0, offset = 0, ret = 0; ++ void *pa = MAP_FAILED; ++ char template[] = "/tmp/grub_mmap_alloc_XXXXXX"; ++ int e; ++ ++ fd = mkstemp(template); ++ if (fd < 0) ++ return pa; ++ ++ unlink(template); ++ ++ ret = ftruncate(fd, len); ++ if (ret < 0) ++ return pa; ++ ++ /* Mark the simulated stack executable, as GCC uses stack trampolines ++ * to implement nested functions. */ ++ pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, ++ MAP_PRIVATE, fd, offset); ++ ++ e = errno; ++ close(fd); ++ errno = e; ++ return pa; ++} ++#endif /* defined(__linux__) */ ++ + /* The main entry point into this mess. */ + int + grub_stage2 (void) + { + /* These need to be static, because they survive our stack transitions. */ + static int status = 0; +- static char *realstack; +- char *scratch, *simstack; ++ static void *realstack; ++ void *simstack_alloc_base, *simstack; ++ size_t simstack_size, page_size; + int i; + + auto void doit (void); +@@ -142,9 +195,35 @@ + } + + assert (grub_scratch_mem == 0); +- scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15); +- assert (scratch); +- grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4); ++ ++ /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and ++ * make sure the memory is aligned to a multiple of the system's ++ * page size */ ++ page_size = sysconf (_SC_PAGESIZE); ++ simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15); ++ if (simstack_size % page_size) ++ { ++ /* If we're not on a page_size boundary, round up to the next one */ ++ simstack_size &= ~(page_size-1); ++ simstack_size += page_size; ++ } ++ ++ /* Add one for a PROT_NONE boundary page at each end. */ ++ simstack_size += 2 * page_size; ++ ++ simstack_alloc_base = grub_mmap_alloc(simstack_size); ++ assert (simstack_alloc_base != MAP_FAILED); ++ ++ /* mark pages above and below our simstack area as innaccessable. ++ * If the implementation we're using doesn't support that, then the ++ * new protection modes are undefined. It's safe to just ignore ++ * them, though. It'd be nice if we knew that we'd get a SEGV for ++ * touching the area, but that's all. it'd be nice to have. */ ++ mprotect (simstack_alloc_base, page_size, PROT_NONE); ++ mprotect ((void *)((unsigned long)simstack_alloc_base + ++ simstack_size - page_size), page_size, PROT_NONE); ++ ++ grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size); + + /* FIXME: simulate the memory holes using mprot, if available. */ + +@@ -217,7 +296,7 @@ + device_map = 0; + free (disks); + disks = 0; +- free (scratch); ++ munmap(simstack_alloc_base, simstack_size); + grub_scratch_mem = 0; + + if (serial_device) +@@ -777,7 +856,39 @@ + + /* Open read/write, or read-only if that failed. */ + if (! read_only) +- disks[drive].flags = open (devname, O_RDWR); ++ { ++/* By default, kernel of FreeBSD does not allow overwriting MBR */ ++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__) ++#define GEOM_SYSCTL "kern.geom.debugflags" ++ int old_flags, flags; ++ size_t sizeof_int = sizeof (int); ++ ++ if (sysctlbyname (GEOM_SYSCTL, &old_flags, &sizeof_int, NULL, 0) != 0) ++ grub_printf ("failed to get " GEOM_SYSCTL "sysctl: %s\n", strerror (errno)); ++ ++ if ((old_flags & 0x10) == 0) ++ { ++ /* "allow foot shooting", see geom(4) */ ++ flags = old_flags | 0x10; ++ ++ if (sysctlbyname (GEOM_SYSCTL, NULL, NULL, &flags, sizeof (int)) != 0) ++ { ++ flags = old_flags; ++ grub_printf ("failed to set " GEOM_SYSCTL "sysctl: %s\n", strerror (errno)); ++ } ++ } ++ else ++ flags = old_flags; ++#endif ++ disks[drive].flags = open (devname, O_RDWR); ++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__) ++ if (flags != old_flags) ++ { ++ if (sysctlbyname (GEOM_SYSCTL, NULL, NULL, &old_flags, sizeof (int)) != 0) ++ grub_printf ("failed to set " GEOM_SYSCTL "sysctl: %s\n", strerror (errno)); ++ } ++#endif ++ } + + if (disks[drive].flags == -1) + { +@@ -926,7 +1037,7 @@ + + int + biosdisk (int subfunc, int drive, struct geometry *geometry, +- int sector, int nsec, int segment) ++ unsigned int sector, int nsec, int segment) + { + char *buf; + int fd = geometry->flags; +diff -Nur grub-0.97/grub/asmstub.c.orig grub-0.97-patched/grub/asmstub.c.orig +--- grub-0.97/grub/asmstub.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/grub/asmstub.c.orig 2005-02-16 21:45:14.000000000 +0100 +@@ -0,0 +1,1275 @@ ++/* asmstub.c - a version of shared_src/asm.S that works under Unix */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 1999,2000,2001,2002,2004 Free Software Foundation, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++/* Try to use glibc's transparant LFS support. */ ++#define _LARGEFILE_SOURCE 1 ++/* lseek becomes synonymous with lseek64. */ ++#define _FILE_OFFSET_BITS 64 ++ ++/* Simulator entry point. */ ++int grub_stage2 (void); ++ ++#include <stdlib.h> ++#include <string.h> ++#include <ctype.h> ++#include <assert.h> ++#include <stdio.h> ++#include <sys/types.h> ++#include <sys/stat.h> ++#include <fcntl.h> ++#include <time.h> ++#include <errno.h> ++#include <string.h> ++#include <unistd.h> ++#include <setjmp.h> ++#include <sys/time.h> ++#include <termios.h> ++#include <signal.h> ++ ++#ifdef __linux__ ++# include <sys/ioctl.h> /* ioctl */ ++# if !defined(__GLIBC__) || \ ++ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))) ++/* Maybe libc doesn't have large file support. */ ++# include <linux/unistd.h> /* _llseek */ ++# endif /* (GLIBC < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR < 1)) */ ++# ifndef BLKFLSBUF ++# define BLKFLSBUF _IO (0x12,97) /* flush buffer cache */ ++# endif /* ! BLKFLSBUF */ ++#endif /* __linux__ */ ++ ++/* We want to prevent any circularararity in our stubs, as well as ++ libc name clashes. */ ++#define WITHOUT_LIBC_STUBS 1 ++#include <shared.h> ++#include <device.h> ++#include <serial.h> ++#include <term.h> ++ ++/* Simulated memory sizes. */ ++#define EXTENDED_MEMSIZE (3 * 1024 * 1024) /* 3MB */ ++#define CONVENTIONAL_MEMSIZE (640 * 1024) /* 640kB */ ++ ++unsigned long install_partition = 0x20000; ++unsigned long boot_drive = 0; ++int saved_entryno = 0; ++char version_string[] = VERSION; ++char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */ ++unsigned long linux_text_len = 0; ++char *linux_data_tmp_addr = 0; ++char *linux_data_real_addr = 0; ++unsigned short io_map[IO_MAP_SIZE]; ++struct apm_info apm_bios_info; ++ ++/* Emulation requirements. */ ++char *grub_scratch_mem = 0; ++ ++struct geometry *disks = 0; ++ ++/* The map between BIOS drives and UNIX device file names. */ ++char **device_map = 0; ++ ++/* The jump buffer for exiting correctly. */ ++static jmp_buf env_for_exit; ++ ++/* The current color for console. */ ++int console_current_color = A_NORMAL; ++ ++/* The file descriptor for a serial device. */ ++static int serial_fd = -1; ++ ++/* The file name of a serial device. */ ++static char *serial_device = 0; ++ ++#ifdef SIMULATE_SLOWNESS_OF_SERIAL ++/* The speed of a serial device. */ ++static unsigned int serial_speed; ++#endif /* SIMULATE_SLOWNESS_OF_SERIAL */ ++ ++/* The main entry point into this mess. */ ++int ++grub_stage2 (void) ++{ ++ /* These need to be static, because they survive our stack transitions. */ ++ static int status = 0; ++ static char *realstack; ++ char *scratch, *simstack; ++ int i; ++ ++ auto void doit (void); ++ ++ /* We need a nested function so that we get a clean stack frame, ++ regardless of how the code is optimized. */ ++ void doit (void) ++ { ++ /* Make sure our stack lives in the simulated memory area. */ ++ asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n" ++ : "=&r" (realstack) : "r" (simstack)); ++ ++ /* Do a setjmp here for the stop command. */ ++ if (! setjmp (env_for_exit)) ++ { ++ /* Actually enter the generic stage2 code. */ ++ status = 0; ++ init_bios_info (); ++ } ++ else ++ { ++ /* If ERRNUM is non-zero, then set STATUS to non-zero. */ ++ if (errnum) ++ status = 1; ++ } ++ ++ /* Replace our stack before we use any local variables. */ ++ asm volatile ("movl %0, %%esp\n" : : "r" (realstack)); ++ } ++ ++ assert (grub_scratch_mem == 0); ++ scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15); ++ assert (scratch); ++ grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4); ++ ++ /* FIXME: simulate the memory holes using mprot, if available. */ ++ ++ assert (disks == 0); ++ disks = malloc (NUM_DISKS * sizeof (*disks)); ++ assert (disks); ++ /* Initialize DISKS. */ ++ for (i = 0; i < NUM_DISKS; i++) ++ disks[i].flags = -1; ++ ++ if (! init_device_map (&device_map, device_map_file, floppy_disks)) ++ return 1; ++ ++ /* Check some invariants. */ ++ assert ((SCRATCHSEG << 4) == SCRATCHADDR); ++ assert ((BUFFERSEG << 4) == BUFFERADDR); ++ assert (BUFFERADDR + BUFFERLEN == SCRATCHADDR); ++ assert (FSYS_BUF % 16 == 0); ++ assert (FSYS_BUF + FSYS_BUFLEN == BUFFERADDR); ++ ++#ifdef HAVE_LIBCURSES ++ /* Get into char-at-a-time mode. */ ++ if (use_curses) ++ { ++ initscr (); ++ cbreak (); ++ noecho (); ++ nonl (); ++ scrollok (stdscr, TRUE); ++ keypad (stdscr, TRUE); ++ wtimeout (stdscr, 100); ++ signal (SIGWINCH, SIG_IGN); ++ } ++#endif ++ ++ /* Make sure that actual writing is done. */ ++ sync (); ++ ++ /* Set our stack, and go for it. */ ++ simstack = (char *) PROTSTACKINIT; ++ doit (); ++ ++ /* I don't know if this is necessary really. */ ++ sync (); ++ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ endwin (); ++#endif ++ ++ /* Close off the file descriptors we used. */ ++ for (i = 0; i < NUM_DISKS; i ++) ++ if (disks[i].flags != -1) ++ { ++#ifdef __linux__ ++ /* In Linux, invalidate the buffer cache. In other OSes, reboot ++ is one of the solutions... */ ++ ioctl (disks[i].flags, BLKFLSBUF, 0); ++#else ++# warning "In your operating system, the buffer cache will not be flushed." ++#endif ++ close (disks[i].flags); ++ } ++ ++ if (serial_fd >= 0) ++ close (serial_fd); ++ ++ /* Release memory. */ ++ restore_device_map (device_map); ++ device_map = 0; ++ free (disks); ++ disks = 0; ++ free (scratch); ++ grub_scratch_mem = 0; ++ ++ if (serial_device) ++ free (serial_device); ++ serial_device = 0; ++ ++ /* Ahh... at last we're ready to return to caller. */ ++ return status; ++} ++ ++/* Assign DRIVE to a device name DEVICE. */ ++void ++assign_device_name (int drive, const char *device) ++{ ++ /* If DRIVE is already assigned, free it. */ ++ if (device_map[drive]) ++ free (device_map[drive]); ++ ++ /* If the old one is already opened, close it. */ ++ if (disks[drive].flags != -1) ++ { ++ close (disks[drive].flags); ++ disks[drive].flags = -1; ++ } ++ ++ /* Assign DRIVE to DEVICE. */ ++ if (! device) ++ device_map[drive] = 0; ++ else ++ device_map[drive] = strdup (device); ++} ++ ++void ++stop (void) ++{ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ endwin (); ++#endif ++ ++ /* Jump to doit. */ ++ longjmp (env_for_exit, 1); ++} ++ ++void ++grub_reboot (void) ++{ ++ stop (); ++} ++ ++void ++grub_halt (int no_apm) ++{ ++ stop (); ++} ++ ++/* calls for direct boot-loader chaining */ ++void ++chain_stage1 (unsigned long segment, unsigned long offset, ++ unsigned long part_table_addr) ++{ ++ stop (); ++} ++ ++ ++void ++chain_stage2 (unsigned long segment, unsigned long offset, int second_sector) ++{ ++ stop (); ++} ++ ++ ++/* do some funky stuff, then boot linux */ ++void ++linux_boot (void) ++{ ++ stop (); ++} ++ ++ ++/* For bzImage kernels. */ ++void ++big_linux_boot (void) ++{ ++ stop (); ++} ++ ++ ++/* booting a multiboot executable */ ++void ++multi_boot (int start, int mb_info) ++{ ++ stop (); ++} ++ ++/* sets it to linear or wired A20 operation */ ++void ++gateA20 (int linear) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++/* Set up the int15 handler. */ ++void ++set_int15_handler (void) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++/* Restore the original int15 handler. */ ++void ++unset_int15_handler (void) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++/* The key map. */ ++unsigned short bios_key_map[KEY_MAP_SIZE + 1]; ++unsigned short ascii_key_map[KEY_MAP_SIZE + 1]; ++ ++/* Copy MAP to the drive map and set up the int13 handler. */ ++void ++set_int13_handler (unsigned short *map) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++int ++get_code_end (void) ++{ ++ /* Just return a little area for simulation. */ ++ return BOOTSEC_LOCATION + (60 * 1024); ++} ++ ++ ++/* memory probe routines */ ++int ++get_memsize (int type) ++{ ++ if (! type) ++ return CONVENTIONAL_MEMSIZE >> 10; ++ else ++ return EXTENDED_MEMSIZE >> 10; ++} ++ ++ ++/* get_eisamemsize() : return packed EISA memory map, lower 16 bits is ++ * memory between 1M and 16M in 1K parts, upper 16 bits is ++ * memory above 16M in 64K parts. If error, return -1. ++ */ ++int ++get_eisamemsize (void) ++{ ++ return (EXTENDED_MEMSIZE >> 10); ++} ++ ++ ++#define MMAR_DESC_TYPE_AVAILABLE 1 /* available to OS */ ++#define MMAR_DESC_TYPE_RESERVED 2 /* not available */ ++#define MMAR_DESC_TYPE_ACPI_RECLAIM 3 /* usable by OS after reading ACPI */ ++#define MMAR_DESC_TYPE_ACPI_NVS 4 /* required to save between NVS sessions */ ++ ++#define MMAR_DESC_LENGTH 20 ++ ++/* Fetch the next entry in the memory map and return the continuation ++ value. DESC is a pointer to the descriptor buffer, and CONT is the ++ previous continuation value (0 to get the first entry in the ++ map). */ ++int ++get_mmap_entry (struct mmar_desc *desc, int cont) ++{ ++ /* Record the memory map statically. */ ++ static struct mmar_desc desc_table[] = ++ { ++ /* The conventional memory. */ ++ { ++ MMAR_DESC_LENGTH, ++ 0, ++ CONVENTIONAL_MEMSIZE, ++ MMAR_DESC_TYPE_AVAILABLE ++ }, ++ /* BIOS RAM and ROM (such as video memory). */ ++ { ++ MMAR_DESC_LENGTH, ++ CONVENTIONAL_MEMSIZE, ++ 0x100000 - CONVENTIONAL_MEMSIZE, ++ MMAR_DESC_TYPE_RESERVED ++ }, ++ /* The extended memory. */ ++ { ++ MMAR_DESC_LENGTH, ++ 0x100000, ++ EXTENDED_MEMSIZE, ++ MMAR_DESC_TYPE_AVAILABLE ++ } ++ }; ++ ++ int num = sizeof (desc_table) / sizeof (*desc_table); ++ ++ if (cont < 0 || cont >= num) ++ { ++ /* Should not happen. */ ++ desc->desc_len = 0; ++ } ++ else ++ { ++ /* Copy the entry. */ ++ *desc = desc_table[cont++]; ++ ++ /* If the next entry exists, return the index. */ ++ if (cont < num) ++ return cont; ++ } ++ ++ return 0; ++} ++ ++/* Track the int13 handler. */ ++void ++track_int13 (int drive) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++/* Get the ROM configuration table. */ ++unsigned long ++get_rom_config_table (void) ++{ ++ return 0; ++} ++ ++/* Get APM BIOS information. */ ++void ++get_apm_info (void) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++/* Get VBE controller information. */ ++int ++get_vbe_controller_info (struct vbe_controller *controller) ++{ ++ /* Always fails. */ ++ return 0; ++} ++ ++/* Get VBE mode information. */ ++int ++get_vbe_mode_info (int mode_number, struct vbe_mode *mode) ++{ ++ /* Always fails. */ ++ return 0; ++} ++ ++/* Set VBE mode. */ ++int ++set_vbe_mode (int mode_number) ++{ ++ /* Always fails. */ ++ return 0; ++} ++ ++/* low-level timing info */ ++int ++getrtsecs (void) ++{ ++ /* FIXME: exact value is not important, so just return time_t for now. */ ++ return time (0); ++} ++ ++int ++currticks (void) ++{ ++ struct timeval tv; ++ long csecs; ++ int ticks_per_csec, ticks_per_usec; ++ ++ /* Note: 18.2 ticks/sec. */ ++ ++ /* Get current time. */ ++ gettimeofday (&tv, 0); ++ ++ /* Compute centiseconds. */ ++ csecs = tv.tv_sec / 10; ++ ++ /* Ticks per centisecond. */ ++ ticks_per_csec = csecs * 182; ++ ++ /* Ticks per microsecond. */ ++ ticks_per_usec = (((tv.tv_sec - csecs * 10) * 1000000 + tv.tv_usec) ++ * 182 / 10000000); ++ ++ /* Sum them. */ ++ return ticks_per_csec + ticks_per_usec; ++} ++ ++/* displays an ASCII character. IBM displays will translate some ++ characters to special graphical ones */ ++void ++console_putchar (int c) ++{ ++ /* Curses doesn't have VGA fonts. */ ++ switch (c) ++ { ++ case DISP_UL: ++ c = ACS_ULCORNER; ++ break; ++ case DISP_UR: ++ c = ACS_URCORNER; ++ break; ++ case DISP_LL: ++ c = ACS_LLCORNER; ++ break; ++ case DISP_LR: ++ c = ACS_LRCORNER; ++ break; ++ case DISP_HORIZ: ++ c = ACS_HLINE; ++ break; ++ case DISP_VERT: ++ c = ACS_VLINE; ++ break; ++ case DISP_LEFT: ++ c = ACS_LARROW; ++ break; ++ case DISP_RIGHT: ++ c = ACS_RARROW; ++ break; ++ case DISP_UP: ++ c = ACS_UARROW; ++ break; ++ case DISP_DOWN: ++ c = ACS_DARROW; ++ break; ++ default: ++ break; ++ } ++ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ { ++ /* In ncurses, a newline is treated badly, so we emulate it in our ++ own way. */ ++ if (c == '\n') ++ { ++ int x, y; ++ ++ getyx (stdscr, y, x); ++ if (y + 1 == LINES) ++ scroll (stdscr); ++ else ++ move (y + 1, x); ++ } ++ else if (isprint (c)) ++ { ++ int x, y; ++ ++ getyx (stdscr, y, x); ++ if (x + 1 == COLS) ++ { ++ console_putchar ('\r'); ++ console_putchar ('\n'); ++ } ++ addch (c | console_current_color); ++ } ++ else ++ { ++ addch (c); ++ } ++ ++#ifdef REFRESH_IMMEDIATELY ++ refresh (); ++#endif ++ } ++ else ++#endif ++ { ++ /* CR is not used in Unix. */ ++ if (c != '\r') ++ putchar (c); ++ } ++} ++ ++/* The store for ungetch simulation. This is necessary, because ++ ncurses-1.9.9g is still used in the world and its ungetch is ++ completely broken. */ ++#ifdef HAVE_LIBCURSES ++static int save_char = ERR; ++#endif ++ ++static int ++console_translate_key (int c) ++{ ++ switch (c) ++ { ++ case KEY_LEFT: ++ return 2; ++ case KEY_RIGHT: ++ return 6; ++ case KEY_UP: ++ return 16; ++ case KEY_DOWN: ++ return 14; ++ case KEY_DC: ++ return 4; ++ case KEY_BACKSPACE: ++ return 8; ++ case KEY_HOME: ++ return 1; ++ case KEY_END: ++ return 5; ++ case KEY_PPAGE: ++ return 7; ++ case KEY_NPAGE: ++ return 3; ++ default: ++ break; ++ } ++ ++ return c; ++} ++ ++/* like 'getkey', but doesn't wait, returns -1 if nothing available */ ++int ++console_checkkey (void) ++{ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ { ++ int c; ++ ++ /* Check for SAVE_CHAR. This should not be true, because this ++ means checkkey is called twice continuously. */ ++ if (save_char != ERR) ++ return save_char; ++ ++ c = getch (); ++ /* If C is not ERR, then put it back in the input queue. */ ++ if (c != ERR) ++ save_char = c; ++ return console_translate_key (c); ++ } ++#endif ++ ++ /* Just pretend they hit the space bar, then read the real key when ++ they call getkey. */ ++ return ' '; ++} ++ ++/* returns packed BIOS/ASCII code */ ++int ++console_getkey (void) ++{ ++ int c; ++ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ { ++ /* If checkkey has already got a character, then return it. */ ++ if (save_char != ERR) ++ { ++ c = save_char; ++ save_char = ERR; ++ return console_translate_key (c); ++ } ++ ++ wtimeout (stdscr, -1); ++ c = getch (); ++ wtimeout (stdscr, 100); ++ } ++ else ++#endif ++ c = getchar (); ++ ++ /* Quit if we get EOF. */ ++ if (c == -1) ++ stop (); ++ ++ return console_translate_key (c); ++} ++ ++/* returns packed values, LSB+1 is x, LSB is y */ ++int ++console_getxy (void) ++{ ++ int y, x; ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ getyx (stdscr, y, x); ++ else ++#endif ++ y = x = 0; ++ return (x << 8) | (y & 0xff); ++} ++ ++void ++console_gotoxy (int x, int y) ++{ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ move (y, x); ++#endif ++} ++ ++/* low-level character I/O */ ++void ++console_cls (void) ++{ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ clear (); ++#endif ++} ++ ++void ++console_setcolorstate (color_state state) ++{ ++ console_current_color = ++ (state == COLOR_STATE_HIGHLIGHT) ? A_REVERSE : A_NORMAL; ++} ++ ++void ++console_setcolor (int normal_color, int highlight_color) ++{ ++ /* Nothing to do. */ ++} ++ ++int ++console_setcursor (int on) ++{ ++ return 1; ++} ++ ++/* Low-level disk I/O. Our stubbed version just returns a file ++ descriptor, not the actual geometry. */ ++int ++get_diskinfo (int drive, struct geometry *geometry) ++{ ++ /* FIXME: this function is truly horrid. We try opening the device, ++ then severely abuse the GEOMETRY->flags field to pass a file ++ descriptor to biosdisk. Thank God nobody's looking at this comment, ++ or my reputation would be ruined. --Gord */ ++ ++ /* See if we have a cached device. */ ++ if (disks[drive].flags == -1) ++ { ++ /* The unpartitioned device name: /dev/XdX */ ++ char *devname = device_map[drive]; ++ char buf[512]; ++ ++ if (! devname) ++ return -1; ++ ++ if (verbose) ++ grub_printf ("Attempt to open drive 0x%x (%s)\n", ++ drive, devname); ++ ++ /* Open read/write, or read-only if that failed. */ ++ if (! read_only) ++ disks[drive].flags = open (devname, O_RDWR); ++ ++ if (disks[drive].flags == -1) ++ { ++ if (read_only || errno == EACCES || errno == EROFS || errno == EPERM) ++ { ++ disks[drive].flags = open (devname, O_RDONLY); ++ if (disks[drive].flags == -1) ++ { ++ assign_device_name (drive, 0); ++ return -1; ++ } ++ } ++ else ++ { ++ assign_device_name (drive, 0); ++ return -1; ++ } ++ } ++ ++ /* Attempt to read the first sector. */ ++ if (read (disks[drive].flags, buf, 512) != 512) ++ { ++ close (disks[drive].flags); ++ disks[drive].flags = -1; ++ assign_device_name (drive, 0); ++ return -1; ++ } ++ ++ if (disks[drive].flags != -1) ++ get_drive_geometry (&disks[drive], device_map, drive); ++ } ++ ++ if (disks[drive].flags == -1) ++ return -1; ++ ++#ifdef __linux__ ++ /* In Linux, invalidate the buffer cache, so that left overs ++ from other program in the cache are flushed and seen by us */ ++ ioctl (disks[drive].flags, BLKFLSBUF, 0); ++#endif ++ ++ *geometry = disks[drive]; ++ return 0; ++} ++ ++/* Read LEN bytes from FD in BUF. Return less than or equal to zero if an ++ error occurs, otherwise return LEN. */ ++static int ++nread (int fd, char *buf, size_t len) ++{ ++ int size = len; ++ ++ while (len) ++ { ++ int ret = read (fd, buf, len); ++ ++ if (ret <= 0) ++ { ++ if (errno == EINTR) ++ continue; ++ else ++ return ret; ++ } ++ ++ len -= ret; ++ buf += ret; ++ } ++ ++ return size; ++} ++ ++/* Write LEN bytes from BUF to FD. Return less than or equal to zero if an ++ error occurs, otherwise return LEN. */ ++static int ++nwrite (int fd, char *buf, size_t len) ++{ ++ int size = len; ++ ++ while (len) ++ { ++ int ret = write (fd, buf, len); ++ ++ if (ret <= 0) ++ { ++ if (errno == EINTR) ++ continue; ++ else ++ return ret; ++ } ++ ++ len -= ret; ++ buf += ret; ++ } ++ ++ return size; ++} ++ ++/* Dump BUF in the format of hexadecimal numbers. */ ++static void ++hex_dump (void *buf, size_t size) ++{ ++ /* FIXME: How to determine which length is readable? */ ++#define MAX_COLUMN 70 ++ ++ /* use unsigned char for numerical computations */ ++ unsigned char *ptr = buf; ++ /* count the width of the line */ ++ int column = 0; ++ /* how many bytes written */ ++ int count = 0; ++ ++ while (size > 0) ++ { ++ /* high 4 bits */ ++ int hi = *ptr >> 4; ++ /* low 4 bits */ ++ int low = *ptr & 0xf; ++ ++ /* grub_printf does not handle prefix number, such as %2x, so ++ format the number by hand... */ ++ grub_printf ("%x%x", hi, low); ++ column += 2; ++ count++; ++ ptr++; ++ size--; ++ ++ /* Insert space or newline with the interval 4 bytes. */ ++ if (size != 0 && (count % 4) == 0) ++ { ++ if (column < MAX_COLUMN) ++ { ++ grub_printf (" "); ++ column++; ++ } ++ else ++ { ++ grub_printf ("\n"); ++ column = 0; ++ } ++ } ++ } ++ ++ /* Add a newline at the end for readability. */ ++ grub_printf ("\n"); ++} ++ ++int ++biosdisk (int subfunc, int drive, struct geometry *geometry, ++ int sector, int nsec, int segment) ++{ ++ char *buf; ++ int fd = geometry->flags; ++ ++ /* Get the file pointer from the geometry, and make sure it matches. */ ++ if (fd == -1 || fd != disks[drive].flags) ++ return BIOSDISK_ERROR_GEOMETRY; ++ ++ /* Seek to the specified location. */ ++#if defined(__linux__) && (!defined(__GLIBC__) || \ ++ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) ++ /* Maybe libc doesn't have large file support. */ ++ { ++ loff_t offset, result; ++ static int _llseek (uint filedes, ulong hi, ulong lo, ++ loff_t *res, uint wh); ++ _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, ++ loff_t *, res, uint, wh); ++ ++ offset = (loff_t) sector * (loff_t) SECTOR_SIZE; ++ if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET)) ++ return -1; ++ } ++#else ++ { ++ off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; ++ ++ if (lseek (fd, offset, SEEK_SET) != offset) ++ return -1; ++ } ++#endif ++ ++ buf = (char *) (segment << 4); ++ ++ switch (subfunc) ++ { ++ case BIOSDISK_READ: ++#ifdef __linux__ ++ if (sector == 0 && nsec > 1) ++ { ++ /* Work around a bug in linux's ez remapping. Linux remaps all ++ sectors that are read together with the MBR in one read. It ++ should only remap the MBR, so we split the read in two ++ parts. -jochen */ ++ if (nread (fd, buf, SECTOR_SIZE) != SECTOR_SIZE) ++ return -1; ++ buf += SECTOR_SIZE; ++ nsec--; ++ } ++#endif ++ if (nread (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE) ++ return -1; ++ break; ++ ++ case BIOSDISK_WRITE: ++ if (verbose) ++ { ++ grub_printf ("Write %d sectors starting from %d sector" ++ " to drive 0x%x (%s)\n", ++ nsec, sector, drive, device_map[drive]); ++ hex_dump (buf, nsec * SECTOR_SIZE); ++ } ++ if (! read_only) ++ if (nwrite (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE) ++ return -1; ++ break; ++ ++ default: ++ grub_printf ("unknown subfunc %d\n", subfunc); ++ break; ++ } ++ ++ return 0; ++} ++ ++ ++void ++stop_floppy (void) ++{ ++ /* NOTUSED */ ++} ++ ++/* Fetch a key from a serial device. */ ++int ++serial_hw_fetch (void) ++{ ++ fd_set fds; ++ struct timeval to; ++ char c; ++ ++ /* Wait only for the serial device. */ ++ FD_ZERO (&fds); ++ FD_SET (serial_fd, &fds); ++ ++ to.tv_sec = 0; ++ to.tv_usec = 0; ++ ++ if (select (serial_fd + 1, &fds, 0, 0, &to) > 0) ++ { ++ if (nread (serial_fd, &c, 1) != 1) ++ stop (); ++ ++ return c; ++ } ++ ++ return -1; ++} ++ ++/* Put a character to a serial device. */ ++void ++serial_hw_put (int c) ++{ ++ char ch = (char) c; ++ ++ if (nwrite (serial_fd, &ch, 1) != 1) ++ stop (); ++} ++ ++void ++serial_hw_delay (void) ++{ ++#ifdef SIMULATE_SLOWNESS_OF_SERIAL ++ struct timeval otv, tv; ++ ++ gettimeofday (&otv, 0); ++ ++ while (1) ++ { ++ long delta; ++ ++ gettimeofday (&tv, 0); ++ delta = tv.tv_usec - otv.tv_usec; ++ if (delta < 0) ++ delta += 1000000; ++ ++ if (delta >= 1000000 / (serial_speed >> 3)) ++ break; ++ } ++#endif /* SIMULATE_SLOWNESS_OF_SERIAL */ ++} ++ ++static speed_t ++get_termios_speed (int speed) ++{ ++ switch (speed) ++ { ++ case 2400: return B2400; ++ case 4800: return B4800; ++ case 9600: return B9600; ++ case 19200: return B19200; ++ case 38400: return B38400; ++#ifdef B57600 ++ case 57600: return B57600; ++#endif ++#ifdef B115200 ++ case 115200: return B115200; ++#endif ++ } ++ ++ return B0; ++} ++ ++/* Get the port number of the unit UNIT. In the grub shell, this doesn't ++ make sense. */ ++unsigned short ++serial_hw_get_port (int unit) ++{ ++ return 0; ++} ++ ++/* Initialize a serial device. In the grub shell, PORT is unused. */ ++int ++serial_hw_init (unsigned short port, unsigned int speed, ++ int word_len, int parity, int stop_bit_len) ++{ ++ struct termios termios; ++ speed_t termios_speed; ++ int i; ++ ++ /* Check if the file name is specified. */ ++ if (! serial_device) ++ return 0; ++ ++ /* If a serial device is already opened, close it first. */ ++ if (serial_fd >= 0) ++ close (serial_fd); ++ ++ /* Open the device file. */ ++ serial_fd = open (serial_device, ++ O_RDWR | O_NOCTTY ++#if defined(O_SYNC) ++ /* O_SYNC is used in Linux (and some others?). */ ++ | O_SYNC ++#elif defined(O_FSYNC) ++ /* O_FSYNC is used in FreeBSD. */ ++ | O_FSYNC ++#endif ++ ); ++ if (serial_fd < 0) ++ return 0; ++ ++ /* Get the termios parameters. */ ++ if (tcgetattr (serial_fd, &termios)) ++ goto fail; ++ ++ /* Raw mode. */ ++ cfmakeraw (&termios); ++ ++ /* Set the speed. */ ++ termios_speed = get_termios_speed (speed); ++ if (termios_speed == B0) ++ goto fail; ++ ++ cfsetispeed (&termios, termios_speed); ++ cfsetospeed (&termios, termios_speed); ++ ++ /* Set the word length. */ ++ termios.c_cflag &= ~CSIZE; ++ switch (word_len) ++ { ++ case UART_5BITS_WORD: ++ termios.c_cflag |= CS5; ++ break; ++ case UART_6BITS_WORD: ++ termios.c_cflag |= CS6; ++ break; ++ case UART_7BITS_WORD: ++ termios.c_cflag |= CS7; ++ break; ++ case UART_8BITS_WORD: ++ termios.c_cflag |= CS8; ++ break; ++ default: ++ goto fail; ++ } ++ ++ /* Set the parity. */ ++ switch (parity) ++ { ++ case UART_NO_PARITY: ++ termios.c_cflag &= ~PARENB; ++ break; ++ case UART_ODD_PARITY: ++ termios.c_cflag |= PARENB; ++ termios.c_cflag |= PARODD; ++ break; ++ case UART_EVEN_PARITY: ++ termios.c_cflag |= PARENB; ++ termios.c_cflag &= ~PARODD; ++ break; ++ default: ++ goto fail; ++ } ++ ++ /* Set the length of stop bit. */ ++ switch (stop_bit_len) ++ { ++ case UART_1_STOP_BIT: ++ termios.c_cflag &= ~CSTOPB; ++ break; ++ case UART_2_STOP_BITS: ++ termios.c_cflag |= CSTOPB; ++ break; ++ default: ++ goto fail; ++ } ++ ++ /* Set the parameters. */ ++ if (tcsetattr (serial_fd, TCSANOW, &termios)) ++ goto fail; ++ ++#ifdef SIMULATE_SLOWNESS_OF_SERIAL ++ serial_speed = speed; ++#endif /* SIMUATE_SLOWNESS_OF_SERIAL */ ++ ++ /* Get rid of the flag TERM_NEED_INIT from the serial terminal. */ ++ for (i = 0; term_table[i].name; i++) ++ { ++ if (strcmp (term_table[i].name, "serial") == 0) ++ { ++ term_table[i].flags &= ~(TERM_NEED_INIT); ++ break; ++ } ++ } ++ ++ return 1; ++ ++ fail: ++ close (serial_fd); ++ serial_fd = -1; ++ return 0; ++} ++ ++/* Set the file name of a serial device (or a pty device). This is a ++ function specific to the grub shell. */ ++void ++serial_set_device (const char *device) ++{ ++ if (serial_device) ++ free (serial_device); ++ ++ serial_device = strdup (device); ++} ++ ++/* There is no difference between console and hercules in the grub shell. */ ++void ++hercules_putchar (int c) ++{ ++ console_putchar (c); ++} ++ ++int ++hercules_getxy (void) ++{ ++ return console_getxy (); ++} ++ ++void ++hercules_gotoxy (int x, int y) ++{ ++ console_gotoxy (x, y); ++} ++ ++void ++hercules_cls (void) ++{ ++ console_cls (); ++} ++ ++void ++hercules_setcolorstate (color_state state) ++{ ++ console_setcolorstate (state); ++} ++ ++void ++hercules_setcolor (int normal_color, int highlight_color) ++{ ++ console_setcolor (normal_color, highlight_color); ++} ++ ++int ++hercules_setcursor (int on) ++{ ++ return 1; ++} +diff -Nur grub-0.97/grub/main.c grub-0.97-patched/grub/main.c +--- grub-0.97/grub/main.c 2003-07-09 13:45:36.000000000 +0200 ++++ grub-0.97-patched/grub/main.c 2012-11-11 17:07:12.720729374 +0100 +@@ -32,6 +32,7 @@ + #define WITHOUT_LIBC_STUBS 1 + #include <shared.h> + #include <term.h> ++#include <device.h> + + char *program_name = 0; + int use_config_file = 1; +@@ -140,10 +141,7 @@ + program_name = argv[0]; + default_boot_drive = boot_drive; + default_install_partition = install_partition; +- if (config_file) +- default_config_file = config_file; +- else +- default_config_file = "NONE"; ++ default_config_file = config_file; + + /* Parse command-line options. */ + do +@@ -192,6 +190,12 @@ + perror ("strtoul"); + exit (1); + } ++ if (boot_drive >= NUM_DISKS) ++ { ++ fprintf (stderr, "boot_drive should be from 0 to %d\n", ++ NUM_DISKS - 1); ++ exit (1); ++ } + break; + + case OPT_NO_CONFIG_FILE: +diff -Nur grub-0.97/grub/main.c.orig grub-0.97-patched/grub/main.c.orig +--- grub-0.97/grub/main.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/grub/main.c.orig 2003-07-09 13:45:36.000000000 +0200 +@@ -0,0 +1,265 @@ ++/* main.c - experimental GRUB stage2 that runs under Unix */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 1999,2000,2001,2002 Free Software Foundation, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++/* Simulator entry point. */ ++int grub_stage2 (void); ++ ++#include <stdio.h> ++#include <getopt.h> ++#include <unistd.h> ++#include <string.h> ++#include <stdlib.h> ++#include <limits.h> ++#include <setjmp.h> ++ ++#define WITHOUT_LIBC_STUBS 1 ++#include <shared.h> ++#include <term.h> ++ ++char *program_name = 0; ++int use_config_file = 1; ++int use_preset_menu = 0; ++#ifdef HAVE_LIBCURSES ++int use_curses = 1; ++#else ++int use_curses = 0; ++#endif ++int verbose = 0; ++int read_only = 0; ++int floppy_disks = 1; ++char *device_map_file = 0; ++static int default_boot_drive; ++static int default_install_partition; ++static char *default_config_file; ++ ++#define OPT_HELP -2 ++#define OPT_VERSION -3 ++#define OPT_HOLD -4 ++#define OPT_CONFIG_FILE -5 ++#define OPT_INSTALL_PARTITION -6 ++#define OPT_BOOT_DRIVE -7 ++#define OPT_NO_CONFIG_FILE -8 ++#define OPT_NO_CURSES -9 ++#define OPT_BATCH -10 ++#define OPT_VERBOSE -11 ++#define OPT_READ_ONLY -12 ++#define OPT_PROBE_SECOND_FLOPPY -13 ++#define OPT_NO_FLOPPY -14 ++#define OPT_DEVICE_MAP -15 ++#define OPT_PRESET_MENU -16 ++#define OPT_NO_PAGER -17 ++#define OPTSTRING "" ++ ++static struct option longopts[] = ++{ ++ {"batch", no_argument, 0, OPT_BATCH}, ++ {"boot-drive", required_argument, 0, OPT_BOOT_DRIVE}, ++ {"config-file", required_argument, 0, OPT_CONFIG_FILE}, ++ {"device-map", required_argument, 0, OPT_DEVICE_MAP}, ++ {"help", no_argument, 0, OPT_HELP}, ++ {"hold", optional_argument, 0, OPT_HOLD}, ++ {"install-partition", required_argument, 0, OPT_INSTALL_PARTITION}, ++ {"no-config-file", no_argument, 0, OPT_NO_CONFIG_FILE}, ++ {"no-curses", no_argument, 0, OPT_NO_CURSES}, ++ {"no-floppy", no_argument, 0, OPT_NO_FLOPPY}, ++ {"no-pager", no_argument, 0, OPT_NO_PAGER}, ++ {"preset-menu", no_argument, 0, OPT_PRESET_MENU}, ++ {"probe-second-floppy", no_argument, 0, OPT_PROBE_SECOND_FLOPPY}, ++ {"read-only", no_argument, 0, OPT_READ_ONLY}, ++ {"verbose", no_argument, 0, OPT_VERBOSE}, ++ {"version", no_argument, 0, OPT_VERSION}, ++ {0}, ++}; ++ ++ ++static void ++usage (int status) ++{ ++ if (status) ++ fprintf (stderr, "Try ``grub --help'' for more information.\n"); ++ else ++ printf ("\ ++Usage: grub [OPTION]...\n\ ++\n\ ++Enter the GRand Unified Bootloader command shell.\n\ ++\n\ ++ --batch turn on batch mode for non-interactive use\n\ ++ --boot-drive=DRIVE specify stage2 boot_drive [default=0x%x]\n\ ++ --config-file=FILE specify stage2 config_file [default=%s]\n\ ++ --device-map=FILE use the device map file FILE\n\ ++ --help display this message and exit\n\ ++ --hold wait until a debugger will attach\n\ ++ --install-partition=PAR specify stage2 install_partition [default=0x%x]\n\ ++ --no-config-file do not use the config file\n\ ++ --no-curses do not use curses\n\ ++ --no-floppy do not probe any floppy drive\n\ ++ --no-pager do not use internal pager\n\ ++ --preset-menu use the preset menu\n\ ++ --probe-second-floppy probe the second floppy drive\n\ ++ --read-only do not write anything to devices\n\ ++ --verbose print verbose messages\n\ ++ --version print version information and exit\n\ ++\n\ ++Report bugs to bug-grub@gnu.org.\n\ ++", ++ default_boot_drive, default_config_file, ++ default_install_partition); ++ ++ exit (status); ++} ++ ++ ++int ++main (int argc, char **argv) ++{ ++ int c; ++ int hold = 0; ++ ++ /* First of all, call sync so that all in-core data is scheduled to be ++ actually written to disks. This is very important because GRUB does ++ not use ordinary stdio interface but raw devices. */ ++ sync (); ++ ++ program_name = argv[0]; ++ default_boot_drive = boot_drive; ++ default_install_partition = install_partition; ++ if (config_file) ++ default_config_file = config_file; ++ else ++ default_config_file = "NONE"; ++ ++ /* Parse command-line options. */ ++ do ++ { ++ c = getopt_long (argc, argv, OPTSTRING, longopts, 0); ++ switch (c) ++ { ++ case EOF: ++ /* Fall through the bottom of the loop. */ ++ break; ++ ++ case OPT_HELP: ++ usage (0); ++ break; ++ ++ case OPT_VERSION: ++ printf ("grub (GNU GRUB " VERSION ")\n"); ++ exit (0); ++ break; ++ ++ case OPT_HOLD: ++ if (! optarg) ++ hold = -1; ++ else ++ hold = atoi (optarg); ++ break; ++ ++ case OPT_CONFIG_FILE: ++ strncpy (config_file, optarg, 127); /* FIXME: arbitrary */ ++ config_file[127] = '\0'; ++ break; ++ ++ case OPT_INSTALL_PARTITION: ++ install_partition = strtoul (optarg, 0, 0); ++ if (install_partition == ULONG_MAX) ++ { ++ perror ("strtoul"); ++ exit (1); ++ } ++ break; ++ ++ case OPT_BOOT_DRIVE: ++ boot_drive = strtoul (optarg, 0, 0); ++ if (boot_drive == ULONG_MAX) ++ { ++ perror ("strtoul"); ++ exit (1); ++ } ++ break; ++ ++ case OPT_NO_CONFIG_FILE: ++ use_config_file = 0; ++ break; ++ ++ case OPT_NO_CURSES: ++ use_curses = 0; ++ break; ++ ++ case OPT_NO_PAGER: ++ use_pager = 0; ++ break; ++ ++ case OPT_BATCH: ++ /* This is the same as "--no-config-file --no-curses --no-pager". */ ++ use_config_file = 0; ++ use_curses = 0; ++ use_pager = 0; ++ break; ++ ++ case OPT_READ_ONLY: ++ read_only = 1; ++ break; ++ ++ case OPT_VERBOSE: ++ verbose = 1; ++ break; ++ ++ case OPT_NO_FLOPPY: ++ floppy_disks = 0; ++ break; ++ ++ case OPT_PROBE_SECOND_FLOPPY: ++ floppy_disks = 2; ++ break; ++ ++ case OPT_DEVICE_MAP: ++ device_map_file = strdup (optarg); ++ break; ++ ++ case OPT_PRESET_MENU: ++ use_preset_menu = 1; ++ break; ++ ++ default: ++ usage (1); ++ } ++ } ++ while (c != EOF); ++ ++ /* Wait until the HOLD variable is cleared by an attached debugger. */ ++ if (hold && verbose) ++ printf ("Run "gdb %s %d", and set HOLD to zero.\n", ++ program_name, (int) getpid ()); ++ while (hold) ++ { ++ if (hold > 0) ++ hold--; ++ ++ sleep (1); ++ } ++ ++ /* If we don't have curses (!HAVE_LIBCURSES or --no-curses or ++ --batch) put terminal to dumb for better handling of line i/o */ ++ if (! use_curses) ++ current_term->flags = TERM_NO_EDIT | TERM_DUMB; ++ ++ /* Transfer control to the stage2 simulator. */ ++ exit (grub_stage2 ()); ++} +diff -Nur grub-0.97/lib/device.c grub-0.97-patched/lib/device.c +--- grub-0.97/lib/device.c 2005-03-28 01:14:25.000000000 +0200 ++++ grub-0.97-patched/lib/device.c 2012-11-11 17:07:12.748730268 +0100 +@@ -69,9 +69,9 @@ + # ifndef CDROM_GET_CAPABILITY + # define CDROM_GET_CAPABILITY 0x5331 /* get capabilities */ + # endif /* ! CDROM_GET_CAPABILITY */ +-# ifndef BLKGETSIZE +-# define BLKGETSIZE _IO(0x12,96) /* return device size */ +-# endif /* ! BLKGETSIZE */ ++# ifndef BLKGETSIZE64 ++# define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size */ ++# endif /* ! BLKGETSIZE64 */ + #endif /* __linux__ */ + + /* Use __FreeBSD_kernel__ instead of __FreeBSD__ for compatibility with +@@ -131,6 +131,152 @@ + #include <shared.h> + #include <device.h> + ++#if defined(__linux__) ++/* The 2.6 kernel has removed all of the geometry handling for IDE drives ++ * that did fixups for LBA, etc. This means that the geometry we get ++ * with the ioctl has a good chance of being wrong. So, we get to ++ * also know about partition tables and try to read what the geometry ++ * is there. *grumble* Very closely based on code from cfdisk ++ */ ++static void get_kernel_geometry(int fd, long long *cyl, int *heads, int *sectors) { ++ struct hd_geometry hdg; ++ ++ if (ioctl (fd, HDIO_GETGEO, &hdg)) ++ return; ++ ++ *cyl = hdg.cylinders; ++ *heads = hdg.heads; ++ *sectors = hdg.sectors; ++} ++ ++struct partition { ++ unsigned char boot_ind; /* 0x80 - active */ ++ unsigned char head; /* starting head */ ++ unsigned char sector; /* starting sector */ ++ unsigned char cyl; /* starting cylinder */ ++ unsigned char sys_ind; /* What partition type */ ++ unsigned char end_head; /* end head */ ++ unsigned char end_sector; /* end sector */ ++ unsigned char end_cyl; /* end cylinder */ ++ unsigned char start4[4]; /* starting sector counting from 0 */ ++ unsigned char size4[4]; /* nr of sectors in partition */ ++}; ++ ++#define ALIGNMENT 2 ++typedef union { ++ struct { ++ unsigned char align[ALIGNMENT]; ++ unsigned char b[SECTOR_SIZE]; ++ } c; ++ struct { ++ unsigned char align[ALIGNMENT]; ++ unsigned char buffer[0x1BE]; ++ struct partition part[4]; ++ unsigned char magicflag[2]; ++ } p; ++} partition_table; ++ ++#define PART_TABLE_FLAG0 0x55 ++#define PART_TABLE_FLAG1 0xAA ++ ++static void ++get_partition_table_geometry(partition_table *bufp, long long *cyl, int *heads, ++ int *sectors) { ++ struct partition *p; ++ int i,h,s,hh,ss; ++ int first = 1; ++ int bad = 0; ++ ++ if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 || ++ bufp->p.magicflag[1] != PART_TABLE_FLAG1) { ++ /* Matthew Wilcox: slightly friendlier version of ++ fatal(_("Bad signature on partition table"), 3); ++ */ ++ fprintf(stderr, "Unknown partition table signature\n"); ++ return; ++ } ++ ++ hh = ss = 0; ++ for (i=0; i<4; i++) { ++ p = &(bufp->p.part[i]); ++ if (p->sys_ind != 0) { ++ h = p->end_head + 1; ++ s = (p->end_sector & 077); ++ if (first) { ++ hh = h; ++ ss = s; ++ first = 0; ++ } else if (hh != h || ss != s) ++ bad = 1; ++ } ++ } ++ ++ if (!first && !bad) { ++ *heads = hh; ++ *sectors = ss; ++ } ++} ++ ++static long long my_lseek (unsigned int fd, long long offset, ++ unsigned int origin) ++{ ++#if defined(__linux__) && (!defined(__GLIBC__) || \ ++ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) ++ /* Maybe libc doesn't have large file support. */ ++ loff_t offset, result; ++ static int _llseek (uint filedes, ulong hi, ulong lo, ++ loff_t *res, uint wh); ++ _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, ++ loff_t *, res, uint, wh); ++ ++ if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET) < 0) ++ return (long long) -1; ++ return result; ++#else ++ return lseek(fd, offset, SEEK_SET); ++#endif ++} ++ ++static void get_linux_geometry (int fd, struct geometry *geom) { ++ long long kern_cyl = 0; int kern_head = 0, kern_sectors = 0; ++ long long pt_cyl = 0; int pt_head = 0, pt_sectors = 0; ++ partition_table bufp; ++ char *buff, *buf_unaligned; ++ ++ buf_unaligned = malloc(sizeof(partition_table) + 4095); ++ buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & ++ (~(4096-1))); ++ ++ get_kernel_geometry(fd, &kern_cyl, &kern_head, &kern_sectors); ++ ++ if (my_lseek (fd, 0*SECTOR_SIZE, SEEK_SET) < 0) { ++ fprintf(stderr, "Unable to seek"); ++ } ++ ++ if (read(fd, buff, SECTOR_SIZE) == SECTOR_SIZE) { ++ memcpy(bufp.c.b, buff, SECTOR_SIZE); ++ get_partition_table_geometry(&bufp, &pt_cyl, &pt_head, &pt_sectors); ++ } else { ++ fprintf(stderr, "Unable to read partition table: %s\n", strerror(errno)); ++ } ++ ++ if (pt_head && pt_sectors) { ++ int cyl_size; ++ ++ geom->heads = pt_head; ++ geom->sectors = pt_sectors; ++ cyl_size = pt_head * pt_sectors; ++ geom->cylinders = geom->total_sectors/cyl_size; ++ } else { ++ geom->heads = kern_head; ++ geom->sectors = kern_sectors; ++ geom->cylinders = kern_cyl; ++ } ++ ++ return; ++} ++#endif ++ + /* Get the geometry of a drive DRIVE. */ + void + get_drive_geometry (struct geometry *geom, char **map, int drive) +@@ -151,20 +297,16 @@ + #if defined(__linux__) + /* Linux */ + { +- struct hd_geometry hdg; +- unsigned long nr; ++ unsigned long long nr; + +- if (ioctl (fd, HDIO_GETGEO, &hdg)) +- goto fail; +- +- if (ioctl (fd, BLKGETSIZE, &nr)) ++ if (ioctl (fd, BLKGETSIZE64, &nr)) + goto fail; + + /* Got the geometry, so save it. */ +- geom->cylinders = hdg.cylinders; +- geom->heads = hdg.heads; +- geom->sectors = hdg.sectors; +- geom->total_sectors = nr; ++ get_linux_geometry(fd, geom); ++ if (!geom->heads && !geom->cylinders && !geom->sectors) ++ goto fail; ++ geom->total_sectors = nr / 512; + + goto success; + } +@@ -403,10 +545,28 @@ + } + + static void ++get_cciss_disk_name (char *name, int controller, int drive) ++{ ++ sprintf (name, "/dev/cciss/c%dd%d", controller, drive); ++} ++ ++static void ++get_ida_disk_name (char *name, int controller, int drive) ++{ ++ sprintf (name, "/dev/ida/c%dd%d", controller, drive); ++} ++ ++static void + get_ataraid_disk_name (char *name, int unit) + { + sprintf (name, "/dev/ataraid/d%c", unit + '0'); + } ++ ++static void ++get_i2o_disk_name (char *name, char unit) ++{ ++ sprintf (name, "/dev/i2o/hd%c", unit); ++} + #endif + + /* Check if DEVICE can be read. If an error occurs, return zero, +@@ -801,6 +961,97 @@ + } + } + } ++ ++ /* This is for I2O - we have /dev/i2o/hd<logical drive><partition> */ ++ { ++ int unit; ++ ++ for (unit = 'a'; unit < 'f'; unit++) ++ { ++ char name[24]; ++ ++ get_i2o_disk_name (name, unit); ++ if (check_device (name)) ++ { ++ (*map)[num_hd + 0x80] = strdup (name); ++ assert ((*map)[num_hd + 0x80]); ++ ++ /* If the device map file is opened, write the map. */ ++ if (fp) ++ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); ++ ++ num_hd++; ++ } ++ } ++ } ++ ++ /* This is for CCISS, its like the DAC960 - we have ++ /dev/cciss/<controller>d<logical drive>p<partition> ++ ++ It currently supports up to 3 controllers, 10 logical volumes ++ and 10 partitions ++ ++ Code gratuitously copied from DAC960 above. ++ Horms horms@verge.net.au 23rd July 2004 ++ */ ++ { ++ int controller, drive; ++ ++ for (controller = 0; controller < 2; controller++) ++ { ++ for (drive = 0; drive < 9; drive++) ++ { ++ char name[24]; ++ ++ get_cciss_disk_name (name, controller, drive); ++ if (check_device (name)) ++ { ++ (*map)[num_hd + 0x80] = strdup (name); ++ assert ((*map)[num_hd + 0x80]); ++ ++ /* If the device map file is opened, write the map. */ ++ if (fp) ++ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); ++ ++ num_hd++; ++ } ++ } ++ } ++ } ++ ++ /* This is for Compaq Smart Array, its like the DAC960 - we have ++ /dev/ida/<controller>d<logical drive>p<partition> ++ ++ It currently supports up to 3 controllers, 10 logical volumes ++ and 15 partitions ++ ++ Code gratuitously copied from DAC960 above. ++ Piotr Roszatycki dexter@debian.org ++ */ ++ { ++ int controller, drive; ++ ++ for (controller = 0; controller < 2; controller++) ++ { ++ for (drive = 0; drive < 9; drive++) ++ { ++ char name[24]; ++ ++ get_ida_disk_name (name, controller, drive); ++ if (check_device (name)) ++ { ++ (*map)[num_hd + 0x80] = strdup (name); ++ assert ((*map)[num_hd + 0x80]); ++ ++ /* If the device map file is opened, write the map. */ ++ if (fp) ++ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); ++ ++ num_hd++; ++ } ++ } ++ } ++ } + #endif /* __linux__ */ + + /* OK, close the device map file if opened. */ +@@ -844,6 +1095,7 @@ + { + char dev[PATH_MAX]; /* XXX */ + int fd; ++ off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; + + if ((partition & 0x00FF00) != 0x00FF00) + { +@@ -861,6 +1113,14 @@ + if (strcmp (dev + strlen(dev) - 5, "/disc") == 0) + strcpy (dev + strlen(dev) - 5, "/part"); + } ++ else ++ { ++ if ((strncmp (dev, "/dev/ataraid/", 13) == 0) || ++ (strncmp (dev, "/dev/ida/", 9) == 0) || ++ (strncmp (dev, "/dev/cciss/", 11) == 0) || ++ (strncmp (dev, "/dev/rd/", 8) == 0)) ++ strcpy (dev + strlen(dev), "p"); ++ } + sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1); + + /* Open the partition. */ +@@ -870,35 +1130,13 @@ + errnum = ERR_NO_PART; + return 0; + } +- +-#if defined(__linux__) && (!defined(__GLIBC__) || \ +- ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) +- /* Maybe libc doesn't have large file support. */ +- { +- loff_t offset, result; +- static int _llseek (uint filedes, ulong hi, ulong lo, +- loff_t *res, uint wh); +- _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, +- loff_t *, res, uint, wh); + +- offset = (loff_t) sector * (loff_t) SECTOR_SIZE; +- if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET)) +- { +- errnum = ERR_DEV_VALUES; +- return 0; +- } +- } +-#else +- { +- off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; + +- if (lseek (fd, offset, SEEK_SET) != offset) +- { +- errnum = ERR_DEV_VALUES; +- return 0; +- } +- } +-#endif ++ if (my_lseek(fd, offset, SEEK_SET) != offset) ++ { ++ errnum = ERR_DEV_VALUES; ++ return 0; ++ } + + if (write (fd, buf, size * SECTOR_SIZE) != (size * SECTOR_SIZE)) + { +diff -Nur grub-0.97/netboot/cs89x0.c grub-0.97-patched/netboot/cs89x0.c +--- grub-0.97/netboot/cs89x0.c 2003-07-09 13:45:37.000000000 +0200 ++++ grub-0.97-patched/netboot/cs89x0.c 2012-11-11 17:07:12.722729437 +0100 +@@ -1,3 +1,21 @@ ++/** ++ Per an email message from Russ Nelson nelson@crynwr.com on ++ 18 March 2008 this file is now licensed under GPL Version 2. ++ ++ From: Russ Nelson nelson@crynwr.com ++ Date: Tue, 18 Mar 2008 12:42:00 -0400 ++ Subject: Re: [Etherboot-developers] cs89x0 driver in etherboot ++ -- quote from email ++ As copyright holder, if I say it doesn't conflict with the GPL, ++ then it doesn't conflict with the GPL. ++ ++ However, there's no point in causing people's brains to overheat, ++ so yes, I grant permission for the code to be relicensed under the ++ GPLv2. Please make sure that this change in licensing makes its ++ way upstream. -russ ++ -- quote from email ++**/ ++ + /* cs89x0.c: A Crystal Semiconductor CS89[02]0 driver for etherboot. */ + /* + Permission is granted to distribute the enclosed cs89x0.[ch] driver +diff -Nur grub-0.97/netboot/cs89x0.h grub-0.97-patched/netboot/cs89x0.h +--- grub-0.97/netboot/cs89x0.h 2003-07-09 13:45:37.000000000 +0200 ++++ grub-0.97-patched/netboot/cs89x0.h 2012-11-11 17:07:12.723729469 +0100 +@@ -1,3 +1,21 @@ ++/** ++ Per an email message from Russ Nelson nelson@crynwr.com on ++ 18 March 2008 this file is now licensed under GPL Version 2. ++ ++ From: Russ Nelson nelson@crynwr.com ++ Date: Tue, 18 Mar 2008 12:42:00 -0400 ++ Subject: Re: [Etherboot-developers] cs89x0 driver in etherboot ++ -- quote from email ++ As copyright holder, if I say it doesn't conflict with the GPL, ++ then it doesn't conflict with the GPL. ++ ++ However, there's no point in causing people's brains to overheat, ++ so yes, I grant permission for the code to be relicensed under the ++ GPLv2. Please make sure that this change in licensing makes its ++ way upstream. -russ ++ -- quote from email ++**/ ++ + /* Copyright, 1988-1992, Russell Nelson, Crynwr Software + + This program is free software; you can redistribute it and/or modify +diff -Nur grub-0.97/netboot/etherboot.h grub-0.97-patched/netboot/etherboot.h +--- grub-0.97/netboot/etherboot.h 2003-07-09 13:45:37.000000000 +0200 ++++ grub-0.97-patched/netboot/etherboot.h 2012-11-11 17:07:12.723729469 +0100 +@@ -531,9 +531,6 @@ + extern int network_ready; + extern struct rom_info rom; + extern struct arptable_t arptable[MAX_ARP]; +-extern struct bootpd_t bootp_data; +-#define BOOTP_DATA_ADDR (&bootp_data) +-extern unsigned char *end_of_rfc1533; + + /* config.c */ + extern struct nic nic; +diff -Nur grub-0.97/netboot/main.c grub-0.97-patched/netboot/main.c +--- grub-0.97/netboot/main.c 2004-05-21 00:19:33.000000000 +0200 ++++ grub-0.97-patched/netboot/main.c 2012-11-11 17:07:12.724729500 +0100 +@@ -56,7 +56,8 @@ + static unsigned long netmask; + static struct bootpd_t bootp_data; + static unsigned long xid; +-static unsigned char *end_of_rfc1533 = NULL; ++ ++#define BOOTP_DATA_ADDR (&bootp_data) + + #ifndef NO_DHCP_SUPPORT + #endif /* NO_DHCP_SUPPORT */ +@@ -83,7 +84,9 @@ + RFC2132_MAX_SIZE,2, /* request as much as we can */ + ETH_MAX_MTU / 256, ETH_MAX_MTU % 256, + RFC2132_PARAM_LIST, 4, RFC1533_NETMASK, RFC1533_GATEWAY, +- RFC1533_HOSTNAME, RFC1533_EXTENSIONPATH ++ RFC1533_HOSTNAME, RFC1533_EXTENSIONPATH, ++ /* Vendor class identifier */ ++ RFC2132_VENDOR_CLASS_ID, 10, 'G', 'R', 'U', 'B', 'C', 'l', 'i', 'e', 'n', 't', + }; + + static const unsigned char dhcprequest[] = +@@ -103,6 +106,8 @@ + /* Etherboot vendortags */ + RFC1533_VENDOR_MAGIC, + RFC1533_VENDOR_CONFIGFILE, ++ /* Vendor class identifier */ ++ RFC2132_VENDOR_CLASS_ID, 10, 'G', 'R', 'U', 'B', 'C', 'l', 'i', 'e', 'n', 't', + }; + + #endif /* ! NO_DHCP_SUPPORT */ +@@ -701,7 +706,7 @@ + "adcw %%ax,%0\n\t" /* add carry of previous iteration */ + "loop 1b\n\t" + "adcw $0,%0" /* add carry of last iteration */ +- : "=b" (*sum), "=S"(start), "=c"(len) ++ : "=r" (*sum), "=S"(start), "=c"(len) + : "0"(*sum), "1"(start), "2"(len) + : "ax", "cc" + ); +@@ -967,7 +972,6 @@ + + if (block == 0) + { +- end_of_rfc1533 = NULL; + vendorext_isvalid = 0; + + if (grub_memcmp (p, rfc1533_cookie, 4)) +@@ -1021,7 +1025,7 @@ + } + else if (c == RFC1533_END) + { +- end_of_rfc1533 = endp = p; ++ endp = p; + continue; + } + else if (c == RFC1533_NETMASK) +diff -Nur grub-0.97/netboot/natsemi.c grub-0.97-patched/netboot/natsemi.c +--- grub-0.97/netboot/natsemi.c 2003-07-09 13:45:38.000000000 +0200 ++++ grub-0.97-patched/netboot/natsemi.c 2012-11-11 17:07:12.724729500 +0100 +@@ -608,7 +608,7 @@ + const char *p) /* Packet */ + { + u32 status, to, nstype; +- u32 tx_status; ++ volatile u32 tx_status; + + /* Stop the transmitter */ + outl(TxOff, ioaddr + ChipCmd); +@@ -647,7 +647,7 @@ + + to = currticks() + TX_TIMEOUT; + +- while ((((volatile u32) tx_status=txd.cmdsts) & OWN) && (currticks() < to)) ++ while (((tx_status=txd.cmdsts) & OWN) && (currticks() < to)) + /* wait */ ; + + if (currticks() >= to) { +diff -Nur grub-0.97/netboot/pci.c grub-0.97-patched/netboot/pci.c +--- grub-0.97/netboot/pci.c 2003-07-09 13:45:38.000000000 +0200 ++++ grub-0.97-patched/netboot/pci.c 2012-11-11 17:07:07.227553894 +0100 +@@ -105,13 +105,16 @@ + + save_flags(flags); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK +- "lcall (%%edi)" ++ "lcall (%%edi)\n\t" + #else +- "lcall *(%%edi)" ++ "lcall *(%%edi)\n\t" + #endif ++ "movl %%ebx, %1\n\t" /* capture what was in %ebx */ ++ "popl %%ebx\n\t" /* restore %ebx */ + : "=a" (return_code), +- "=b" (address), ++ "=r" (address), + "=c" (length), + "=d" (entry) + : "0" (service), +@@ -141,18 +144,21 @@ + + save_flags(flags); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=c" (*value), + "=a" (ret) + : "1" (PCIBIOS_READ_CONFIG_BYTE), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -168,18 +174,21 @@ + + save_flags(flags); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=c" (*value), + "=a" (ret) + : "1" (PCIBIOS_READ_CONFIG_WORD), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -195,18 +204,21 @@ + + save_flags(flags); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=c" (*value), + "=a" (ret) + : "1" (PCIBIOS_READ_CONFIG_DWORD), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -222,18 +234,21 @@ + + save_flags(flags); cli(); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=a" (ret) + : "0" (PCIBIOS_WRITE_CONFIG_BYTE), + "c" (value), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -249,18 +264,21 @@ + + save_flags(flags); cli(); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=a" (ret) + : "0" (PCIBIOS_WRITE_CONFIG_WORD), + "c" (value), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -276,18 +294,21 @@ + + save_flags(flags); cli(); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=a" (ret) + : "0" (PCIBIOS_WRITE_CONFIG_DWORD), + "c" (value), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -308,20 +329,22 @@ + + save_flags(flags); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%edi)\n\t" + #else + "lcall *(%%edi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "xor %%ah, %%ah\n\t" + "1:\tshl $8, %%eax\n\t" +- "movw %%bx, %%ax" ++ "movw %%bx, %%ax\n\t" ++ "popl %%ebx\n\t" /* restore %ebx */ + : "=d" (signature), + "=a" (pack) + : "1" (PCIBIOS_PCI_BIOS_PRESENT), + "D" (&pci_indirect) +- : "bx", "cx"); ++ : "cx"); + restore_flags(flags); + + present_status = (pack >> 16) & 0xff; +diff -Nur grub-0.97/netboot/sis900.c grub-0.97-patched/netboot/sis900.c +--- grub-0.97/netboot/sis900.c 2003-07-09 13:45:38.000000000 +0200 ++++ grub-0.97-patched/netboot/sis900.c 2012-11-11 17:07:12.725729531 +0100 +@@ -901,7 +901,7 @@ + const char *p) /* Packet */ + { + u32 status, to, nstype; +- u32 tx_status; ++ volatile u32 tx_status; + + /* Stop the transmitter */ + outl(TxDIS, ioaddr + cr); +@@ -940,7 +940,7 @@ + + to = currticks() + TX_TIMEOUT; + +- while ((((volatile u32) tx_status=txd.cmdsts) & OWN) && (currticks() < to)) ++ while (((tx_status=txd.cmdsts) & OWN) && (currticks() < to)) + /* wait */ ; + + if (currticks() >= to) { +diff -Nur grub-0.97/stage1/Makefile.am grub-0.97-patched/stage1/Makefile.am +--- grub-0.97/stage1/Makefile.am 2004-07-16 13:44:56.000000000 +0200 ++++ grub-0.97-patched/stage1/Makefile.am 2012-11-11 17:07:12.747730236 +0100 +@@ -1,11 +1,11 @@ +-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) +-nodist_pkglib_DATA = stage1 ++stagedir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) ++nodist_stage_DATA = stage1 + +-CLEANFILES = $(nodist_pkglib_DATA) ++CLEANFILES = $(nodist_stage_DATA) + + # We can't use builtins or standard includes. + AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc +-LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00 ++stage1_exec_LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00 + + noinst_PROGRAMS = stage1.exec + stage1_exec_SOURCES = stage1.S stage1.h +diff -Nur grub-0.97/stage2/asm.S grub-0.97-patched/stage2/asm.S +--- grub-0.97/stage2/asm.S 2004-06-19 18:55:22.000000000 +0200 ++++ grub-0.97-patched/stage2/asm.S 2012-11-11 17:07:03.850446017 +0100 +@@ -1651,7 +1651,29 @@ + jnz 3f + ret + +-3: /* use keyboard controller */ ++3: /* ++ * try to switch gateA20 using PORT92, the "Fast A20 and Init" ++ * register ++ */ ++ mov $0x92, %dx ++ inb %dx, %al ++ /* skip the port92 code if it's unimplemented (read returns 0xff) */ ++ cmpb $0xff, %al ++ jz 6f ++ ++ /* set or clear bit1, the ALT_A20_GATE bit */ ++ movb 4(%esp), %ah ++ testb %ah, %ah ++ jz 4f ++ orb $2, %al ++ jmp 5f ++4: and $0xfd, %al ++ ++ /* clear the INIT_NOW bit don't accidently reset the machine */ ++5: and $0xfe, %al ++ outb %al, %dx ++ ++6: /* use keyboard controller */ + pushl %eax + + call gloop1 +@@ -1661,9 +1683,12 @@ + + gloopint1: + inb $K_STATUS ++ cmpb $0xff, %al ++ jz gloopint1_done + andb $K_IBUF_FUL, %al + jnz gloopint1 + ++gloopint1_done: + movb $KB_OUTPUT_MASK, %al + cmpb $0, 0x8(%esp) + jz gdoit +@@ -1684,6 +1709,8 @@ + + gloop1: + inb $K_STATUS ++ cmpb $0xff, %al ++ jz gloop2ret + andb $K_IBUF_FUL, %al + jnz gloop1 + +@@ -1991,6 +2018,11 @@ + ENTRY(console_getkey) + push %ebp + ++wait_for_key: ++ call EXT_C(console_checkkey) ++ incl %eax ++ jz wait_for_key ++ + call EXT_C(prot_to_real) + .code16 + +@@ -2216,6 +2248,156 @@ + pop %ebx + pop %ebp + ret ++ ++/* graphics mode functions */ ++#ifdef SUPPORT_GRAPHICS ++VARIABLE(cursorX) ++.word 0 ++VARIABLE(cursorY) ++.word 0 ++VARIABLE(cursorCount) ++.word 0 ++VARIABLE(cursorBuf) ++.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ++ ++ ++/* ++ * int set_videomode(mode) ++ * BIOS call "INT 10H Function 0h" to set video mode ++ * Call with %ah = 0x0 ++ * %al = video mode ++ * Returns old videomode. ++ */ ++ENTRY(set_videomode) ++ push %ebp ++ push %ebx ++ push %ecx ++ ++ movb 0x10(%esp), %cl ++ ++ call EXT_C(prot_to_real) ++ .code16 ++ ++ xorw %bx, %bx ++ movb $0xf, %ah ++ int $0x10 /* Get Current Video mode */ ++ movb %al, %ch ++ xorb %ah, %ah ++ movb %cl, %al ++ int $0x10 /* Set Video mode */ ++ ++ DATA32 call EXT_C(real_to_prot) ++ .code32 ++ ++ xorb %ah, %ah ++ movb %ch, %al ++ ++ pop %ecx ++ pop %ebx ++ pop %ebp ++ ret ++ ++ ++/* ++ * unsigned char * graphics_get_font() ++ * BIOS call "INT 10H Function 11h" to set font ++ * Call with %ah = 0x11 ++ */ ++ENTRY(graphics_get_font) ++ push %ebp ++ push %ebx ++ push %ecx ++ push %edx ++ ++ call EXT_C(prot_to_real) ++ .code16 ++ ++ movw $0x1130, %ax ++ movb $6, %bh /* font 8x16 */ ++ int $0x10 ++ movw %bp, %dx ++ movw %es, %cx ++ ++ DATA32 call EXT_C(real_to_prot) ++ .code32 ++ ++ xorl %eax, %eax ++ movw %cx, %ax ++ shll $4, %eax ++ movw %dx, %ax ++ ++ pop %edx ++ pop %ecx ++ pop %ebx ++ pop %ebp ++ ret ++ ++ ++ ++/* ++ * graphics_set_palette(index, red, green, blue) ++ * BIOS call "INT 10H Function 10h" to set individual dac register ++ * Call with %ah = 0x10 ++ * %bx = register number ++ * %ch = new value for green (0-63) ++ * %cl = new value for blue (0-63) ++ * %dh = new value for red (0-63) ++ */ ++ ++ENTRY(graphics_set_palette) ++ push %ebp ++ push %eax ++ push %ebx ++ push %ecx ++ push %edx ++ ++ movw $0x3c8, %bx /* address write mode register */ ++ ++ /* wait vertical retrace */ ++ ++ movw $0x3da, %dx ++l1b: inb %dx, %al /* wait vertical active display */ ++ test $8, %al ++ jnz l1b ++ ++l2b: inb %dx, %al /* wait vertical retrace */ ++ test $8, %al ++ jnz l2b ++ ++ mov %bx, %dx ++ movb 0x18(%esp), %al /* index */ ++ outb %al, %dx ++ inc %dx ++ ++ movb 0x1c(%esp), %al /* red */ ++ outb %al, %dx ++ ++ movb 0x20(%esp), %al /* green */ ++ outb %al, %dx ++ ++ movb 0x24(%esp), %al /* blue */ ++ outb %al, %dx ++ ++ movw 0x18(%esp), %bx ++ ++ call EXT_C(prot_to_real) ++ .code16 ++ ++ movb %bl, %bh ++ movw $0x1000, %ax ++ int $0x10 ++ ++ DATA32 call EXT_C(real_to_prot) ++ .code32 ++ ++ pop %edx ++ pop %ecx ++ pop %ebx ++ pop %eax ++ pop %ebp ++ ret ++ ++#endif /* SUPPORT_GRAPHICS */ + + /* + * getrtsecs() +diff -Nur grub-0.97/stage2/bios.c grub-0.97-patched/stage2/bios.c +--- grub-0.97/stage2/bios.c 2004-03-27 17:34:04.000000000 +0100 ++++ grub-0.97-patched/stage2/bios.c 2012-11-11 17:07:12.751730363 +0100 +@@ -47,7 +47,7 @@ + return the error number. Otherwise, return 0. */ + int + biosdisk (int read, int drive, struct geometry *geometry, +- int sector, int nsec, int segment) ++ unsigned int sector, int nsec, int segment) + { + int err; + +@@ -60,7 +60,18 @@ + unsigned short blocks; + unsigned long buffer; + unsigned long long block; +- } __attribute__ ((packed)) dap; ++ ++ /* This structure is passed in the stack. A buggy BIOS could write ++ * garbage data to the tail of the struct and hang the machine. So ++ * we need this protection. - Tinybit ++ */ ++ unsigned char dummy[16]; ++ } __attribute__ ((packed)) *dap; ++ ++ /* Even the above protection is not enough to avoid stupid actions by ++ * buggy BIOSes. So we do it in the 0040:0000 segment. - Tinybit ++ */ ++ dap = (struct disk_address_packet *)0x580; + + /* XXX: Don't check the geometry by default, because some buggy + BIOSes don't return the number of total sectors correctly, +@@ -72,15 +83,15 @@ + + /* FIXME: sizeof (DAP) must be 0x10. Should assert that the compiler + can't add any padding. */ +- dap.length = sizeof (dap); +- dap.block = sector; +- dap.blocks = nsec; +- dap.reserved = 0; ++ dap->length = 0x10; ++ dap->block = sector; ++ dap->blocks = nsec; ++ dap->reserved = 0; + /* This is undocumented part. The address is formated in + SEGMENT:ADDRESS. */ +- dap.buffer = segment << 16; ++ dap->buffer = segment << 16; + +- err = biosdisk_int13_extensions ((read + 0x42) << 8, drive, &dap); ++ err = biosdisk_int13_extensions ((read + 0x42) << 8, drive, dap); + + /* #undef NO_INT13_FALLBACK */ + #ifndef NO_INT13_FALLBACK +diff -Nur grub-0.97/stage2/boot.c grub-0.97-patched/stage2/boot.c +--- grub-0.97/stage2/boot.c 2004-03-30 13:44:08.000000000 +0200 ++++ grub-0.97-patched/stage2/boot.c 2012-11-11 17:07:12.727729596 +0100 +@@ -1,7 +1,7 @@ + /* boot.c - load and bootstrap a kernel */ + /* + * GRUB -- GRand Unified Bootloader +- * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. ++ * Copyright (C) 1999,2000,2001,2002,2003,2004,2005 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -96,7 +96,7 @@ + lh = (struct linux_kernel_header *) buffer; + + /* ELF loading supported if multiboot, FreeBSD and NetBSD. */ +- if ((type == KERNEL_TYPE_MULTIBOOT ++ if (((type == KERNEL_TYPE_MULTIBOOT && ! (flags & MULTIBOOT_AOUT_KLUDGE)) + || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD + || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0 + || suggested_type == KERNEL_TYPE_NETBSD) +@@ -241,7 +241,7 @@ + } + + if (lh->version >= 0x0202) +- lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_OFFSET; ++ lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_0202_PRM_OFFSET; + else + { + lh->cl_magic = LINUX_CL_MAGIC; +@@ -407,6 +407,15 @@ + while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src) + *(dest++) = *(src++); + ++ { ++ char *src = skip_to (0, arg); ++ char *dest = linux_data_tmp_addr + LINUX_CL_0202_PRM_OFFSET; ++ ++ while (dest < linux_data_tmp_addr + LINUX_CL_0202_PRM_END_OFFSET && *src) ++ *(dest++) = *(src++); ++ *dest = 0; ++ } ++ + /* Old Linux kernels have problems determining the amount of + the available memory. To work around this problem, we add + the "mem" option to the kernel command line. This has its +@@ -824,8 +833,11 @@ + moveto = (mbi.mem_upper + 0x400) << 10; + + moveto = (moveto - len) & 0xfffff000; +- max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203 +- ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS); ++ max_addr = LINUX_INITRD_MAX_ADDRESS; ++ if (lh->header == LINUX_MAGIC_SIGNATURE && ++ lh->version >= 0x0203 && ++ lh->initrd_addr_max < max_addr) ++ max_addr = lh->initrd_addr_max; + if (moveto + len >= max_addr) + moveto = (max_addr - len) & 0xfffff000; + +diff -Nur grub-0.97/stage2/boot.c.orig grub-0.97-patched/stage2/boot.c.orig +--- grub-0.97/stage2/boot.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/boot.c.orig 2004-03-30 13:44:08.000000000 +0200 +@@ -0,0 +1,1020 @@ ++/* boot.c - load and bootstrap a kernel */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++ ++#include "shared.h" ++ ++#include "freebsd.h" ++#include "imgact_aout.h" ++#include "i386-elf.h" ++ ++static int cur_addr; ++entry_func entry_addr; ++static struct mod_list mll[99]; ++static int linux_mem_size; ++ ++/* ++ * The next two functions, 'load_image' and 'load_module', are the building ++ * blocks of the multiboot loader component. They handle essentially all ++ * of the gory details of loading in a bootable image and the modules. ++ */ ++ ++kernel_t ++load_image (char *kernel, char *arg, kernel_t suggested_type, ++ unsigned long load_flags) ++{ ++ int len, i, exec_type = 0, align_4k = 1; ++ entry_func real_entry_addr = 0; ++ kernel_t type = KERNEL_TYPE_NONE; ++ unsigned long flags = 0, text_len = 0, data_len = 0, bss_len = 0; ++ char *str = 0, *str2 = 0; ++ struct linux_kernel_header *lh; ++ union ++ { ++ struct multiboot_header *mb; ++ struct exec *aout; ++ Elf32_Ehdr *elf; ++ } ++ pu; ++ /* presuming that MULTIBOOT_SEARCH is large enough to encompass an ++ executable header */ ++ unsigned char buffer[MULTIBOOT_SEARCH]; ++ ++ /* sets the header pointer to point to the beginning of the ++ buffer by default */ ++ pu.aout = (struct exec *) buffer; ++ ++ if (!grub_open (kernel)) ++ return KERNEL_TYPE_NONE; ++ ++ if (!(len = grub_read (buffer, MULTIBOOT_SEARCH)) || len < 32) ++ { ++ grub_close (); ++ ++ if (!errnum) ++ errnum = ERR_EXEC_FORMAT; ++ ++ return KERNEL_TYPE_NONE; ++ } ++ ++ for (i = 0; i < len; i++) ++ { ++ if (MULTIBOOT_FOUND ((int) (buffer + i), len - i)) ++ { ++ flags = ((struct multiboot_header *) (buffer + i))->flags; ++ if (flags & MULTIBOOT_UNSUPPORTED) ++ { ++ grub_close (); ++ errnum = ERR_BOOT_FEATURES; ++ return KERNEL_TYPE_NONE; ++ } ++ type = KERNEL_TYPE_MULTIBOOT; ++ str2 = "Multiboot"; ++ break; ++ } ++ } ++ ++ /* Use BUFFER as a linux kernel header, if the image is Linux zImage ++ or bzImage. */ ++ lh = (struct linux_kernel_header *) buffer; ++ ++ /* ELF loading supported if multiboot, FreeBSD and NetBSD. */ ++ if ((type == KERNEL_TYPE_MULTIBOOT ++ || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD ++ || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0 ++ || suggested_type == KERNEL_TYPE_NETBSD) ++ && len > sizeof (Elf32_Ehdr) ++ && BOOTABLE_I386_ELF ((*((Elf32_Ehdr *) buffer)))) ++ { ++ if (type == KERNEL_TYPE_MULTIBOOT) ++ entry_addr = (entry_func) pu.elf->e_entry; ++ else ++ entry_addr = (entry_func) (pu.elf->e_entry & 0xFFFFFF); ++ ++ if (entry_addr < (entry_func) 0x100000) ++ errnum = ERR_BELOW_1MB; ++ ++ /* don't want to deal with ELF program header at some random ++ place in the file -- this generally won't happen */ ++ if (pu.elf->e_phoff == 0 || pu.elf->e_phnum == 0 ++ || ((pu.elf->e_phoff + (pu.elf->e_phentsize * pu.elf->e_phnum)) ++ >= len)) ++ errnum = ERR_EXEC_FORMAT; ++ str = "elf"; ++ ++ if (type == KERNEL_TYPE_NONE) ++ { ++ /* At the moment, there is no way to identify a NetBSD ELF ++ kernel, so rely on the suggested type by the user. */ ++ if (suggested_type == KERNEL_TYPE_NETBSD) ++ { ++ str2 = "NetBSD"; ++ type = suggested_type; ++ } ++ else ++ { ++ str2 = "FreeBSD"; ++ type = KERNEL_TYPE_FREEBSD; ++ } ++ } ++ } ++ else if (flags & MULTIBOOT_AOUT_KLUDGE) ++ { ++ pu.mb = (struct multiboot_header *) (buffer + i); ++ entry_addr = (entry_func) pu.mb->entry_addr; ++ cur_addr = pu.mb->load_addr; ++ /* first offset into file */ ++ grub_seek (i - (pu.mb->header_addr - cur_addr)); ++ ++ /* If the load end address is zero, load the whole contents. */ ++ if (! pu.mb->load_end_addr) ++ pu.mb->load_end_addr = cur_addr + filemax; ++ ++ text_len = pu.mb->load_end_addr - cur_addr; ++ data_len = 0; ++ ++ /* If the bss end address is zero, assume that there is no bss area. */ ++ if (! pu.mb->bss_end_addr) ++ pu.mb->bss_end_addr = pu.mb->load_end_addr; ++ ++ bss_len = pu.mb->bss_end_addr - pu.mb->load_end_addr; ++ ++ if (pu.mb->header_addr < pu.mb->load_addr ++ || pu.mb->load_end_addr <= pu.mb->load_addr ++ || pu.mb->bss_end_addr < pu.mb->load_end_addr ++ || (pu.mb->header_addr - pu.mb->load_addr) > i) ++ errnum = ERR_EXEC_FORMAT; ++ ++ if (cur_addr < 0x100000) ++ errnum = ERR_BELOW_1MB; ++ ++ pu.aout = (struct exec *) buffer; ++ exec_type = 2; ++ str = "kludge"; ++ } ++ else if (len > sizeof (struct exec) && !N_BADMAG ((*(pu.aout)))) ++ { ++ entry_addr = (entry_func) pu.aout->a_entry; ++ ++ if (type == KERNEL_TYPE_NONE) ++ { ++ /* ++ * If it doesn't have a Multiboot header, then presume ++ * it is either a FreeBSD or NetBSD executable. If so, ++ * then use a magic number of normal ordering, ZMAGIC to ++ * determine if it is FreeBSD. ++ * ++ * This is all because freebsd and netbsd seem to require ++ * masking out some address bits... differently for each ++ * one... plus of course we need to know which booting ++ * method to use. ++ */ ++ entry_addr = (entry_func) ((int) entry_addr & 0xFFFFFF); ++ ++ if (buffer[0] == 0xb && buffer[1] == 1) ++ { ++ type = KERNEL_TYPE_FREEBSD; ++ cur_addr = (int) entry_addr; ++ str2 = "FreeBSD"; ++ } ++ else ++ { ++ type = KERNEL_TYPE_NETBSD; ++ cur_addr = (int) entry_addr & 0xF00000; ++ if (N_GETMAGIC ((*(pu.aout))) != NMAGIC) ++ align_4k = 0; ++ str2 = "NetBSD"; ++ } ++ } ++ ++ /* first offset into file */ ++ grub_seek (N_TXTOFF (*(pu.aout))); ++ text_len = pu.aout->a_text; ++ data_len = pu.aout->a_data; ++ bss_len = pu.aout->a_bss; ++ ++ if (cur_addr < 0x100000) ++ errnum = ERR_BELOW_1MB; ++ ++ exec_type = 1; ++ str = "a.out"; ++ } ++ else if (lh->boot_flag == BOOTSEC_SIGNATURE ++ && lh->setup_sects <= LINUX_MAX_SETUP_SECTS) ++ { ++ int big_linux = 0; ++ int setup_sects = lh->setup_sects; ++ ++ if (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0200) ++ { ++ big_linux = (lh->loadflags & LINUX_FLAG_BIG_KERNEL); ++ lh->type_of_loader = LINUX_BOOT_LOADER_TYPE; ++ ++ /* Put the real mode part at as a high location as possible. */ ++ linux_data_real_addr ++ = (char *) ((mbi.mem_lower << 10) - LINUX_SETUP_MOVE_SIZE); ++ /* But it must not exceed the traditional area. */ ++ if (linux_data_real_addr > (char *) LINUX_OLD_REAL_MODE_ADDR) ++ linux_data_real_addr = (char *) LINUX_OLD_REAL_MODE_ADDR; ++ ++ if (lh->version >= 0x0201) ++ { ++ lh->heap_end_ptr = LINUX_HEAP_END_OFFSET; ++ lh->loadflags |= LINUX_FLAG_CAN_USE_HEAP; ++ } ++ ++ if (lh->version >= 0x0202) ++ lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_OFFSET; ++ else ++ { ++ lh->cl_magic = LINUX_CL_MAGIC; ++ lh->cl_offset = LINUX_CL_OFFSET; ++ lh->setup_move_size = LINUX_SETUP_MOVE_SIZE; ++ } ++ } ++ else ++ { ++ /* Your kernel is quite old... */ ++ lh->cl_magic = LINUX_CL_MAGIC; ++ lh->cl_offset = LINUX_CL_OFFSET; ++ ++ setup_sects = LINUX_DEFAULT_SETUP_SECTS; ++ ++ linux_data_real_addr = (char *) LINUX_OLD_REAL_MODE_ADDR; ++ } ++ ++ /* If SETUP_SECTS is not set, set it to the default (4). */ ++ if (! setup_sects) ++ setup_sects = LINUX_DEFAULT_SETUP_SECTS; ++ ++ data_len = setup_sects << 9; ++ text_len = filemax - data_len - SECTOR_SIZE; ++ ++ linux_data_tmp_addr = (char *) LINUX_BZIMAGE_ADDR + text_len; ++ ++ if (! big_linux ++ && text_len > linux_data_real_addr - (char *) LINUX_ZIMAGE_ADDR) ++ { ++ grub_printf (" linux 'zImage' kernel too big, try 'make bzImage'\n"); ++ errnum = ERR_WONT_FIT; ++ } ++ else if (linux_data_real_addr + LINUX_SETUP_MOVE_SIZE ++ > RAW_ADDR ((char *) (mbi.mem_lower << 10))) ++ errnum = ERR_WONT_FIT; ++ else ++ { ++ grub_printf (" [Linux-%s, setup=0x%x, size=0x%x]\n", ++ (big_linux ? "bzImage" : "zImage"), data_len, text_len); ++ ++ /* Video mode selection support. What a mess! */ ++ /* NOTE: Even the word "mess" is not still enough to ++ represent how wrong and bad the Linux video support is, ++ but I don't want to hear complaints from Linux fanatics ++ any more. -okuji */ ++ { ++ char *vga; ++ ++ /* Find the substring "vga=". */ ++ vga = grub_strstr (arg, "vga="); ++ if (vga) ++ { ++ char *value = vga + 4; ++ int vid_mode; ++ ++ /* Handle special strings. */ ++ if (substring ("normal", value) < 1) ++ vid_mode = LINUX_VID_MODE_NORMAL; ++ else if (substring ("ext", value) < 1) ++ vid_mode = LINUX_VID_MODE_EXTENDED; ++ else if (substring ("ask", value) < 1) ++ vid_mode = LINUX_VID_MODE_ASK; ++ else if (safe_parse_maxint (&value, &vid_mode)) ++ ; ++ else ++ { ++ /* ERRNUM is already set inside the function ++ safe_parse_maxint. */ ++ grub_close (); ++ return KERNEL_TYPE_NONE; ++ } ++ ++ lh->vid_mode = vid_mode; ++ } ++ } ++ ++ /* Check the mem= option to limit memory used for initrd. */ ++ { ++ char *mem; ++ ++ mem = grub_strstr (arg, "mem="); ++ if (mem) ++ { ++ char *value = mem + 4; ++ ++ safe_parse_maxint (&value, &linux_mem_size); ++ switch (errnum) ++ { ++ case ERR_NUMBER_OVERFLOW: ++ /* If an overflow occurs, use the maximum address for ++ initrd instead. This is good, because MAXINT is ++ greater than LINUX_INITRD_MAX_ADDRESS. */ ++ linux_mem_size = LINUX_INITRD_MAX_ADDRESS; ++ errnum = ERR_NONE; ++ break; ++ ++ case ERR_NONE: ++ { ++ int shift = 0; ++ ++ switch (grub_tolower (*value)) ++ { ++ case 'g': ++ shift += 10; ++ case 'm': ++ shift += 10; ++ case 'k': ++ shift += 10; ++ default: ++ break; ++ } ++ ++ /* Check an overflow. */ ++ if (linux_mem_size > (MAXINT >> shift)) ++ linux_mem_size = LINUX_INITRD_MAX_ADDRESS; ++ else ++ linux_mem_size <<= shift; ++ } ++ break; ++ ++ default: ++ linux_mem_size = 0; ++ errnum = ERR_NONE; ++ break; ++ } ++ } ++ else ++ linux_mem_size = 0; ++ } ++ ++ /* It is possible that DATA_LEN + SECTOR_SIZE is greater than ++ MULTIBOOT_SEARCH, so the data may have been read partially. */ ++ if (data_len + SECTOR_SIZE <= MULTIBOOT_SEARCH) ++ grub_memmove (linux_data_tmp_addr, buffer, ++ data_len + SECTOR_SIZE); ++ else ++ { ++ grub_memmove (linux_data_tmp_addr, buffer, MULTIBOOT_SEARCH); ++ grub_read (linux_data_tmp_addr + MULTIBOOT_SEARCH, ++ data_len + SECTOR_SIZE - MULTIBOOT_SEARCH); ++ } ++ ++ if (lh->header != LINUX_MAGIC_SIGNATURE || ++ lh->version < 0x0200) ++ /* Clear the heap space. */ ++ grub_memset (linux_data_tmp_addr + ((setup_sects + 1) << 9), ++ 0, ++ (64 - setup_sects - 1) << 9); ++ ++ /* Copy command-line plus memory hack to staging area. ++ NOTE: Linux has a bug that it doesn't handle multiple spaces ++ between two options and a space after a "mem=" option isn't ++ removed correctly so the arguments to init could be like ++ {"init", "", "", NULL}. This affects some not-very-clever ++ shells. Thus, the code below does a trick to avoid the bug. ++ That is, copy "mem=XXX" to the end of the command-line, and ++ avoid to copy spaces unnecessarily. Hell. */ ++ { ++ char *src = skip_to (0, arg); ++ char *dest = linux_data_tmp_addr + LINUX_CL_OFFSET; ++ ++ while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src) ++ *(dest++) = *(src++); ++ ++ /* Old Linux kernels have problems determining the amount of ++ the available memory. To work around this problem, we add ++ the "mem" option to the kernel command line. This has its ++ own drawbacks because newer kernels can determine the ++ memory map more accurately. Boot protocol 2.03, which ++ appeared in Linux 2.4.18, provides a pointer to the kernel ++ version string, so we could check it. But since kernel ++ 2.4.18 and newer are known to detect memory reliably, boot ++ protocol 2.03 already implies that the kernel is new ++ enough. The "mem" option is added if neither of the ++ following conditions is met: ++ 1) The "mem" option is already present. ++ 2) The "kernel" command is used with "--no-mem-option". ++ 3) GNU GRUB is configured not to pass the "mem" option. ++ 4) The kernel supports boot protocol 2.03 or newer. */ ++ if (! grub_strstr (arg, "mem=") ++ && ! (load_flags & KERNEL_LOAD_NO_MEM_OPTION) ++ && lh->version < 0x0203 /* kernel version < 2.4.18 */ ++ && dest + 15 < linux_data_tmp_addr + LINUX_CL_END_OFFSET) ++ { ++ *dest++ = ' '; ++ *dest++ = 'm'; ++ *dest++ = 'e'; ++ *dest++ = 'm'; ++ *dest++ = '='; ++ ++ dest = convert_to_ascii (dest, 'u', (extended_memory + 0x400)); ++ *dest++ = 'K'; ++ } ++ ++ *dest = 0; ++ } ++ ++ /* offset into file */ ++ grub_seek (data_len + SECTOR_SIZE); ++ ++ cur_addr = (int) linux_data_tmp_addr + LINUX_SETUP_MOVE_SIZE; ++ grub_read ((char *) LINUX_BZIMAGE_ADDR, text_len); ++ ++ if (errnum == ERR_NONE) ++ { ++ grub_close (); ++ ++ /* Sanity check. */ ++ if (suggested_type != KERNEL_TYPE_NONE ++ && ((big_linux && suggested_type != KERNEL_TYPE_BIG_LINUX) ++ || (! big_linux && suggested_type != KERNEL_TYPE_LINUX))) ++ { ++ errnum = ERR_EXEC_FORMAT; ++ return KERNEL_TYPE_NONE; ++ } ++ ++ /* Ugly hack. */ ++ linux_text_len = text_len; ++ ++ return big_linux ? KERNEL_TYPE_BIG_LINUX : KERNEL_TYPE_LINUX; ++ } ++ } ++ } ++ else /* no recognizable format */ ++ errnum = ERR_EXEC_FORMAT; ++ ++ /* return if error */ ++ if (errnum) ++ { ++ grub_close (); ++ return KERNEL_TYPE_NONE; ++ } ++ ++ /* fill the multiboot info structure */ ++ mbi.cmdline = (int) arg; ++ mbi.mods_count = 0; ++ mbi.mods_addr = 0; ++ mbi.boot_device = (current_drive << 24) | current_partition; ++ mbi.flags &= ~(MB_INFO_MODS | MB_INFO_AOUT_SYMS | MB_INFO_ELF_SHDR); ++ mbi.syms.a.tabsize = 0; ++ mbi.syms.a.strsize = 0; ++ mbi.syms.a.addr = 0; ++ mbi.syms.a.pad = 0; ++ ++ printf (" [%s-%s", str2, str); ++ ++ str = ""; ++ ++ if (exec_type) /* can be loaded like a.out */ ++ { ++ if (flags & MULTIBOOT_AOUT_KLUDGE) ++ str = "-and-data"; ++ ++ printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len); ++ ++ /* read text, then read data */ ++ if (grub_read ((char *) RAW_ADDR (cur_addr), text_len) == text_len) ++ { ++ cur_addr += text_len; ++ ++ if (!(flags & MULTIBOOT_AOUT_KLUDGE)) ++ { ++ /* we have to align to a 4K boundary */ ++ if (align_4k) ++ cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000; ++ else ++ printf (", C"); ++ ++ printf (", data=0x%x", data_len); ++ ++ if ((grub_read ((char *) RAW_ADDR (cur_addr), data_len) ++ != data_len) ++ && !errnum) ++ errnum = ERR_EXEC_FORMAT; ++ cur_addr += data_len; ++ } ++ ++ if (!errnum) ++ { ++ memset ((char *) RAW_ADDR (cur_addr), 0, bss_len); ++ cur_addr += bss_len; ++ ++ printf (", bss=0x%x", bss_len); ++ } ++ } ++ else if (!errnum) ++ errnum = ERR_EXEC_FORMAT; ++ ++ if (!errnum && pu.aout->a_syms ++ && pu.aout->a_syms < (filemax - filepos)) ++ { ++ int symtab_err, orig_addr = cur_addr; ++ ++ /* we should align to a 4K boundary here for good measure */ ++ if (align_4k) ++ cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000; ++ ++ mbi.syms.a.addr = cur_addr; ++ ++ *((int *) RAW_ADDR (cur_addr)) = pu.aout->a_syms; ++ cur_addr += sizeof (int); ++ ++ printf (", symtab=0x%x", pu.aout->a_syms); ++ ++ if (grub_read ((char *) RAW_ADDR (cur_addr), pu.aout->a_syms) ++ == pu.aout->a_syms) ++ { ++ cur_addr += pu.aout->a_syms; ++ mbi.syms.a.tabsize = pu.aout->a_syms; ++ ++ if (grub_read ((char *) &i, sizeof (int)) == sizeof (int)) ++ { ++ *((int *) RAW_ADDR (cur_addr)) = i; ++ cur_addr += sizeof (int); ++ ++ mbi.syms.a.strsize = i; ++ ++ i -= sizeof (int); ++ ++ printf (", strtab=0x%x", i); ++ ++ symtab_err = (grub_read ((char *) RAW_ADDR (cur_addr), i) ++ != i); ++ cur_addr += i; ++ } ++ else ++ symtab_err = 1; ++ } ++ else ++ symtab_err = 1; ++ ++ if (symtab_err) ++ { ++ printf ("(bad)"); ++ cur_addr = orig_addr; ++ mbi.syms.a.tabsize = 0; ++ mbi.syms.a.strsize = 0; ++ mbi.syms.a.addr = 0; ++ } ++ else ++ mbi.flags |= MB_INFO_AOUT_SYMS; ++ } ++ } ++ else ++ /* ELF executable */ ++ { ++ unsigned loaded = 0, memaddr, memsiz, filesiz; ++ Elf32_Phdr *phdr; ++ ++ /* reset this to zero for now */ ++ cur_addr = 0; ++ ++ /* scan for program segments */ ++ for (i = 0; i < pu.elf->e_phnum; i++) ++ { ++ phdr = (Elf32_Phdr *) ++ (pu.elf->e_phoff + ((int) buffer) ++ + (pu.elf->e_phentsize * i)); ++ if (phdr->p_type == PT_LOAD) ++ { ++ /* offset into file */ ++ grub_seek (phdr->p_offset); ++ filesiz = phdr->p_filesz; ++ ++ if (type == KERNEL_TYPE_FREEBSD || type == KERNEL_TYPE_NETBSD) ++ memaddr = RAW_ADDR (phdr->p_paddr & 0xFFFFFF); ++ else ++ memaddr = RAW_ADDR (phdr->p_paddr); ++ ++ memsiz = phdr->p_memsz; ++ if (memaddr < RAW_ADDR (0x100000)) ++ errnum = ERR_BELOW_1MB; ++ ++ /* If the memory range contains the entry address, get the ++ physical address here. */ ++ if (type == KERNEL_TYPE_MULTIBOOT ++ && (unsigned) entry_addr >= phdr->p_vaddr ++ && (unsigned) entry_addr < phdr->p_vaddr + memsiz) ++ real_entry_addr = (entry_func) ((unsigned) entry_addr ++ + memaddr - phdr->p_vaddr); ++ ++ /* make sure we only load what we're supposed to! */ ++ if (filesiz > memsiz) ++ filesiz = memsiz; ++ /* mark memory as used */ ++ if (cur_addr < memaddr + memsiz) ++ cur_addr = memaddr + memsiz; ++ printf (", <0x%x:0x%x:0x%x>", memaddr, filesiz, ++ memsiz - filesiz); ++ /* increment number of segments */ ++ loaded++; ++ ++ /* load the segment */ ++ if (memcheck (memaddr, memsiz) ++ && grub_read ((char *) memaddr, filesiz) == filesiz) ++ { ++ if (memsiz > filesiz) ++ memset ((char *) (memaddr + filesiz), 0, memsiz - filesiz); ++ } ++ else ++ break; ++ } ++ } ++ ++ if (! errnum) ++ { ++ if (! loaded) ++ errnum = ERR_EXEC_FORMAT; ++ else ++ { ++ /* Load ELF symbols. */ ++ Elf32_Shdr *shdr = NULL; ++ int tab_size, sec_size; ++ int symtab_err = 0; ++ ++ mbi.syms.e.num = pu.elf->e_shnum; ++ mbi.syms.e.size = pu.elf->e_shentsize; ++ mbi.syms.e.shndx = pu.elf->e_shstrndx; ++ ++ /* We should align to a 4K boundary here for good measure. */ ++ if (align_4k) ++ cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000; ++ ++ tab_size = pu.elf->e_shentsize * pu.elf->e_shnum; ++ ++ grub_seek (pu.elf->e_shoff); ++ if (grub_read ((char *) RAW_ADDR (cur_addr), tab_size) ++ == tab_size) ++ { ++ mbi.syms.e.addr = cur_addr; ++ shdr = (Elf32_Shdr *) mbi.syms.e.addr; ++ cur_addr += tab_size; ++ ++ printf (", shtab=0x%x", cur_addr); ++ ++ for (i = 0; i < mbi.syms.e.num; i++) ++ { ++ /* This section is a loaded section, ++ so we don't care. */ ++ if (shdr[i].sh_addr != 0) ++ continue; ++ ++ /* This section is empty, so we don't care. */ ++ if (shdr[i].sh_size == 0) ++ continue; ++ ++ /* Align the section to a sh_addralign bits boundary. */ ++ cur_addr = ((cur_addr + shdr[i].sh_addralign) & ++ - (int) shdr[i].sh_addralign); ++ ++ grub_seek (shdr[i].sh_offset); ++ ++ sec_size = shdr[i].sh_size; ++ ++ if (! (memcheck (cur_addr, sec_size) ++ && (grub_read ((char *) RAW_ADDR (cur_addr), ++ sec_size) ++ == sec_size))) ++ { ++ symtab_err = 1; ++ break; ++ } ++ ++ shdr[i].sh_addr = cur_addr; ++ cur_addr += sec_size; ++ } ++ } ++ else ++ symtab_err = 1; ++ ++ if (mbi.syms.e.addr < RAW_ADDR(0x10000)) ++ symtab_err = 1; ++ ++ if (symtab_err) ++ { ++ printf ("(bad)"); ++ mbi.syms.e.num = 0; ++ mbi.syms.e.size = 0; ++ mbi.syms.e.addr = 0; ++ mbi.syms.e.shndx = 0; ++ cur_addr = 0; ++ } ++ else ++ mbi.flags |= MB_INFO_ELF_SHDR; ++ } ++ } ++ } ++ ++ if (! errnum) ++ { ++ grub_printf (", entry=0x%x]\n", (unsigned) entry_addr); ++ ++ /* If the entry address is physically different from that of the ELF ++ header, correct it here. */ ++ if (real_entry_addr) ++ entry_addr = real_entry_addr; ++ } ++ else ++ { ++ putchar ('\n'); ++ type = KERNEL_TYPE_NONE; ++ } ++ ++ grub_close (); ++ ++ /* Sanity check. */ ++ if (suggested_type != KERNEL_TYPE_NONE && suggested_type != type) ++ { ++ errnum = ERR_EXEC_FORMAT; ++ return KERNEL_TYPE_NONE; ++ } ++ ++ return type; ++} ++ ++int ++load_module (char *module, char *arg) ++{ ++ int len; ++ ++ /* if we are supposed to load on 4K boundaries */ ++ cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000; ++ ++ if (!grub_open (module)) ++ return 0; ++ ++ len = grub_read ((char *) cur_addr, -1); ++ if (! len) ++ { ++ grub_close (); ++ return 0; ++ } ++ ++ printf (" [Multiboot-module @ 0x%x, 0x%x bytes]\n", cur_addr, len); ++ ++ /* these two simply need to be set if any modules are loaded at all */ ++ mbi.flags |= MB_INFO_MODS; ++ mbi.mods_addr = (int) mll; ++ ++ mll[mbi.mods_count].cmdline = (int) arg; ++ mll[mbi.mods_count].mod_start = cur_addr; ++ cur_addr += len; ++ mll[mbi.mods_count].mod_end = cur_addr; ++ mll[mbi.mods_count].pad = 0; ++ ++ /* increment number of modules included */ ++ mbi.mods_count++; ++ ++ grub_close (); ++ return 1; ++} ++ ++int ++load_initrd (char *initrd) ++{ ++ int len; ++ unsigned long moveto; ++ unsigned long max_addr; ++ struct linux_kernel_header *lh ++ = (struct linux_kernel_header *) (cur_addr - LINUX_SETUP_MOVE_SIZE); ++ ++#ifndef NO_DECOMPRESSION ++ no_decompression = 1; ++#endif ++ ++ if (! grub_open (initrd)) ++ goto fail; ++ ++ len = grub_read ((char *) cur_addr, -1); ++ if (! len) ++ { ++ grub_close (); ++ goto fail; ++ } ++ ++ if (linux_mem_size) ++ moveto = linux_mem_size; ++ else ++ moveto = (mbi.mem_upper + 0x400) << 10; ++ ++ moveto = (moveto - len) & 0xfffff000; ++ max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203 ++ ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS); ++ if (moveto + len >= max_addr) ++ moveto = (max_addr - len) & 0xfffff000; ++ ++ /* XXX: Linux 2.3.xx has a bug in the memory range check, so avoid ++ the last page. ++ XXX: Linux 2.2.xx has a bug in the memory range check, which is ++ worse than that of Linux 2.3.xx, so avoid the last 64kb. *sigh* */ ++ moveto -= 0x10000; ++ memmove ((void *) RAW_ADDR (moveto), (void *) cur_addr, len); ++ ++ printf (" [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len); ++ ++ /* FIXME: Should check if the kernel supports INITRD. */ ++ lh->ramdisk_image = RAW_ADDR (moveto); ++ lh->ramdisk_size = len; ++ ++ grub_close (); ++ ++ fail: ++ ++#ifndef NO_DECOMPRESSION ++ no_decompression = 0; ++#endif ++ ++ return ! errnum; ++} ++ ++ ++#ifdef GRUB_UTIL ++/* Dummy function to fake the *BSD boot. */ ++static void ++bsd_boot_entry (int flags, int bootdev, int sym_start, int sym_end, ++ int mem_upper, int mem_lower) ++{ ++ stop (); ++} ++#endif ++ ++ ++/* ++ * All "*_boot" commands depend on the images being loaded into memory ++ * correctly, the variables in this file being set up correctly, and ++ * the root partition being set in the 'saved_drive' and 'saved_partition' ++ * variables. ++ */ ++ ++ ++void ++bsd_boot (kernel_t type, int bootdev, char *arg) ++{ ++ char *str; ++ int clval = 0, i; ++ struct bootinfo bi; ++ ++#ifdef GRUB_UTIL ++ entry_addr = (entry_func) bsd_boot_entry; ++#else ++ stop_floppy (); ++#endif ++ ++ while (*(++arg) && *arg != ' '); ++ str = arg; ++ while (*str) ++ { ++ if (*str == '-') ++ { ++ while (*str && *str != ' ') ++ { ++ if (*str == 'C') ++ clval |= RB_CDROM; ++ if (*str == 'a') ++ clval |= RB_ASKNAME; ++ if (*str == 'b') ++ clval |= RB_HALT; ++ if (*str == 'c') ++ clval |= RB_CONFIG; ++ if (*str == 'd') ++ clval |= RB_KDB; ++ if (*str == 'D') ++ clval |= RB_MULTIPLE; ++ if (*str == 'g') ++ clval |= RB_GDB; ++ if (*str == 'h') ++ clval |= RB_SERIAL; ++ if (*str == 'm') ++ clval |= RB_MUTE; ++ if (*str == 'r') ++ clval |= RB_DFLTROOT; ++ if (*str == 's') ++ clval |= RB_SINGLE; ++ if (*str == 'v') ++ clval |= RB_VERBOSE; ++ str++; ++ } ++ continue; ++ } ++ str++; ++ } ++ ++ if (type == KERNEL_TYPE_FREEBSD) ++ { ++ clval |= RB_BOOTINFO; ++ ++ bi.bi_version = BOOTINFO_VERSION; ++ ++ *arg = 0; ++ while ((--arg) > (char *) MB_CMDLINE_BUF && *arg != '/'); ++ if (*arg == '/') ++ bi.bi_kernelname = arg + 1; ++ else ++ bi.bi_kernelname = 0; ++ ++ bi.bi_nfs_diskless = 0; ++ bi.bi_n_bios_used = 0; /* this field is apparently unused */ ++ ++ for (i = 0; i < N_BIOS_GEOM; i++) ++ { ++ struct geometry geom; ++ ++ /* XXX Should check the return value. */ ++ get_diskinfo (i + 0x80, &geom); ++ /* FIXME: If HEADS or SECTORS is greater than 255, then this will ++ break the geometry information. That is a drawback of BSD ++ but not of GRUB. */ ++ bi.bi_bios_geom[i] = (((geom.cylinders - 1) << 16) ++ + (((geom.heads - 1) & 0xff) << 8) ++ + (geom.sectors & 0xff)); ++ } ++ ++ bi.bi_size = sizeof (struct bootinfo); ++ bi.bi_memsizes_valid = 1; ++ bi.bi_bios_dev = saved_drive; ++ bi.bi_basemem = mbi.mem_lower; ++ bi.bi_extmem = extended_memory; ++ ++ if (mbi.flags & MB_INFO_AOUT_SYMS) ++ { ++ bi.bi_symtab = mbi.syms.a.addr; ++ bi.bi_esymtab = mbi.syms.a.addr + 4 ++ + mbi.syms.a.tabsize + mbi.syms.a.strsize; ++ } ++#if 0 ++ else if (mbi.flags & MB_INFO_ELF_SHDR) ++ { ++ /* FIXME: Should check if a symbol table exists and, if exists, ++ pass the table to BI. */ ++ } ++#endif ++ else ++ { ++ bi.bi_symtab = 0; ++ bi.bi_esymtab = 0; ++ } ++ ++ /* call entry point */ ++ (*entry_addr) (clval, bootdev, 0, 0, 0, ((int) (&bi))); ++ } ++ else ++ { ++ /* ++ * We now pass the various bootstrap parameters to the loaded ++ * image via the argument list. ++ * ++ * This is the official list: ++ * ++ * arg0 = 8 (magic) ++ * arg1 = boot flags ++ * arg2 = boot device ++ * arg3 = start of symbol table (0 if not loaded) ++ * arg4 = end of symbol table (0 if not loaded) ++ * arg5 = transfer address from image ++ * arg6 = transfer address for next image pointer ++ * arg7 = conventional memory size (640) ++ * arg8 = extended memory size (8196) ++ * ++ * ...in actuality, we just pass the parameters used by the kernel. ++ */ ++ ++ /* call entry point */ ++ unsigned long end_mark; ++ ++ if (mbi.flags & MB_INFO_AOUT_SYMS) ++ end_mark = (mbi.syms.a.addr + 4 ++ + mbi.syms.a.tabsize + mbi.syms.a.strsize); ++ else ++ /* FIXME: it should be mbi.syms.e.size. */ ++ end_mark = 0; ++ ++ (*entry_addr) (clval, bootdev, 0, end_mark, ++ extended_memory, mbi.mem_lower); ++ } ++} +diff -Nur grub-0.97/stage2/builtins.c grub-0.97-patched/stage2/builtins.c +--- grub-0.97/stage2/builtins.c 2005-02-15 22:58:23.000000000 +0100 ++++ grub-0.97-patched/stage2/builtins.c 2012-11-11 17:07:12.729729661 +0100 +@@ -131,63 +131,98 @@ + } + + ++/* blocklist_read_helper nee disk_read_blocklist_func was a nested ++ * function, to which pointers were taken and exposed globally. Even ++ * in the GNU-C nested functions extension, they have local linkage, ++ * and aren't guaranteed to be accessable *at all* outside of their ++ * containing scope. ++ * ++ * Above and beyond all of that, the variables within blocklist_func_context ++ * are originally local variables, with local (not even static) linkage, ++ * from within blocklist_func. These were each referenced by ++ * disk_read_blocklist_func, which is only called from other functions ++ * through a globally scoped pointer. ++ * ++ * The documentation in GCC actually uses the words "all hell will break ++ * loose" to describe this scenario. ++ * ++ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn ++ * about it (possibly because of the scoping madness?) ++ */ ++ ++static struct { ++ int start_sector; ++ int num_sectors; ++ int num_entries; ++ int last_length; ++} blocklist_func_context = { ++ .start_sector = 0, ++ .num_sectors = 0, ++ .num_entries = 0, ++ .last_length = 0 ++}; ++ ++/* Collect contiguous blocks into one entry as many as possible, ++ and print the blocklist notation on the screen. */ ++static void ++blocklist_read_helper (int sector, int offset, int length) ++{ ++ int *start_sector = &blocklist_func_context.start_sector; ++ int *num_sectors = &blocklist_func_context.num_sectors; ++ int *num_entries = &blocklist_func_context.num_entries; ++ int *last_length = &blocklist_func_context.last_length; ++ ++ if (*num_sectors > 0) ++ { ++ if (*start_sector + *num_sectors == sector ++ && offset == 0 && *last_length == SECTOR_SIZE) ++ { ++ *num_sectors++; ++ *last_length = length; ++ return; ++ } ++ else ++ { ++ if (*last_length == SECTOR_SIZE) ++ grub_printf ("%s%d+%d", *num_entries ? "," : "", ++ *start_sector - part_start, *num_sectors); ++ else if (*num_sectors > 1) ++ grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "", ++ *start_sector - part_start, *num_sectors-1, ++ *start_sector + *num_sectors-1 - part_start, ++ *last_length); ++ else ++ grub_printf ("%s%d[0-%d]", *num_entries ? "," : "", ++ *start_sector - part_start, *last_length); ++ *num_entries++; ++ *num_sectors = 0; ++ } ++ } ++ ++ if (offset > 0) ++ { ++ grub_printf("%s%d[%d-%d]", *num_entries ? "," : "", ++ sector-part_start, offset, offset+length); ++ *num_entries++; ++ } ++ else ++ { ++ *start_sector = sector; ++ *num_sectors = 1; ++ *last_length = length; ++ } ++} ++ + /* blocklist */ + static int + blocklist_func (char *arg, int flags) + { + char *dummy = (char *) RAW_ADDR (0x100000); +- int start_sector; +- int num_sectors = 0; +- int num_entries = 0; +- int last_length = 0; + +- auto void disk_read_blocklist_func (int sector, int offset, int length); ++ int *start_sector = &blocklist_func_context.start_sector; ++ int *num_sectors = &blocklist_func_context.num_sectors; ++ int *num_entries = &blocklist_func_context.num_entries; + +- /* Collect contiguous blocks into one entry as many as possible, +- and print the blocklist notation on the screen. */ +- auto void disk_read_blocklist_func (int sector, int offset, int length) +- { +- if (num_sectors > 0) +- { +- if (start_sector + num_sectors == sector +- && offset == 0 && last_length == SECTOR_SIZE) +- { +- num_sectors++; +- last_length = length; +- return; +- } +- else +- { +- if (last_length == SECTOR_SIZE) +- grub_printf ("%s%d+%d", num_entries ? "," : "", +- start_sector - part_start, num_sectors); +- else if (num_sectors > 1) +- grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "", +- start_sector - part_start, num_sectors-1, +- start_sector + num_sectors-1 - part_start, +- last_length); +- else +- grub_printf ("%s%d[0-%d]", num_entries ? "," : "", +- start_sector - part_start, last_length); +- num_entries++; +- num_sectors = 0; +- } +- } +- +- if (offset > 0) +- { +- grub_printf("%s%d[%d-%d]", num_entries ? "," : "", +- sector-part_start, offset, offset+length); +- num_entries++; +- } +- else +- { +- start_sector = sector; +- num_sectors = 1; +- last_length = length; +- } +- } +- + /* Open the file. */ + if (! grub_open (arg)) + return 1; +@@ -206,15 +241,15 @@ + grub_printf (")"); + + /* Read in the whole file to DUMMY. */ +- disk_read_hook = disk_read_blocklist_func; ++ disk_read_hook = blocklist_read_helper; + if (! grub_read (dummy, -1)) + goto fail; + + /* The last entry may not be printed yet. Don't check if it is a + * full sector, since it doesn't matter if we read too much. */ +- if (num_sectors > 0) +- grub_printf ("%s%d+%d", num_entries ? "," : "", +- start_sector - part_start, num_sectors); ++ if (*num_sectors > 0) ++ grub_printf ("%s%d+%d", *num_entries ? "," : "", ++ *start_sector - part_start, *num_sectors); + + grub_printf ("\n"); + +@@ -852,6 +887,138 @@ + }; + #endif /* SUPPORT_NETBOOT */ + ++static int terminal_func (char *arg, int flags); ++ ++#ifdef SUPPORT_GRAPHICS ++ ++static int splashimage_func(char *arg, int flags) { ++ char splashimage[64]; ++ int i; ++ ++ /* filename can only be 64 characters due to our buffer size */ ++ if (strlen(arg) > 63) ++ return 1; ++ if (flags == BUILTIN_CMDLINE) { ++ if (!grub_open(arg)) ++ return 1; ++ grub_close(); ++ } ++ ++ strcpy(splashimage, arg); ++ ++ /* get rid of TERM_NEED_INIT from the graphics terminal. */ ++ for (i = 0; term_table[i].name; i++) { ++ if (grub_strcmp (term_table[i].name, "graphics") == 0) { ++ term_table[i].flags &= ~TERM_NEED_INIT; ++ break; ++ } ++ } ++ ++ graphics_set_splash(splashimage); ++ ++ if (flags == BUILTIN_CMDLINE && graphics_inited) { ++ graphics_end(); ++ graphics_init(); ++ graphics_cls(); ++ } ++ ++ /* FIXME: should we be explicitly switching the terminal as a ++ * side effect here? */ ++ terminal_func("graphics", flags); ++ ++ return 0; ++} ++ ++static struct builtin builtin_splashimage = ++{ ++ "splashimage", ++ splashimage_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "splashimage FILE", ++ "Load FILE as the background image when in graphics mode." ++}; ++ ++ ++/* foreground */ ++static int ++foreground_func(char *arg, int flags) ++{ ++ if (grub_strlen(arg) == 6) { ++ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; ++ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; ++ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; ++ ++ foreground = (r << 16) | (g << 8) | b; ++ if (graphics_inited) ++ graphics_set_palette(15, r, g, b); ++ ++ return (0); ++ } ++ ++ return (1); ++} ++ ++static struct builtin builtin_foreground = ++{ ++ "foreground", ++ foreground_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "foreground RRGGBB", ++ "Sets the foreground color when in graphics mode." ++ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." ++}; ++ ++ ++/* background */ ++static int ++background_func(char *arg, int flags) ++{ ++ if (grub_strlen(arg) == 6) { ++ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; ++ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; ++ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; ++ ++ background = (r << 16) | (g << 8) | b; ++ if (graphics_inited) ++ graphics_set_palette(0, r, g, b); ++ return (0); ++ } ++ ++ return (1); ++} ++ ++static struct builtin builtin_background = ++{ ++ "background", ++ background_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "background RRGGBB", ++ "Sets the background color when in graphics mode." ++ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." ++}; ++ ++#endif /* SUPPORT_GRAPHICS */ ++ ++ ++/* clear */ ++static int ++clear_func() ++{ ++ if (current_term->cls) ++ current_term->cls(); ++ ++ return 0; ++} ++ ++static struct builtin builtin_clear = ++{ ++ "clear", ++ clear_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "clear", ++ "Clear the screen" ++}; ++ + + /* displayapm */ + static int +@@ -1233,14 +1400,15 @@ + for (drive = 0x80; drive < 0x88; drive++) + { + unsigned long part = 0xFFFFFF; +- unsigned long start, len, offset, ext_offset; +- int type, entry; ++ unsigned long start, len, offset, ext_offset, gpt_offset; ++ int type, entry, gpt_count, gpt_size; + char buf[SECTOR_SIZE]; + + current_drive = drive; + while (next_partition (drive, 0xFFFFFF, &part, &type, + &start, &len, &offset, &entry, +- &ext_offset, buf)) ++ &ext_offset, &gpt_offset, ++ &gpt_count, &gpt_size, buf)) + { + if (type != PC_SLICE_TYPE_NONE + && ! IS_PC_SLICE_TYPE_BSD (type) +@@ -1740,6 +1908,77 @@ + + + /* install */ ++static struct { ++ int saved_sector; ++ int installaddr; ++ int installlist; ++ char *stage2_first_buffer; ++} install_func_context = { ++ .saved_sector = 0, ++ .installaddr = 0, ++ .installlist = 0, ++ .stage2_first_buffer = NULL, ++}; ++ ++/* Save the first sector of Stage2 in STAGE2_SECT. */ ++/* Formerly disk_read_savesect_func with local scope inside install_func */ ++static void ++install_savesect_helper(int sector, int offset, int length) ++{ ++ if (debug) ++ printf ("[%d]", sector); ++ ++ /* ReiserFS has files which sometimes contain data not aligned ++ on sector boundaries. Returning an error is better than ++ silently failing. */ ++ if (offset != 0 || length != SECTOR_SIZE) ++ errnum = ERR_UNALIGNED; ++ ++ install_func_context.saved_sector = sector; ++} ++ ++/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and INSTALLSECT. */ ++/* Formerly disk_read_blocklist_func with local scope inside install_func */ ++static void ++install_blocklist_helper (int sector, int offset, int length) ++{ ++ int *installaddr = &install_func_context.installaddr; ++ int *installlist = &install_func_context.installlist; ++ char **stage2_first_buffer = &install_func_context.stage2_first_buffer; ++ /* Was the last sector full? */ ++ static int last_length = SECTOR_SIZE; ++ ++ if (debug) ++ printf("[%d]", sector); ++ ++ if (offset != 0 || last_length != SECTOR_SIZE) ++ { ++ /* We found a non-sector-aligned data block. */ ++ errnum = ERR_UNALIGNED; ++ return; ++ } ++ ++ last_length = length; ++ ++ if (*((unsigned long *) (*installlist - 4)) ++ + *((unsigned short *) *installlist) != sector ++ || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4) ++ { ++ *installlist -= 8; ++ ++ if (*((unsigned long *) (*installlist - 8))) ++ errnum = ERR_WONT_FIT; ++ else ++ { ++ *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4); ++ *((unsigned long *) (*installlist - 4)) = sector; ++ } ++ } ++ ++ *((unsigned short *) *installlist) += 1; ++ *installaddr += 512; ++} ++ + static int + install_func (char *arg, int flags) + { +@@ -1747,8 +1986,12 @@ + char *stage1_buffer = (char *) RAW_ADDR (0x100000); + char *stage2_buffer = stage1_buffer + SECTOR_SIZE; + char *old_sect = stage2_buffer + SECTOR_SIZE; +- char *stage2_first_buffer = old_sect + SECTOR_SIZE; +- char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; ++ /* stage2_first_buffer used to be defined as: ++ * char *stage2_first_buffer = old_sect + SECTOR_SIZE; */ ++ char **stage2_first_buffer = &install_func_context.stage2_first_buffer; ++ /* and stage2_second_buffer was: ++ * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */ ++ char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE; + /* XXX: Probably SECTOR_SIZE is reasonable. */ + char *config_filename = stage2_second_buffer + SECTOR_SIZE; + char *dummy = config_filename + SECTOR_SIZE; +@@ -1757,10 +2000,11 @@ + int src_drive, src_partition, src_part_start; + int i; + struct geometry dest_geom, src_geom; +- int saved_sector; ++ int *saved_sector = &install_func_context.saved_sector; + int stage2_first_sector, stage2_second_sector; + char *ptr; +- int installaddr, installlist; ++ int *installaddr = &install_func_context.installaddr; ++ int *installlist = &install_func_context.installlist; + /* Point to the location of the name of a configuration file in Stage 2. */ + char *config_file_location; + /* If FILE is a Stage 1.5? */ +@@ -1769,67 +2013,13 @@ + int is_open = 0; + /* If LBA is forced? */ + int is_force_lba = 0; +- /* Was the last sector full? */ +- int last_length = SECTOR_SIZE; +- ++ ++ *stage2_first_buffer = old_sect + SECTOR_SIZE; + #ifdef GRUB_UTIL + /* If the Stage 2 is in a partition mounted by an OS, this will store + the filename under the OS. */ + char *stage2_os_file = 0; + #endif /* GRUB_UTIL */ +- +- auto void disk_read_savesect_func (int sector, int offset, int length); +- auto void disk_read_blocklist_func (int sector, int offset, int length); +- +- /* Save the first sector of Stage2 in STAGE2_SECT. */ +- auto void disk_read_savesect_func (int sector, int offset, int length) +- { +- if (debug) +- printf ("[%d]", sector); +- +- /* ReiserFS has files which sometimes contain data not aligned +- on sector boundaries. Returning an error is better than +- silently failing. */ +- if (offset != 0 || length != SECTOR_SIZE) +- errnum = ERR_UNALIGNED; +- +- saved_sector = sector; +- } +- +- /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and +- INSTALLSECT. */ +- auto void disk_read_blocklist_func (int sector, int offset, int length) +- { +- if (debug) +- printf("[%d]", sector); +- +- if (offset != 0 || last_length != SECTOR_SIZE) +- { +- /* We found a non-sector-aligned data block. */ +- errnum = ERR_UNALIGNED; +- return; +- } +- +- last_length = length; +- +- if (*((unsigned long *) (installlist - 4)) +- + *((unsigned short *) installlist) != sector +- || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4) +- { +- installlist -= 8; +- +- if (*((unsigned long *) (installlist - 8))) +- errnum = ERR_WONT_FIT; +- else +- { +- *((unsigned short *) (installlist + 2)) = (installaddr >> 4); +- *((unsigned long *) (installlist - 4)) = sector; +- } +- } +- +- *((unsigned short *) installlist) += 1; +- installaddr += 512; +- } + + /* First, check the GNU-style long option. */ + while (1) +@@ -1862,10 +2052,10 @@ + addr = skip_to (0, file); + + /* Get the installation address. */ +- if (! safe_parse_maxint (&addr, &installaddr)) ++ if (! safe_parse_maxint (&addr, installaddr)) + { + /* ADDR is not specified. */ +- installaddr = 0; ++ *installaddr = 0; + ptr = addr; + errnum = 0; + } +@@ -1961,17 +2151,17 @@ + = 0x9090; + + /* Read the first sector of Stage 2. */ +- disk_read_hook = disk_read_savesect_func; +- if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) ++ disk_read_hook = install_savesect_helper; ++ if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) + goto fail; + +- stage2_first_sector = saved_sector; ++ stage2_first_sector = *saved_sector; + + /* Read the second sector of Stage 2. */ + if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE) + goto fail; + +- stage2_second_sector = saved_sector; ++ stage2_second_sector = *saved_sector; + + /* Check for the version of Stage 2. */ + if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS)) +@@ -1987,27 +2177,27 @@ + + /* If INSTALLADDR is not specified explicitly in the command-line, + determine it by the Stage 2 id. */ +- if (! installaddr) ++ if (! *installaddr) + { + if (! is_stage1_5) + /* Stage 2. */ +- installaddr = 0x8000; ++ *installaddr = 0x8000; + else + /* Stage 1.5. */ +- installaddr = 0x2000; ++ *installaddr = 0x2000; + } + + *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR)) + = stage2_first_sector; + *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS)) +- = installaddr; ++ = *installaddr; + *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT)) +- = installaddr >> 4; ++ = *installaddr >> 4; + +- i = (int) stage2_first_buffer + SECTOR_SIZE - 4; ++ i = (int) *stage2_first_buffer + SECTOR_SIZE - 4; + while (*((unsigned long *) i)) + { +- if (i < (int) stage2_first_buffer ++ if (i < (int) *stage2_first_buffer + || (*((int *) (i - 4)) & 0x80000000) + || *((unsigned short *) i) >= 0xA00 + || *((short *) (i + 2)) == 0) +@@ -2021,13 +2211,13 @@ + i -= 8; + } + +- installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4; +- installaddr += SECTOR_SIZE; ++ *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4; ++ *installaddr += SECTOR_SIZE; + + /* Read the whole of Stage2 except for the first sector. */ + grub_seek (SECTOR_SIZE); + +- disk_read_hook = disk_read_blocklist_func; ++ disk_read_hook = install_blocklist_helper; + if (! grub_read (dummy, -1)) + goto fail; + +@@ -2110,7 +2300,7 @@ + /* Skip the first sector. */ + grub_seek (SECTOR_SIZE); + +- disk_read_hook = disk_read_savesect_func; ++ disk_read_hook = install_savesect_helper; + if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE) + goto fail; + +@@ -2180,7 +2370,7 @@ + else + #endif /* GRUB_UTIL */ + { +- if (! devwrite (saved_sector - part_start, 1, stage2_buffer)) ++ if (! devwrite (*saved_sector - part_start, 1, stage2_buffer)) + goto fail; + } + } +@@ -2202,7 +2392,7 @@ + goto fail; + } + +- if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) ++ if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) + { + fclose (fp); + errnum = ERR_WRITE; +@@ -2229,7 +2419,7 @@ + goto fail; + + if (! devwrite (stage2_first_sector - src_part_start, 1, +- stage2_first_buffer)) ++ *stage2_first_buffer)) + goto fail; + + if (! devwrite (stage2_second_sector - src_part_start, 1, +@@ -2815,8 +3005,8 @@ + { + int new_type; + unsigned long part = 0xFFFFFF; +- unsigned long start, len, offset, ext_offset; +- int entry, type; ++ unsigned long start, len, offset, ext_offset, gpt_offset; ++ int entry, type, gpt_count, gpt_size; + char mbr[512]; + + /* Get the drive and the partition. */ +@@ -2853,8 +3043,15 @@ + /* Look for the partition. */ + while (next_partition (current_drive, 0xFFFFFF, &part, &type, + &start, &len, &offset, &entry, +- &ext_offset, mbr)) ++ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr)) + { ++ /* The partition may not be a GPT partition. */ ++ if (gpt_offset != 0) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ + if (part == current_partition) + { + /* Found. */ +@@ -3830,15 +4027,15 @@ + { + char tmp[16]; + grub_sprintf (tmp, ",%d", (partition >> 16) & 0xFF); +- grub_strncat (device, tmp, 256); ++ grub_strncat (device, tmp, sizeof (device)); + } + if ((partition & 0x00FF00) != 0x00FF00) + { + char tmp[16]; + grub_sprintf (tmp, ",%c", 'a' + ((partition >> 8) & 0xFF)); +- grub_strncat (device, tmp, 256); ++ grub_strncat (device, tmp, sizeof (device)); + } +- grub_strncat (device, ")", 256); ++ grub_strncat (device, ")", sizeof (device)); + } + + int embed_stage1_5 (char *stage1_5, int drive, int partition) +@@ -4085,7 +4282,7 @@ + }; + + +-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) ++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) + /* terminal */ + static int + terminal_func (char *arg, int flags) +@@ -4244,17 +4441,21 @@ + end: + current_term = term_table + default_term; + current_term->flags = term_flags; +- ++ + if (lines) + max_lines = lines; + else +- /* 24 would be a good default value. */ +- max_lines = 24; +- ++ max_lines = current_term->max_lines; ++ + /* If the interface is currently the command-line, + restart it to repaint the screen. */ +- if (current_term != prev_term && (flags & BUILTIN_CMDLINE)) ++ if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){ ++ if (prev_term->shutdown) ++ prev_term->shutdown(); ++ if (current_term->startup) ++ current_term->startup(); + grub_longjmp (restart_cmdline_env, 0); ++ } + + return 0; + } +@@ -4264,7 +4465,7 @@ + "terminal", + terminal_func, + BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, +- "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]", ++ "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]", + "Select a terminal. When multiple terminals are specified, wait until" + " you push any key to continue. If both console and serial are specified," + " the terminal to which you input a key first will be selected. If no" +@@ -4276,7 +4477,7 @@ + " seconds. The option --lines specifies the maximum number of lines." + " The option --silent is used to suppress messages." + }; +-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ ++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ + + + #ifdef SUPPORT_SERIAL +@@ -4795,6 +4996,9 @@ + /* The table of builtin commands. Sorted in dictionary order. */ + struct builtin *builtin_table[] = + { ++#ifdef SUPPORT_GRAPHICS ++ &builtin_background, ++#endif + &builtin_blocklist, + &builtin_boot, + #ifdef SUPPORT_NETBOOT +@@ -4802,6 +5006,7 @@ + #endif /* SUPPORT_NETBOOT */ + &builtin_cat, + &builtin_chainloader, ++ &builtin_clear, + &builtin_cmp, + &builtin_color, + &builtin_configfile, +@@ -4821,6 +5026,9 @@ + &builtin_embed, + &builtin_fallback, + &builtin_find, ++#ifdef SUPPORT_GRAPHICS ++ &builtin_foreground, ++#endif + &builtin_fstest, + &builtin_geometry, + &builtin_halt, +@@ -4864,9 +5072,12 @@ + #endif /* SUPPORT_SERIAL */ + &builtin_setkey, + &builtin_setup, +-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) ++#ifdef SUPPORT_GRAPHICS ++ &builtin_splashimage, ++#endif /* SUPPORT_GRAPHICS */ ++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) + &builtin_terminal, +-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ ++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ + #ifdef SUPPORT_SERIAL + &builtin_terminfo, + #endif /* SUPPORT_SERIAL */ +diff -Nur grub-0.97/stage2/builtins.c.orig grub-0.97-patched/stage2/builtins.c.orig +--- grub-0.97/stage2/builtins.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/builtins.c.orig 2005-02-15 22:58:23.000000000 +0100 +@@ -0,0 +1,4884 @@ ++/* builtins.c - the GRUB builtin commands */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++/* Include stdio.h before shared.h, because we can't define ++ WITHOUT_LIBC_STUBS here. */ ++#ifdef GRUB_UTIL ++# include <stdio.h> ++#endif ++ ++#include <shared.h> ++#include <filesys.h> ++#include <term.h> ++ ++#ifdef SUPPORT_NETBOOT ++# define GRUB 1 ++# include <etherboot.h> ++#endif ++ ++#ifdef SUPPORT_SERIAL ++# include <serial.h> ++# include <terminfo.h> ++#endif ++ ++#ifdef GRUB_UTIL ++# include <device.h> ++#else /* ! GRUB_UTIL */ ++# include <apic.h> ++# include <smp-imps.h> ++#endif /* ! GRUB_UTIL */ ++ ++#ifdef USE_MD5_PASSWORDS ++# include <md5.h> ++#endif ++ ++/* The type of kernel loaded. */ ++kernel_t kernel_type; ++/* The boot device. */ ++static int bootdev; ++/* True when the debug mode is turned on, and false ++ when it is turned off. */ ++int debug = 0; ++/* The default entry. */ ++int default_entry = 0; ++/* The fallback entry. */ ++int fallback_entryno; ++int fallback_entries[MAX_FALLBACK_ENTRIES]; ++/* The number of current entry. */ ++int current_entryno; ++/* The address for Multiboot command-line buffer. */ ++static char *mb_cmdline; ++/* The password. */ ++char *password; ++/* The password type. */ ++password_t password_type; ++/* The flag for indicating that the user is authoritative. */ ++int auth = 0; ++/* The timeout. */ ++int grub_timeout = -1; ++/* Whether to show the menu or not. */ ++int show_menu = 1; ++/* The BIOS drive map. */ ++static unsigned short bios_drive_map[DRIVE_MAP_SIZE + 1]; ++ ++/* Prototypes for allowing straightfoward calling of builtins functions ++ inside other functions. */ ++static int configfile_func (char *arg, int flags); ++ ++/* Initialize the data for builtins. */ ++void ++init_builtins (void) ++{ ++ kernel_type = KERNEL_TYPE_NONE; ++ /* BSD and chainloading evil hacks! */ ++ bootdev = set_bootdev (0); ++ mb_cmdline = (char *) MB_CMDLINE_BUF; ++} ++ ++/* Initialize the data for the configuration file. */ ++void ++init_config (void) ++{ ++ default_entry = 0; ++ password = 0; ++ fallback_entryno = -1; ++ fallback_entries[0] = -1; ++ grub_timeout = -1; ++} ++ ++/* Check a password for correctness. Returns 0 if password was ++ correct, and a value != 0 for error, similarly to strcmp. */ ++int ++check_password (char *entered, char* expected, password_t type) ++{ ++ switch (type) ++ { ++ case PASSWORD_PLAIN: ++ return strcmp (entered, expected); ++ ++#ifdef USE_MD5_PASSWORDS ++ case PASSWORD_MD5: ++ return check_md5_password (entered, expected); ++#endif ++ default: ++ /* unsupported password type: be secure */ ++ return 1; ++ } ++} ++ ++/* Print which sector is read when loading a file. */ ++static void ++disk_read_print_func (int sector, int offset, int length) ++{ ++ grub_printf ("[%d,%d,%d]", sector, offset, length); ++} ++ ++ ++/* blocklist */ ++static int ++blocklist_func (char *arg, int flags) ++{ ++ char *dummy = (char *) RAW_ADDR (0x100000); ++ int start_sector; ++ int num_sectors = 0; ++ int num_entries = 0; ++ int last_length = 0; ++ ++ auto void disk_read_blocklist_func (int sector, int offset, int length); ++ ++ /* Collect contiguous blocks into one entry as many as possible, ++ and print the blocklist notation on the screen. */ ++ auto void disk_read_blocklist_func (int sector, int offset, int length) ++ { ++ if (num_sectors > 0) ++ { ++ if (start_sector + num_sectors == sector ++ && offset == 0 && last_length == SECTOR_SIZE) ++ { ++ num_sectors++; ++ last_length = length; ++ return; ++ } ++ else ++ { ++ if (last_length == SECTOR_SIZE) ++ grub_printf ("%s%d+%d", num_entries ? "," : "", ++ start_sector - part_start, num_sectors); ++ else if (num_sectors > 1) ++ grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "", ++ start_sector - part_start, num_sectors-1, ++ start_sector + num_sectors-1 - part_start, ++ last_length); ++ else ++ grub_printf ("%s%d[0-%d]", num_entries ? "," : "", ++ start_sector - part_start, last_length); ++ num_entries++; ++ num_sectors = 0; ++ } ++ } ++ ++ if (offset > 0) ++ { ++ grub_printf("%s%d[%d-%d]", num_entries ? "," : "", ++ sector-part_start, offset, offset+length); ++ num_entries++; ++ } ++ else ++ { ++ start_sector = sector; ++ num_sectors = 1; ++ last_length = length; ++ } ++ } ++ ++ /* Open the file. */ ++ if (! grub_open (arg)) ++ return 1; ++ ++ /* Print the device name. */ ++ grub_printf ("(%cd%d", ++ (current_drive & 0x80) ? 'h' : 'f', ++ current_drive & ~0x80); ++ ++ if ((current_partition & 0xFF0000) != 0xFF0000) ++ grub_printf (",%d", (current_partition >> 16) & 0xFF); ++ ++ if ((current_partition & 0x00FF00) != 0x00FF00) ++ grub_printf (",%c", 'a' + ((current_partition >> 8) & 0xFF)); ++ ++ grub_printf (")"); ++ ++ /* Read in the whole file to DUMMY. */ ++ disk_read_hook = disk_read_blocklist_func; ++ if (! grub_read (dummy, -1)) ++ goto fail; ++ ++ /* The last entry may not be printed yet. Don't check if it is a ++ * full sector, since it doesn't matter if we read too much. */ ++ if (num_sectors > 0) ++ grub_printf ("%s%d+%d", num_entries ? "," : "", ++ start_sector - part_start, num_sectors); ++ ++ grub_printf ("\n"); ++ ++ fail: ++ disk_read_hook = 0; ++ grub_close (); ++ return errnum; ++} ++ ++static struct builtin builtin_blocklist = ++{ ++ "blocklist", ++ blocklist_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "blocklist FILE", ++ "Print the blocklist notation of the file FILE." ++}; ++ ++/* boot */ ++static int ++boot_func (char *arg, int flags) ++{ ++ /* Clear the int15 handler if we can boot the kernel successfully. ++ This assumes that the boot code never fails only if KERNEL_TYPE is ++ not KERNEL_TYPE_NONE. Is this assumption is bad? */ ++ if (kernel_type != KERNEL_TYPE_NONE) ++ unset_int15_handler (); ++ ++#ifdef SUPPORT_NETBOOT ++ /* Shut down the networking. */ ++ cleanup_net (); ++#endif ++ ++ switch (kernel_type) ++ { ++ case KERNEL_TYPE_FREEBSD: ++ case KERNEL_TYPE_NETBSD: ++ /* *BSD */ ++ bsd_boot (kernel_type, bootdev, (char *) mbi.cmdline); ++ break; ++ ++ case KERNEL_TYPE_LINUX: ++ /* Linux */ ++ linux_boot (); ++ break; ++ ++ case KERNEL_TYPE_BIG_LINUX: ++ /* Big Linux */ ++ big_linux_boot (); ++ break; ++ ++ case KERNEL_TYPE_CHAINLOADER: ++ /* Chainloader */ ++ ++ /* Check if we should set the int13 handler. */ ++ if (bios_drive_map[0] != 0) ++ { ++ int i; ++ ++ /* Search for SAVED_DRIVE. */ ++ for (i = 0; i < DRIVE_MAP_SIZE; i++) ++ { ++ if (! bios_drive_map[i]) ++ break; ++ else if ((bios_drive_map[i] & 0xFF) == saved_drive) ++ { ++ /* Exchage SAVED_DRIVE with the mapped drive. */ ++ saved_drive = (bios_drive_map[i] >> 8) & 0xFF; ++ break; ++ } ++ } ++ ++ /* Set the handler. This is somewhat dangerous. */ ++ set_int13_handler (bios_drive_map); ++ } ++ ++ gateA20 (0); ++ boot_drive = saved_drive; ++ chain_stage1 (0, BOOTSEC_LOCATION, boot_part_addr); ++ break; ++ ++ case KERNEL_TYPE_MULTIBOOT: ++ /* Multiboot */ ++ multi_boot ((int) entry_addr, (int) &mbi); ++ break; ++ ++ default: ++ errnum = ERR_BOOT_COMMAND; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_boot = ++{ ++ "boot", ++ boot_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "boot", ++ "Boot the OS/chain-loader which has been loaded." ++}; ++ ++ ++#ifdef SUPPORT_NETBOOT ++/* bootp */ ++static int ++bootp_func (char *arg, int flags) ++{ ++ int with_configfile = 0; ++ ++ if (grub_memcmp (arg, "--with-configfile", sizeof ("--with-configfile") - 1) ++ == 0) ++ { ++ with_configfile = 1; ++ arg = skip_to (0, arg); ++ } ++ ++ if (! bootp ()) ++ { ++ if (errnum == ERR_NONE) ++ errnum = ERR_DEV_VALUES; ++ ++ return 1; ++ } ++ ++ /* Notify the configuration. */ ++ print_network_configuration (); ++ ++ /* XXX: this can cause an endless loop, but there is no easy way to ++ detect such a loop unfortunately. */ ++ if (with_configfile) ++ configfile_func (config_file, flags); ++ ++ return 0; ++} ++ ++static struct builtin builtin_bootp = ++{ ++ "bootp", ++ bootp_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "bootp [--with-configfile]", ++ "Initialize a network device via BOOTP. If the option `--with-configfile'" ++ " is given, try to load a configuration file specified by the 150 vendor" ++ " tag." ++}; ++#endif /* SUPPORT_NETBOOT */ ++ ++ ++/* cat */ ++static int ++cat_func (char *arg, int flags) ++{ ++ char c; ++ ++ if (! grub_open (arg)) ++ return 1; ++ ++ while (grub_read (&c, 1)) ++ { ++ /* Because running "cat" with a binary file can confuse the terminal, ++ print only some characters as they are. */ ++ if (grub_isspace (c) || (c >= ' ' && c <= '~')) ++ grub_putchar (c); ++ else ++ grub_putchar ('?'); ++ } ++ ++ grub_close (); ++ return 0; ++} ++ ++static struct builtin builtin_cat = ++{ ++ "cat", ++ cat_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "cat FILE", ++ "Print the contents of the file FILE." ++}; ++ ++ ++/* chainloader */ ++static int ++chainloader_func (char *arg, int flags) ++{ ++ int force = 0; ++ char *file = arg; ++ ++ /* If the option `--force' is specified? */ ++ if (substring ("--force", arg) <= 0) ++ { ++ force = 1; ++ file = skip_to (0, arg); ++ } ++ ++ /* Open the file. */ ++ if (! grub_open (file)) ++ { ++ kernel_type = KERNEL_TYPE_NONE; ++ return 1; ++ } ++ ++ /* Read the first block. */ ++ if (grub_read ((char *) BOOTSEC_LOCATION, SECTOR_SIZE) != SECTOR_SIZE) ++ { ++ grub_close (); ++ kernel_type = KERNEL_TYPE_NONE; ++ ++ /* This below happens, if a file whose size is less than 512 bytes ++ is loaded. */ ++ if (errnum == ERR_NONE) ++ errnum = ERR_EXEC_FORMAT; ++ ++ return 1; ++ } ++ ++ /* If not loading it forcibly, check for the signature. */ ++ if (! force ++ && (*((unsigned short *) (BOOTSEC_LOCATION + BOOTSEC_SIG_OFFSET)) ++ != BOOTSEC_SIGNATURE)) ++ { ++ grub_close (); ++ errnum = ERR_EXEC_FORMAT; ++ kernel_type = KERNEL_TYPE_NONE; ++ return 1; ++ } ++ ++ grub_close (); ++ kernel_type = KERNEL_TYPE_CHAINLOADER; ++ ++ /* XXX: Windows evil hack. For now, only the first five letters are ++ checked. */ ++ if (IS_PC_SLICE_TYPE_FAT (current_slice) ++ && ! grub_memcmp ((char *) BOOTSEC_LOCATION + BOOTSEC_BPB_SYSTEM_ID, ++ "MSWIN", 5)) ++ *((unsigned long *) (BOOTSEC_LOCATION + BOOTSEC_BPB_HIDDEN_SECTORS)) ++ = part_start; ++ ++ errnum = ERR_NONE; ++ ++ return 0; ++} ++ ++static struct builtin builtin_chainloader = ++{ ++ "chainloader", ++ chainloader_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "chainloader [--force] FILE", ++ "Load the chain-loader FILE. If --force is specified, then load it" ++ " forcibly, whether the boot loader signature is present or not." ++}; ++ ++ ++/* This function could be used to debug new filesystem code. Put a file ++ in the new filesystem and the same file in a well-tested filesystem. ++ Then, run "cmp" with the files. If no output is obtained, probably ++ the code is good, otherwise investigate what's wrong... */ ++/* cmp FILE1 FILE2 */ ++static int ++cmp_func (char *arg, int flags) ++{ ++ /* The filenames. */ ++ char *file1, *file2; ++ /* The addresses. */ ++ char *addr1, *addr2; ++ int i; ++ /* The size of the file. */ ++ int size; ++ ++ /* Get the filenames from ARG. */ ++ file1 = arg; ++ file2 = skip_to (0, arg); ++ if (! *file1 || ! *file2) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* Terminate the filenames for convenience. */ ++ nul_terminate (file1); ++ nul_terminate (file2); ++ ++ /* Read the whole data from FILE1. */ ++ addr1 = (char *) RAW_ADDR (0x100000); ++ if (! grub_open (file1)) ++ return 1; ++ ++ /* Get the size. */ ++ size = filemax; ++ if (grub_read (addr1, -1) != size) ++ { ++ grub_close (); ++ return 1; ++ } ++ ++ grub_close (); ++ ++ /* Read the whole data from FILE2. */ ++ addr2 = addr1 + size; ++ if (! grub_open (file2)) ++ return 1; ++ ++ /* Check if the size of FILE2 is equal to the one of FILE2. */ ++ if (size != filemax) ++ { ++ grub_printf ("Differ in size: 0x%x [%s], 0x%x [%s]\n", ++ size, file1, filemax, file2); ++ grub_close (); ++ return 0; ++ } ++ ++ if (! grub_read (addr2, -1)) ++ { ++ grub_close (); ++ return 1; ++ } ++ ++ grub_close (); ++ ++ /* Now compare ADDR1 with ADDR2. */ ++ for (i = 0; i < size; i++) ++ { ++ if (addr1[i] != addr2[i]) ++ grub_printf ("Differ at the offset %d: 0x%x [%s], 0x%x [%s]\n", ++ i, (unsigned) addr1[i], file1, ++ (unsigned) addr2[i], file2); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_cmp = ++{ ++ "cmp", ++ cmp_func, ++ BUILTIN_CMDLINE, ++ "cmp FILE1 FILE2", ++ "Compare the file FILE1 with the FILE2 and inform the different values" ++ " if any." ++}; ++ ++ ++/* color */ ++/* Set new colors used for the menu interface. Support two methods to ++ specify a color name: a direct integer representation and a symbolic ++ color name. An example of the latter is "blink-light-gray/blue". */ ++static int ++color_func (char *arg, int flags) ++{ ++ char *normal; ++ char *highlight; ++ int new_normal_color; ++ int new_highlight_color; ++ static char *color_list[16] = ++ { ++ "black", ++ "blue", ++ "green", ++ "cyan", ++ "red", ++ "magenta", ++ "brown", ++ "light-gray", ++ "dark-gray", ++ "light-blue", ++ "light-green", ++ "light-cyan", ++ "light-red", ++ "light-magenta", ++ "yellow", ++ "white" ++ }; ++ ++ auto int color_number (char *str); ++ ++ /* Convert the color name STR into the magical number. */ ++ auto int color_number (char *str) ++ { ++ char *ptr; ++ int i; ++ int color = 0; ++ ++ /* Find the separator. */ ++ for (ptr = str; *ptr && *ptr != '/'; ptr++) ++ ; ++ ++ /* If not found, return -1. */ ++ if (! *ptr) ++ return -1; ++ ++ /* Terminate the string STR. */ ++ *ptr++ = 0; ++ ++ /* If STR contains the prefix "blink-", then set the `blink' bit ++ in COLOR. */ ++ if (substring ("blink-", str) <= 0) ++ { ++ color = 0x80; ++ str += 6; ++ } ++ ++ /* Search for the color name. */ ++ for (i = 0; i < 16; i++) ++ if (grub_strcmp (color_list[i], str) == 0) ++ { ++ color |= i; ++ break; ++ } ++ ++ if (i == 16) ++ return -1; ++ ++ str = ptr; ++ nul_terminate (str); ++ ++ /* Search for the color name. */ ++ for (i = 0; i < 8; i++) ++ if (grub_strcmp (color_list[i], str) == 0) ++ { ++ color |= i << 4; ++ break; ++ } ++ ++ if (i == 8) ++ return -1; ++ ++ return color; ++ } ++ ++ normal = arg; ++ highlight = skip_to (0, arg); ++ ++ new_normal_color = color_number (normal); ++ if (new_normal_color < 0 && ! safe_parse_maxint (&normal, &new_normal_color)) ++ return 1; ++ ++ /* The second argument is optional, so set highlight_color ++ to inverted NORMAL_COLOR. */ ++ if (! *highlight) ++ new_highlight_color = ((new_normal_color >> 4) ++ | ((new_normal_color & 0xf) << 4)); ++ else ++ { ++ new_highlight_color = color_number (highlight); ++ if (new_highlight_color < 0 ++ && ! safe_parse_maxint (&highlight, &new_highlight_color)) ++ return 1; ++ } ++ ++ if (current_term->setcolor) ++ current_term->setcolor (new_normal_color, new_highlight_color); ++ ++ return 0; ++} ++ ++static struct builtin builtin_color = ++{ ++ "color", ++ color_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "color NORMAL [HIGHLIGHT]", ++ "Change the menu colors. The color NORMAL is used for most" ++ " lines in the menu, and the color HIGHLIGHT is used to highlight the" ++ " line where the cursor points. If you omit HIGHLIGHT, then the" ++ " inverted color of NORMAL is used for the highlighted line." ++ " The format of a color is "FG/BG". FG and BG are symbolic color names." ++ " A symbolic color name must be one of these: black, blue, green," ++ " cyan, red, magenta, brown, light-gray, dark-gray, light-blue," ++ " light-green, light-cyan, light-red, light-magenta, yellow and white." ++ " But only the first eight names can be used for BG. You can prefix" ++ " "blink-" to FG if you want a blinking foreground color." ++}; ++ ++ ++/* configfile */ ++static int ++configfile_func (char *arg, int flags) ++{ ++ char *new_config = config_file; ++ ++ /* Check if the file ARG is present. */ ++ if (! grub_open (arg)) ++ return 1; ++ ++ grub_close (); ++ ++ /* Copy ARG to CONFIG_FILE. */ ++ while ((*new_config++ = *arg++) != 0) ++ ; ++ ++#ifdef GRUB_UTIL ++ /* Force to load the configuration file. */ ++ use_config_file = 1; ++#endif ++ ++ /* Make sure that the user will not be authoritative. */ ++ auth = 0; ++ ++ /* Restart cmain. */ ++ grub_longjmp (restart_env, 0); ++ ++ /* Never reach here. */ ++ return 0; ++} ++ ++static struct builtin builtin_configfile = ++{ ++ "configfile", ++ configfile_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "configfile FILE", ++ "Load FILE as the configuration file." ++}; ++ ++ ++/* debug */ ++static int ++debug_func (char *arg, int flags) ++{ ++ if (debug) ++ { ++ debug = 0; ++ grub_printf (" Debug mode is turned off\n"); ++ } ++ else ++ { ++ debug = 1; ++ grub_printf (" Debug mode is turned on\n"); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_debug = ++{ ++ "debug", ++ debug_func, ++ BUILTIN_CMDLINE, ++ "debug", ++ "Turn on/off the debug mode." ++}; ++ ++ ++/* default */ ++static int ++default_func (char *arg, int flags) ++{ ++#ifndef SUPPORT_DISKLESS ++ if (grub_strcmp (arg, "saved") == 0) ++ { ++ default_entry = saved_entryno; ++ return 0; ++ } ++#endif /* SUPPORT_DISKLESS */ ++ ++ if (! safe_parse_maxint (&arg, &default_entry)) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_default = ++{ ++ "default", ++ default_func, ++ BUILTIN_MENU, ++#if 0 ++ "default [NUM | `saved']", ++ "Set the default entry to entry number NUM (if not specified, it is" ++ " 0, the first entry) or the entry number saved by savedefault." ++#endif ++}; ++ ++ ++#ifdef GRUB_UTIL ++/* device */ ++static int ++device_func (char *arg, int flags) ++{ ++ char *drive = arg; ++ char *device; ++ ++ /* Get the drive number from DRIVE. */ ++ if (! set_device (drive)) ++ return 1; ++ ++ /* Get the device argument. */ ++ device = skip_to (0, drive); ++ ++ /* Terminate DEVICE. */ ++ nul_terminate (device); ++ ++ if (! *device || ! check_device (device)) ++ { ++ errnum = ERR_FILE_NOT_FOUND; ++ return 1; ++ } ++ ++ assign_device_name (current_drive, device); ++ ++ return 0; ++} ++ ++static struct builtin builtin_device = ++{ ++ "device", ++ device_func, ++ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "device DRIVE DEVICE", ++ "Specify DEVICE as the actual drive for a BIOS drive DRIVE. This command" ++ " can be used only in the grub shell." ++}; ++#endif /* GRUB_UTIL */ ++ ++ ++#ifdef SUPPORT_NETBOOT ++/* dhcp */ ++static int ++dhcp_func (char *arg, int flags) ++{ ++ /* For now, this is an alias for bootp. */ ++ return bootp_func (arg, flags); ++} ++ ++static struct builtin builtin_dhcp = ++{ ++ "dhcp", ++ dhcp_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "dhcp", ++ "Initialize a network device via DHCP." ++}; ++#endif /* SUPPORT_NETBOOT */ ++ ++ ++/* displayapm */ ++static int ++displayapm_func (char *arg, int flags) ++{ ++ if (mbi.flags & MB_INFO_APM_TABLE) ++ { ++ grub_printf ("APM BIOS information:\n" ++ " Version: 0x%x\n" ++ " 32-bit CS: 0x%x\n" ++ " Offset: 0x%x\n" ++ " 16-bit CS: 0x%x\n" ++ " 16-bit DS: 0x%x\n" ++ " 32-bit CS length: 0x%x\n" ++ " 16-bit CS length: 0x%x\n" ++ " 16-bit DS length: 0x%x\n", ++ (unsigned) apm_bios_info.version, ++ (unsigned) apm_bios_info.cseg, ++ apm_bios_info.offset, ++ (unsigned) apm_bios_info.cseg_16, ++ (unsigned) apm_bios_info.dseg_16, ++ (unsigned) apm_bios_info.cseg_len, ++ (unsigned) apm_bios_info.cseg_16_len, ++ (unsigned) apm_bios_info.dseg_16_len); ++ } ++ else ++ { ++ grub_printf ("No APM BIOS found or probe failed\n"); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_displayapm = ++{ ++ "displayapm", ++ displayapm_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "displayapm", ++ "Display APM BIOS information." ++}; ++ ++ ++/* displaymem */ ++static int ++displaymem_func (char *arg, int flags) ++{ ++ if (get_eisamemsize () != -1) ++ grub_printf (" EISA Memory BIOS Interface is present\n"); ++ if (get_mmap_entry ((void *) SCRATCHADDR, 0) != 0 ++ || *((int *) SCRATCHADDR) != 0) ++ grub_printf (" Address Map BIOS Interface is present\n"); ++ ++ grub_printf (" Lower memory: %uK, " ++ "Upper memory (to first chipset hole): %uK\n", ++ mbi.mem_lower, mbi.mem_upper); ++ ++ if (mbi.flags & MB_INFO_MEM_MAP) ++ { ++ struct AddrRangeDesc *map = (struct AddrRangeDesc *) mbi.mmap_addr; ++ int end_addr = mbi.mmap_addr + mbi.mmap_length; ++ ++ grub_printf (" [Address Range Descriptor entries " ++ "immediately follow (values are 64-bit)]\n"); ++ while (end_addr > (int) map) ++ { ++ char *str; ++ ++ if (map->Type == MB_ARD_MEMORY) ++ str = "Usable RAM"; ++ else ++ str = "Reserved"; ++ grub_printf (" %s: Base Address: 0x%x X 4GB + 0x%x,\n" ++ " Length: 0x%x X 4GB + 0x%x bytes\n", ++ str, ++ (unsigned long) (map->BaseAddr >> 32), ++ (unsigned long) (map->BaseAddr & 0xFFFFFFFF), ++ (unsigned long) (map->Length >> 32), ++ (unsigned long) (map->Length & 0xFFFFFFFF)); ++ ++ map = ((struct AddrRangeDesc *) (((int) map) + 4 + map->size)); ++ } ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_displaymem = ++{ ++ "displaymem", ++ displaymem_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "displaymem", ++ "Display what GRUB thinks the system address space map of the" ++ " machine is, including all regions of physical RAM installed." ++}; ++ ++ ++/* dump FROM TO */ ++#ifdef GRUB_UTIL ++static int ++dump_func (char *arg, int flags) ++{ ++ char *from, *to; ++ FILE *fp; ++ char c; ++ ++ from = arg; ++ to = skip_to (0, arg); ++ if (! *from || ! *to) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ nul_terminate (from); ++ nul_terminate (to); ++ ++ if (! grub_open (from)) ++ return 1; ++ ++ fp = fopen (to, "w"); ++ if (! fp) ++ { ++ errnum = ERR_WRITE; ++ return 1; ++ } ++ ++ while (grub_read (&c, 1)) ++ if (fputc (c, fp) == EOF) ++ { ++ errnum = ERR_WRITE; ++ fclose (fp); ++ return 1; ++ } ++ ++ if (fclose (fp) == EOF) ++ { ++ errnum = ERR_WRITE; ++ return 1; ++ } ++ ++ grub_close (); ++ return 0; ++} ++ ++static struct builtin builtin_dump = ++ { ++ "dump", ++ dump_func, ++ BUILTIN_CMDLINE, ++ "dump FROM TO", ++ "Dump the contents of the file FROM to the file TO. FROM must be" ++ " a GRUB file and TO must be an OS file." ++ }; ++#endif /* GRUB_UTIL */ ++ ++ ++static char embed_info[32]; ++/* embed */ ++/* Embed a Stage 1.5 in the first cylinder after MBR or in the ++ bootloader block in a FFS. */ ++static int ++embed_func (char *arg, int flags) ++{ ++ char *stage1_5; ++ char *device; ++ char *stage1_5_buffer = (char *) RAW_ADDR (0x100000); ++ int len, size; ++ int sector; ++ ++ stage1_5 = arg; ++ device = skip_to (0, stage1_5); ++ ++ /* Open a Stage 1.5. */ ++ if (! grub_open (stage1_5)) ++ return 1; ++ ++ /* Read the whole of the Stage 1.5. */ ++ len = grub_read (stage1_5_buffer, -1); ++ grub_close (); ++ ++ if (errnum) ++ return 1; ++ ++ size = (len + SECTOR_SIZE - 1) / SECTOR_SIZE; ++ ++ /* Get the device where the Stage 1.5 will be embedded. */ ++ set_device (device); ++ if (errnum) ++ return 1; ++ ++ if (current_partition == 0xFFFFFF) ++ { ++ /* Embed it after the MBR. */ ++ ++ char mbr[SECTOR_SIZE]; ++ char ezbios_check[2*SECTOR_SIZE]; ++ int i; ++ ++ /* Open the partition. */ ++ if (! open_partition ()) ++ return 1; ++ ++ /* No floppy has MBR. */ ++ if (! (current_drive & 0x80)) ++ { ++ errnum = ERR_DEV_VALUES; ++ return 1; ++ } ++ ++ /* Read the MBR of CURRENT_DRIVE. */ ++ if (! rawread (current_drive, PC_MBR_SECTOR, 0, SECTOR_SIZE, mbr)) ++ return 1; ++ ++ /* Sanity check. */ ++ if (! PC_MBR_CHECK_SIG (mbr)) ++ { ++ errnum = ERR_BAD_PART_TABLE; ++ return 1; ++ } ++ ++ /* Check if the disk can store the Stage 1.5. */ ++ for (i = 0; i < 4; i++) ++ if (PC_SLICE_TYPE (mbr, i) && PC_SLICE_START (mbr, i) - 1 < size) ++ { ++ errnum = ERR_NO_DISK_SPACE; ++ return 1; ++ } ++ ++ /* Check for EZ-BIOS signature. It should be in the third ++ * sector, but due to remapping it can appear in the second, so ++ * load and check both. ++ */ ++ if (! rawread (current_drive, 1, 0, 2 * SECTOR_SIZE, ezbios_check)) ++ return 1; ++ ++ if (! memcmp (ezbios_check + 3, "AERMH", 5) ++ || ! memcmp (ezbios_check + 512 + 3, "AERMH", 5)) ++ { ++ /* The space after the MBR is used by EZ-BIOS which we must ++ * not overwrite. ++ */ ++ errnum = ERR_NO_DISK_SPACE; ++ return 1; ++ } ++ ++ sector = 1; ++ } ++ else ++ { ++ /* Embed it in the bootloader block in the filesystem. */ ++ int start_sector; ++ ++ /* Open the partition. */ ++ if (! open_device ()) ++ return 1; ++ ++ /* Check if the current slice supports embedding. */ ++ if (fsys_table[fsys_type].embed_func == 0 ++ || ! fsys_table[fsys_type].embed_func (&start_sector, size)) ++ { ++ errnum = ERR_DEV_VALUES; ++ return 1; ++ } ++ ++ sector = part_start + start_sector; ++ } ++ ++ /* Clear the cache. */ ++ buf_track = -1; ++ ++ /* Now perform the embedding. */ ++ if (! devwrite (sector - part_start, size, stage1_5_buffer)) ++ return 1; ++ ++ grub_printf (" %d sectors are embedded.\n", size); ++ grub_sprintf (embed_info, "%d+%d", sector - part_start, size); ++ return 0; ++} ++ ++static struct builtin builtin_embed = ++{ ++ "embed", ++ embed_func, ++ BUILTIN_CMDLINE, ++ "embed STAGE1_5 DEVICE", ++ "Embed the Stage 1.5 STAGE1_5 in the sectors after MBR if DEVICE" ++ " is a drive, or in the "bootloader" area if DEVICE is a FFS partition." ++ " Print the number of sectors which STAGE1_5 occupies if successful." ++}; ++ ++ ++/* fallback */ ++static int ++fallback_func (char *arg, int flags) ++{ ++ int i = 0; ++ ++ while (*arg) ++ { ++ int entry; ++ int j; ++ ++ if (! safe_parse_maxint (&arg, &entry)) ++ return 1; ++ ++ /* Remove duplications to prevent infinite looping. */ ++ for (j = 0; j < i; j++) ++ if (entry == fallback_entries[j]) ++ break; ++ if (j != i) ++ continue; ++ ++ fallback_entries[i++] = entry; ++ if (i == MAX_FALLBACK_ENTRIES) ++ break; ++ ++ arg = skip_to (0, arg); ++ } ++ ++ if (i < MAX_FALLBACK_ENTRIES) ++ fallback_entries[i] = -1; ++ ++ fallback_entryno = (i == 0) ? -1 : 0; ++ ++ return 0; ++} ++ ++static struct builtin builtin_fallback = ++{ ++ "fallback", ++ fallback_func, ++ BUILTIN_MENU, ++#if 0 ++ "fallback NUM...", ++ "Go into unattended boot mode: if the default boot entry has any" ++ " errors, instead of waiting for the user to do anything, it" ++ " immediately starts over using the NUM entry (same numbering as the" ++ " `default' command). This obviously won't help if the machine" ++ " was rebooted by a kernel that GRUB loaded." ++#endif ++}; ++ ++ ++/* find */ ++/* Search for the filename ARG in all of partitions. */ ++static int ++find_func (char *arg, int flags) ++{ ++ char *filename = arg; ++ unsigned long drive; ++ unsigned long tmp_drive = saved_drive; ++ unsigned long tmp_partition = saved_partition; ++ int got_file = 0; ++ ++ /* Floppies. */ ++ for (drive = 0; drive < 8; drive++) ++ { ++ current_drive = drive; ++ current_partition = 0xFFFFFF; ++ ++ if (open_device ()) ++ { ++ saved_drive = current_drive; ++ saved_partition = current_partition; ++ if (grub_open (filename)) ++ { ++ grub_close (); ++ grub_printf (" (fd%d)\n", drive); ++ got_file = 1; ++ } ++ } ++ ++ errnum = ERR_NONE; ++ } ++ ++ /* Hard disks. */ ++ for (drive = 0x80; drive < 0x88; drive++) ++ { ++ unsigned long part = 0xFFFFFF; ++ unsigned long start, len, offset, ext_offset; ++ int type, entry; ++ char buf[SECTOR_SIZE]; ++ ++ current_drive = drive; ++ while (next_partition (drive, 0xFFFFFF, &part, &type, ++ &start, &len, &offset, &entry, ++ &ext_offset, buf)) ++ { ++ if (type != PC_SLICE_TYPE_NONE ++ && ! IS_PC_SLICE_TYPE_BSD (type) ++ && ! IS_PC_SLICE_TYPE_EXTENDED (type)) ++ { ++ current_partition = part; ++ if (open_device ()) ++ { ++ saved_drive = current_drive; ++ saved_partition = current_partition; ++ if (grub_open (filename)) ++ { ++ int bsd_part = (part >> 8) & 0xFF; ++ int pc_slice = part >> 16; ++ ++ grub_close (); ++ ++ if (bsd_part == 0xFF) ++ grub_printf (" (hd%d,%d)\n", ++ drive - 0x80, pc_slice); ++ else ++ grub_printf (" (hd%d,%d,%c)\n", ++ drive - 0x80, pc_slice, bsd_part + 'a'); ++ ++ got_file = 1; ++ } ++ } ++ } ++ ++ /* We want to ignore any error here. */ ++ errnum = ERR_NONE; ++ } ++ ++ /* next_partition always sets ERRNUM in the last call, so clear ++ it. */ ++ errnum = ERR_NONE; ++ } ++ ++ saved_drive = tmp_drive; ++ saved_partition = tmp_partition; ++ ++ if (got_file) ++ { ++ errnum = ERR_NONE; ++ return 0; ++ } ++ ++ errnum = ERR_FILE_NOT_FOUND; ++ return 1; ++} ++ ++static struct builtin builtin_find = ++{ ++ "find", ++ find_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "find FILENAME", ++ "Search for the filename FILENAME in all of partitions and print the list of" ++ " the devices which contain the file." ++}; ++ ++ ++/* fstest */ ++static int ++fstest_func (char *arg, int flags) ++{ ++ if (disk_read_hook) ++ { ++ disk_read_hook = NULL; ++ printf (" Filesystem tracing is now off\n"); ++ } ++ else ++ { ++ disk_read_hook = disk_read_print_func; ++ printf (" Filesystem tracing is now on\n"); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_fstest = ++{ ++ "fstest", ++ fstest_func, ++ BUILTIN_CMDLINE, ++ "fstest", ++ "Toggle filesystem test mode." ++}; ++ ++ ++/* geometry */ ++static int ++geometry_func (char *arg, int flags) ++{ ++ struct geometry geom; ++ char *msg; ++ char *device = arg; ++#ifdef GRUB_UTIL ++ char *ptr; ++#endif ++ ++ /* Get the device number. */ ++ set_device (device); ++ if (errnum) ++ return 1; ++ ++ /* Check for the geometry. */ ++ if (get_diskinfo (current_drive, &geom)) ++ { ++ errnum = ERR_NO_DISK; ++ return 1; ++ } ++ ++ /* Attempt to read the first sector, because some BIOSes turns out not ++ to support LBA even though they set the bit 0 in the support ++ bitmap, only after reading something actually. */ ++ if (biosdisk (BIOSDISK_READ, current_drive, &geom, 0, 1, SCRATCHSEG)) ++ { ++ errnum = ERR_READ; ++ return 1; ++ } ++ ++#ifdef GRUB_UTIL ++ ptr = skip_to (0, device); ++ if (*ptr) ++ { ++ char *cylinder, *head, *sector, *total_sector; ++ int num_cylinder, num_head, num_sector, num_total_sector; ++ ++ cylinder = ptr; ++ head = skip_to (0, cylinder); ++ sector = skip_to (0, head); ++ total_sector = skip_to (0, sector); ++ if (! safe_parse_maxint (&cylinder, &num_cylinder) ++ || ! safe_parse_maxint (&head, &num_head) ++ || ! safe_parse_maxint (§or, &num_sector)) ++ return 1; ++ ++ disks[current_drive].cylinders = num_cylinder; ++ disks[current_drive].heads = num_head; ++ disks[current_drive].sectors = num_sector; ++ ++ if (safe_parse_maxint (&total_sector, &num_total_sector)) ++ disks[current_drive].total_sectors = num_total_sector; ++ else ++ disks[current_drive].total_sectors ++ = num_cylinder * num_head * num_sector; ++ errnum = 0; ++ ++ geom = disks[current_drive]; ++ buf_drive = -1; ++ } ++#endif /* GRUB_UTIL */ ++ ++#ifdef GRUB_UTIL ++ msg = device_map[current_drive]; ++#else ++ if (geom.flags & BIOSDISK_FLAG_LBA_EXTENSION) ++ msg = "LBA"; ++ else ++ msg = "CHS"; ++#endif ++ ++ grub_printf ("drive 0x%x: C/H/S = %d/%d/%d, " ++ "The number of sectors = %d, %s\n", ++ current_drive, ++ geom.cylinders, geom.heads, geom.sectors, ++ geom.total_sectors, msg); ++ real_open_partition (1); ++ ++ return 0; ++} ++ ++static struct builtin builtin_geometry = ++{ ++ "geometry", ++ geometry_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "geometry DRIVE [CYLINDER HEAD SECTOR [TOTAL_SECTOR]]", ++ "Print the information for a drive DRIVE. In the grub shell, you can" ++ " set the geometry of the drive arbitrarily. The number of the cylinders," ++ " the one of the heads, the one of the sectors and the one of the total" ++ " sectors are set to CYLINDER, HEAD, SECTOR and TOTAL_SECTOR," ++ " respectively. If you omit TOTAL_SECTOR, then it will be calculated based" ++ " on the C/H/S values automatically." ++}; ++ ++ ++/* halt */ ++static int ++halt_func (char *arg, int flags) ++{ ++ int no_apm; ++ ++ no_apm = (grub_memcmp (arg, "--no-apm", 8) == 0); ++ grub_halt (no_apm); ++ ++ /* Never reach here. */ ++ return 1; ++} ++ ++static struct builtin builtin_halt = ++{ ++ "halt", ++ halt_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "halt [--no-apm]", ++ "Halt your system. If APM is avaiable on it, turn off the power using" ++ " the APM BIOS, unless you specify the option `--no-apm'." ++}; ++ ++ ++/* help */ ++#define MAX_SHORT_DOC_LEN 39 ++#define MAX_LONG_DOC_LEN 66 ++ ++static int ++help_func (char *arg, int flags) ++{ ++ int all = 0; ++ ++ if (grub_memcmp (arg, "--all", sizeof ("--all") - 1) == 0) ++ { ++ all = 1; ++ arg = skip_to (0, arg); ++ } ++ ++ if (! *arg) ++ { ++ /* Invoked with no argument. Print the list of the short docs. */ ++ struct builtin **builtin; ++ int left = 1; ++ ++ for (builtin = builtin_table; *builtin != 0; builtin++) ++ { ++ int len; ++ int i; ++ ++ /* If this cannot be used in the command-line interface, ++ skip this. */ ++ if (! ((*builtin)->flags & BUILTIN_CMDLINE)) ++ continue; ++ ++ /* If this doesn't need to be listed automatically and "--all" ++ is not specified, skip this. */ ++ if (! all && ! ((*builtin)->flags & BUILTIN_HELP_LIST)) ++ continue; ++ ++ len = grub_strlen ((*builtin)->short_doc); ++ /* If the length of SHORT_DOC is too long, truncate it. */ ++ if (len > MAX_SHORT_DOC_LEN - 1) ++ len = MAX_SHORT_DOC_LEN - 1; ++ ++ for (i = 0; i < len; i++) ++ grub_putchar ((*builtin)->short_doc[i]); ++ ++ for (; i < MAX_SHORT_DOC_LEN; i++) ++ grub_putchar (' '); ++ ++ if (! left) ++ grub_putchar ('\n'); ++ ++ left = ! left; ++ } ++ ++ /* If the last entry was at the left column, no newline was printed ++ at the end. */ ++ if (! left) ++ grub_putchar ('\n'); ++ } ++ else ++ { ++ /* Invoked with one or more patterns. */ ++ do ++ { ++ struct builtin **builtin; ++ char *next_arg; ++ ++ /* Get the next argument. */ ++ next_arg = skip_to (0, arg); ++ ++ /* Terminate ARG. */ ++ nul_terminate (arg); ++ ++ for (builtin = builtin_table; *builtin; builtin++) ++ { ++ /* Skip this if this is only for the configuration file. */ ++ if (! ((*builtin)->flags & BUILTIN_CMDLINE)) ++ continue; ++ ++ if (substring (arg, (*builtin)->name) < 1) ++ { ++ char *doc = (*builtin)->long_doc; ++ ++ /* At first, print the name and the short doc. */ ++ grub_printf ("%s: %s\n", ++ (*builtin)->name, (*builtin)->short_doc); ++ ++ /* Print the long doc. */ ++ while (*doc) ++ { ++ int len = grub_strlen (doc); ++ int i; ++ ++ /* If LEN is too long, fold DOC. */ ++ if (len > MAX_LONG_DOC_LEN) ++ { ++ /* Fold this line at the position of a space. */ ++ for (len = MAX_LONG_DOC_LEN; len > 0; len--) ++ if (doc[len - 1] == ' ') ++ break; ++ } ++ ++ grub_printf (" "); ++ for (i = 0; i < len; i++) ++ grub_putchar (*doc++); ++ grub_putchar ('\n'); ++ } ++ } ++ } ++ ++ arg = next_arg; ++ } ++ while (*arg); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_help = ++{ ++ "help", ++ help_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "help [--all] [PATTERN ...]", ++ "Display helpful information about builtin commands. Not all commands" ++ " aren't shown without the option `--all'." ++}; ++ ++ ++/* hiddenmenu */ ++static int ++hiddenmenu_func (char *arg, int flags) ++{ ++ show_menu = 0; ++ return 0; ++} ++ ++static struct builtin builtin_hiddenmenu = ++{ ++ "hiddenmenu", ++ hiddenmenu_func, ++ BUILTIN_MENU, ++#if 0 ++ "hiddenmenu", ++ "Hide the menu." ++#endif ++}; ++ ++ ++/* hide */ ++static int ++hide_func (char *arg, int flags) ++{ ++ if (! set_device (arg)) ++ return 1; ++ ++ if (! set_partition_hidden_flag (1)) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_hide = ++{ ++ "hide", ++ hide_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "hide PARTITION", ++ "Hide PARTITION by setting the "hidden" bit in" ++ " its partition type code." ++}; ++ ++ ++#ifdef SUPPORT_NETBOOT ++/* ifconfig */ ++static int ++ifconfig_func (char *arg, int flags) ++{ ++ char *svr = 0, *ip = 0, *gw = 0, *sm = 0; ++ ++ if (! eth_probe ()) ++ { ++ grub_printf ("No ethernet card found.\n"); ++ errnum = ERR_DEV_VALUES; ++ return 1; ++ } ++ ++ while (*arg) ++ { ++ if (! grub_memcmp ("--server=", arg, sizeof ("--server=") - 1)) ++ svr = arg + sizeof("--server=") - 1; ++ else if (! grub_memcmp ("--address=", arg, sizeof ("--address=") - 1)) ++ ip = arg + sizeof ("--address=") - 1; ++ else if (! grub_memcmp ("--gateway=", arg, sizeof ("--gateway=") - 1)) ++ gw = arg + sizeof ("--gateway=") - 1; ++ else if (! grub_memcmp ("--mask=", arg, sizeof("--mask=") - 1)) ++ sm = arg + sizeof ("--mask=") - 1; ++ else ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ arg = skip_to (0, arg); ++ } ++ ++ if (! ifconfig (ip, sm, gw, svr)) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ print_network_configuration (); ++ return 0; ++} ++ ++static struct builtin builtin_ifconfig = ++{ ++ "ifconfig", ++ ifconfig_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "ifconfig [--address=IP] [--gateway=IP] [--mask=MASK] [--server=IP]", ++ "Configure the IP address, the netmask, the gateway and the server" ++ " address or print current network configuration." ++}; ++#endif /* SUPPORT_NETBOOT */ ++ ++ ++/* impsprobe */ ++static int ++impsprobe_func (char *arg, int flags) ++{ ++#ifdef GRUB_UTIL ++ /* In the grub shell, we cannot probe IMPS. */ ++ errnum = ERR_UNRECOGNIZED; ++ return 1; ++#else /* ! GRUB_UTIL */ ++ if (!imps_probe ()) ++ printf (" No MPS information found or probe failed\n"); ++ ++ return 0; ++#endif /* ! GRUB_UTIL */ ++} ++ ++static struct builtin builtin_impsprobe = ++{ ++ "impsprobe", ++ impsprobe_func, ++ BUILTIN_CMDLINE, ++ "impsprobe", ++ "Probe the Intel Multiprocessor Specification 1.1 or 1.4" ++ " configuration table and boot the various CPUs which are found into" ++ " a tight loop." ++}; ++ ++ ++/* initrd */ ++static int ++initrd_func (char *arg, int flags) ++{ ++ switch (kernel_type) ++ { ++ case KERNEL_TYPE_LINUX: ++ case KERNEL_TYPE_BIG_LINUX: ++ if (! load_initrd (arg)) ++ return 1; ++ break; ++ ++ default: ++ errnum = ERR_NEED_LX_KERNEL; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_initrd = ++{ ++ "initrd", ++ initrd_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "initrd FILE [ARG ...]", ++ "Load an initial ramdisk FILE for a Linux format boot image and set the" ++ " appropriate parameters in the Linux setup area in memory." ++}; ++ ++ ++/* install */ ++static int ++install_func (char *arg, int flags) ++{ ++ char *stage1_file, *dest_dev, *file, *addr; ++ char *stage1_buffer = (char *) RAW_ADDR (0x100000); ++ char *stage2_buffer = stage1_buffer + SECTOR_SIZE; ++ char *old_sect = stage2_buffer + SECTOR_SIZE; ++ char *stage2_first_buffer = old_sect + SECTOR_SIZE; ++ char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; ++ /* XXX: Probably SECTOR_SIZE is reasonable. */ ++ char *config_filename = stage2_second_buffer + SECTOR_SIZE; ++ char *dummy = config_filename + SECTOR_SIZE; ++ int new_drive = GRUB_INVALID_DRIVE; ++ int dest_drive, dest_partition, dest_sector; ++ int src_drive, src_partition, src_part_start; ++ int i; ++ struct geometry dest_geom, src_geom; ++ int saved_sector; ++ int stage2_first_sector, stage2_second_sector; ++ char *ptr; ++ int installaddr, installlist; ++ /* Point to the location of the name of a configuration file in Stage 2. */ ++ char *config_file_location; ++ /* If FILE is a Stage 1.5? */ ++ int is_stage1_5 = 0; ++ /* Must call grub_close? */ ++ int is_open = 0; ++ /* If LBA is forced? */ ++ int is_force_lba = 0; ++ /* Was the last sector full? */ ++ int last_length = SECTOR_SIZE; ++ ++#ifdef GRUB_UTIL ++ /* If the Stage 2 is in a partition mounted by an OS, this will store ++ the filename under the OS. */ ++ char *stage2_os_file = 0; ++#endif /* GRUB_UTIL */ ++ ++ auto void disk_read_savesect_func (int sector, int offset, int length); ++ auto void disk_read_blocklist_func (int sector, int offset, int length); ++ ++ /* Save the first sector of Stage2 in STAGE2_SECT. */ ++ auto void disk_read_savesect_func (int sector, int offset, int length) ++ { ++ if (debug) ++ printf ("[%d]", sector); ++ ++ /* ReiserFS has files which sometimes contain data not aligned ++ on sector boundaries. Returning an error is better than ++ silently failing. */ ++ if (offset != 0 || length != SECTOR_SIZE) ++ errnum = ERR_UNALIGNED; ++ ++ saved_sector = sector; ++ } ++ ++ /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and ++ INSTALLSECT. */ ++ auto void disk_read_blocklist_func (int sector, int offset, int length) ++ { ++ if (debug) ++ printf("[%d]", sector); ++ ++ if (offset != 0 || last_length != SECTOR_SIZE) ++ { ++ /* We found a non-sector-aligned data block. */ ++ errnum = ERR_UNALIGNED; ++ return; ++ } ++ ++ last_length = length; ++ ++ if (*((unsigned long *) (installlist - 4)) ++ + *((unsigned short *) installlist) != sector ++ || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4) ++ { ++ installlist -= 8; ++ ++ if (*((unsigned long *) (installlist - 8))) ++ errnum = ERR_WONT_FIT; ++ else ++ { ++ *((unsigned short *) (installlist + 2)) = (installaddr >> 4); ++ *((unsigned long *) (installlist - 4)) = sector; ++ } ++ } ++ ++ *((unsigned short *) installlist) += 1; ++ installaddr += 512; ++ } ++ ++ /* First, check the GNU-style long option. */ ++ while (1) ++ { ++ if (grub_memcmp ("--force-lba", arg, sizeof ("--force-lba") - 1) == 0) ++ { ++ is_force_lba = 1; ++ arg = skip_to (0, arg); ++ } ++#ifdef GRUB_UTIL ++ else if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0) ++ { ++ stage2_os_file = arg + sizeof ("--stage2=") - 1; ++ arg = skip_to (0, arg); ++ nul_terminate (stage2_os_file); ++ } ++#endif /* GRUB_UTIL */ ++ else ++ break; ++ } ++ ++ stage1_file = arg; ++ dest_dev = skip_to (0, stage1_file); ++ if (*dest_dev == 'd') ++ { ++ new_drive = 0; ++ dest_dev = skip_to (0, dest_dev); ++ } ++ file = skip_to (0, dest_dev); ++ addr = skip_to (0, file); ++ ++ /* Get the installation address. */ ++ if (! safe_parse_maxint (&addr, &installaddr)) ++ { ++ /* ADDR is not specified. */ ++ installaddr = 0; ++ ptr = addr; ++ errnum = 0; ++ } ++ else ++ ptr = skip_to (0, addr); ++ ++#ifndef NO_DECOMPRESSION ++ /* Do not decompress Stage 1 or Stage 2. */ ++ no_decompression = 1; ++#endif ++ ++ /* Read Stage 1. */ ++ is_open = grub_open (stage1_file); ++ if (! is_open ++ || ! grub_read (stage1_buffer, SECTOR_SIZE) == SECTOR_SIZE) ++ goto fail; ++ ++ /* Read the old sector from DEST_DEV. */ ++ if (! set_device (dest_dev) ++ || ! open_partition () ++ || ! devread (0, 0, SECTOR_SIZE, old_sect)) ++ goto fail; ++ ++ /* Store the information for the destination device. */ ++ dest_drive = current_drive; ++ dest_partition = current_partition; ++ dest_geom = buf_geom; ++ dest_sector = part_start; ++ ++ /* Copy the possible DOS BPB, 59 bytes at byte offset 3. */ ++ grub_memmove (stage1_buffer + BOOTSEC_BPB_OFFSET, ++ old_sect + BOOTSEC_BPB_OFFSET, ++ BOOTSEC_BPB_LENGTH); ++ ++ /* If for a hard disk, copy the possible MBR/extended part table. */ ++ if (dest_drive & 0x80) ++ grub_memmove (stage1_buffer + STAGE1_WINDOWS_NT_MAGIC, ++ old_sect + STAGE1_WINDOWS_NT_MAGIC, ++ STAGE1_PARTEND - STAGE1_WINDOWS_NT_MAGIC); ++ ++ /* Check for the version and the signature of Stage 1. */ ++ if (*((short *)(stage1_buffer + STAGE1_VER_MAJ_OFFS)) != COMPAT_VERSION ++ || (*((unsigned short *) (stage1_buffer + BOOTSEC_SIG_OFFSET)) ++ != BOOTSEC_SIGNATURE)) ++ { ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ /* This below is not true any longer. But should we leave this alone? */ ++ ++ /* If DEST_DRIVE is a floppy, Stage 2 must have the iteration probe ++ routine. */ ++ if (! (dest_drive & 0x80) ++ && (*((unsigned char *) (stage1_buffer + BOOTSEC_PART_OFFSET)) == 0x80 ++ || stage1_buffer[BOOTSEC_PART_OFFSET] == 0)) ++ { ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ grub_close (); ++ ++ /* Open Stage 2. */ ++ is_open = grub_open (file); ++ if (! is_open) ++ goto fail; ++ ++ src_drive = current_drive; ++ src_partition = current_partition; ++ src_part_start = part_start; ++ src_geom = buf_geom; ++ ++ if (! new_drive) ++ new_drive = src_drive; ++ else if (src_drive != dest_drive) ++ grub_printf ("Warning: the option `d' was not used, but the Stage 1 will" ++ " be installed on a\ndifferent drive than the drive where" ++ " the Stage 2 resides.\n"); ++ ++ /* Set the boot drive. */ ++ *((unsigned char *) (stage1_buffer + STAGE1_BOOT_DRIVE)) = new_drive; ++ ++ /* Set the "force LBA" flag. */ ++ *((unsigned char *) (stage1_buffer + STAGE1_FORCE_LBA)) = is_force_lba; ++ ++ /* If DEST_DRIVE is a hard disk, enable the workaround, which is ++ for buggy BIOSes which don't pass boot drive correctly. Instead, ++ they pass 0x00 or 0x01 even when booted from 0x80. */ ++ if (dest_drive & BIOS_FLAG_FIXED_DISK) ++ /* Replace the jmp (2 bytes) with double nop's. */ ++ *((unsigned short *) (stage1_buffer + STAGE1_BOOT_DRIVE_CHECK)) ++ = 0x9090; ++ ++ /* Read the first sector of Stage 2. */ ++ disk_read_hook = disk_read_savesect_func; ++ if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) ++ goto fail; ++ ++ stage2_first_sector = saved_sector; ++ ++ /* Read the second sector of Stage 2. */ ++ if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE) ++ goto fail; ++ ++ stage2_second_sector = saved_sector; ++ ++ /* Check for the version of Stage 2. */ ++ if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS)) ++ != COMPAT_VERSION) ++ { ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ /* Check for the Stage 2 id. */ ++ if (stage2_second_buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2) ++ is_stage1_5 = 1; ++ ++ /* If INSTALLADDR is not specified explicitly in the command-line, ++ determine it by the Stage 2 id. */ ++ if (! installaddr) ++ { ++ if (! is_stage1_5) ++ /* Stage 2. */ ++ installaddr = 0x8000; ++ else ++ /* Stage 1.5. */ ++ installaddr = 0x2000; ++ } ++ ++ *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR)) ++ = stage2_first_sector; ++ *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS)) ++ = installaddr; ++ *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT)) ++ = installaddr >> 4; ++ ++ i = (int) stage2_first_buffer + SECTOR_SIZE - 4; ++ while (*((unsigned long *) i)) ++ { ++ if (i < (int) stage2_first_buffer ++ || (*((int *) (i - 4)) & 0x80000000) ++ || *((unsigned short *) i) >= 0xA00 ++ || *((short *) (i + 2)) == 0) ++ { ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ *((int *) i) = 0; ++ *((int *) (i - 4)) = 0; ++ i -= 8; ++ } ++ ++ installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4; ++ installaddr += SECTOR_SIZE; ++ ++ /* Read the whole of Stage2 except for the first sector. */ ++ grub_seek (SECTOR_SIZE); ++ ++ disk_read_hook = disk_read_blocklist_func; ++ if (! grub_read (dummy, -1)) ++ goto fail; ++ ++ disk_read_hook = 0; ++ ++ /* Find a string for the configuration filename. */ ++ config_file_location = stage2_second_buffer + STAGE2_VER_STR_OFFS; ++ while (*(config_file_location++)) ++ ; ++ ++ /* Set the "force LBA" flag for Stage2. */ ++ *((unsigned char *) (stage2_second_buffer + STAGE2_FORCE_LBA)) ++ = is_force_lba; ++ ++ if (*ptr == 'p') ++ { ++ *((long *) (stage2_second_buffer + STAGE2_INSTALLPART)) ++ = src_partition; ++ if (is_stage1_5) ++ { ++ /* Reset the device information in FILE if it is a Stage 1.5. */ ++ unsigned long device = 0xFFFFFFFF; ++ ++ grub_memmove (config_file_location, (char *) &device, ++ sizeof (device)); ++ } ++ ++ ptr = skip_to (0, ptr); ++ } ++ ++ if (*ptr) ++ { ++ grub_strcpy (config_filename, ptr); ++ nul_terminate (config_filename); ++ ++ if (! is_stage1_5) ++ /* If it is a Stage 2, just copy PTR to CONFIG_FILE_LOCATION. */ ++ grub_strcpy (config_file_location, ptr); ++ else ++ { ++ char *real_config; ++ unsigned long device; ++ ++ /* Translate the external device syntax to the internal device ++ syntax. */ ++ if (! (real_config = set_device (ptr))) ++ { ++ /* The Stage 2 PTR does not contain the device name, so ++ use the root device instead. */ ++ errnum = ERR_NONE; ++ current_drive = saved_drive; ++ current_partition = saved_partition; ++ real_config = ptr; ++ } ++ ++ if (current_drive == src_drive) ++ { ++ /* If the drive where the Stage 2 resides is the same as ++ the one where the Stage 1.5 resides, do not embed the ++ drive number. */ ++ current_drive = GRUB_INVALID_DRIVE; ++ } ++ ++ device = (current_drive << 24) | current_partition; ++ grub_memmove (config_file_location, (char *) &device, ++ sizeof (device)); ++ grub_strcpy (config_file_location + sizeof (device), ++ real_config); ++ } ++ ++ /* If a Stage 1.5 is used, then we need to modify the Stage2. */ ++ if (is_stage1_5) ++ { ++ char *real_config_filename = skip_to (0, ptr); ++ ++ is_open = grub_open (config_filename); ++ if (! is_open) ++ goto fail; ++ ++ /* Skip the first sector. */ ++ grub_seek (SECTOR_SIZE); ++ ++ disk_read_hook = disk_read_savesect_func; ++ if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE) ++ goto fail; ++ ++ disk_read_hook = 0; ++ grub_close (); ++ is_open = 0; ++ ++ /* Sanity check. */ ++ if (*(stage2_buffer + STAGE2_STAGE2_ID) != STAGE2_ID_STAGE2) ++ { ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ /* Set the "force LBA" flag for Stage2. */ ++ *(stage2_buffer + STAGE2_FORCE_LBA) = is_force_lba; ++ ++ /* If REAL_CONFIG_FILENAME is specified, copy it to the Stage2. */ ++ if (*real_config_filename) ++ { ++ /* Specified */ ++ char *location; ++ ++ /* Find a string for the configuration filename. */ ++ location = stage2_buffer + STAGE2_VER_STR_OFFS; ++ while (*(location++)) ++ ; ++ ++ /* Copy the name. */ ++ grub_strcpy (location, real_config_filename); ++ } ++ ++ /* Write it to the disk. */ ++ buf_track = -1; ++ ++#ifdef GRUB_UTIL ++ /* In the grub shell, access the Stage 2 via the OS filesystem ++ service, if possible. */ ++ if (stage2_os_file) ++ { ++ FILE *fp; ++ ++ fp = fopen (stage2_os_file, "r+"); ++ if (! fp) ++ { ++ errnum = ERR_FILE_NOT_FOUND; ++ goto fail; ++ } ++ ++ if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0) ++ { ++ fclose (fp); ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ if (fwrite (stage2_buffer, 1, SECTOR_SIZE, fp) ++ != SECTOR_SIZE) ++ { ++ fclose (fp); ++ errnum = ERR_WRITE; ++ goto fail; ++ } ++ ++ fclose (fp); ++ } ++ else ++#endif /* GRUB_UTIL */ ++ { ++ if (! devwrite (saved_sector - part_start, 1, stage2_buffer)) ++ goto fail; ++ } ++ } ++ } ++ ++ /* Clear the cache. */ ++ buf_track = -1; ++ ++ /* Write the modified sectors of Stage2 to the disk. */ ++#ifdef GRUB_UTIL ++ if (! is_stage1_5 && stage2_os_file) ++ { ++ FILE *fp; ++ ++ fp = fopen (stage2_os_file, "r+"); ++ if (! fp) ++ { ++ errnum = ERR_FILE_NOT_FOUND; ++ goto fail; ++ } ++ ++ if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) ++ { ++ fclose (fp); ++ errnum = ERR_WRITE; ++ goto fail; ++ } ++ ++ if (fwrite (stage2_second_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) ++ { ++ fclose (fp); ++ errnum = ERR_WRITE; ++ goto fail; ++ } ++ ++ fclose (fp); ++ } ++ else ++#endif /* GRUB_UTIL */ ++ { ++ /* The first. */ ++ current_drive = src_drive; ++ current_partition = src_partition; ++ ++ if (! open_partition ()) ++ goto fail; ++ ++ if (! devwrite (stage2_first_sector - src_part_start, 1, ++ stage2_first_buffer)) ++ goto fail; ++ ++ if (! devwrite (stage2_second_sector - src_part_start, 1, ++ stage2_second_buffer)) ++ goto fail; ++ } ++ ++ /* Write the modified sector of Stage 1 to the disk. */ ++ current_drive = dest_drive; ++ current_partition = dest_partition; ++ if (! open_partition ()) ++ goto fail; ++ ++ devwrite (0, 1, stage1_buffer); ++ ++ fail: ++ if (is_open) ++ grub_close (); ++ ++ disk_read_hook = 0; ++ ++#ifndef NO_DECOMPRESSION ++ no_decompression = 0; ++#endif ++ ++ return errnum; ++} ++ ++static struct builtin builtin_install = ++{ ++ "install", ++ install_func, ++ BUILTIN_CMDLINE, ++ "install [--stage2=STAGE2_FILE] [--force-lba] STAGE1 [d] DEVICE STAGE2 [ADDR] [p] [CONFIG_FILE] [REAL_CONFIG_FILE]", ++ "Install STAGE1 on DEVICE, and install a blocklist for loading STAGE2" ++ " as a Stage 2. If the option `d' is present, the Stage 1 will always" ++ " look for the disk where STAGE2 was installed, rather than using" ++ " the booting drive. The Stage 2 will be loaded at address ADDR, which" ++ " will be determined automatically if you don't specify it. If" ++ " the option `p' or CONFIG_FILE is present, then the first block" ++ " of Stage 2 is patched with new values of the partition and name" ++ " of the configuration file used by the true Stage 2 (for a Stage 1.5," ++ " this is the name of the true Stage 2) at boot time. If STAGE2 is a Stage" ++ " 1.5 and REAL_CONFIG_FILE is present, then the Stage 2 CONFIG_FILE is" ++ " patched with the configuration filename REAL_CONFIG_FILE." ++ " If the option `--force-lba' is specified, disable some sanity checks" ++ " for LBA mode. If the option `--stage2' is specified, rewrite the Stage" ++ " 2 via your OS's filesystem instead of the raw device." ++}; ++ ++ ++/* ioprobe */ ++static int ++ioprobe_func (char *arg, int flags) ++{ ++#ifdef GRUB_UTIL ++ ++ errnum = ERR_UNRECOGNIZED; ++ return 1; ++ ++#else /* ! GRUB_UTIL */ ++ ++ unsigned short *port; ++ ++ /* Get the drive number. */ ++ set_device (arg); ++ if (errnum) ++ return 1; ++ ++ /* Clean out IO_MAP. */ ++ grub_memset ((char *) io_map, 0, IO_MAP_SIZE * sizeof (unsigned short)); ++ ++ /* Track the int13 handler. */ ++ track_int13 (current_drive); ++ ++ /* Print out the result. */ ++ for (port = io_map; *port != 0; port++) ++ grub_printf (" 0x%x", (unsigned int) *port); ++ ++ return 0; ++ ++#endif /* ! GRUB_UTIL */ ++} ++ ++static struct builtin builtin_ioprobe = ++{ ++ "ioprobe", ++ ioprobe_func, ++ BUILTIN_CMDLINE, ++ "ioprobe DRIVE", ++ "Probe I/O ports used for the drive DRIVE." ++}; ++ ++ ++/* kernel */ ++static int ++kernel_func (char *arg, int flags) ++{ ++ int len; ++ kernel_t suggested_type = KERNEL_TYPE_NONE; ++ unsigned long load_flags = 0; ++ ++#ifndef AUTO_LINUX_MEM_OPT ++ load_flags |= KERNEL_LOAD_NO_MEM_OPTION; ++#endif ++ ++ /* Deal with GNU-style long options. */ ++ while (1) ++ { ++ /* If the option `--type=TYPE' is specified, convert the string to ++ a kernel type. */ ++ if (grub_memcmp (arg, "--type=", 7) == 0) ++ { ++ arg += 7; ++ ++ if (grub_memcmp (arg, "netbsd", 6) == 0) ++ suggested_type = KERNEL_TYPE_NETBSD; ++ else if (grub_memcmp (arg, "freebsd", 7) == 0) ++ suggested_type = KERNEL_TYPE_FREEBSD; ++ else if (grub_memcmp (arg, "openbsd", 7) == 0) ++ /* XXX: For now, OpenBSD is identical to NetBSD, from GRUB's ++ point of view. */ ++ suggested_type = KERNEL_TYPE_NETBSD; ++ else if (grub_memcmp (arg, "linux", 5) == 0) ++ suggested_type = KERNEL_TYPE_LINUX; ++ else if (grub_memcmp (arg, "biglinux", 8) == 0) ++ suggested_type = KERNEL_TYPE_BIG_LINUX; ++ else if (grub_memcmp (arg, "multiboot", 9) == 0) ++ suggested_type = KERNEL_TYPE_MULTIBOOT; ++ else ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++ /* If the `--no-mem-option' is specified, don't pass a Linux's mem ++ option automatically. If the kernel is another type, this flag ++ has no effect. */ ++ else if (grub_memcmp (arg, "--no-mem-option", 15) == 0) ++ load_flags |= KERNEL_LOAD_NO_MEM_OPTION; ++ else ++ break; ++ ++ /* Try the next. */ ++ arg = skip_to (0, arg); ++ } ++ ++ len = grub_strlen (arg); ++ ++ /* Reset MB_CMDLINE. */ ++ mb_cmdline = (char *) MB_CMDLINE_BUF; ++ if (len + 1 > MB_CMDLINE_BUFLEN) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ ++ /* Copy the command-line to MB_CMDLINE. */ ++ grub_memmove (mb_cmdline, arg, len + 1); ++ kernel_type = load_image (arg, mb_cmdline, suggested_type, load_flags); ++ if (kernel_type == KERNEL_TYPE_NONE) ++ return 1; ++ ++ mb_cmdline += len + 1; ++ return 0; ++} ++ ++static struct builtin builtin_kernel = ++{ ++ "kernel", ++ kernel_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "kernel [--no-mem-option] [--type=TYPE] FILE [ARG ...]", ++ "Attempt to load the primary boot image from FILE. The rest of the" ++ " line is passed verbatim as the "kernel command line". Any modules" ++ " must be reloaded after using this command. The option --type is used" ++ " to suggest what type of kernel to be loaded. TYPE must be either of" ++ " "netbsd", "freebsd", "openbsd", "linux", "biglinux" and" ++ " "multiboot". The option --no-mem-option tells GRUB not to pass a" ++ " Linux's mem option automatically." ++}; ++ ++ ++/* lock */ ++static int ++lock_func (char *arg, int flags) ++{ ++ if (! auth && password) ++ { ++ errnum = ERR_PRIVILEGED; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_lock = ++{ ++ "lock", ++ lock_func, ++ BUILTIN_CMDLINE, ++ "lock", ++ "Break a command execution unless the user is authenticated." ++}; ++ ++ ++/* makeactive */ ++static int ++makeactive_func (char *arg, int flags) ++{ ++ if (! make_saved_active ()) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_makeactive = ++{ ++ "makeactive", ++ makeactive_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "makeactive", ++ "Set the active partition on the root disk to GRUB's root device." ++ " This command is limited to _primary_ PC partitions on a hard disk." ++}; ++ ++ ++/* map */ ++/* Map FROM_DRIVE to TO_DRIVE. */ ++static int ++map_func (char *arg, int flags) ++{ ++ char *to_drive; ++ char *from_drive; ++ unsigned long to, from; ++ int i; ++ ++ to_drive = arg; ++ from_drive = skip_to (0, arg); ++ ++ /* Get the drive number for TO_DRIVE. */ ++ set_device (to_drive); ++ if (errnum) ++ return 1; ++ to = current_drive; ++ ++ /* Get the drive number for FROM_DRIVE. */ ++ set_device (from_drive); ++ if (errnum) ++ return 1; ++ from = current_drive; ++ ++ /* Search for an empty slot in BIOS_DRIVE_MAP. */ ++ for (i = 0; i < DRIVE_MAP_SIZE; i++) ++ { ++ /* Perhaps the user wants to override the map. */ ++ if ((bios_drive_map[i] & 0xff) == from) ++ break; ++ ++ if (! bios_drive_map[i]) ++ break; ++ } ++ ++ if (i == DRIVE_MAP_SIZE) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ ++ if (to == from) ++ /* If TO is equal to FROM, delete the entry. */ ++ grub_memmove ((char *) &bios_drive_map[i], (char *) &bios_drive_map[i + 1], ++ sizeof (unsigned short) * (DRIVE_MAP_SIZE - i)); ++ else ++ bios_drive_map[i] = from | (to << 8); ++ ++ return 0; ++} ++ ++static struct builtin builtin_map = ++{ ++ "map", ++ map_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "map TO_DRIVE FROM_DRIVE", ++ "Map the drive FROM_DRIVE to the drive TO_DRIVE. This is necessary" ++ " when you chain-load some operating systems, such as DOS, if such an" ++ " OS resides at a non-first drive." ++}; ++ ++ ++#ifdef USE_MD5_PASSWORDS ++/* md5crypt */ ++static int ++md5crypt_func (char *arg, int flags) ++{ ++ char crypted[36]; ++ char key[32]; ++ unsigned int seed; ++ int i; ++ const char *const seedchars = ++ "./0123456789ABCDEFGHIJKLMNOPQRST" ++ "UVWXYZabcdefghijklmnopqrstuvwxyz"; ++ ++ /* First create a salt. */ ++ ++ /* The magical prefix. */ ++ grub_memset (crypted, 0, sizeof (crypted)); ++ grub_memmove (crypted, "$1$", 3); ++ ++ /* Create the length of a salt. */ ++ seed = currticks (); ++ ++ /* Generate a salt. */ ++ for (i = 0; i < 8 && seed; i++) ++ { ++ /* FIXME: This should be more random. */ ++ crypted[3 + i] = seedchars[seed & 0x3f]; ++ seed >>= 6; ++ } ++ ++ /* A salt must be terminated with `$', if it is less than 8 chars. */ ++ crypted[3 + i] = '$'; ++ ++#ifdef DEBUG_MD5CRYPT ++ grub_printf ("salt = %s\n", crypted); ++#endif ++ ++ /* Get a password. */ ++ grub_memset (key, 0, sizeof (key)); ++ get_cmdline ("Password: ", key, sizeof (key) - 1, '*', 0); ++ ++ /* Crypt the key. */ ++ make_md5_password (key, crypted); ++ ++ grub_printf ("Encrypted: %s\n", crypted); ++ return 0; ++} ++ ++static struct builtin builtin_md5crypt = ++{ ++ "md5crypt", ++ md5crypt_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "md5crypt", ++ "Generate a password in MD5 format." ++}; ++#endif /* USE_MD5_PASSWORDS */ ++ ++ ++/* module */ ++static int ++module_func (char *arg, int flags) ++{ ++ int len = grub_strlen (arg); ++ ++ switch (kernel_type) ++ { ++ case KERNEL_TYPE_MULTIBOOT: ++ if (mb_cmdline + len + 1 > (char *) MB_CMDLINE_BUF + MB_CMDLINE_BUFLEN) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ grub_memmove (mb_cmdline, arg, len + 1); ++ if (! load_module (arg, mb_cmdline)) ++ return 1; ++ mb_cmdline += len + 1; ++ break; ++ ++ case KERNEL_TYPE_LINUX: ++ case KERNEL_TYPE_BIG_LINUX: ++ if (! load_initrd (arg)) ++ return 1; ++ break; ++ ++ default: ++ errnum = ERR_NEED_MB_KERNEL; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_module = ++{ ++ "module", ++ module_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "module FILE [ARG ...]", ++ "Load a boot module FILE for a Multiboot format boot image (no" ++ " interpretation of the file contents is made, so users of this" ++ " command must know what the kernel in question expects). The" ++ " rest of the line is passed as the "module command line", like" ++ " the `kernel' command." ++}; ++ ++ ++/* modulenounzip */ ++static int ++modulenounzip_func (char *arg, int flags) ++{ ++ int ret; ++ ++#ifndef NO_DECOMPRESSION ++ no_decompression = 1; ++#endif ++ ++ ret = module_func (arg, flags); ++ ++#ifndef NO_DECOMPRESSION ++ no_decompression = 0; ++#endif ++ ++ return ret; ++} ++ ++static struct builtin builtin_modulenounzip = ++{ ++ "modulenounzip", ++ modulenounzip_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "modulenounzip FILE [ARG ...]", ++ "The same as `module', except that automatic decompression is" ++ " disabled." ++}; ++ ++ ++/* pager [on|off] */ ++static int ++pager_func (char *arg, int flags) ++{ ++ /* If ARG is empty, toggle the flag. */ ++ if (! *arg) ++ use_pager = ! use_pager; ++ else if (grub_memcmp (arg, "on", 2) == 0) ++ use_pager = 1; ++ else if (grub_memcmp (arg, "off", 3) == 0) ++ use_pager = 0; ++ else ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ grub_printf (" Internal pager is now %s\n", use_pager ? "on" : "off"); ++ return 0; ++} ++ ++static struct builtin builtin_pager = ++{ ++ "pager", ++ pager_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "pager [FLAG]", ++ "Toggle pager mode with no argument. If FLAG is given and its value" ++ " is `on', turn on the mode. If FLAG is `off', turn off the mode." ++}; ++ ++ ++/* partnew PART TYPE START LEN */ ++static int ++partnew_func (char *arg, int flags) ++{ ++ int new_type, new_start, new_len; ++ int start_cl, start_ch, start_dh; ++ int end_cl, end_ch, end_dh; ++ int entry; ++ char mbr[512]; ++ ++ /* Convert a LBA address to a CHS address in the INT 13 format. */ ++ auto void lba_to_chs (int lba, int *cl, int *ch, int *dh); ++ void lba_to_chs (int lba, int *cl, int *ch, int *dh) ++ { ++ int cylinder, head, sector; ++ ++ sector = lba % buf_geom.sectors + 1; ++ head = (lba / buf_geom.sectors) % buf_geom.heads; ++ cylinder = lba / (buf_geom.sectors * buf_geom.heads); ++ ++ if (cylinder >= buf_geom.cylinders) ++ cylinder = buf_geom.cylinders - 1; ++ ++ *cl = sector | ((cylinder & 0x300) >> 2); ++ *ch = cylinder & 0xFF; ++ *dh = head; ++ } ++ ++ /* Get the drive and the partition. */ ++ if (! set_device (arg)) ++ return 1; ++ ++ /* The drive must be a hard disk. */ ++ if (! (current_drive & 0x80)) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* The partition must a primary partition. */ ++ if ((current_partition >> 16) > 3 ++ || (current_partition & 0xFFFF) != 0xFFFF) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ entry = current_partition >> 16; ++ ++ /* Get the new partition type. */ ++ arg = skip_to (0, arg); ++ if (! safe_parse_maxint (&arg, &new_type)) ++ return 1; ++ ++ /* The partition type is unsigned char. */ ++ if (new_type > 0xFF) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* Get the new partition start. */ ++ arg = skip_to (0, arg); ++ if (! safe_parse_maxint (&arg, &new_start)) ++ return 1; ++ ++ /* Get the new partition length. */ ++ arg = skip_to (0, arg); ++ if (! safe_parse_maxint (&arg, &new_len)) ++ return 1; ++ ++ /* Read the MBR. */ ++ if (! rawread (current_drive, 0, 0, SECTOR_SIZE, mbr)) ++ return 1; ++ ++ /* Check if the new partition will fit in the disk. */ ++ if (new_start + new_len > buf_geom.total_sectors) ++ { ++ errnum = ERR_GEOM; ++ return 1; ++ } ++ ++ /* Store the partition information in the MBR. */ ++ lba_to_chs (new_start, &start_cl, &start_ch, &start_dh); ++ lba_to_chs (new_start + new_len - 1, &end_cl, &end_ch, &end_dh); ++ ++ PC_SLICE_FLAG (mbr, entry) = 0; ++ PC_SLICE_HEAD (mbr, entry) = start_dh; ++ PC_SLICE_SEC (mbr, entry) = start_cl; ++ PC_SLICE_CYL (mbr, entry) = start_ch; ++ PC_SLICE_TYPE (mbr, entry) = new_type; ++ PC_SLICE_EHEAD (mbr, entry) = end_dh; ++ PC_SLICE_ESEC (mbr, entry) = end_cl; ++ PC_SLICE_ECYL (mbr, entry) = end_ch; ++ PC_SLICE_START (mbr, entry) = new_start; ++ PC_SLICE_LENGTH (mbr, entry) = new_len; ++ ++ /* Make sure that the MBR has a valid signature. */ ++ PC_MBR_SIG (mbr) = PC_MBR_SIGNATURE; ++ ++ /* Write back the MBR to the disk. */ ++ buf_track = -1; ++ if (! rawwrite (current_drive, 0, mbr)) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_partnew = ++{ ++ "partnew", ++ partnew_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "partnew PART TYPE START LEN", ++ "Create a primary partition at the starting address START with the" ++ " length LEN, with the type TYPE. START and LEN are in sector units." ++}; ++ ++ ++/* parttype PART TYPE */ ++static int ++parttype_func (char *arg, int flags) ++{ ++ int new_type; ++ unsigned long part = 0xFFFFFF; ++ unsigned long start, len, offset, ext_offset; ++ int entry, type; ++ char mbr[512]; ++ ++ /* Get the drive and the partition. */ ++ if (! set_device (arg)) ++ return 1; ++ ++ /* The drive must be a hard disk. */ ++ if (! (current_drive & 0x80)) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* The partition must be a PC slice. */ ++ if ((current_partition >> 16) == 0xFF ++ || (current_partition & 0xFFFF) != 0xFFFF) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* Get the new partition type. */ ++ arg = skip_to (0, arg); ++ if (! safe_parse_maxint (&arg, &new_type)) ++ return 1; ++ ++ /* The partition type is unsigned char. */ ++ if (new_type > 0xFF) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* Look for the partition. */ ++ while (next_partition (current_drive, 0xFFFFFF, &part, &type, ++ &start, &len, &offset, &entry, ++ &ext_offset, mbr)) ++ { ++ if (part == current_partition) ++ { ++ /* Found. */ ++ ++ /* Set the type to NEW_TYPE. */ ++ PC_SLICE_TYPE (mbr, entry) = new_type; ++ ++ /* Write back the MBR to the disk. */ ++ buf_track = -1; ++ if (! rawwrite (current_drive, offset, mbr)) ++ return 1; ++ ++ /* Succeed. */ ++ return 0; ++ } ++ } ++ ++ /* The partition was not found. ERRNUM was set by next_partition. */ ++ return 1; ++} ++ ++static struct builtin builtin_parttype = ++{ ++ "parttype", ++ parttype_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "parttype PART TYPE", ++ "Change the type of the partition PART to TYPE." ++}; ++ ++ ++/* password */ ++static int ++password_func (char *arg, int flags) ++{ ++ int len; ++ password_t type = PASSWORD_PLAIN; ++ ++#ifdef USE_MD5_PASSWORDS ++ if (grub_memcmp (arg, "--md5", 5) == 0) ++ { ++ type = PASSWORD_MD5; ++ arg = skip_to (0, arg); ++ } ++#endif ++ if (grub_memcmp (arg, "--", 2) == 0) ++ { ++ type = PASSWORD_UNSUPPORTED; ++ arg = skip_to (0, arg); ++ } ++ ++ if ((flags & (BUILTIN_CMDLINE | BUILTIN_SCRIPT)) != 0) ++ { ++ /* Do password check! */ ++ char entered[32]; ++ ++ /* Wipe out any previously entered password */ ++ entered[0] = 0; ++ get_cmdline ("Password: ", entered, 31, '*', 0); ++ ++ nul_terminate (arg); ++ if (check_password (entered, arg, type) != 0) ++ { ++ errnum = ERR_PRIVILEGED; ++ return 1; ++ } ++ } ++ else ++ { ++ len = grub_strlen (arg); ++ ++ /* PASSWORD NUL NUL ... */ ++ if (len + 2 > PASSWORD_BUFLEN) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ ++ /* Copy the password and clear the rest of the buffer. */ ++ password = (char *) PASSWORD_BUF; ++ grub_memmove (password, arg, len); ++ grub_memset (password + len, 0, PASSWORD_BUFLEN - len); ++ password_type = type; ++ } ++ return 0; ++} ++ ++static struct builtin builtin_password = ++{ ++ "password", ++ password_func, ++ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_NO_ECHO, ++ "password [--md5] PASSWD [FILE]", ++ "If used in the first section of a menu file, disable all" ++ " interactive editing control (menu entry editor and" ++ " command line). If the password PASSWD is entered, it loads the" ++ " FILE as a new config file and restarts the GRUB Stage 2. If you" ++ " omit the argument FILE, then GRUB just unlocks privileged" ++ " instructions. You can also use it in the script section, in" ++ " which case it will ask for the password, before continueing." ++ " The option --md5 tells GRUB that PASSWD is encrypted with" ++ " md5crypt." ++}; ++ ++ ++/* pause */ ++static int ++pause_func (char *arg, int flags) ++{ ++ printf("%s\n", arg); ++ ++ /* If ESC is returned, then abort this entry. */ ++ if (ASCII_CHAR (getkey ()) == 27) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_pause = ++{ ++ "pause", ++ pause_func, ++ BUILTIN_CMDLINE | BUILTIN_NO_ECHO, ++ "pause [MESSAGE ...]", ++ "Print MESSAGE, then wait until a key is pressed." ++}; ++ ++ ++#ifdef GRUB_UTIL ++/* quit */ ++static int ++quit_func (char *arg, int flags) ++{ ++ stop (); ++ ++ /* Never reach here. */ ++ return 0; ++} ++ ++static struct builtin builtin_quit = ++{ ++ "quit", ++ quit_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "quit", ++ "Exit from the GRUB shell." ++}; ++#endif /* GRUB_UTIL */ ++ ++ ++#ifdef SUPPORT_NETBOOT ++/* rarp */ ++static int ++rarp_func (char *arg, int flags) ++{ ++ if (! rarp ()) ++ { ++ if (errnum == ERR_NONE) ++ errnum = ERR_DEV_VALUES; ++ ++ return 1; ++ } ++ ++ /* Notify the configuration. */ ++ print_network_configuration (); ++ return 0; ++} ++ ++static struct builtin builtin_rarp = ++{ ++ "rarp", ++ rarp_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "rarp", ++ "Initialize a network device via RARP." ++}; ++#endif /* SUPPORT_NETBOOT */ ++ ++ ++static int ++read_func (char *arg, int flags) ++{ ++ int addr; ++ ++ if (! safe_parse_maxint (&arg, &addr)) ++ return 1; ++ ++ grub_printf ("Address 0x%x: Value 0x%x\n", ++ addr, *((unsigned *) RAW_ADDR (addr))); ++ return 0; ++} ++ ++static struct builtin builtin_read = ++{ ++ "read", ++ read_func, ++ BUILTIN_CMDLINE, ++ "read ADDR", ++ "Read a 32-bit value from memory at address ADDR and" ++ " display it in hex format." ++}; ++ ++ ++/* reboot */ ++static int ++reboot_func (char *arg, int flags) ++{ ++ grub_reboot (); ++ ++ /* Never reach here. */ ++ return 1; ++} ++ ++static struct builtin builtin_reboot = ++{ ++ "reboot", ++ reboot_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "reboot", ++ "Reboot your system." ++}; ++ ++ ++/* Print the root device information. */ ++static void ++print_root_device (void) ++{ ++ if (saved_drive == NETWORK_DRIVE) ++ { ++ /* Network drive. */ ++ grub_printf (" (nd):"); ++ } ++ else if (saved_drive & 0x80) ++ { ++ /* Hard disk drive. */ ++ grub_printf (" (hd%d", saved_drive - 0x80); ++ ++ if ((saved_partition & 0xFF0000) != 0xFF0000) ++ grub_printf (",%d", saved_partition >> 16); ++ ++ if ((saved_partition & 0x00FF00) != 0x00FF00) ++ grub_printf (",%c", ((saved_partition >> 8) & 0xFF) + 'a'); ++ ++ grub_printf ("):"); ++ } ++ else ++ { ++ /* Floppy disk drive. */ ++ grub_printf (" (fd%d):", saved_drive); ++ } ++ ++ /* Print the filesystem information. */ ++ current_partition = saved_partition; ++ current_drive = saved_drive; ++ print_fsys_type (); ++} ++ ++static int ++real_root_func (char *arg, int attempt_mount) ++{ ++ int hdbias = 0; ++ char *biasptr; ++ char *next; ++ ++ /* If ARG is empty, just print the current root device. */ ++ if (! *arg) ++ { ++ print_root_device (); ++ return 0; ++ } ++ ++ /* Call set_device to get the drive and the partition in ARG. */ ++ next = set_device (arg); ++ if (! next) ++ return 1; ++ ++ /* Ignore ERR_FSYS_MOUNT. */ ++ if (attempt_mount) ++ { ++ if (! open_device () && errnum != ERR_FSYS_MOUNT) ++ return 1; ++ } ++ else ++ { ++ /* This is necessary, because the location of a partition table ++ must be set appropriately. */ ++ if (open_partition ()) ++ { ++ set_bootdev (0); ++ if (errnum) ++ return 1; ++ } ++ } ++ ++ /* Clear ERRNUM. */ ++ errnum = 0; ++ saved_partition = current_partition; ++ saved_drive = current_drive; ++ ++ if (attempt_mount) ++ { ++ /* BSD and chainloading evil hacks !! */ ++ biasptr = skip_to (0, next); ++ safe_parse_maxint (&biasptr, &hdbias); ++ errnum = 0; ++ bootdev = set_bootdev (hdbias); ++ if (errnum) ++ return 1; ++ ++ /* Print the type of the filesystem. */ ++ print_fsys_type (); ++ } ++ ++ return 0; ++} ++ ++static int ++root_func (char *arg, int flags) ++{ ++ return real_root_func (arg, 1); ++} ++ ++static struct builtin builtin_root = ++{ ++ "root", ++ root_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "root [DEVICE [HDBIAS]]", ++ "Set the current "root device" to the device DEVICE, then" ++ " attempt to mount it to get the partition size (for passing the" ++ " partition descriptor in `ES:ESI', used by some chain-loaded" ++ " bootloaders), the BSD drive-type (for booting BSD kernels using" ++ " their native boot format), and correctly determine " ++ " the PC partition where a BSD sub-partition is located. The" ++ " optional HDBIAS parameter is a number to tell a BSD kernel" ++ " how many BIOS drive numbers are on controllers before the current" ++ " one. For example, if there is an IDE disk and a SCSI disk, and your" ++ " FreeBSD root partition is on the SCSI disk, then use a `1' for HDBIAS." ++}; ++ ++ ++/* rootnoverify */ ++static int ++rootnoverify_func (char *arg, int flags) ++{ ++ return real_root_func (arg, 0); ++} ++ ++static struct builtin builtin_rootnoverify = ++{ ++ "rootnoverify", ++ rootnoverify_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "rootnoverify [DEVICE [HDBIAS]]", ++ "Similar to `root', but don't attempt to mount the partition. This" ++ " is useful for when an OS is outside of the area of the disk that" ++ " GRUB can read, but setting the correct root device is still" ++ " desired. Note that the items mentioned in `root' which" ++ " derived from attempting the mount will NOT work correctly." ++}; ++ ++ ++/* savedefault */ ++static int ++savedefault_func (char *arg, int flags) ++{ ++#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) ++ unsigned long tmp_drive = saved_drive; ++ unsigned long tmp_partition = saved_partition; ++ char *default_file = (char *) DEFAULT_FILE_BUF; ++ char buf[10]; ++ char sect[SECTOR_SIZE]; ++ int entryno; ++ int sector_count = 0; ++ int saved_sectors[2]; ++ int saved_offsets[2]; ++ int saved_lengths[2]; ++ ++ /* Save sector information about at most two sectors. */ ++ auto void disk_read_savesect_func (int sector, int offset, int length); ++ void disk_read_savesect_func (int sector, int offset, int length) ++ { ++ if (sector_count < 2) ++ { ++ saved_sectors[sector_count] = sector; ++ saved_offsets[sector_count] = offset; ++ saved_lengths[sector_count] = length; ++ } ++ sector_count++; ++ } ++ ++ /* This command is only useful when you boot an entry from the menu ++ interface. */ ++ if (! (flags & BUILTIN_SCRIPT)) ++ { ++ errnum = ERR_UNRECOGNIZED; ++ return 1; ++ } ++ ++ /* Determine a saved entry number. */ ++ if (*arg) ++ { ++ if (grub_memcmp (arg, "fallback", sizeof ("fallback") - 1) == 0) ++ { ++ int i; ++ int index = 0; ++ ++ for (i = 0; i < MAX_FALLBACK_ENTRIES; i++) ++ { ++ if (fallback_entries[i] < 0) ++ break; ++ if (fallback_entries[i] == current_entryno) ++ { ++ index = i + 1; ++ break; ++ } ++ } ++ ++ if (index >= MAX_FALLBACK_ENTRIES || fallback_entries[index] < 0) ++ { ++ /* This is the last. */ ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ entryno = fallback_entries[index]; ++ } ++ else if (! safe_parse_maxint (&arg, &entryno)) ++ return 1; ++ } ++ else ++ entryno = current_entryno; ++ ++ /* Open the default file. */ ++ saved_drive = boot_drive; ++ saved_partition = install_partition; ++ if (grub_open (default_file)) ++ { ++ int len; ++ ++ disk_read_hook = disk_read_savesect_func; ++ len = grub_read (buf, sizeof (buf)); ++ disk_read_hook = 0; ++ grub_close (); ++ ++ if (len != sizeof (buf)) ++ { ++ /* This is too small. Do not modify the file manually, please! */ ++ errnum = ERR_READ; ++ goto fail; ++ } ++ ++ if (sector_count > 2) ++ { ++ /* Is this possible?! Too fragmented! */ ++ errnum = ERR_FSYS_CORRUPT; ++ goto fail; ++ } ++ ++ /* Set up a string to be written. */ ++ grub_memset (buf, '\n', sizeof (buf)); ++ grub_sprintf (buf, "%d", entryno); ++ ++ if (saved_lengths[0] < sizeof (buf)) ++ { ++ /* The file is anchored to another file and the first few bytes ++ are spanned in two sectors. Uggh... */ ++ if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE, ++ sect)) ++ goto fail; ++ grub_memmove (sect + saved_offsets[0], buf, saved_lengths[0]); ++ if (! rawwrite (current_drive, saved_sectors[0], sect)) ++ goto fail; ++ ++ if (! rawread (current_drive, saved_sectors[1], 0, SECTOR_SIZE, ++ sect)) ++ goto fail; ++ grub_memmove (sect + saved_offsets[1], ++ buf + saved_lengths[0], ++ sizeof (buf) - saved_lengths[0]); ++ if (! rawwrite (current_drive, saved_sectors[1], sect)) ++ goto fail; ++ } ++ else ++ { ++ /* This is a simple case. It fits into a single sector. */ ++ if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE, ++ sect)) ++ goto fail; ++ grub_memmove (sect + saved_offsets[0], buf, sizeof (buf)); ++ if (! rawwrite (current_drive, saved_sectors[0], sect)) ++ goto fail; ++ } ++ ++ /* Clear the cache. */ ++ buf_track = -1; ++ } ++ ++ fail: ++ saved_drive = tmp_drive; ++ saved_partition = tmp_partition; ++ return errnum; ++#else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */ ++ errnum = ERR_UNRECOGNIZED; ++ return 1; ++#endif /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */ ++} ++ ++static struct builtin builtin_savedefault = ++{ ++ "savedefault", ++ savedefault_func, ++ BUILTIN_CMDLINE, ++ "savedefault [NUM | `fallback']", ++ "Save the current entry as the default boot entry if no argument is" ++ " specified. If a number is specified, this number is saved. If" ++ " `fallback' is used, next fallback entry is saved." ++}; ++ ++ ++#ifdef SUPPORT_SERIAL ++/* serial */ ++static int ++serial_func (char *arg, int flags) ++{ ++ unsigned short port = serial_hw_get_port (0); ++ unsigned int speed = 9600; ++ int word_len = UART_8BITS_WORD; ++ int parity = UART_NO_PARITY; ++ int stop_bit_len = UART_1_STOP_BIT; ++ ++ /* Process GNU-style long options. ++ FIXME: We should implement a getopt-like function, to avoid ++ duplications. */ ++ while (1) ++ { ++ if (grub_memcmp (arg, "--unit=", sizeof ("--unit=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--unit=") - 1; ++ int unit; ++ ++ if (! safe_parse_maxint (&p, &unit)) ++ return 1; ++ ++ if (unit < 0 || unit > 3) ++ { ++ errnum = ERR_DEV_VALUES; ++ return 1; ++ } ++ ++ port = serial_hw_get_port (unit); ++ } ++ else if (grub_memcmp (arg, "--speed=", sizeof ("--speed=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--speed=") - 1; ++ int num; ++ ++ if (! safe_parse_maxint (&p, &num)) ++ return 1; ++ ++ speed = (unsigned int) num; ++ } ++ else if (grub_memcmp (arg, "--port=", sizeof ("--port=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--port=") - 1; ++ int num; ++ ++ if (! safe_parse_maxint (&p, &num)) ++ return 1; ++ ++ port = (unsigned short) num; ++ } ++ else if (grub_memcmp (arg, "--word=", sizeof ("--word=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--word=") - 1; ++ int len; ++ ++ if (! safe_parse_maxint (&p, &len)) ++ return 1; ++ ++ switch (len) ++ { ++ case 5: word_len = UART_5BITS_WORD; break; ++ case 6: word_len = UART_6BITS_WORD; break; ++ case 7: word_len = UART_7BITS_WORD; break; ++ case 8: word_len = UART_8BITS_WORD; break; ++ default: ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++ else if (grub_memcmp (arg, "--stop=", sizeof ("--stop=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--stop=") - 1; ++ int len; ++ ++ if (! safe_parse_maxint (&p, &len)) ++ return 1; ++ ++ switch (len) ++ { ++ case 1: stop_bit_len = UART_1_STOP_BIT; break; ++ case 2: stop_bit_len = UART_2_STOP_BITS; break; ++ default: ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++ else if (grub_memcmp (arg, "--parity=", sizeof ("--parity=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--parity=") - 1; ++ ++ if (grub_memcmp (p, "no", sizeof ("no") - 1) == 0) ++ parity = UART_NO_PARITY; ++ else if (grub_memcmp (p, "odd", sizeof ("odd") - 1) == 0) ++ parity = UART_ODD_PARITY; ++ else if (grub_memcmp (p, "even", sizeof ("even") - 1) == 0) ++ parity = UART_EVEN_PARITY; ++ else ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++# ifdef GRUB_UTIL ++ /* In the grub shell, don't use any port number but open a tty ++ device instead. */ ++ else if (grub_memcmp (arg, "--device=", sizeof ("--device=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--device=") - 1; ++ char dev[256]; /* XXX */ ++ char *q = dev; ++ ++ while (*p && ! grub_isspace (*p)) ++ *q++ = *p++; ++ ++ *q = 0; ++ serial_set_device (dev); ++ } ++# endif /* GRUB_UTIL */ ++ else ++ break; ++ ++ arg = skip_to (0, arg); ++ } ++ ++ /* Initialize the serial unit. */ ++ if (! serial_hw_init (port, speed, word_len, parity, stop_bit_len)) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_serial = ++{ ++ "serial", ++ serial_func, ++ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "serial [--unit=UNIT] [--port=PORT] [--speed=SPEED] [--word=WORD] [--parity=PARITY] [--stop=STOP] [--device=DEV]", ++ "Initialize a serial device. UNIT is a digit that specifies which serial" ++ " device is used (e.g. 0 == COM1). If you need to specify the port number," ++ " set it by --port. SPEED is the DTE-DTE speed. WORD is the word length," ++ " PARITY is the type of parity, which is one of `no', `odd' and `even'." ++ " STOP is the length of stop bit(s). The option --device can be used only" ++ " in the grub shell, which specifies the file name of a tty device. The" ++ " default values are COM1, 9600, 8N1." ++}; ++#endif /* SUPPORT_SERIAL */ ++ ++ ++/* setkey */ ++struct keysym ++{ ++ char *unshifted_name; /* the name in unshifted state */ ++ char *shifted_name; /* the name in shifted state */ ++ unsigned char unshifted_ascii; /* the ascii code in unshifted state */ ++ unsigned char shifted_ascii; /* the ascii code in shifted state */ ++ unsigned char keycode; /* keyboard scancode */ ++}; ++ ++/* The table for key symbols. If the "shifted" member of an entry is ++ NULL, the entry does not have shifted state. */ ++static struct keysym keysym_table[] = ++{ ++ {"escape", 0, 0x1b, 0, 0x01}, ++ {"1", "exclam", '1', '!', 0x02}, ++ {"2", "at", '2', '@', 0x03}, ++ {"3", "numbersign", '3', '#', 0x04}, ++ {"4", "dollar", '4', '$', 0x05}, ++ {"5", "percent", '5', '%', 0x06}, ++ {"6", "caret", '6', '^', 0x07}, ++ {"7", "ampersand", '7', '&', 0x08}, ++ {"8", "asterisk", '8', '*', 0x09}, ++ {"9", "parenleft", '9', '(', 0x0a}, ++ {"0", "parenright", '0', ')', 0x0b}, ++ {"minus", "underscore", '-', '_', 0x0c}, ++ {"equal", "plus", '=', '+', 0x0d}, ++ {"backspace", 0, '\b', 0, 0x0e}, ++ {"tab", 0, '\t', 0, 0x0f}, ++ {"q", "Q", 'q', 'Q', 0x10}, ++ {"w", "W", 'w', 'W', 0x11}, ++ {"e", "E", 'e', 'E', 0x12}, ++ {"r", "R", 'r', 'R', 0x13}, ++ {"t", "T", 't', 'T', 0x14}, ++ {"y", "Y", 'y', 'Y', 0x15}, ++ {"u", "U", 'u', 'U', 0x16}, ++ {"i", "I", 'i', 'I', 0x17}, ++ {"o", "O", 'o', 'O', 0x18}, ++ {"p", "P", 'p', 'P', 0x19}, ++ {"bracketleft", "braceleft", '[', '{', 0x1a}, ++ {"bracketright", "braceright", ']', '}', 0x1b}, ++ {"enter", 0, '\n', 0, 0x1c}, ++ {"control", 0, 0, 0, 0x1d}, ++ {"a", "A", 'a', 'A', 0x1e}, ++ {"s", "S", 's', 'S', 0x1f}, ++ {"d", "D", 'd', 'D', 0x20}, ++ {"f", "F", 'f', 'F', 0x21}, ++ {"g", "G", 'g', 'G', 0x22}, ++ {"h", "H", 'h', 'H', 0x23}, ++ {"j", "J", 'j', 'J', 0x24}, ++ {"k", "K", 'k', 'K', 0x25}, ++ {"l", "L", 'l', 'L', 0x26}, ++ {"semicolon", "colon", ';', ':', 0x27}, ++ {"quote", "doublequote", ''', '"', 0x28}, ++ {"backquote", "tilde", '`', '~', 0x29}, ++ {"shift", 0, 0, 0, 0x2a}, ++ {"backslash", "bar", '\', '|', 0x2b}, ++ {"z", "Z", 'z', 'Z', 0x2c}, ++ {"x", "X", 'x', 'X', 0x2d}, ++ {"c", "C", 'c', 'C', 0x2e}, ++ {"v", "V", 'v', 'V', 0x2f}, ++ {"b", "B", 'b', 'B', 0x30}, ++ {"n", "N", 'n', 'N', 0x31}, ++ {"m", "M", 'm', 'M', 0x32}, ++ {"comma", "less", ',', '<', 0x33}, ++ {"period", "greater", '.', '>', 0x34}, ++ {"slash", "question", '/', '?', 0x35}, ++ {"alt", 0, 0, 0, 0x38}, ++ {"space", 0, ' ', 0, 0x39}, ++ {"capslock", 0, 0, 0, 0x3a}, ++ {"F1", 0, 0, 0, 0x3b}, ++ {"F2", 0, 0, 0, 0x3c}, ++ {"F3", 0, 0, 0, 0x3d}, ++ {"F4", 0, 0, 0, 0x3e}, ++ {"F5", 0, 0, 0, 0x3f}, ++ {"F6", 0, 0, 0, 0x40}, ++ {"F7", 0, 0, 0, 0x41}, ++ {"F8", 0, 0, 0, 0x42}, ++ {"F9", 0, 0, 0, 0x43}, ++ {"F10", 0, 0, 0, 0x44}, ++ /* Caution: do not add NumLock here! we cannot deal with it properly. */ ++ {"delete", 0, 0x7f, 0, 0x53} ++}; ++ ++static int ++setkey_func (char *arg, int flags) ++{ ++ char *to_key, *from_key; ++ int to_code, from_code; ++ int map_in_interrupt = 0; ++ ++ auto int find_key_code (char *key); ++ auto int find_ascii_code (char *key); ++ ++ auto int find_key_code (char *key) ++ { ++ int i; ++ ++ for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++) ++ { ++ if (keysym_table[i].unshifted_name && ++ grub_strcmp (key, keysym_table[i].unshifted_name) == 0) ++ return keysym_table[i].keycode; ++ else if (keysym_table[i].shifted_name && ++ grub_strcmp (key, keysym_table[i].shifted_name) == 0) ++ return keysym_table[i].keycode; ++ } ++ ++ return 0; ++ } ++ ++ auto int find_ascii_code (char *key) ++ { ++ int i; ++ ++ for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++) ++ { ++ if (keysym_table[i].unshifted_name && ++ grub_strcmp (key, keysym_table[i].unshifted_name) == 0) ++ return keysym_table[i].unshifted_ascii; ++ else if (keysym_table[i].shifted_name && ++ grub_strcmp (key, keysym_table[i].shifted_name) == 0) ++ return keysym_table[i].shifted_ascii; ++ } ++ ++ return 0; ++ } ++ ++ to_key = arg; ++ from_key = skip_to (0, to_key); ++ ++ if (! *to_key) ++ { ++ /* If the user specifies no argument, reset the key mappings. */ ++ grub_memset (bios_key_map, 0, KEY_MAP_SIZE * sizeof (unsigned short)); ++ grub_memset (ascii_key_map, 0, KEY_MAP_SIZE * sizeof (unsigned short)); ++ ++ return 0; ++ } ++ else if (! *from_key) ++ { ++ /* The user must specify two arguments or zero argument. */ ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ nul_terminate (to_key); ++ nul_terminate (from_key); ++ ++ to_code = find_ascii_code (to_key); ++ from_code = find_ascii_code (from_key); ++ if (! to_code || ! from_code) ++ { ++ map_in_interrupt = 1; ++ to_code = find_key_code (to_key); ++ from_code = find_key_code (from_key); ++ if (! to_code || ! from_code) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++ ++ if (map_in_interrupt) ++ { ++ int i; ++ ++ /* Find an empty slot. */ ++ for (i = 0; i < KEY_MAP_SIZE; i++) ++ { ++ if ((bios_key_map[i] & 0xff) == from_code) ++ /* Perhaps the user wants to overwrite the map. */ ++ break; ++ ++ if (! bios_key_map[i]) ++ break; ++ } ++ ++ if (i == KEY_MAP_SIZE) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ ++ if (to_code == from_code) ++ /* If TO is equal to FROM, delete the entry. */ ++ grub_memmove ((char *) &bios_key_map[i], ++ (char *) &bios_key_map[i + 1], ++ sizeof (unsigned short) * (KEY_MAP_SIZE - i)); ++ else ++ bios_key_map[i] = (to_code << 8) | from_code; ++ ++ /* Ugly but should work. */ ++ unset_int15_handler (); ++ set_int15_handler (); ++ } ++ else ++ { ++ int i; ++ ++ /* Find an empty slot. */ ++ for (i = 0; i < KEY_MAP_SIZE; i++) ++ { ++ if ((ascii_key_map[i] & 0xff) == from_code) ++ /* Perhaps the user wants to overwrite the map. */ ++ break; ++ ++ if (! ascii_key_map[i]) ++ break; ++ } ++ ++ if (i == KEY_MAP_SIZE) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ ++ if (to_code == from_code) ++ /* If TO is equal to FROM, delete the entry. */ ++ grub_memmove ((char *) &ascii_key_map[i], ++ (char *) &ascii_key_map[i + 1], ++ sizeof (unsigned short) * (KEY_MAP_SIZE - i)); ++ else ++ ascii_key_map[i] = (to_code << 8) | from_code; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_setkey = ++{ ++ "setkey", ++ setkey_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "setkey [TO_KEY FROM_KEY]", ++ "Change the keyboard map. The key FROM_KEY is mapped to the key TO_KEY." ++ " A key must be an alphabet, a digit, or one of these: escape, exclam," ++ " at, numbersign, dollar, percent, caret, ampersand, asterisk, parenleft," ++ " parenright, minus, underscore, equal, plus, backspace, tab, bracketleft," ++ " braceleft, bracketright, braceright, enter, control, semicolon, colon," ++ " quote, doublequote, backquote, tilde, shift, backslash, bar, comma," ++ " less, period, greater, slash, question, alt, space, capslock, FX (X" ++ " is a digit), and delete. If no argument is specified, reset key" ++ " mappings." ++}; ++ ++ ++/* setup */ ++static int ++setup_func (char *arg, int flags) ++{ ++ /* Point to the string of the installed drive/partition. */ ++ char *install_ptr; ++ /* Point to the string of the drive/parition where the GRUB images ++ reside. */ ++ char *image_ptr; ++ unsigned long installed_drive, installed_partition; ++ unsigned long image_drive, image_partition; ++ unsigned long tmp_drive, tmp_partition; ++ char stage1[64]; ++ char stage2[64]; ++ char config_filename[64]; ++ char real_config_filename[64]; ++ char cmd_arg[256]; ++ char device[16]; ++ char *buffer = (char *) RAW_ADDR (0x100000); ++ int is_force_lba = 0; ++ char *stage2_arg = 0; ++ char *prefix = 0; ++ ++ auto int check_file (char *file); ++ auto void sprint_device (int drive, int partition); ++ auto int embed_stage1_5 (char * stage1_5, int drive, int partition); ++ ++ /* Check if the file FILE exists like Autoconf. */ ++ int check_file (char *file) ++ { ++ int ret; ++ ++ grub_printf (" Checking if "%s" exists... ", file); ++ ret = grub_open (file); ++ if (ret) ++ { ++ grub_close (); ++ grub_printf ("yes\n"); ++ } ++ else ++ grub_printf ("no\n"); ++ ++ return ret; ++ } ++ ++ /* Construct a device name in DEVICE. */ ++ void sprint_device (int drive, int partition) ++ { ++ grub_sprintf (device, "(%cd%d", ++ (drive & 0x80) ? 'h' : 'f', ++ drive & ~0x80); ++ if ((partition & 0xFF0000) != 0xFF0000) ++ { ++ char tmp[16]; ++ grub_sprintf (tmp, ",%d", (partition >> 16) & 0xFF); ++ grub_strncat (device, tmp, 256); ++ } ++ if ((partition & 0x00FF00) != 0x00FF00) ++ { ++ char tmp[16]; ++ grub_sprintf (tmp, ",%c", 'a' + ((partition >> 8) & 0xFF)); ++ grub_strncat (device, tmp, 256); ++ } ++ grub_strncat (device, ")", 256); ++ } ++ ++ int embed_stage1_5 (char *stage1_5, int drive, int partition) ++ { ++ /* We install GRUB into the MBR, so try to embed the ++ Stage 1.5 in the sectors right after the MBR. */ ++ sprint_device (drive, partition); ++ grub_sprintf (cmd_arg, "%s %s", stage1_5, device); ++ ++ /* Notify what will be run. */ ++ grub_printf (" Running "embed %s"... ", cmd_arg); ++ ++ embed_func (cmd_arg, flags); ++ if (! errnum) ++ { ++ /* Construct the blocklist representation. */ ++ grub_sprintf (buffer, "%s%s", device, embed_info); ++ grub_printf ("succeeded\n"); ++ return 1; ++ } ++ else ++ { ++ grub_printf ("failed (this is not fatal)\n"); ++ return 0; ++ } ++ } ++ ++ struct stage1_5_map { ++ char *fsys; ++ char *name; ++ }; ++ struct stage1_5_map stage1_5_map[] = ++ { ++ {"ext2fs", "/e2fs_stage1_5"}, ++ {"fat", "/fat_stage1_5"}, ++ {"ufs2", "/ufs2_stage1_5"}, ++ {"ffs", "/ffs_stage1_5"}, ++ {"iso9660", "/iso9660_stage1_5"}, ++ {"jfs", "/jfs_stage1_5"}, ++ {"minix", "/minix_stage1_5"}, ++ {"reiserfs", "/reiserfs_stage1_5"}, ++ {"vstafs", "/vstafs_stage1_5"}, ++ {"xfs", "/xfs_stage1_5"} ++ }; ++ ++ tmp_drive = saved_drive; ++ tmp_partition = saved_partition; ++ ++ /* Check if the user specifies --force-lba. */ ++ while (1) ++ { ++ if (grub_memcmp ("--force-lba", arg, sizeof ("--force-lba") - 1) == 0) ++ { ++ is_force_lba = 1; ++ arg = skip_to (0, arg); ++ } ++ else if (grub_memcmp ("--prefix=", arg, sizeof ("--prefix=") - 1) == 0) ++ { ++ prefix = arg + sizeof ("--prefix=") - 1; ++ arg = skip_to (0, arg); ++ nul_terminate (prefix); ++ } ++#ifdef GRUB_UTIL ++ else if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0) ++ { ++ stage2_arg = arg; ++ arg = skip_to (0, arg); ++ nul_terminate (stage2_arg); ++ } ++#endif /* GRUB_UTIL */ ++ else ++ break; ++ } ++ ++ install_ptr = arg; ++ image_ptr = skip_to (0, install_ptr); ++ ++ /* Make sure that INSTALL_PTR is valid. */ ++ set_device (install_ptr); ++ if (errnum) ++ return 1; ++ ++ installed_drive = current_drive; ++ installed_partition = current_partition; ++ ++ /* Mount the drive pointed by IMAGE_PTR. */ ++ if (*image_ptr) ++ { ++ /* If the drive/partition where the images reside is specified, ++ get the drive and the partition. */ ++ set_device (image_ptr); ++ if (errnum) ++ return 1; ++ } ++ else ++ { ++ /* If omitted, use SAVED_PARTITION and SAVED_DRIVE. */ ++ current_drive = saved_drive; ++ current_partition = saved_partition; ++ } ++ ++ image_drive = saved_drive = current_drive; ++ image_partition = saved_partition = current_partition; ++ ++ /* Open it. */ ++ if (! open_device ()) ++ goto fail; ++ ++ /* Check if stage1 exists. If the user doesn't specify the option ++ `--prefix', attempt /boot/grub and /grub. */ ++ /* NOTE: It is dangerous to run this command without `--prefix' in the ++ grub shell, since that affects `--stage2'. */ ++ if (! prefix) ++ { ++ prefix = "/boot/grub"; ++ grub_sprintf (stage1, "%s%s", prefix, "/stage1"); ++ if (! check_file (stage1)) ++ { ++ errnum = ERR_NONE; ++ prefix = "/grub"; ++ grub_sprintf (stage1, "%s%s", prefix, "/stage1"); ++ if (! check_file (stage1)) ++ goto fail; ++ } ++ } ++ else ++ { ++ grub_sprintf (stage1, "%s%s", prefix, "/stage1"); ++ if (! check_file (stage1)) ++ goto fail; ++ } ++ ++ /* The prefix was determined. */ ++ grub_sprintf (stage2, "%s%s", prefix, "/stage2"); ++ grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst"); ++ *real_config_filename = 0; ++ ++ /* Check if stage2 exists. */ ++ if (! check_file (stage2)) ++ goto fail; ++ ++ { ++ char *fsys = fsys_table[fsys_type].name; ++ int i; ++ int size = sizeof (stage1_5_map) / sizeof (stage1_5_map[0]); ++ ++ /* Iterate finding the same filesystem name as FSYS. */ ++ for (i = 0; i < size; i++) ++ if (grub_strcmp (fsys, stage1_5_map[i].fsys) == 0) ++ { ++ /* OK, check if the Stage 1.5 exists. */ ++ char stage1_5[64]; ++ ++ grub_sprintf (stage1_5, "%s%s", prefix, stage1_5_map[i].name); ++ if (check_file (stage1_5)) ++ { ++ if (embed_stage1_5 (stage1_5, ++ installed_drive, installed_partition) ++ || embed_stage1_5 (stage1_5, ++ image_drive, image_partition)) ++ { ++ grub_strcpy (real_config_filename, config_filename); ++ sprint_device (image_drive, image_partition); ++ grub_sprintf (config_filename, "%s%s", device, stage2); ++ grub_strcpy (stage2, buffer); ++ } ++ } ++ errnum = 0; ++ break; ++ } ++ } ++ ++ /* Construct a string that is used by the command "install" as its ++ arguments. */ ++ sprint_device (installed_drive, installed_partition); ++ ++#if 1 ++ /* Don't embed a drive number unnecessarily. */ ++ grub_sprintf (cmd_arg, "%s%s%s%s %s%s %s p %s %s", ++ is_force_lba? "--force-lba " : "", ++ stage2_arg? stage2_arg : "", ++ stage2_arg? " " : "", ++ stage1, ++ (installed_drive != image_drive) ? "d " : "", ++ device, ++ stage2, ++ config_filename, ++ real_config_filename); ++#else /* NOT USED */ ++ /* This code was used, because we belived some BIOSes had a problem ++ that they didn't pass a booting drive correctly. It turned out, ++ however, stage1 could trash a booting drive when checking LBA support, ++ because some BIOSes modified the register %dx in INT 13H, AH=48H. ++ So it becamed unclear whether GRUB should use a pre-defined booting ++ drive or not. If the problem still exists, it would be necessary to ++ switch back to this code. */ ++ grub_sprintf (cmd_arg, "%s%s%s%s d %s %s p %s %s", ++ is_force_lba? "--force-lba " : "", ++ stage2_arg? stage2_arg : "", ++ stage2_arg? " " : "", ++ stage1, ++ device, ++ stage2, ++ config_filename, ++ real_config_filename); ++#endif /* NOT USED */ ++ ++ /* Notify what will be run. */ ++ grub_printf (" Running "install %s"... ", cmd_arg); ++ ++ /* Make sure that SAVED_DRIVE and SAVED_PARTITION are identical ++ with IMAGE_DRIVE and IMAGE_PARTITION, respectively. */ ++ saved_drive = image_drive; ++ saved_partition = image_partition; ++ ++ /* Run the command. */ ++ if (! install_func (cmd_arg, flags)) ++ grub_printf ("succeeded\nDone.\n"); ++ else ++ grub_printf ("failed\n"); ++ ++ fail: ++ saved_drive = tmp_drive; ++ saved_partition = tmp_partition; ++ return errnum; ++} ++ ++static struct builtin builtin_setup = ++{ ++ "setup", ++ setup_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "setup [--prefix=DIR] [--stage2=STAGE2_FILE] [--force-lba] INSTALL_DEVICE [IMAGE_DEVICE]", ++ "Set up the installation of GRUB automatically. This command uses" ++ " the more flexible command "install" in the backend and installs" ++ " GRUB into the device INSTALL_DEVICE. If IMAGE_DEVICE is specified," ++ " then find the GRUB images in the device IMAGE_DEVICE, otherwise" ++ " use the current "root device", which can be set by the command" ++ " "root". If you know that your BIOS should support LBA but GRUB" ++ " doesn't work in LBA mode, specify the option `--force-lba'." ++ " If you install GRUB under the grub shell and you cannot unmount the" ++ " partition where GRUB images reside, specify the option `--stage2'" ++ " to tell GRUB the file name under your OS." ++}; ++ ++ ++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) ++/* terminal */ ++static int ++terminal_func (char *arg, int flags) ++{ ++ /* The index of the default terminal in TERM_TABLE. */ ++ int default_term = -1; ++ struct term_entry *prev_term = current_term; ++ int to = -1; ++ int lines = 0; ++ int no_message = 0; ++ unsigned long term_flags = 0; ++ /* XXX: Assume less than 32 terminals. */ ++ unsigned long term_bitmap = 0; ++ ++ /* Get GNU-style long options. */ ++ while (1) ++ { ++ if (grub_memcmp (arg, "--dumb", sizeof ("--dumb") - 1) == 0) ++ term_flags |= TERM_DUMB; ++ else if (grub_memcmp (arg, "--no-echo", sizeof ("--no-echo") - 1) == 0) ++ /* ``--no-echo'' implies ``--no-edit''. */ ++ term_flags |= (TERM_NO_ECHO | TERM_NO_EDIT); ++ else if (grub_memcmp (arg, "--no-edit", sizeof ("--no-edit") - 1) == 0) ++ term_flags |= TERM_NO_EDIT; ++ else if (grub_memcmp (arg, "--timeout=", sizeof ("--timeout=") - 1) == 0) ++ { ++ char *val = arg + sizeof ("--timeout=") - 1; ++ ++ if (! safe_parse_maxint (&val, &to)) ++ return 1; ++ } ++ else if (grub_memcmp (arg, "--lines=", sizeof ("--lines=") - 1) == 0) ++ { ++ char *val = arg + sizeof ("--lines=") - 1; ++ ++ if (! safe_parse_maxint (&val, &lines)) ++ return 1; ++ ++ /* Probably less than four is meaningless.... */ ++ if (lines < 4) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++ else if (grub_memcmp (arg, "--silent", sizeof ("--silent") - 1) == 0) ++ no_message = 1; ++ else ++ break; ++ ++ arg = skip_to (0, arg); ++ } ++ ++ /* If no argument is specified, show current setting. */ ++ if (! *arg) ++ { ++ grub_printf ("%s%s%s%s\n", ++ current_term->name, ++ current_term->flags & TERM_DUMB ? " (dumb)" : "", ++ current_term->flags & TERM_NO_EDIT ? " (no edit)" : "", ++ current_term->flags & TERM_NO_ECHO ? " (no echo)" : ""); ++ return 0; ++ } ++ ++ while (*arg) ++ { ++ int i; ++ char *next = skip_to (0, arg); ++ ++ nul_terminate (arg); ++ ++ for (i = 0; term_table[i].name; i++) ++ { ++ if (grub_strcmp (arg, term_table[i].name) == 0) ++ { ++ if (term_table[i].flags & TERM_NEED_INIT) ++ { ++ errnum = ERR_DEV_NEED_INIT; ++ return 1; ++ } ++ ++ if (default_term < 0) ++ default_term = i; ++ ++ term_bitmap |= (1 << i); ++ break; ++ } ++ } ++ ++ if (! term_table[i].name) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ arg = next; ++ } ++ ++ /* If multiple terminals are specified, wait until the user pushes any ++ key on one of the terminals. */ ++ if (term_bitmap & ~(1 << default_term)) ++ { ++ int time1, time2 = -1; ++ ++ /* XXX: Disable the pager. */ ++ count_lines = -1; ++ ++ /* Get current time. */ ++ while ((time1 = getrtsecs ()) == 0xFF) ++ ; ++ ++ /* Wait for a key input. */ ++ while (to) ++ { ++ int i; ++ ++ for (i = 0; term_table[i].name; i++) ++ { ++ if (term_bitmap & (1 << i)) ++ { ++ if (term_table[i].checkkey () >= 0) ++ { ++ (void) term_table[i].getkey (); ++ default_term = i; ++ ++ goto end; ++ } ++ } ++ } ++ ++ /* Prompt the user, once per sec. */ ++ if ((time1 = getrtsecs ()) != time2 && time1 != 0xFF) ++ { ++ if (! no_message) ++ { ++ /* Need to set CURRENT_TERM to each of selected ++ terminals. */ ++ for (i = 0; term_table[i].name; i++) ++ if (term_bitmap & (1 << i)) ++ { ++ current_term = term_table + i; ++ grub_printf ("\rPress any key to continue.\n"); ++ } ++ ++ /* Restore CURRENT_TERM. */ ++ current_term = prev_term; ++ } ++ ++ time2 = time1; ++ if (to > 0) ++ to--; ++ } ++ } ++ } ++ ++ end: ++ current_term = term_table + default_term; ++ current_term->flags = term_flags; ++ ++ if (lines) ++ max_lines = lines; ++ else ++ /* 24 would be a good default value. */ ++ max_lines = 24; ++ ++ /* If the interface is currently the command-line, ++ restart it to repaint the screen. */ ++ if (current_term != prev_term && (flags & BUILTIN_CMDLINE)) ++ grub_longjmp (restart_cmdline_env, 0); ++ ++ return 0; ++} ++ ++static struct builtin builtin_terminal = ++{ ++ "terminal", ++ terminal_func, ++ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]", ++ "Select a terminal. When multiple terminals are specified, wait until" ++ " you push any key to continue. If both console and serial are specified," ++ " the terminal to which you input a key first will be selected. If no" ++ " argument is specified, print current setting. The option --dumb" ++ " specifies that your terminal is dumb, otherwise, vt100-compatibility" ++ " is assumed. If you specify --no-echo, input characters won't be echoed." ++ " If you specify --no-edit, the BASH-like editing feature will be disabled." ++ " If --timeout is present, this command will wait at most for SECS" ++ " seconds. The option --lines specifies the maximum number of lines." ++ " The option --silent is used to suppress messages." ++}; ++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ ++ ++ ++#ifdef SUPPORT_SERIAL ++static int ++terminfo_func (char *arg, int flags) ++{ ++ struct terminfo term; ++ ++ if (*arg) ++ { ++ struct ++ { ++ const char *name; ++ char *var; ++ } ++ options[] = ++ { ++ {"--name=", term.name}, ++ {"--cursor-address=", term.cursor_address}, ++ {"--clear-screen=", term.clear_screen}, ++ {"--enter-standout-mode=", term.enter_standout_mode}, ++ {"--exit-standout-mode=", term.exit_standout_mode} ++ }; ++ ++ grub_memset (&term, 0, sizeof (term)); ++ ++ while (*arg) ++ { ++ int i; ++ char *next = skip_to (0, arg); ++ ++ nul_terminate (arg); ++ ++ for (i = 0; i < sizeof (options) / sizeof (options[0]); i++) ++ { ++ const char *name = options[i].name; ++ int len = grub_strlen (name); ++ ++ if (! grub_memcmp (arg, name, len)) ++ { ++ grub_strcpy (options[i].var, ti_unescape_string (arg + len)); ++ break; ++ } ++ } ++ ++ if (i == sizeof (options) / sizeof (options[0])) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return errnum; ++ } ++ ++ arg = next; ++ } ++ ++ if (term.name[0] == 0 || term.cursor_address[0] == 0) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return errnum; ++ } ++ ++ ti_set_term (&term); ++ } ++ else ++ { ++ /* No option specifies printing out current settings. */ ++ ti_get_term (&term); ++ ++ grub_printf ("name=%s\n", ++ ti_escape_string (term.name)); ++ grub_printf ("cursor_address=%s\n", ++ ti_escape_string (term.cursor_address)); ++ grub_printf ("clear_screen=%s\n", ++ ti_escape_string (term.clear_screen)); ++ grub_printf ("enter_standout_mode=%s\n", ++ ti_escape_string (term.enter_standout_mode)); ++ grub_printf ("exit_standout_mode=%s\n", ++ ti_escape_string (term.exit_standout_mode)); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_terminfo = ++{ ++ "terminfo", ++ terminfo_func, ++ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "terminfo [--name=NAME --cursor-address=SEQ [--clear-screen=SEQ]" ++ " [--enter-standout-mode=SEQ] [--exit-standout-mode=SEQ]]", ++ ++ "Define the capabilities of your terminal. Use this command to" ++ " define escape sequences, if it is not vt100-compatible." ++ " You may use \e for ESC and ^X for a control character." ++ " If no option is specified, the current settings are printed." ++}; ++#endif /* SUPPORT_SERIAL */ ++ ++ ++/* testload */ ++static int ++testload_func (char *arg, int flags) ++{ ++ int i; ++ ++ kernel_type = KERNEL_TYPE_NONE; ++ ++ if (! grub_open (arg)) ++ return 1; ++ ++ disk_read_hook = disk_read_print_func; ++ ++ /* Perform filesystem test on the specified file. */ ++ /* Read whole file first. */ ++ grub_printf ("Whole file: "); ++ ++ grub_read ((char *) RAW_ADDR (0x100000), -1); ++ ++ /* Now compare two sections of the file read differently. */ ++ ++ for (i = 0; i < 0x10ac0; i++) ++ { ++ *((unsigned char *) RAW_ADDR (0x200000 + i)) = 0; ++ *((unsigned char *) RAW_ADDR (0x300000 + i)) = 1; ++ } ++ ++ /* First partial read. */ ++ grub_printf ("\nPartial read 1: "); ++ ++ grub_seek (0); ++ grub_read ((char *) RAW_ADDR (0x200000), 0x7); ++ grub_read ((char *) RAW_ADDR (0x200007), 0x100); ++ grub_read ((char *) RAW_ADDR (0x200107), 0x10); ++ grub_read ((char *) RAW_ADDR (0x200117), 0x999); ++ grub_read ((char *) RAW_ADDR (0x200ab0), 0x10); ++ grub_read ((char *) RAW_ADDR (0x200ac0), 0x10000); ++ ++ /* Second partial read. */ ++ grub_printf ("\nPartial read 2: "); ++ ++ grub_seek (0); ++ grub_read ((char *) RAW_ADDR (0x300000), 0x10000); ++ grub_read ((char *) RAW_ADDR (0x310000), 0x10); ++ grub_read ((char *) RAW_ADDR (0x310010), 0x7); ++ grub_read ((char *) RAW_ADDR (0x310017), 0x10); ++ grub_read ((char *) RAW_ADDR (0x310027), 0x999); ++ grub_read ((char *) RAW_ADDR (0x3109c0), 0x100); ++ ++ grub_printf ("\nHeader1 = 0x%x, next = 0x%x, next = 0x%x, next = 0x%x\n", ++ *((int *) RAW_ADDR (0x200000)), ++ *((int *) RAW_ADDR (0x200004)), ++ *((int *) RAW_ADDR (0x200008)), ++ *((int *) RAW_ADDR (0x20000c))); ++ ++ grub_printf ("Header2 = 0x%x, next = 0x%x, next = 0x%x, next = 0x%x\n", ++ *((int *) RAW_ADDR (0x300000)), ++ *((int *) RAW_ADDR (0x300004)), ++ *((int *) RAW_ADDR (0x300008)), ++ *((int *) RAW_ADDR (0x30000c))); ++ ++ for (i = 0; i < 0x10ac0; i++) ++ if (*((unsigned char *) RAW_ADDR (0x200000 + i)) ++ != *((unsigned char *) RAW_ADDR (0x300000 + i))) ++ break; ++ ++ grub_printf ("Max is 0x10ac0: i=0x%x, filepos=0x%x\n", i, filepos); ++ disk_read_hook = 0; ++ grub_close (); ++ return 0; ++} ++ ++static struct builtin builtin_testload = ++{ ++ "testload", ++ testload_func, ++ BUILTIN_CMDLINE, ++ "testload FILE", ++ "Read the entire contents of FILE in several different ways and" ++ " compares them, to test the filesystem code. The output is somewhat" ++ " cryptic, but if no errors are reported and the final `i=X," ++ " filepos=Y' reading has X and Y equal, then it is definitely" ++ " consistent, and very likely works correctly subject to a" ++ " consistent offset error. If this test succeeds, then a good next" ++ " step is to try loading a kernel." ++}; ++ ++ ++/* testvbe MODE */ ++static int ++testvbe_func (char *arg, int flags) ++{ ++ int mode_number; ++ struct vbe_controller controller; ++ struct vbe_mode mode; ++ ++ if (! *arg) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ if (! safe_parse_maxint (&arg, &mode_number)) ++ return 1; ++ ++ /* Preset `VBE2'. */ ++ grub_memmove (controller.signature, "VBE2", 4); ++ ++ /* Detect VBE BIOS. */ ++ if (get_vbe_controller_info (&controller) != 0x004F) ++ { ++ grub_printf (" VBE BIOS is not present.\n"); ++ return 0; ++ } ++ ++ if (controller.version < 0x0200) ++ { ++ grub_printf (" VBE version %d.%d is not supported.\n", ++ (int) (controller.version >> 8), ++ (int) (controller.version & 0xFF)); ++ return 0; ++ } ++ ++ if (get_vbe_mode_info (mode_number, &mode) != 0x004F ++ || (mode.mode_attributes & 0x0091) != 0x0091) ++ { ++ grub_printf (" Mode 0x%x is not supported.\n", mode_number); ++ return 0; ++ } ++ ++ /* Now trip to the graphics mode. */ ++ if (set_vbe_mode (mode_number | (1 << 14)) != 0x004F) ++ { ++ grub_printf (" Switching to Mode 0x%x failed.\n", mode_number); ++ return 0; ++ } ++ ++ /* Draw something on the screen... */ ++ { ++ unsigned char *base_buf = (unsigned char *) mode.phys_base; ++ int scanline = controller.version >= 0x0300 ++ ? mode.linear_bytes_per_scanline : mode.bytes_per_scanline; ++ /* FIXME: this assumes that any depth is a modulo of 8. */ ++ int bpp = mode.bits_per_pixel / 8; ++ int width = mode.x_resolution; ++ int height = mode.y_resolution; ++ int x, y; ++ unsigned color = 0; ++ ++ /* Iterate drawing on the screen, until the user hits any key. */ ++ while (checkkey () == -1) ++ { ++ for (y = 0; y < height; y++) ++ { ++ unsigned char *line_buf = base_buf + scanline * y; ++ ++ for (x = 0; x < width; x++) ++ { ++ unsigned char *buf = line_buf + bpp * x; ++ int i; ++ ++ for (i = 0; i < bpp; i++, buf++) ++ *buf = (color >> (i * 8)) & 0xff; ++ } ++ ++ color++; ++ } ++ } ++ ++ /* Discard the input. */ ++ getkey (); ++ } ++ ++ /* Back to the default text mode. */ ++ if (set_vbe_mode (0x03) != 0x004F) ++ { ++ /* Why?! */ ++ grub_reboot (); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_testvbe = ++{ ++ "testvbe", ++ testvbe_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "testvbe MODE", ++ "Test the VBE mode MODE. Hit any key to return." ++}; ++ ++ ++#ifdef SUPPORT_NETBOOT ++/* tftpserver */ ++static int ++tftpserver_func (char *arg, int flags) ++{ ++ if (! *arg || ! ifconfig (0, 0, 0, arg)) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ print_network_configuration (); ++ return 0; ++} ++ ++static struct builtin builtin_tftpserver = ++{ ++ "tftpserver", ++ tftpserver_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "tftpserver IPADDR", ++ "Override the TFTP server address." ++}; ++#endif /* SUPPORT_NETBOOT */ ++ ++ ++/* timeout */ ++static int ++timeout_func (char *arg, int flags) ++{ ++ if (! safe_parse_maxint (&arg, &grub_timeout)) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_timeout = ++{ ++ "timeout", ++ timeout_func, ++ BUILTIN_MENU, ++#if 0 ++ "timeout SEC", ++ "Set a timeout, in SEC seconds, before automatically booting the" ++ " default entry (normally the first entry defined)." ++#endif ++}; ++ ++ ++/* title */ ++static int ++title_func (char *arg, int flags) ++{ ++ /* This function is not actually used at least currently. */ ++ return 0; ++} ++ ++static struct builtin builtin_title = ++{ ++ "title", ++ title_func, ++ BUILTIN_TITLE, ++#if 0 ++ "title [NAME ...]", ++ "Start a new boot entry, and set its name to the contents of the" ++ " rest of the line, starting with the first non-space character." ++#endif ++}; ++ ++ ++/* unhide */ ++static int ++unhide_func (char *arg, int flags) ++{ ++ if (! set_device (arg)) ++ return 1; ++ ++ if (! set_partition_hidden_flag (0)) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_unhide = ++{ ++ "unhide", ++ unhide_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "unhide PARTITION", ++ "Unhide PARTITION by clearing the "hidden" bit in its" ++ " partition type code." ++}; ++ ++ ++/* uppermem */ ++static int ++uppermem_func (char *arg, int flags) ++{ ++ if (! safe_parse_maxint (&arg, (int *) &mbi.mem_upper)) ++ return 1; ++ ++ mbi.flags &= ~MB_INFO_MEM_MAP; ++ return 0; ++} ++ ++static struct builtin builtin_uppermem = ++{ ++ "uppermem", ++ uppermem_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "uppermem KBYTES", ++ "Force GRUB to assume that only KBYTES kilobytes of upper memory are" ++ " installed. Any system address range maps are discarded." ++}; ++ ++ ++/* vbeprobe */ ++static int ++vbeprobe_func (char *arg, int flags) ++{ ++ struct vbe_controller controller; ++ unsigned short *mode_list; ++ int mode_number = -1; ++ ++ auto unsigned long vbe_far_ptr_to_linear (unsigned long); ++ ++ unsigned long vbe_far_ptr_to_linear (unsigned long ptr) ++ { ++ unsigned short seg = (ptr >> 16); ++ unsigned short off = (ptr & 0xFFFF); ++ ++ return (seg << 4) + off; ++ } ++ ++ if (*arg) ++ { ++ if (! safe_parse_maxint (&arg, &mode_number)) ++ return 1; ++ } ++ ++ /* Set the signature to `VBE2', to obtain VBE 3.0 information. */ ++ grub_memmove (controller.signature, "VBE2", 4); ++ ++ if (get_vbe_controller_info (&controller) != 0x004F) ++ { ++ grub_printf (" VBE BIOS is not present.\n"); ++ return 0; ++ } ++ ++ /* Check the version. */ ++ if (controller.version < 0x0200) ++ { ++ grub_printf (" VBE version %d.%d is not supported.\n", ++ (int) (controller.version >> 8), ++ (int) (controller.version & 0xFF)); ++ return 0; ++ } ++ ++ /* Print some information. */ ++ grub_printf (" VBE version %d.%d\n", ++ (int) (controller.version >> 8), ++ (int) (controller.version & 0xFF)); ++ ++ /* Iterate probing modes. */ ++ for (mode_list ++ = (unsigned short *) vbe_far_ptr_to_linear (controller.video_mode); ++ *mode_list != 0xFFFF; ++ mode_list++) ++ { ++ struct vbe_mode mode; ++ ++ if (get_vbe_mode_info (*mode_list, &mode) != 0x004F) ++ continue; ++ ++ /* Skip this, if this is not supported or linear frame buffer ++ mode is not support. */ ++ if ((mode.mode_attributes & 0x0081) != 0x0081) ++ continue; ++ ++ if (mode_number == -1 || mode_number == *mode_list) ++ { ++ char *model; ++ switch (mode.memory_model) ++ { ++ case 0x00: model = "Text"; break; ++ case 0x01: model = "CGA graphics"; break; ++ case 0x02: model = "Hercules graphics"; break; ++ case 0x03: model = "Planar"; break; ++ case 0x04: model = "Packed pixel"; break; ++ case 0x05: model = "Non-chain 4, 256 color"; break; ++ case 0x06: model = "Direct Color"; break; ++ case 0x07: model = "YUV"; break; ++ default: model = "Unknown"; break; ++ } ++ ++ grub_printf (" 0x%x: %s, %ux%ux%u\n", ++ (unsigned) *mode_list, ++ model, ++ (unsigned) mode.x_resolution, ++ (unsigned) mode.y_resolution, ++ (unsigned) mode.bits_per_pixel); ++ ++ if (mode_number != -1) ++ break; ++ } ++ } ++ ++ if (mode_number != -1 && mode_number != *mode_list) ++ grub_printf (" Mode 0x%x is not found or supported.\n", mode_number); ++ ++ return 0; ++} ++ ++static struct builtin builtin_vbeprobe = ++{ ++ "vbeprobe", ++ vbeprobe_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "vbeprobe [MODE]", ++ "Probe VBE information. If the mode number MODE is specified, show only" ++ " the information about only the mode." ++}; ++ ++ ++/* The table of builtin commands. Sorted in dictionary order. */ ++struct builtin *builtin_table[] = ++{ ++ &builtin_blocklist, ++ &builtin_boot, ++#ifdef SUPPORT_NETBOOT ++ &builtin_bootp, ++#endif /* SUPPORT_NETBOOT */ ++ &builtin_cat, ++ &builtin_chainloader, ++ &builtin_cmp, ++ &builtin_color, ++ &builtin_configfile, ++ &builtin_debug, ++ &builtin_default, ++#ifdef GRUB_UTIL ++ &builtin_device, ++#endif /* GRUB_UTIL */ ++#ifdef SUPPORT_NETBOOT ++ &builtin_dhcp, ++#endif /* SUPPORT_NETBOOT */ ++ &builtin_displayapm, ++ &builtin_displaymem, ++#ifdef GRUB_UTIL ++ &builtin_dump, ++#endif /* GRUB_UTIL */ ++ &builtin_embed, ++ &builtin_fallback, ++ &builtin_find, ++ &builtin_fstest, ++ &builtin_geometry, ++ &builtin_halt, ++ &builtin_help, ++ &builtin_hiddenmenu, ++ &builtin_hide, ++#ifdef SUPPORT_NETBOOT ++ &builtin_ifconfig, ++#endif /* SUPPORT_NETBOOT */ ++ &builtin_impsprobe, ++ &builtin_initrd, ++ &builtin_install, ++ &builtin_ioprobe, ++ &builtin_kernel, ++ &builtin_lock, ++ &builtin_makeactive, ++ &builtin_map, ++#ifdef USE_MD5_PASSWORDS ++ &builtin_md5crypt, ++#endif /* USE_MD5_PASSWORDS */ ++ &builtin_module, ++ &builtin_modulenounzip, ++ &builtin_pager, ++ &builtin_partnew, ++ &builtin_parttype, ++ &builtin_password, ++ &builtin_pause, ++#ifdef GRUB_UTIL ++ &builtin_quit, ++#endif /* GRUB_UTIL */ ++#ifdef SUPPORT_NETBOOT ++ &builtin_rarp, ++#endif /* SUPPORT_NETBOOT */ ++ &builtin_read, ++ &builtin_reboot, ++ &builtin_root, ++ &builtin_rootnoverify, ++ &builtin_savedefault, ++#ifdef SUPPORT_SERIAL ++ &builtin_serial, ++#endif /* SUPPORT_SERIAL */ ++ &builtin_setkey, ++ &builtin_setup, ++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) ++ &builtin_terminal, ++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ ++#ifdef SUPPORT_SERIAL ++ &builtin_terminfo, ++#endif /* SUPPORT_SERIAL */ ++ &builtin_testload, ++ &builtin_testvbe, ++#ifdef SUPPORT_NETBOOT ++ &builtin_tftpserver, ++#endif /* SUPPORT_NETBOOT */ ++ &builtin_timeout, ++ &builtin_title, ++ &builtin_unhide, ++ &builtin_uppermem, ++ &builtin_vbeprobe, ++ 0 ++}; +diff -Nur grub-0.97/stage2/char_io.c grub-0.97-patched/stage2/char_io.c +--- grub-0.97/stage2/char_io.c 2005-02-01 21:51:23.000000000 +0100 ++++ grub-0.97-patched/stage2/char_io.c 2012-11-11 17:06:52.556085241 +0100 +@@ -35,6 +35,7 @@ + { + "console", + 0, ++ 24, + console_putchar, + console_checkkey, + console_getkey, +@@ -43,13 +44,16 @@ + console_cls, + console_setcolorstate, + console_setcolor, +- console_setcursor ++ console_setcursor, ++ 0, ++ 0 + }, + #ifdef SUPPORT_SERIAL + { + "serial", + /* A serial device must be initialized. */ + TERM_NEED_INIT, ++ 24, + serial_putchar, + serial_checkkey, + serial_getkey, +@@ -58,6 +62,8 @@ + serial_cls, + serial_setcolorstate, + 0, ++ 0, ++ 0, + 0 + }, + #endif /* SUPPORT_SERIAL */ +@@ -65,6 +71,7 @@ + { + "hercules", + 0, ++ 24, + hercules_putchar, + console_checkkey, + console_getkey, +@@ -73,9 +80,28 @@ + hercules_cls, + hercules_setcolorstate, + hercules_setcolor, +- hercules_setcursor ++ hercules_setcursor, ++ 0, ++ 0 + }, + #endif /* SUPPORT_HERCULES */ ++#ifdef SUPPORT_GRAPHICS ++ { "graphics", ++ TERM_NEED_INIT, /* flags */ ++ 30, /* number of lines */ ++ graphics_putchar, /* putchar */ ++ console_checkkey, /* checkkey */ ++ console_getkey, /* getkey */ ++ graphics_getxy, /* getxy */ ++ graphics_gotoxy, /* gotoxy */ ++ graphics_cls, /* cls */ ++ graphics_setcolorstate, /* setcolorstate */ ++ graphics_setcolor, /* setcolor */ ++ graphics_setcursor, /* nocursor */ ++ graphics_init, /* initialize */ ++ graphics_end /* shutdown */ ++ }, ++#endif /* SUPPORT_GRAPHICS */ + /* This must be the last entry. */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + }; +@@ -1046,13 +1072,15 @@ + the following grub_printf call will print newlines. */ + count_lines = -1; + ++ grub_printf("\n"); + if (current_term->setcolorstate) + current_term->setcolorstate (COLOR_STATE_HIGHLIGHT); + +- grub_printf ("\n[Hit return to continue]"); ++ grub_printf ("[Hit return to continue]"); + + if (current_term->setcolorstate) + current_term->setcolorstate (COLOR_STATE_NORMAL); ++ + + do + { +@@ -1090,7 +1118,7 @@ + cls (void) + { + /* If the terminal is dumb, there is no way to clean the terminal. */ +- if (current_term->flags & TERM_DUMB) ++ if (current_term->flags & TERM_DUMB) + grub_putchar ('\n'); + else + current_term->cls (); +@@ -1174,37 +1202,62 @@ + } + #endif /* ! STAGE1_5 */ + ++#ifdef GRUB_UTIL ++# ifdef __PIC__ ++# if defined(HAVE_START_SYMBOL) && defined(HAVE_END_SYMBOL) ++ extern char start[]; ++ extern char end[]; ++# elif defined(HAVE_USCORE_START_SYMBOL) && defined (HAVE_USCORE_END_SYMBOL) ++ extern char _start[]; ++ extern char _end[]; ++# endif ++# endif ++#endif + int +-memcheck (int addr, int len) ++memcheck (unsigned long addr, unsigned long len) + { + #ifdef GRUB_UTIL +- auto int start_addr (void); +- auto int end_addr (void); ++# ifdef __PIC__ ++# if defined(HAVE_START_SYMBOL) && defined(HAVE_END_SYMBOL) ++ if (start <= addr && end > addr + len) ++ return ! errnum; ++# elif defined(HAVE_USCORE_START_SYMBOL) && defined (HAVE_USCORE_END_SYMBOL) ++ if (_start <= addr && _end > addr + len) ++ return ! errnum; ++# endif ++# else /* __PIC__ */ ++ auto unsigned long start_addr (void); ++ auto unsigned long end_addr (void); + +- auto int start_addr (void) ++ auto unsigned long start_addr (void) + { +- int ret; +-# if defined(HAVE_START_SYMBOL) ++ unsigned long ret; ++# if defined(HAVE_START_SYMBOL) + asm volatile ("movl $start, %0" : "=a" (ret)); +-# elif defined(HAVE_USCORE_START_SYMBOL) ++# elif defined(HAVE_USCORE_START_SYMBOL) + asm volatile ("movl $_start, %0" : "=a" (ret)); +-# endif ++# else ++ erk! /* function would return undefined data in this case - barf */ ++# endif + return ret; + } + +- auto int end_addr (void) ++ auto unsigned long end_addr (void) + { +- int ret; +-# if defined(HAVE_END_SYMBOL) ++ unsigned long ret; ++# if defined(HAVE_END_SYMBOL) + asm volatile ("movl $end, %0" : "=a" (ret)); +-# elif defined(HAVE_USCORE_END_SYMBOL) ++# elif defined(HAVE_USCORE_END_SYMBOL) + asm volatile ("movl $_end, %0" : "=a" (ret)); +-# endif ++# else ++ erk! /* function would return undefined data in this case - barf */ ++# endif + return ret; + } + + if (start_addr () <= addr && end_addr () > addr + len) + return ! errnum; ++# endif /* __PIC__ */ + #endif /* GRUB_UTIL */ + + if ((addr < RAW_ADDR (0x1000)) +@@ -1217,10 +1270,20 @@ + return ! errnum; + } + ++void ++grub_memcpy(void *dest, const void *src, int len) ++{ ++ int i; ++ register char *d = (char*)dest, *s = (char*)src; ++ ++ for (i = 0; i < len; i++) ++ d[i] = s[i]; ++} ++ + void * + grub_memmove (void *to, const void *from, int len) + { +- if (memcheck ((int) to, len)) ++ if (memcheck ((unsigned long) to, len)) + { + /* This assembly code is stolen from + linux-2.2.2/include/asm-i386/string.h. This is not very fast +@@ -1258,7 +1321,7 @@ + { + char *p = start; + +- if (memcheck ((int) start, len)) ++ if (memcheck ((unsigned long) start, len)) + { + while (len -- > 0) + *p ++ = c; +diff -Nur grub-0.97/stage2/char_io.c.orig grub-0.97-patched/stage2/char_io.c.orig +--- grub-0.97/stage2/char_io.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/char_io.c.orig 2005-02-01 21:51:23.000000000 +0100 +@@ -0,0 +1,1283 @@ ++/* char_io.c - basic console input and output */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 1999,2000,2001,2002,2004 Free Software Foundation, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include <shared.h> ++#include <term.h> ++ ++#ifdef SUPPORT_HERCULES ++# include <hercules.h> ++#endif ++ ++#ifdef SUPPORT_SERIAL ++# include <serial.h> ++#endif ++ ++#ifndef STAGE1_5 ++struct term_entry term_table[] = ++ { ++ { ++ "console", ++ 0, ++ console_putchar, ++ console_checkkey, ++ console_getkey, ++ console_getxy, ++ console_gotoxy, ++ console_cls, ++ console_setcolorstate, ++ console_setcolor, ++ console_setcursor ++ }, ++#ifdef SUPPORT_SERIAL ++ { ++ "serial", ++ /* A serial device must be initialized. */ ++ TERM_NEED_INIT, ++ serial_putchar, ++ serial_checkkey, ++ serial_getkey, ++ serial_getxy, ++ serial_gotoxy, ++ serial_cls, ++ serial_setcolorstate, ++ 0, ++ 0 ++ }, ++#endif /* SUPPORT_SERIAL */ ++#ifdef SUPPORT_HERCULES ++ { ++ "hercules", ++ 0, ++ hercules_putchar, ++ console_checkkey, ++ console_getkey, ++ hercules_getxy, ++ hercules_gotoxy, ++ hercules_cls, ++ hercules_setcolorstate, ++ hercules_setcolor, ++ hercules_setcursor ++ }, ++#endif /* SUPPORT_HERCULES */ ++ /* This must be the last entry. */ ++ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ++ }; ++ ++/* This must be console. */ ++struct term_entry *current_term = term_table; ++ ++int max_lines = 24; ++int count_lines = -1; ++int use_pager = 1; ++#endif ++ ++void ++print_error (void) ++{ ++ if (errnum > ERR_NONE && errnum < MAX_ERR_NUM) ++#ifndef STAGE1_5 ++ /* printf("\7\n %s\n", err_list[errnum]); */ ++ printf ("\nError %u: %s\n", errnum, err_list[errnum]); ++#else /* STAGE1_5 */ ++ printf ("Error %u\n", errnum); ++#endif /* STAGE1_5 */ ++} ++ ++char * ++convert_to_ascii (char *buf, int c,...) ++{ ++ unsigned long num = *((&c) + 1), mult = 10; ++ char *ptr = buf; ++ ++#ifndef STAGE1_5 ++ if (c == 'x' || c == 'X') ++ mult = 16; ++ ++ if ((num & 0x80000000uL) && c == 'd') ++ { ++ num = (~num) + 1; ++ *(ptr++) = '-'; ++ buf++; ++ } ++#endif ++ ++ do ++ { ++ int dig = num % mult; ++ *(ptr++) = ((dig > 9) ? dig + 'a' - 10 : '0' + dig); ++ } ++ while (num /= mult); ++ ++ /* reorder to correct direction!! */ ++ { ++ char *ptr1 = ptr - 1; ++ char *ptr2 = buf; ++ while (ptr1 > ptr2) ++ { ++ int tmp = *ptr1; ++ *ptr1 = *ptr2; ++ *ptr2 = tmp; ++ ptr1--; ++ ptr2++; ++ } ++ } ++ ++ return ptr; ++} ++ ++void ++grub_putstr (const char *str) ++{ ++ while (*str) ++ grub_putchar (*str++); ++} ++ ++void ++grub_printf (const char *format,...) ++{ ++ int *dataptr = (int *) &format; ++ char c, str[16]; ++ ++ dataptr++; ++ ++ while ((c = *(format++)) != 0) ++ { ++ if (c != '%') ++ grub_putchar (c); ++ else ++ switch (c = *(format++)) ++ { ++#ifndef STAGE1_5 ++ case 'd': ++ case 'x': ++ case 'X': ++#endif ++ case 'u': ++ *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0; ++ grub_putstr (str); ++ break; ++ ++#ifndef STAGE1_5 ++ case 'c': ++ grub_putchar ((*(dataptr++)) & 0xff); ++ break; ++ ++ case 's': ++ grub_putstr ((char *) *(dataptr++)); ++ break; ++#endif ++ } ++ } ++} ++ ++#ifndef STAGE1_5 ++int ++grub_sprintf (char *buffer, const char *format, ...) ++{ ++ /* XXX hohmuth ++ ugly hack -- should unify with printf() */ ++ int *dataptr = (int *) &format; ++ char c, *ptr, str[16]; ++ char *bp = buffer; ++ ++ dataptr++; ++ ++ while ((c = *format++) != 0) ++ { ++ if (c != '%') ++ *bp++ = c; /* putchar(c); */ ++ else ++ switch (c = *(format++)) ++ { ++ case 'd': case 'u': case 'x': ++ *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0; ++ ++ ptr = str; ++ ++ while (*ptr) ++ *bp++ = *(ptr++); /* putchar(*(ptr++)); */ ++ break; ++ ++ case 'c': *bp++ = (*(dataptr++))&0xff; ++ /* putchar((*(dataptr++))&0xff); */ ++ break; ++ ++ case 's': ++ ptr = (char *) (*(dataptr++)); ++ ++ while ((c = *ptr++) != 0) ++ *bp++ = c; /* putchar(c); */ ++ break; ++ } ++ } ++ ++ *bp = 0; ++ return bp - buffer; ++} ++ ++ ++void ++init_page (void) ++{ ++ cls (); ++ ++ grub_printf ("\n GNU GRUB version %s (%dK lower / %dK upper memory)\n\n", ++ version_string, mbi.mem_lower, mbi.mem_upper); ++} ++ ++/* The number of the history entries. */ ++static int num_history = 0; ++ ++/* Get the NOth history. If NO is less than zero or greater than or ++ equal to NUM_HISTORY, return NULL. Otherwise return a valid string. */ ++static char * ++get_history (int no) ++{ ++ if (no < 0 || no >= num_history) ++ return 0; ++ ++ return (char *) HISTORY_BUF + MAX_CMDLINE * no; ++} ++ ++/* Add CMDLINE to the history buffer. */ ++static void ++add_history (const char *cmdline, int no) ++{ ++ grub_memmove ((char *) HISTORY_BUF + MAX_CMDLINE * (no + 1), ++ (char *) HISTORY_BUF + MAX_CMDLINE * no, ++ MAX_CMDLINE * (num_history - no)); ++ grub_strcpy ((char *) HISTORY_BUF + MAX_CMDLINE * no, cmdline); ++ if (num_history < HISTORY_SIZE) ++ num_history++; ++} ++ ++static int ++real_get_cmdline (char *prompt, char *cmdline, int maxlen, ++ int echo_char, int readline) ++{ ++ /* This is a rather complicated function. So explain the concept. ++ ++ A command-line consists of ``section''s. A section is a part of the ++ line which may be displayed on the screen, but a section is never ++ displayed with another section simultaneously. ++ ++ Each section is basically 77 or less characters, but the exception ++ is the first section, which is 78 or less characters, because the ++ starting point is special. See below. ++ ++ The first section contains a prompt and a command-line (or the ++ first part of a command-line when it is too long to be fit in the ++ screen). So, in the first section, the number of command-line ++ characters displayed is 78 minus the length of the prompt (or ++ less). If the command-line has more characters, `>' is put at the ++ position 78 (zero-origin), to inform the user of the hidden ++ characters. ++ ++ Other sections always have `<' at the first position, since there ++ is absolutely a section before each section. If there is a section ++ after another section, this section consists of 77 characters and ++ `>' at the last position. The last section has 77 or less ++ characters and doesn't have `>'. ++ ++ Each section other than the last shares some characters with the ++ previous section. This region is called ``margin''. If the cursor ++ is put at the magin which is shared by the first section and the ++ second, the first section is displayed. Otherwise, a displayed ++ section is switched to another section, only if the cursor is put ++ outside that section. */ ++ ++ /* XXX: These should be defined in shared.h, but I leave these here, ++ until this code is freezed. */ ++#define CMDLINE_WIDTH 78 ++#define CMDLINE_MARGIN 10 ++ ++ int xpos, lpos, c, section; ++ /* The length of PROMPT. */ ++ int plen; ++ /* The length of the command-line. */ ++ int llen; ++ /* The index for the history. */ ++ int history = -1; ++ /* The working buffer for the command-line. */ ++ char *buf = (char *) CMDLINE_BUF; ++ /* The kill buffer. */ ++ char *kill_buf = (char *) KILL_BUF; ++ ++ /* Nested function definitions for code simplicity. */ ++ ++ /* The forward declarations of nested functions are prefixed ++ with `auto'. */ ++ auto void cl_refresh (int full, int len); ++ auto void cl_backward (int count); ++ auto void cl_forward (int count); ++ auto void cl_insert (const char *str); ++ auto void cl_delete (int count); ++ auto void cl_init (void); ++ ++ /* Move the cursor backward. */ ++ void cl_backward (int count) ++ { ++ lpos -= count; ++ ++ /* If the cursor is in the first section, display the first section ++ instead of the second. */ ++ if (section == 1 && plen + lpos < CMDLINE_WIDTH) ++ cl_refresh (1, 0); ++ else if (xpos - count < 1) ++ cl_refresh (1, 0); ++ else ++ { ++ xpos -= count; ++ ++ if (current_term->flags & TERM_DUMB) ++ { ++ int i; ++ ++ for (i = 0; i < count; i++) ++ grub_putchar ('\b'); ++ } ++ else ++ gotoxy (xpos, getxy () & 0xFF); ++ } ++ } ++ ++ /* Move the cursor forward. */ ++ void cl_forward (int count) ++ { ++ lpos += count; ++ ++ /* If the cursor goes outside, scroll the screen to the right. */ ++ if (xpos + count >= CMDLINE_WIDTH) ++ cl_refresh (1, 0); ++ else ++ { ++ xpos += count; ++ ++ if (current_term->flags & TERM_DUMB) ++ { ++ int i; ++ ++ for (i = lpos - count; i < lpos; i++) ++ { ++ if (! echo_char) ++ grub_putchar (buf[i]); ++ else ++ grub_putchar (echo_char); ++ } ++ } ++ else ++ gotoxy (xpos, getxy () & 0xFF); ++ } ++ } ++ ++ /* Refresh the screen. If FULL is true, redraw the full line, otherwise, ++ only LEN characters from LPOS. */ ++ void cl_refresh (int full, int len) ++ { ++ int i; ++ int start; ++ int pos = xpos; ++ ++ if (full) ++ { ++ /* Recompute the section number. */ ++ if (lpos + plen < CMDLINE_WIDTH) ++ section = 0; ++ else ++ section = ((lpos + plen - CMDLINE_WIDTH) ++ / (CMDLINE_WIDTH - 1 - CMDLINE_MARGIN) + 1); ++ ++ /* From the start to the end. */ ++ len = CMDLINE_WIDTH; ++ pos = 0; ++ grub_putchar ('\r'); ++ ++ /* If SECTION is the first section, print the prompt, otherwise, ++ print `<'. */ ++ if (section == 0) ++ { ++ grub_printf ("%s", prompt); ++ len -= plen; ++ pos += plen; ++ } ++ else ++ { ++ grub_putchar ('<'); ++ len--; ++ pos++; ++ } ++ } ++ ++ /* Compute the index to start writing BUF and the resulting position ++ on the screen. */ ++ if (section == 0) ++ { ++ int offset = 0; ++ ++ if (! full) ++ offset = xpos - plen; ++ ++ start = 0; ++ xpos = lpos + plen; ++ start += offset; ++ } ++ else ++ { ++ int offset = 0; ++ ++ if (! full) ++ offset = xpos - 1; ++ ++ start = ((section - 1) * (CMDLINE_WIDTH - 1 - CMDLINE_MARGIN) ++ + CMDLINE_WIDTH - plen - CMDLINE_MARGIN); ++ xpos = lpos + 1 - start; ++ start += offset; ++ } ++ ++ /* Print BUF. If ECHO_CHAR is not zero, put it instead. */ ++ for (i = start; i < start + len && i < llen; i++) ++ { ++ if (! echo_char) ++ grub_putchar (buf[i]); ++ else ++ grub_putchar (echo_char); ++ ++ pos++; ++ } ++ ++ /* Fill up the rest of the line with spaces. */ ++ for (; i < start + len; i++) ++ { ++ grub_putchar (' '); ++ pos++; ++ } ++ ++ /* If the cursor is at the last position, put `>' or a space, ++ depending on if there are more characters in BUF. */ ++ if (pos == CMDLINE_WIDTH) ++ { ++ if (start + len < llen) ++ grub_putchar ('>'); ++ else ++ grub_putchar (' '); ++ ++ pos++; ++ } ++ ++ /* Back to XPOS. */ ++ if (current_term->flags & TERM_DUMB) ++ { ++ for (i = 0; i < pos - xpos; i++) ++ grub_putchar ('\b'); ++ } ++ else ++ gotoxy (xpos, getxy () & 0xFF); ++ } ++ ++ /* Initialize the command-line. */ ++ void cl_init (void) ++ { ++ /* Distinguish us from other lines and error messages! */ ++ grub_putchar ('\n'); ++ ++ /* Print full line and set position here. */ ++ cl_refresh (1, 0); ++ } ++ ++ /* Insert STR to BUF. */ ++ void cl_insert (const char *str) ++ { ++ int l = grub_strlen (str); ++ ++ if (llen + l < maxlen) ++ { ++ if (lpos == llen) ++ grub_memmove (buf + lpos, str, l + 1); ++ else ++ { ++ grub_memmove (buf + lpos + l, buf + lpos, llen - lpos + 1); ++ grub_memmove (buf + lpos, str, l); ++ } ++ ++ llen += l; ++ lpos += l; ++ if (xpos + l >= CMDLINE_WIDTH) ++ cl_refresh (1, 0); ++ else if (xpos + l + llen - lpos > CMDLINE_WIDTH) ++ cl_refresh (0, CMDLINE_WIDTH - xpos); ++ else ++ cl_refresh (0, l + llen - lpos); ++ } ++ } ++ ++ /* Delete COUNT characters in BUF. */ ++ void cl_delete (int count) ++ { ++ grub_memmove (buf + lpos, buf + lpos + count, llen - count + 1); ++ llen -= count; ++ ++ if (xpos + llen + count - lpos > CMDLINE_WIDTH) ++ cl_refresh (0, CMDLINE_WIDTH - xpos); ++ else ++ cl_refresh (0, llen + count - lpos); ++ } ++ ++ plen = grub_strlen (prompt); ++ llen = grub_strlen (cmdline); ++ ++ if (maxlen > MAX_CMDLINE) ++ { ++ maxlen = MAX_CMDLINE; ++ if (llen >= MAX_CMDLINE) ++ { ++ llen = MAX_CMDLINE - 1; ++ cmdline[MAX_CMDLINE] = 0; ++ } ++ } ++ lpos = llen; ++ grub_strcpy (buf, cmdline); ++ ++ cl_init (); ++ ++ while ((c = ASCII_CHAR (getkey ())) != '\n' && c != '\r') ++ { ++ /* If READLINE is non-zero, handle readline-like key bindings. */ ++ if (readline) ++ { ++ switch (c) ++ { ++ case 9: /* TAB lists completions */ ++ { ++ int i; ++ /* POS points to the first space after a command. */ ++ int pos = 0; ++ int ret; ++ char *completion_buffer = (char *) COMPLETION_BUF; ++ int equal_pos = -1; ++ int is_filename; ++ ++ /* Find the first word. */ ++ while (buf[pos] == ' ') ++ pos++; ++ while (buf[pos] && buf[pos] != '=' && buf[pos] != ' ') ++ pos++; ++ ++ is_filename = (lpos > pos); ++ ++ /* Find the position of the equal character after a ++ command, and replace it with a space. */ ++ for (i = pos; buf[i] && buf[i] != ' '; i++) ++ if (buf[i] == '=') ++ { ++ equal_pos = i; ++ buf[i] = ' '; ++ break; ++ } ++ ++ /* Find the position of the first character in this ++ word. */ ++ for (i = lpos; i > 0 && buf[i - 1] != ' '; i--) ++ ; ++ ++ /* Invalidate the cache, because the user may exchange ++ removable disks. */ ++ buf_drive = -1; ++ ++ /* Copy this word to COMPLETION_BUFFER and do the ++ completion. */ ++ grub_memmove (completion_buffer, buf + i, lpos - i); ++ completion_buffer[lpos - i] = 0; ++ ret = print_completions (is_filename, 1); ++ errnum = ERR_NONE; ++ ++ if (ret >= 0) ++ { ++ /* Found, so insert COMPLETION_BUFFER. */ ++ cl_insert (completion_buffer + lpos - i); ++ ++ if (ret > 0) ++ { ++ /* There are more than one candidates, so print ++ the list. */ ++ grub_putchar ('\n'); ++ print_completions (is_filename, 0); ++ errnum = ERR_NONE; ++ } ++ } ++ ++ /* Restore the command-line. */ ++ if (equal_pos >= 0) ++ buf[equal_pos] = '='; ++ ++ if (ret) ++ cl_init (); ++ } ++ break; ++ case 1: /* C-a go to beginning of line */ ++ cl_backward (lpos); ++ break; ++ case 5: /* C-e go to end of line */ ++ cl_forward (llen - lpos); ++ break; ++ case 6: /* C-f forward one character */ ++ if (lpos < llen) ++ cl_forward (1); ++ break; ++ case 2: /* C-b backward one character */ ++ if (lpos > 0) ++ cl_backward (1); ++ break; ++ case 21: /* C-u kill to beginning of line */ ++ if (lpos == 0) ++ break; ++ /* Copy the string being deleted to KILL_BUF. */ ++ grub_memmove (kill_buf, buf, lpos); ++ kill_buf[lpos] = 0; ++ { ++ /* XXX: Not very clever. */ ++ ++ int count = lpos; ++ ++ cl_backward (lpos); ++ cl_delete (count); ++ } ++ break; ++ case 11: /* C-k kill to end of line */ ++ if (lpos == llen) ++ break; ++ /* Copy the string being deleted to KILL_BUF. */ ++ grub_memmove (kill_buf, buf + lpos, llen - lpos + 1); ++ cl_delete (llen - lpos); ++ break; ++ case 25: /* C-y yank the kill buffer */ ++ cl_insert (kill_buf); ++ break; ++ case 16: /* C-p fetch the previous command */ ++ { ++ char *p; ++ ++ if (history < 0) ++ /* Save the working buffer. */ ++ grub_strcpy (cmdline, buf); ++ else if (grub_strcmp (get_history (history), buf) != 0) ++ /* If BUF is modified, add it into the history list. */ ++ add_history (buf, history); ++ ++ history++; ++ p = get_history (history); ++ if (! p) ++ { ++ history--; ++ break; ++ } ++ ++ grub_strcpy (buf, p); ++ llen = grub_strlen (buf); ++ lpos = llen; ++ cl_refresh (1, 0); ++ } ++ break; ++ case 14: /* C-n fetch the next command */ ++ { ++ char *p; ++ ++ if (history < 0) ++ { ++ break; ++ } ++ else if (grub_strcmp (get_history (history), buf) != 0) ++ /* If BUF is modified, add it into the history list. */ ++ add_history (buf, history); ++ ++ history--; ++ p = get_history (history); ++ if (! p) ++ p = cmdline; ++ ++ grub_strcpy (buf, p); ++ llen = grub_strlen (buf); ++ lpos = llen; ++ cl_refresh (1, 0); ++ } ++ break; ++ } ++ } ++ ++ /* ESC, C-d and C-h are always handled. Actually C-d is not ++ functional if READLINE is zero, as the cursor cannot go ++ backward, but that's ok. */ ++ switch (c) ++ { ++ case 27: /* ESC immediately return 1 */ ++ return 1; ++ case 4: /* C-d delete character under cursor */ ++ if (lpos == llen) ++ break; ++ cl_delete (1); ++ break; ++ case 8: /* C-h backspace */ ++# ifdef GRUB_UTIL ++ case 127: /* also backspace */ ++# endif ++ if (lpos > 0) ++ { ++ cl_backward (1); ++ cl_delete (1); ++ } ++ break; ++ default: /* insert printable character into line */ ++ if (c >= ' ' && c <= '~') ++ { ++ char str[2]; ++ ++ str[0] = c; ++ str[1] = 0; ++ cl_insert (str); ++ } ++ } ++ } ++ ++ grub_putchar ('\n'); ++ ++ /* If ECHO_CHAR is NUL, remove the leading spaces. */ ++ lpos = 0; ++ if (! echo_char) ++ while (buf[lpos] == ' ') ++ lpos++; ++ ++ /* Copy the working buffer to CMDLINE. */ ++ grub_memmove (cmdline, buf + lpos, llen - lpos + 1); ++ ++ /* If the readline-like feature is turned on and CMDLINE is not ++ empty, add it into the history list. */ ++ if (readline && lpos < llen) ++ add_history (cmdline, 0); ++ ++ return 0; ++} ++ ++/* Don't use this with a MAXLEN greater than 1600 or so! The problem ++ is that GET_CMDLINE depends on the everything fitting on the screen ++ at once. So, the whole screen is about 2000 characters, minus the ++ PROMPT, and space for error and status lines, etc. MAXLEN must be ++ at least 1, and PROMPT and CMDLINE must be valid strings (not NULL ++ or zero-length). ++ ++ If ECHO_CHAR is nonzero, echo it instead of the typed character. */ ++int ++get_cmdline (char *prompt, char *cmdline, int maxlen, ++ int echo_char, int readline) ++{ ++ int old_cursor; ++ int ret; ++ ++ old_cursor = setcursor (1); ++ ++ /* Because it is hard to deal with different conditions simultaneously, ++ less functional cases are handled here. Assume that TERM_NO_ECHO ++ implies TERM_NO_EDIT. */ ++ if (current_term->flags & (TERM_NO_ECHO | TERM_NO_EDIT)) ++ { ++ char *p = cmdline; ++ int c; ++ ++ /* Make sure that MAXLEN is not too large. */ ++ if (maxlen > MAX_CMDLINE) ++ maxlen = MAX_CMDLINE; ++ ++ /* Print only the prompt. The contents of CMDLINE is simply discarded, ++ even if it is not empty. */ ++ grub_printf ("%s", prompt); ++ ++ /* Gather characters until a newline is gotten. */ ++ while ((c = ASCII_CHAR (getkey ())) != '\n' && c != '\r') ++ { ++ /* Return immediately if ESC is pressed. */ ++ if (c == 27) ++ { ++ setcursor (old_cursor); ++ return 1; ++ } ++ ++ /* Printable characters are added into CMDLINE. */ ++ if (c >= ' ' && c <= '~') ++ { ++ if (! (current_term->flags & TERM_NO_ECHO)) ++ grub_putchar (c); ++ ++ /* Preceding space characters must be ignored. */ ++ if (c != ' ' || p != cmdline) ++ *p++ = c; ++ } ++ } ++ ++ *p = 0; ++ ++ if (! (current_term->flags & TERM_NO_ECHO)) ++ grub_putchar ('\n'); ++ ++ setcursor (old_cursor); ++ return 0; ++ } ++ ++ /* Complicated features are left to real_get_cmdline. */ ++ ret = real_get_cmdline (prompt, cmdline, maxlen, echo_char, readline); ++ setcursor (old_cursor); ++ return ret; ++} ++ ++int ++safe_parse_maxint (char **str_ptr, int *myint_ptr) ++{ ++ char *ptr = *str_ptr; ++ int myint = 0; ++ int mult = 10, found = 0; ++ ++ /* ++ * Is this a hex number? ++ */ ++ if (*ptr == '0' && tolower (*(ptr + 1)) == 'x') ++ { ++ ptr += 2; ++ mult = 16; ++ } ++ ++ while (1) ++ { ++ /* A bit tricky. This below makes use of the equivalence: ++ (A >= B && A <= C) <=> ((A - B) <= (C - B)) ++ when C > B and A is unsigned. */ ++ unsigned int digit; ++ ++ digit = tolower (*ptr) - '0'; ++ if (digit > 9) ++ { ++ digit -= 'a' - '0'; ++ if (mult == 10 || digit > 5) ++ break; ++ digit += 10; ++ } ++ ++ found = 1; ++ if (myint > ((MAXINT - digit) / mult)) ++ { ++ errnum = ERR_NUMBER_OVERFLOW; ++ return 0; ++ } ++ myint = (myint * mult) + digit; ++ ptr++; ++ } ++ ++ if (!found) ++ { ++ errnum = ERR_NUMBER_PARSING; ++ return 0; ++ } ++ ++ *str_ptr = ptr; ++ *myint_ptr = myint; ++ ++ return 1; ++} ++#endif /* STAGE1_5 */ ++ ++#if !defined(STAGE1_5) || defined(FSYS_FAT) ++int ++grub_tolower (int c) ++{ ++ if (c >= 'A' && c <= 'Z') ++ return (c + ('a' - 'A')); ++ ++ return c; ++} ++#endif /* ! STAGE1_5 || FSYS_FAT */ ++ ++int ++grub_isspace (int c) ++{ ++ switch (c) ++ { ++ case ' ': ++ case '\t': ++ case '\r': ++ case '\n': ++ return 1; ++ default: ++ break; ++ } ++ ++ return 0; ++} ++ ++#if !defined(STAGE1_5) || defined(FSYS_ISO9660) ++int ++grub_memcmp (const char *s1, const char *s2, int n) ++{ ++ while (n) ++ { ++ if (*s1 < *s2) ++ return -1; ++ else if (*s1 > *s2) ++ return 1; ++ s1++; ++ s2++; ++ n--; ++ } ++ ++ return 0; ++} ++#endif /* ! STAGE1_5 || FSYS_ISO9660 */ ++ ++#ifndef STAGE1_5 ++int ++grub_strncat (char *s1, const char *s2, int n) ++{ ++ int i = -1; ++ ++ while (++i < n && s1[i] != 0); ++ ++ while (i < n && (s1[i++] = *(s2++)) != 0); ++ ++ s1[n - 1] = 0; ++ ++ if (i >= n) ++ return 0; ++ ++ s1[i] = 0; ++ ++ return 1; ++} ++#endif /* ! STAGE1_5 */ ++ ++/* XXX: This below is an evil hack. Certainly, we should change the ++ strategy to determine what should be defined and what shouldn't be ++ defined for each image. For example, it would be better to create ++ a static library supporting minimal standard C functions and link ++ each image with the library. Complicated things should be left to ++ computer, definitely. -okuji */ ++#if !defined(STAGE1_5) || defined(FSYS_VSTAFS) ++int ++grub_strcmp (const char *s1, const char *s2) ++{ ++ while (*s1 || *s2) ++ { ++ if (*s1 < *s2) ++ return -1; ++ else if (*s1 > *s2) ++ return 1; ++ s1 ++; ++ s2 ++; ++ } ++ ++ return 0; ++} ++#endif /* ! STAGE1_5 || FSYS_VSTAFS */ ++ ++#ifndef STAGE1_5 ++/* Wait for a keypress and return its code. */ ++int ++getkey (void) ++{ ++ return current_term->getkey (); ++} ++ ++/* Check if a key code is available. */ ++int ++checkkey (void) ++{ ++ return current_term->checkkey (); ++} ++#endif /* ! STAGE1_5 */ ++ ++/* Display an ASCII character. */ ++void ++grub_putchar (int c) ++{ ++ if (c == '\n') ++ grub_putchar ('\r'); ++#ifndef STAGE1_5 ++ else if (c == '\t' && current_term->getxy) ++ { ++ int n; ++ ++ n = 8 - ((current_term->getxy () >> 8) & 3); ++ while (n--) ++ grub_putchar (' '); ++ ++ return; ++ } ++#endif /* ! STAGE1_5 */ ++ ++#ifdef STAGE1_5 ++ ++ /* In Stage 1.5, only the normal console is supported. */ ++ console_putchar (c); ++ ++#else /* ! STAGE1_5 */ ++ ++ if (c == '\n') ++ { ++ /* Internal `more'-like feature. */ ++ if (count_lines >= 0) ++ { ++ count_lines++; ++ if (count_lines >= max_lines - 2) ++ { ++ int tmp; ++ ++ /* It's important to disable the feature temporarily, because ++ the following grub_printf call will print newlines. */ ++ count_lines = -1; ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_HIGHLIGHT); ++ ++ grub_printf ("\n[Hit return to continue]"); ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_NORMAL); ++ ++ do ++ { ++ tmp = ASCII_CHAR (getkey ()); ++ } ++ while (tmp != '\n' && tmp != '\r'); ++ grub_printf ("\r \r"); ++ ++ /* Restart to count lines. */ ++ count_lines = 0; ++ return; ++ } ++ } ++ } ++ ++ current_term->putchar (c); ++ ++#endif /* ! STAGE1_5 */ ++} ++ ++#ifndef STAGE1_5 ++void ++gotoxy (int x, int y) ++{ ++ current_term->gotoxy (x, y); ++} ++ ++int ++getxy (void) ++{ ++ return current_term->getxy (); ++} ++ ++void ++cls (void) ++{ ++ /* If the terminal is dumb, there is no way to clean the terminal. */ ++ if (current_term->flags & TERM_DUMB) ++ grub_putchar ('\n'); ++ else ++ current_term->cls (); ++} ++ ++int ++setcursor (int on) ++{ ++ if (current_term->setcursor) ++ return current_term->setcursor (on); ++ ++ return 1; ++} ++#endif /* ! STAGE1_5 */ ++ ++int ++substring (const char *s1, const char *s2) ++{ ++ while (*s1 == *s2) ++ { ++ /* The strings match exactly. */ ++ if (! *(s1++)) ++ return 0; ++ s2 ++; ++ } ++ ++ /* S1 is a substring of S2. */ ++ if (*s1 == 0) ++ return -1; ++ ++ /* S1 isn't a substring. */ ++ return 1; ++} ++ ++#ifndef STAGE1_5 ++/* Terminate the string STR with NUL. */ ++int ++nul_terminate (char *str) ++{ ++ int ch; ++ ++ while (*str && ! grub_isspace (*str)) ++ str++; ++ ++ ch = *str; ++ *str = 0; ++ return ch; ++} ++ ++char * ++grub_strstr (const char *s1, const char *s2) ++{ ++ while (*s1) ++ { ++ const char *ptr, *tmp; ++ ++ ptr = s1; ++ tmp = s2; ++ ++ while (*tmp && *ptr == *tmp) ++ ptr++, tmp++; ++ ++ if (tmp > s2 && ! *tmp) ++ return (char *) s1; ++ ++ s1++; ++ } ++ ++ return 0; ++} ++ ++int ++grub_strlen (const char *str) ++{ ++ int len = 0; ++ ++ while (*str++) ++ len++; ++ ++ return len; ++} ++#endif /* ! STAGE1_5 */ ++ ++int ++memcheck (int addr, int len) ++{ ++#ifdef GRUB_UTIL ++ auto int start_addr (void); ++ auto int end_addr (void); ++ ++ auto int start_addr (void) ++ { ++ int ret; ++# if defined(HAVE_START_SYMBOL) ++ asm volatile ("movl $start, %0" : "=a" (ret)); ++# elif defined(HAVE_USCORE_START_SYMBOL) ++ asm volatile ("movl $_start, %0" : "=a" (ret)); ++# endif ++ return ret; ++ } ++ ++ auto int end_addr (void) ++ { ++ int ret; ++# if defined(HAVE_END_SYMBOL) ++ asm volatile ("movl $end, %0" : "=a" (ret)); ++# elif defined(HAVE_USCORE_END_SYMBOL) ++ asm volatile ("movl $_end, %0" : "=a" (ret)); ++# endif ++ return ret; ++ } ++ ++ if (start_addr () <= addr && end_addr () > addr + len) ++ return ! errnum; ++#endif /* GRUB_UTIL */ ++ ++ if ((addr < RAW_ADDR (0x1000)) ++ || (addr < RAW_ADDR (0x100000) ++ && RAW_ADDR (mbi.mem_lower * 1024) < (addr + len)) ++ || (addr >= RAW_ADDR (0x100000) ++ && RAW_ADDR (mbi.mem_upper * 1024) < ((addr - 0x100000) + len))) ++ errnum = ERR_WONT_FIT; ++ ++ return ! errnum; ++} ++ ++void * ++grub_memmove (void *to, const void *from, int len) ++{ ++ if (memcheck ((int) to, len)) ++ { ++ /* This assembly code is stolen from ++ linux-2.2.2/include/asm-i386/string.h. This is not very fast ++ but compact. */ ++ int d0, d1, d2; ++ ++ if (to < from) ++ { ++ asm volatile ("cld\n\t" ++ "rep\n\t" ++ "movsb" ++ : "=&c" (d0), "=&S" (d1), "=&D" (d2) ++ : "0" (len),"1" (from),"2" (to) ++ : "memory"); ++ } ++ else ++ { ++ asm volatile ("std\n\t" ++ "rep\n\t" ++ "movsb\n\t" ++ "cld" ++ : "=&c" (d0), "=&S" (d1), "=&D" (d2) ++ : "0" (len), ++ "1" (len - 1 + (const char *) from), ++ "2" (len - 1 + (char *) to) ++ : "memory"); ++ } ++ } ++ ++ return errnum ? NULL : to; ++} ++ ++void * ++grub_memset (void *start, int c, int len) ++{ ++ char *p = start; ++ ++ if (memcheck ((int) start, len)) ++ { ++ while (len -- > 0) ++ *p ++ = c; ++ } ++ ++ return errnum ? NULL : start; ++} ++ ++#ifndef STAGE1_5 ++char * ++grub_strcpy (char *dest, const char *src) ++{ ++ grub_memmove (dest, src, grub_strlen (src) + 1); ++ return dest; ++} ++#endif /* ! STAGE1_5 */ ++ ++#ifndef GRUB_UTIL ++# undef memcpy ++/* GCC emits references to memcpy() for struct copies etc. */ ++void *memcpy (void *dest, const void *src, int n) __attribute__ ((alias ("grub_memmove"))); ++#endif +diff -Nur grub-0.97/stage2/common.c grub-0.97-patched/stage2/common.c +--- grub-0.97/stage2/common.c 2004-03-27 17:25:44.000000000 +0100 ++++ grub-0.97-patched/stage2/common.c 2012-11-11 17:06:52.558085305 +0100 +@@ -142,7 +142,8 @@ + init_bios_info (void) + { + #ifndef STAGE1_5 +- unsigned long cont, memtmp, addr; ++ unsigned long memtmp, addr; ++ volatile unsigned long cont; + int drive; + #endif + +diff -Nur grub-0.97/stage2/disk_io.c grub-0.97-patched/stage2/disk_io.c +--- grub-0.97/stage2/disk_io.c 2004-05-23 18:35:24.000000000 +0200 ++++ grub-0.97-patched/stage2/disk_io.c 2012-11-11 17:07:12.740730013 +0100 +@@ -21,6 +21,7 @@ + + #include <shared.h> + #include <filesys.h> ++#include <gpt.h> + + #ifdef SUPPORT_NETBOOT + # define GRUB 1 +@@ -137,7 +138,7 @@ + } + + int +-rawread (int drive, int sector, int byte_offset, int byte_len, char *buf) ++rawread (int drive, unsigned int sector, int byte_offset, int byte_len, char *buf) + { + int slen, sectors_per_vtrack; + int sector_size_bits = log2 (buf_geom.sector_size); +@@ -261,7 +262,7 @@ + */ + if (disk_read_func) + { +- int sector_num = sector; ++ unsigned int sector_num = sector; + int length = buf_geom.sector_size - byte_offset; + if (length > size) + length = size; +@@ -291,7 +292,7 @@ + + + int +-devread (int sector, int byte_offset, int byte_len, char *buf) ++devread (unsigned int sector, int byte_offset, int byte_len, char *buf) + { + /* + * Check partition boundaries +@@ -330,7 +331,7 @@ + + #ifndef STAGE1_5 + int +-rawwrite (int drive, int sector, char *buf) ++rawwrite (int drive, unsigned int sector, char *buf) + { + if (sector == 0) + { +@@ -363,7 +364,7 @@ + } + + int +-devwrite (int sector, int sector_count, char *buf) ++devwrite (unsigned int sector, int sector_count, char *buf) + { + #if defined(GRUB_UTIL) && defined(__linux__) + if (current_partition != 0xFFFFFF +@@ -502,8 +503,8 @@ + set_partition_hidden_flag (int hidden) + { + unsigned long part = 0xFFFFFF; +- unsigned long start, len, offset, ext_offset; +- int entry, type; ++ unsigned long start, len, offset, ext_offset, gpt_offset; ++ int entry, type, gpt_count, gpt_size; + char mbr[512]; + + /* The drive must be a hard disk. */ +@@ -524,8 +525,15 @@ + /* Look for the partition. */ + while (next_partition (current_drive, 0xFFFFFF, &part, &type, + &start, &len, &offset, &entry, +- &ext_offset, mbr)) ++ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr)) + { ++ /* The partition may not be a GPT partition. */ ++ if (gpt_offset != 0) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ + if (part == current_partition) + { + /* Found. */ +@@ -577,11 +585,14 @@ + unsigned long *partition, int *type, + unsigned long *start, unsigned long *len, + unsigned long *offset, int *entry, +- unsigned long *ext_offset, char *buf) ++ unsigned long *ext_offset, ++ unsigned long *gpt_offset, int *gpt_count, ++ int *gpt_size, char *buf) + { + /* Forward declarations. */ + auto int next_bsd_partition (void); + auto int next_pc_slice (void); ++ auto int next_gpt_slice(void); + + /* Get next BSD partition in current PC slice. */ + int next_bsd_partition (void) +@@ -666,6 +677,40 @@ + return 0; + } + ++ /* If this is a GPT partition table, read it as such. */ ++ if (*entry == -1 && *offset == 0 && PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_GPT) ++ { ++ struct grub_gpt_header *hdr = (struct grub_gpt_header *) buf; ++ ++ /* Read in the GPT Partition table header. */ ++ if (! rawread (drive, 1, 0, SECTOR_SIZE, buf)) ++ return 0; ++ ++ if (hdr->magic == GPT_HEADER_MAGIC && hdr->version == 0x10000) ++ { ++ /* Let gpt_offset point to the first entry in the GPT ++ partition table. This can also be used by callers of ++ next_partition to determine if a entry comes from a ++ GPT partition table or not. */ ++ *gpt_offset = hdr->partitions; ++ *gpt_count = hdr->maxpart; ++ *gpt_size = hdr->partentry_size; ++ ++ return next_gpt_slice(); ++ } ++ else ++ { ++ /* This is not a valid header for a GPT partition table. ++ Re-read the MBR or the boot sector of the extended ++ partition. */ ++ if (! rawread (drive, *offset, 0, SECTOR_SIZE, buf)) ++ return 0; ++ } ++ } ++ ++ /* Not a GPT partition. */ ++ *gpt_offset = 0; ++ + /* Increase the entry number. */ + (*entry)++; + +@@ -710,6 +755,43 @@ + return 1; + } + ++ /* Get the next GPT slice. */ ++ int next_gpt_slice (void) ++ { ++ struct grub_gpt_partentry *gptentry = (struct grub_gpt_partentry *) buf; ++ /* Make GPT partitions show up as PC slices. */ ++ int pc_slice_no = (*partition & 0xFF0000) >> 16; ++ ++ /* If this is the first time... */ ++ if (pc_slice_no == 0xFF) ++ { ++ pc_slice_no = -1; ++ *entry = -1; ++ } ++ ++ do { ++ (*entry)++; ++ ++ if (*entry >= *gpt_count) ++ { ++ errnum = ERR_NO_PART; ++ return 0; ++ } ++ /* Read in the GPT Partition table entry. */ ++ if (! rawread (drive, (*gpt_offset) + GPT_ENTRY_SECTOR (*gpt_size, *entry), GPT_ENTRY_INDEX (*gpt_size, *entry), *gpt_size, buf)) ++ return 0; ++ } while (! (gptentry->type1 && gptentry->type2)); ++ ++ pc_slice_no++; ++ *start = gptentry->start; ++ *len = gptentry->end - gptentry->start + 1; ++ *type = PC_SLICE_TYPE_EXT2FS; ++ *entry = pc_slice_no; ++ *partition = (*entry << 16) | 0xFFFF; ++ ++ return 1; ++ } ++ + /* Start the body of this function. */ + + #ifndef STAGE1_5 +@@ -717,6 +799,9 @@ + return 0; + #endif + ++ if (*partition != 0xFFFFFF && *gpt_offset != 0) ++ return next_gpt_slice (); ++ + /* If previous partition is a BSD partition or a PC slice which + contains BSD partitions... */ + if ((*partition != 0xFFFFFF && IS_PC_SLICE_TYPE_BSD (*type & 0xff)) +@@ -746,6 +831,8 @@ + #ifndef STAGE1_5 + static unsigned long cur_part_offset; + static unsigned long cur_part_addr; ++static unsigned long cur_part_start; ++static int cur_part_entry; + #endif + + /* Open a partition. */ +@@ -755,6 +842,9 @@ + unsigned long dest_partition = current_partition; + unsigned long part_offset; + unsigned long ext_offset; ++ unsigned long gpt_offset; ++ int gpt_count; ++ int gpt_size; + int entry; + char buf[SECTOR_SIZE]; + int bsd_part, pc_slice; +@@ -766,7 +856,8 @@ + int ret = next_partition (current_drive, dest_partition, + ¤t_partition, ¤t_slice, + &part_start, &part_length, +- &part_offset, &entry, &ext_offset, buf); ++ &part_offset, &entry, &ext_offset, ++ &gpt_offset, &gpt_count, &gpt_size, buf); + bsd_part = (current_partition >> 8) & 0xFF; + pc_slice = current_partition >> 16; + return ret; +@@ -800,7 +891,12 @@ + + /* If this is the whole disk, return here. */ + if (! flags && current_partition == 0xFFFFFF) +- return 1; ++ { ++#ifndef STAGE1_5 ++ cur_part_offset = 0; ++#endif /* ! STAGE1_5 */ ++ return 1; ++ } + + if (flags) + dest_partition = 0xFFFFFF; +@@ -815,6 +911,8 @@ + + cur_part_offset = part_offset; + cur_part_addr = BOOT_PART_TABLE + (entry << 4); ++ cur_part_start = part_start; ++ cur_part_entry = entry; + #endif /* ! STAGE1_5 */ + + /* If this is a valid partition... */ +@@ -1142,6 +1240,7 @@ + src = (char *) SCRATCHADDR + BOOTSEC_PART_OFFSET; + while (dst < (char *) BOOT_PART_TABLE + BOOTSEC_PART_LENGTH) + *dst++ = *src++; ++ PC_SLICE_START (BOOT_PART_TABLE - PC_SLICE_OFFSET, cur_part_entry) = cur_part_start; + + /* Set the active flag of the booted partition. */ + for (i = 0; i < 4; i++) +diff -Nur grub-0.97/stage2/fsys_ext2fs.c grub-0.97-patched/stage2/fsys_ext2fs.c +--- grub-0.97/stage2/fsys_ext2fs.c 2004-08-08 20:19:18.000000000 +0200 ++++ grub-0.97-patched/stage2/fsys_ext2fs.c 2012-11-11 17:07:12.750730331 +0100 +@@ -41,6 +41,7 @@ + typedef unsigned short __u16; + typedef __signed__ int __s32; + typedef unsigned int __u32; ++typedef unsigned long long __u64; + + /* + * Constants relative to the data blocks, from ext2_fs.h +@@ -61,9 +62,9 @@ + __u32 s_free_inodes_count; /* Free inodes count */ + __u32 s_first_data_block; /* First Data Block */ + __u32 s_log_block_size; /* Block size */ +- __s32 s_log_frag_size; /* Fragment size */ ++ __s32 s_obso_log_frag_size; /* Obsoleted Fragment size */ + __u32 s_blocks_per_group; /* # Blocks per group */ +- __u32 s_frags_per_group; /* # Fragments per group */ ++ __u32 s_obso_frags_per_group; /* Obsoleted Fragments per group */ + __u32 s_inodes_per_group; /* # Inodes per group */ + __u32 s_mtime; /* Mount time */ + __u32 s_wtime; /* Write time */ +@@ -72,17 +73,62 @@ + __u16 s_magic; /* Magic signature */ + __u16 s_state; /* File system state */ + __u16 s_errors; /* Behaviour when detecting errors */ +- __u16 s_pad; ++ __u16 s_minor_rev_level; /* minor revision level */ + __u32 s_lastcheck; /* time of last check */ + __u32 s_checkinterval; /* max. time between checks */ + __u32 s_creator_os; /* OS */ + __u32 s_rev_level; /* Revision level */ + __u16 s_def_resuid; /* Default uid for reserved blocks */ + __u16 s_def_resgid; /* Default gid for reserved blocks */ +- __u32 s_reserved[235]; /* Padding to the end of the block */ ++ /* ++ * These fields are for EXT2_DYNAMIC_REV superblocks only. ++ * ++ * Note: the difference between the compatible feature set and ++ * the incompatible feature set is that if there is a bit set ++ * in the incompatible feature set that the kernel doesn't ++ * know about, it should refuse to mount the filesystem. ++ * ++ * e2fsck's requirements are more strict; if it doesn't know ++ * about a feature in either the compatible or incompatible ++ * feature set, it must abort and not try to meddle with ++ * things it doesn't understand... ++ */ ++ __u32 s_first_ino; /* First non-reserved inode */ ++ __u16 s_inode_size; /* size of inode structure */ ++ __u16 s_block_group_nr; /* block group # of this superblock */ ++ __u32 s_feature_compat; /* compatible feature set */ ++ __u32 s_feature_incompat; /* incompatible feature set */ ++ __u32 s_feature_ro_compat; /* readonly-compatible feature set */ ++ __u8 s_uuid[16]; /* 128-bit uuid for volume */ ++ char s_volume_name[16]; /* volume name */ ++ char s_last_mounted[64]; /* directory where last mounted */ ++ __u32 s_algorithm_usage_bitmap; /* For compression */ ++ /* ++ * Performance hints. Directory preallocation should only ++ * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on. ++ */ ++ __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/ ++ __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */ ++ __u16 s_reserved_gdt_blocks;/* Per group table for online growth */ ++ /* ++ * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set. ++ */ ++ __u8 s_journal_uuid[16]; /* uuid of journal superblock */ ++ __u32 s_journal_inum; /* inode number of journal file */ ++ __u32 s_journal_dev; /* device number of journal file */ ++ __u32 s_last_orphan; /* start of list of inodes to delete */ ++ __u32 s_hash_seed[4]; /* HTREE hash seed */ ++ __u8 s_def_hash_version; /* Default hash version to use */ ++ __u8 s_jnl_backup_type; /* Default type of journal backup */ ++ __u16 s_desc_size; /* size of group descriptor */ ++ __u32 s_default_mount_opts; ++ __u32 s_first_meta_bg; /* First metablock group */ ++ __u32 s_mkfs_time; /* When the filesystem was created */ ++ __u32 s_jnl_blocks[17]; /* Backup of the journal inode */ ++ __u32 s_reserved[172]; /* Padding to the end of the block */ + }; + +-struct ext2_group_desc ++struct ext4_group_desc + { + __u32 bg_block_bitmap; /* Blocks bitmap block */ + __u32 bg_inode_bitmap; /* Inodes bitmap block */ +@@ -90,8 +136,18 @@ + __u16 bg_free_blocks_count; /* Free blocks count */ + __u16 bg_free_inodes_count; /* Free inodes count */ + __u16 bg_used_dirs_count; /* Directories count */ +- __u16 bg_pad; +- __u32 bg_reserved[3]; ++ __u16 bg_flags; /* EXT4_BG_flags (INODE_UNINIT, etc) */ ++ __u32 bg_reserved[2]; /* Likely block/inode bitmap checksum */ ++ __u16 bg_itable_unused; /* Unused inodes count */ ++ __u16 bg_checksum; /* crc16(sb_uuid+group+desc) */ ++ __u32 bg_block_bitmap_hi; /* Blocks bitmap block MSB */ ++ __u32 bg_inode_bitmap_hi; /* Inodes bitmap block MSB */ ++ __u32 bg_inode_table_hi; /* Inodes table block MSB */ ++ __u16 bg_free_blocks_count_hi;/* Free blocks count MSB */ ++ __u16 bg_free_inodes_count_hi;/* Free inodes count MSB */ ++ __u16 bg_used_dirs_count_hi; /* Directories count MSB */ ++ __u16 bg_itable_unused_hi; /* Unused inodes count MSB */ ++ __u32 bg_reserved2[3]; + }; + + struct ext2_inode +@@ -129,22 +185,22 @@ + __u32 i_block[EXT2_N_BLOCKS]; /* 40: Pointers to blocks */ + __u32 i_version; /* File version (for NFS) */ + __u32 i_file_acl; /* File ACL */ +- __u32 i_dir_acl; /* Directory ACL */ +- __u32 i_faddr; /* Fragment address */ ++ __u32 i_size_high; ++ __u32 i_obso_faddr; /* Obsoleted fragment address */ + union + { + struct + { +- __u8 l_i_frag; /* Fragment number */ +- __u8 l_i_fsize; /* Fragment size */ +- __u16 i_pad1; +- __u32 l_i_reserved2[2]; ++ __u16 l_i_blocks_high; /* were l_i_reserved1 */ ++ __u16 l_i_file_acl_high; ++ __u16 l_i_uid_high; /* these 2 fields */ ++ __u16 l_i_gid_high; /* were reserved2[0] */ ++ __u32 l_i_reserved2; + } + linux2; + struct + { +- __u8 h_i_frag; /* Fragment number */ +- __u8 h_i_fsize; /* Fragment size */ ++ __u16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */ + __u16 h_i_mode_high; + __u16 h_i_uid_high; + __u16 h_i_gid_high; +@@ -153,16 +209,36 @@ + hurd2; + struct + { +- __u8 m_i_frag; /* Fragment number */ +- __u8 m_i_fsize; /* Fragment size */ +- __u16 m_pad1; ++ __u16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */ ++ __u16 m_i_file_acl_high; + __u32 m_i_reserved2[2]; + } + masix2; + } + osd2; /* OS dependent 2 */ ++ __u16 i_extra_isize; ++ __u16 i_pad1; ++ __u32 i_ctime_extra; /* extra Change time (nsec << 2 | epoch) */ ++ __u32 i_mtime_extra; /* extra Modification time(nsec << 2 | epoch) */ ++ __u32 i_atime_extra; /* extra Access time (nsec << 2 | epoch) */ ++ __u32 i_crtime; /* File Creation time */ ++ __u32 i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */ ++ __u32 i_version_hi; /* high 32 bits for 64-bit version */ + }; + ++#define EXT4_FEATURE_INCOMPAT_EXTENTS 0x0040 /* extents support */ ++#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080 /* grub not supported*/ ++#define EXT4_FEATURE_INCOMPAT_MMP 0x0100 ++#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 ++ ++#define EXT4_HAS_INCOMPAT_FEATURE(sb,mask) \ ++ ( sb->s_feature_incompat & mask ) ++ ++#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */ ++#define EXT4_HUGE_FILE_FL 0x00040000 /* Set to each huge file */ ++ ++#define EXT4_MIN_DESC_SIZE 32 ++ + /* linux/limits.h */ + #define NAME_MAX 255 /* # chars in a file name */ + +@@ -180,6 +256,57 @@ + char name[EXT2_NAME_LEN]; /* File name */ + }; + ++/* linux/ext4_fs_extents.h */ ++/* This is the extent on-disk structure. ++ * It's used at the bottom of the tree. ++ */ ++struct ext4_extent ++ { ++ __u32 ee_block; /* first logical block extent covers */ ++ __u16 ee_len; /* number of blocks covered by extent */ ++ __u16 ee_start_hi; /* high 16 bits of physical block */ ++ __u32 ee_start_lo; /* low 32 bits of physical block */ ++ }; ++ ++/* ++ * This is index on-disk structure. ++ * It's used at all the levels except the bottom. ++ */ ++struct ext4_extent_idx ++ { ++ __u32 ei_block; /* index covers logical blocks from 'block' */ ++ __u32 ei_leaf_lo; /* pointer to the physical block of the next * ++ * level. leaf or next index could be there */ ++ __u16 ei_leaf_hi; /* high 16 bits of physical block */ ++ __u16 ei_unused; ++ }; ++ ++/* ++ * Each block (leaves and indexes), even inode-stored has header. ++ */ ++struct ext4_extent_header ++ { ++ __u16 eh_magic; /* probably will support different formats */ ++ __u16 eh_entries; /* number of valid entries */ ++ __u16 eh_max; /* capacity of store in entries */ ++ __u16 eh_depth; /* has tree real underlying blocks? */ ++ __u32 eh_generation; /* generation of the tree */ ++ }; ++ ++#define EXT4_EXT_MAGIC (0xf30a) ++#define EXT_FIRST_EXTENT(__hdr__) \ ++ ((struct ext4_extent *) (((char *) (__hdr__)) + \ ++ sizeof(struct ext4_extent_header))) ++#define EXT_FIRST_INDEX(__hdr__) \ ++ ((struct ext4_extent_idx *) (((char *) (__hdr__)) + \ ++ sizeof(struct ext4_extent_header))) ++#define EXT_LAST_EXTENT(__hdr__) \ ++ (EXT_FIRST_EXTENT((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1) ++#define EXT_LAST_INDEX(__hdr__) \ ++ (EXT_FIRST_INDEX((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1) ++ ++ ++ + /* linux/ext2fs.h */ + /* + * EXT2_DIR_PAD defines the directory entries boundaries +@@ -218,13 +345,30 @@ + #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32)) + #define EXT2_ADDR_PER_BLOCK_BITS(s) (log2(EXT2_ADDR_PER_BLOCK(s))) + ++#define EXT2_GOOD_OLD_REV 0 /* The good old (original) format */ ++#define EXT2_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */ ++#define EXT2_GOOD_OLD_INODE_SIZE 128 ++#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \ ++ EXT2_GOOD_OLD_INODE_SIZE : \ ++ (s)->s_inode_size) ++#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s)) ++ + /* linux/ext2_fs.h */ + #define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10) + /* kind of from ext2/super.c */ + #define EXT2_BLOCK_SIZE(s) (1 << EXT2_BLOCK_SIZE_BITS(s)) + /* linux/ext2fs.h */ ++/* sizeof(struct ext2_group_desc) is changed in ext4 ++ * in kernel code, ext2/3 uses sizeof(struct ext2_group_desc) to calculate ++ * number of desc per block, while ext4 uses superblock->s_desc_size in stead ++ * superblock->s_desc_size is not available in ext2/3 ++ * */ ++#define EXT2_DESC_SIZE(s) \ ++ (EXT4_HAS_INCOMPAT_FEATURE(s,EXT4_FEATURE_INCOMPAT_64BIT)? \ ++ s->s_desc_size : EXT4_MIN_DESC_SIZE) + #define EXT2_DESC_PER_BLOCK(s) \ +- (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc)) ++ (EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s)) ++ + /* linux/stat.h */ + #define S_IFMT 00170000 + #define S_IFLNK 0120000 +@@ -386,6 +530,122 @@ + [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)]; + } + ++/* extent binary search index ++ * find closest index in the current level extent tree ++ * kind of from ext4_ext_binsearch_idx in ext4/extents.c ++ */ ++static struct ext4_extent_idx* ++ext4_ext_binsearch_idx(struct ext4_extent_header* eh, int logical_block) ++{ ++ struct ext4_extent_idx *r, *l, *m; ++ l = EXT_FIRST_INDEX(eh) + 1; ++ r = EXT_LAST_INDEX(eh); ++ while (l <= r) ++ { ++ m = l + (r - l) / 2; ++ if (logical_block < m->ei_block) ++ r = m - 1; ++ else ++ l = m + 1; ++ } ++ return (struct ext4_extent_idx*)(l - 1); ++} ++ ++/* extent binary search ++ * find closest extent in the leaf level ++ * kind of from ext4_ext_binsearch in ext4/extents.c ++ */ ++static struct ext4_extent* ++ext4_ext_binsearch(struct ext4_extent_header* eh, int logical_block) ++{ ++ struct ext4_extent *r, *l, *m; ++ l = EXT_FIRST_EXTENT(eh) + 1; ++ r = EXT_LAST_EXTENT(eh); ++ while (l <= r) ++ { ++ m = l + (r - l) / 2; ++ if (logical_block < m->ee_block) ++ r = m - 1; ++ else ++ l = m + 1; ++ } ++ return (struct ext4_extent*)(l - 1); ++} ++ ++/* Maps extents enabled logical block into physical block via an inode. ++ * EXT4_HUGE_FILE_FL should be checked before calling this. ++ */ ++static int ++ext4fs_block_map (int logical_block) ++{ ++ struct ext4_extent_header *eh; ++ struct ext4_extent *ex, *extent; ++ struct ext4_extent_idx *ei, *index; ++ int depth; ++ int i; ++ ++#ifdef E2DEBUG ++ unsigned char *i; ++ for (i = (unsigned char *) INODE; ++ i < ((unsigned char *) INODE + sizeof (struct ext2_inode)); ++ i++) ++ { ++ printf ("%c", "0123456789abcdef"[*i >> 4]); ++ printf ("%c", "0123456789abcdef"[*i % 16]); ++ if (!((i + 1 - (unsigned char *) INODE) % 16)) ++ { ++ printf ("\n"); ++ } ++ else ++ { ++ printf (" "); ++ } ++ } ++ printf ("logical block %d\n", logical_block); ++#endif /* E2DEBUG */ ++ eh = (struct ext4_extent_header*)INODE->i_block; ++ if (eh->eh_magic != EXT4_EXT_MAGIC) ++ { ++ errnum = ERR_FSYS_CORRUPT; ++ return -1; ++ } ++ while((depth = eh->eh_depth) != 0) ++ { /* extent index */ ++ if (eh->eh_magic != EXT4_EXT_MAGIC) ++ { ++ errnum = ERR_FSYS_CORRUPT; ++ return -1; ++ } ++ ei = ext4_ext_binsearch_idx(eh, logical_block); ++ if (ei->ei_leaf_hi) ++ {/* 64bit physical block number not supported */ ++ errnum = ERR_FILELENGTH; ++ return -1; ++ } ++ if (!ext2_rdfsb(ei->ei_leaf_lo, DATABLOCK1)) ++ { ++ errnum = ERR_FSYS_CORRUPT; ++ return -1; ++ } ++ eh = (struct ext4_extent_header*)DATABLOCK1; ++ } ++ ++ /* depth==0, we come to the leaf */ ++ ex = ext4_ext_binsearch(eh, logical_block); ++ if (ex->ee_start_hi) ++ {/* 64bit physical block number not supported */ ++ errnum = ERR_FILELENGTH; ++ return -1; ++ } ++ if ((ex->ee_block + ex->ee_len) < logical_block) ++ { ++ errnum = ERR_FSYS_CORRUPT; ++ return -1; ++ } ++ return ex->ee_start_lo + logical_block - ex->ee_block; ++ ++} ++ + /* preconditions: all preconds of ext2fs_block_map */ + int + ext2fs_read (char *buf, int len) +@@ -420,6 +680,11 @@ + /* find the (logical) block component of our location */ + logical_block = filepos >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK); + offset = filepos & (EXT2_BLOCK_SIZE (SUPERBLOCK) - 1); ++ /* map extents enabled logical block number to physical fs on-dick block number */ ++ if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS) ++ && INODE->i_flags & EXT4_EXTENTS_FL) ++ map = ext4fs_block_map (logical_block); ++ else + map = ext2fs_block_map (logical_block); + #ifdef E2DEBUG + printf ("map=%d\n", map); +@@ -504,7 +769,7 @@ + int desc; /* index within that group */ + int ino_blk; /* fs pointer of the inode's information */ + int str_chk = 0; /* used to hold the results of a string compare */ +- struct ext2_group_desc *gdp; ++ struct ext4_group_desc *ext4_gdp; + struct ext2_inode *raw_inode; /* inode info corresponding to current_ino */ + + char linkbuf[PATH_MAX]; /* buffer for following symbolic links */ +@@ -550,10 +815,17 @@ + { + return 0; + } +- gdp = GROUP_DESC; +- ino_blk = gdp[desc].bg_inode_table + ++ ext4_gdp = (struct ext4_group_desc *)( (__u8*)GROUP_DESC + ++ desc * EXT2_DESC_SIZE(SUPERBLOCK)); ++ if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK, EXT4_FEATURE_INCOMPAT_64BIT) ++ && (! ext4_gdp->bg_inode_table_hi)) ++ {/* 64bit itable not supported */ ++ errnum = ERR_FILELENGTH; ++ return -1; ++ } ++ ino_blk = ext4_gdp->bg_inode_table + + (((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group)) +- >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode))); ++ >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK))); + #ifdef E2DEBUG + printf ("inode table fsblock=%d\n", ino_blk); + #endif /* E2DEBUG */ +@@ -565,13 +837,12 @@ + /* reset indirect blocks! */ + mapblock2 = mapblock1 = -1; + +- raw_inode = INODE + +- ((current_ino - 1) +- & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1)); ++ raw_inode = (struct ext2_inode *)((char *)INODE + ++ ((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) * ++ EXT2_INODE_SIZE (SUPERBLOCK)); + #ifdef E2DEBUG + printf ("ipb=%d, sizeof(inode)=%d\n", +- (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)), +- sizeof (struct ext2_inode)); ++ EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK)); + printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode); + printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE); + for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode; +@@ -629,7 +900,10 @@ + } + linkbuf[filemax + len] = '\0'; + +- /* Read the symlink data. */ ++ /* Read the symlink data. ++ * Slow symlink is extents enabled ++ * But since grub_read invokes ext2fs_read, nothing to change here ++ * */ + if (! ext2_is_fast_symlink ()) + { + /* Read the necessary blocks, and reset the file pointer. */ +@@ -640,7 +914,9 @@ + } + else + { +- /* Copy the data directly from the inode. */ ++ /* Copy the data directly from the inode. ++ * Fast symlink is not extents enabled ++ * */ + len = filemax; + memmove (linkbuf, (char *) INODE->i_block, len); + } +@@ -674,6 +950,13 @@ + errnum = ERR_BAD_FILETYPE; + return 0; + } ++ /* if file is too large, just stop and report an error*/ ++ if ( (INODE->i_flags & EXT4_HUGE_FILE_FL) && !(INODE->i_size_high)) ++ { ++ /* file too large, stop reading */ ++ errnum = ERR_FILELENGTH; ++ return 0; ++ } + + filemax = (INODE->i_size); + return 1; +@@ -728,17 +1011,28 @@ + } + + /* else, find the (logical) block component of our location */ ++ /* ext4 logical block number the same as ext2/3 */ + blk = loc >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK); + + /* we know which logical block of the directory entry we are looking + for, now we have to translate that to the physical (fs) block on + the disk */ ++ /* map extents enabled logical block number to physical fs on-dick block number */ ++ if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS) ++ && INODE->i_flags & EXT4_EXTENTS_FL) ++ map = ext4fs_block_map (blk); ++ else + map = ext2fs_block_map (blk); + #ifdef E2DEBUG + printf ("fs block=%d\n", map); + #endif /* E2DEBUG */ + mapblock2 = -1; +- if ((map < 0) || !ext2_rdfsb (map, DATABLOCK2)) ++ if (map < 0) ++ { ++ *rest = ch; ++ return 0; ++ } ++ if (!ext2_rdfsb (map, DATABLOCK2)) + { + errnum = ERR_FSYS_CORRUPT; + *rest = ch; +diff -Nur grub-0.97/stage2/gpt.h grub-0.97-patched/stage2/gpt.h +--- grub-0.97/stage2/gpt.h 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/gpt.h 2012-11-11 17:07:12.697728638 +0100 +@@ -0,0 +1,68 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2002,2005,2006 Free Software Foundation, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef _GPT_H ++#define _GPT_H ++ ++typedef signed char grub_int8_t; ++typedef signed short grub_int16_t; ++typedef signed int grub_int32_t; ++typedef signed long long int grub_int64_t; ++typedef unsigned char grub_uint8_t; ++typedef unsigned short grub_uint16_t; ++typedef unsigned int grub_uint32_t; ++typedef unsigned long long int grub_uint64_t; ++ ++struct grub_gpt_header ++{ ++ grub_uint64_t magic; ++ grub_uint32_t version; ++ grub_uint32_t headersize; ++ grub_uint32_t crc32; ++ grub_uint32_t unused1; ++ grub_uint64_t primary; ++ grub_uint64_t backup; ++ grub_uint64_t start; ++ grub_uint64_t end; ++ grub_uint8_t guid[16]; ++ grub_uint64_t partitions; ++ grub_uint32_t maxpart; ++ grub_uint32_t partentry_size; ++ grub_uint32_t partentry_crc32; ++} __attribute__ ((packed)); ++ ++struct grub_gpt_partentry ++{ ++ grub_uint64_t type1; ++ grub_uint64_t type2; ++ grub_uint8_t guid[16]; ++ grub_uint64_t start; ++ grub_uint64_t end; ++ grub_uint8_t attrib; ++ char name[72]; ++} __attribute__ ((packed)); ++ ++#define GPT_HEADER_MAGIC 0x5452415020494645UL ++ ++#define GPT_ENTRY_SECTOR(size,entry) \ ++ ((((entry) * (size) + 1) & ~(SECTOR_SIZE - 1)) >> SECTOR_BITS) ++#define GPT_ENTRY_INDEX(size,entry) \ ++ ((((entry) * (size) + 1) & (SECTOR_SIZE - 1)) - 1) ++ ++#endif /* _GPT_H */ +diff -Nur grub-0.97/stage2/graphics.c grub-0.97-patched/stage2/graphics.c +--- grub-0.97/stage2/graphics.c 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/graphics.c 2012-11-11 17:06:33.320470847 +0100 +@@ -0,0 +1,563 @@ ++/* graphics.c - graphics mode support for GRUB */ ++/* Implemented as a terminal type by Jeremy Katz katzj@redhat.com based ++ * on a patch by Paulo César Pereira de Andrade pcpa@conectiva.com.br ++ */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2001,2002 Red Hat, Inc. ++ * Portions copyright (C) 2000 Conectiva, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++ ++ ++#ifdef SUPPORT_GRAPHICS ++ ++#include <term.h> ++#include <shared.h> ++#include <graphics.h> ++ ++int saved_videomode; ++unsigned char *font8x16; ++ ++int graphics_inited = 0; ++static char splashimage[64]; ++ ++#define VSHADOW VSHADOW1 ++unsigned char VSHADOW1[38400]; ++unsigned char VSHADOW2[38400]; ++unsigned char VSHADOW4[38400]; ++unsigned char VSHADOW8[38400]; ++ ++/* constants to define the viewable area */ ++const int x0 = 0; ++const int x1 = 80; ++const int y0 = 0; ++const int y1 = 30; ++ ++/* text buffer has to be kept around so that we can write things as we ++ * scroll and the like */ ++unsigned short text[80 * 30]; ++ ++/* why do these have to be kept here? */ ++int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0; ++ ++/* current position */ ++static int fontx = 0; ++static int fonty = 0; ++ ++/* global state so that we don't try to recursively scroll or cursor */ ++static int no_scroll = 0; ++ ++/* color state */ ++static int graphics_standard_color = A_NORMAL; ++static int graphics_normal_color = A_NORMAL; ++static int graphics_highlight_color = A_REVERSE; ++static int graphics_current_color = A_NORMAL; ++static color_state graphics_color_state = COLOR_STATE_STANDARD; ++ ++ ++/* graphics local functions */ ++static void graphics_setxy(int col, int row); ++static void graphics_scroll(); ++ ++/* FIXME: where do these really belong? */ ++static inline void outb(unsigned short port, unsigned char val) ++{ ++ __asm __volatile ("outb %0,%1"::"a" (val), "d" (port)); ++} ++ ++static void MapMask(int value) { ++ outb(0x3c4, 2); ++ outb(0x3c5, value); ++} ++ ++/* bit mask register */ ++static void BitMask(int value) { ++ outb(0x3ce, 8); ++ outb(0x3cf, value); ++} ++ ++ ++ ++/* Set the splash image */ ++void graphics_set_splash(char *splashfile) { ++ grub_strcpy(splashimage, splashfile); ++} ++ ++/* Get the current splash image */ ++char *graphics_get_splash(void) { ++ return splashimage; ++} ++ ++/* Initialize a vga16 graphics display with the palette based off of ++ * the image in splashimage. If the image doesn't exist, leave graphics ++ * mode. */ ++int graphics_init() ++{ ++ if(!grub_file_exists(splashimage)) { ++ return 0; ++ } ++ ++ if (!graphics_inited) { ++ saved_videomode = set_videomode(0x12); ++ } ++ ++ if (!read_image(splashimage)) { ++ set_videomode(saved_videomode); ++ grub_printf("failed to read image\n"); ++ return 0; ++ } ++ ++ font8x16 = (unsigned char*)graphics_get_font(); ++ ++ graphics_inited = 1; ++ ++ /* make sure that the highlight color is set correctly */ ++ graphics_highlight_color = ((graphics_normal_color >> 4) | ++ ((graphics_normal_color & 0xf) << 4)); ++ ++ return 1; ++} ++ ++/* Leave graphics mode */ ++void graphics_end(void) ++{ ++ if (graphics_inited) { ++ set_videomode(saved_videomode); ++ graphics_inited = 0; ++ } ++} ++ ++/* Print ch on the screen. Handle any needed scrolling or the like */ ++void graphics_putchar(int ch) { ++ ch &= 0xff; ++ ++ graphics_cursor(0); ++ ++ if (ch == '\n') { ++ if (fonty + 1 < y1) ++ graphics_setxy(fontx, fonty + 1); ++ else ++ graphics_scroll(); ++ graphics_cursor(1); ++ return; ++ } else if (ch == '\r') { ++ graphics_setxy(x0, fonty); ++ graphics_cursor(1); ++ return; ++ } ++ ++ graphics_cursor(0); ++ ++ text[fonty * 80 + fontx] = ch; ++ text[fonty * 80 + fontx] &= 0x00ff; ++ if (graphics_current_color & 0xf0) ++ text[fonty * 80 + fontx] |= 0x100; ++ ++ graphics_cursor(0); ++ ++ if ((fontx + 1) >= x1) { ++ graphics_setxy(x0, fonty); ++ if (fonty + 1 < y1) ++ graphics_setxy(x0, fonty + 1); ++ else ++ graphics_scroll(); ++ } else { ++ graphics_setxy(fontx + 1, fonty); ++ } ++ ++ graphics_cursor(1); ++} ++ ++/* get the current location of the cursor */ ++int graphics_getxy(void) { ++ return (fontx << 8) | fonty; ++} ++ ++void graphics_gotoxy(int x, int y) { ++ graphics_cursor(0); ++ ++ graphics_setxy(x, y); ++ ++ graphics_cursor(1); ++} ++ ++void graphics_cls(void) { ++ int i; ++ unsigned char *mem, *s1, *s2, *s4, *s8; ++ ++ graphics_cursor(0); ++ graphics_gotoxy(x0, y0); ++ ++ mem = (unsigned char*)VIDEOMEM; ++ s1 = (unsigned char*)VSHADOW1; ++ s2 = (unsigned char*)VSHADOW2; ++ s4 = (unsigned char*)VSHADOW4; ++ s8 = (unsigned char*)VSHADOW8; ++ ++ for (i = 0; i < 80 * 30; i++) ++ text[i] = ' '; ++ graphics_cursor(1); ++ ++ BitMask(0xff); ++ ++ /* plano 1 */ ++ MapMask(1); ++ grub_memcpy(mem, s1, 38400); ++ ++ /* plano 2 */ ++ MapMask(2); ++ grub_memcpy(mem, s2, 38400); ++ ++ /* plano 3 */ ++ MapMask(4); ++ grub_memcpy(mem, s4, 38400); ++ ++ /* plano 4 */ ++ MapMask(8); ++ grub_memcpy(mem, s8, 38400); ++ ++ MapMask(15); ++ ++} ++ ++void graphics_setcolorstate (color_state state) { ++ switch (state) { ++ case COLOR_STATE_STANDARD: ++ graphics_current_color = graphics_standard_color; ++ break; ++ case COLOR_STATE_NORMAL: ++ graphics_current_color = graphics_normal_color; ++ break; ++ case COLOR_STATE_HIGHLIGHT: ++ graphics_current_color = graphics_highlight_color; ++ break; ++ default: ++ graphics_current_color = graphics_standard_color; ++ break; ++ } ++ ++ graphics_color_state = state; ++} ++ ++void graphics_setcolor (int normal_color, int highlight_color) { ++ graphics_normal_color = normal_color; ++ graphics_highlight_color = highlight_color; ++ ++ graphics_setcolorstate (graphics_color_state); ++} ++ ++void graphics_setcursor (int on) { ++ /* FIXME: we don't have a cursor in graphics */ ++ return; ++} ++ ++/* Read in the splashscreen image and set the palette up appropriately. ++ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and ++ * 640x480. */ ++int read_image(char *s) ++{ ++ char buf[32], pal[16]; ++ unsigned char c, base, mask, *s1, *s2, *s4, *s8; ++ unsigned i, len, idx, colors, x, y, width, height; ++ ++ if (!grub_open(s)) ++ return 0; ++ ++ /* read header */ ++ if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) { ++ grub_close(); ++ return 0; ++ } ++ ++ /* parse info */ ++ while (grub_read(&c, 1)) { ++ if (c == '"') ++ break; ++ } ++ ++ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) ++ ; ++ ++ i = 0; ++ width = c - '0'; ++ while (grub_read(&c, 1)) { ++ if (c >= '0' && c <= '9') ++ width = width * 10 + c - '0'; ++ else ++ break; ++ } ++ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) ++ ; ++ ++ height = c - '0'; ++ while (grub_read(&c, 1)) { ++ if (c >= '0' && c <= '9') ++ height = height * 10 + c - '0'; ++ else ++ break; ++ } ++ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) ++ ; ++ ++ colors = c - '0'; ++ while (grub_read(&c, 1)) { ++ if (c >= '0' && c <= '9') ++ colors = colors * 10 + c - '0'; ++ else ++ break; ++ } ++ ++ base = 0; ++ while (grub_read(&c, 1) && c != '"') ++ ; ++ ++ /* palette */ ++ for (i = 0, idx = 1; i < colors; i++) { ++ len = 0; ++ ++ while (grub_read(&c, 1) && c != '"') ++ ; ++ grub_read(&c, 1); /* char */ ++ base = c; ++ grub_read(buf, 4); /* \t c # */ ++ ++ while (grub_read(&c, 1) && c != '"') { ++ if (len < sizeof(buf)) ++ buf[len++] = c; ++ } ++ ++ if (len == 6 && idx < 15) { ++ int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2; ++ int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2; ++ int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2; ++ ++ pal[idx] = base; ++ graphics_set_palette(idx, r, g, b); ++ ++idx; ++ } ++ } ++ ++ x = y = len = 0; ++ ++ s1 = (unsigned char*)VSHADOW1; ++ s2 = (unsigned char*)VSHADOW2; ++ s4 = (unsigned char*)VSHADOW4; ++ s8 = (unsigned char*)VSHADOW8; ++ ++ for (i = 0; i < 38400; i++) ++ s1[i] = s2[i] = s4[i] = s8[i] = 0; ++ ++ /* parse xpm data */ ++ while (y < height) { ++ while (1) { ++ if (!grub_read(&c, 1)) { ++ grub_close(); ++ return 0; ++ } ++ if (c == '"') ++ break; ++ } ++ ++ while (grub_read(&c, 1) && c != '"') { ++ for (i = 1; i < 15; i++) ++ if (pal[i] == c) { ++ c = i; ++ break; ++ } ++ ++ mask = 0x80 >> (x & 7); ++ if (c & 1) ++ s1[len + (x >> 3)] |= mask; ++ if (c & 2) ++ s2[len + (x >> 3)] |= mask; ++ if (c & 4) ++ s4[len + (x >> 3)] |= mask; ++ if (c & 8) ++ s8[len + (x >> 3)] |= mask; ++ ++ if (++x >= 640) { ++ x = 0; ++ ++ if (y < 480) ++ len += 80; ++ ++y; ++ } ++ } ++ } ++ ++ grub_close(); ++ ++ graphics_set_palette(0, (background >> 16), (background >> 8) & 63, ++ background & 63); ++ graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, ++ foreground & 63); ++ graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, ++ border & 63); ++ ++ return 1; ++} ++ ++ ++/* Convert a character which is a hex digit to the appropriate integer */ ++int hex(int v) ++{ ++ if (v >= 'A' && v <= 'F') ++ return (v - 'A' + 10); ++ if (v >= 'a' && v <= 'f') ++ return (v - 'a' + 10); ++ return (v - '0'); ++} ++ ++ ++/* move the graphics cursor location to col, row */ ++static void graphics_setxy(int col, int row) { ++ if (col >= x0 && col < x1) { ++ fontx = col; ++ cursorX = col << 3; ++ } ++ if (row >= y0 && row < y1) { ++ fonty = row; ++ cursorY = row << 4; ++ } ++} ++ ++/* scroll the screen */ ++static void graphics_scroll() { ++ int i, j; ++ ++ /* we don't want to scroll recursively... that would be bad */ ++ if (no_scroll) ++ return; ++ no_scroll = 1; ++ ++ /* move everything up a line */ ++ for (j = y0 + 1; j < y1; j++) { ++ graphics_gotoxy(x0, j - 1); ++ for (i = x0; i < x1; i++) { ++ graphics_putchar(text[j * 80 + i]); ++ } ++ } ++ ++ /* last line should be blank */ ++ graphics_gotoxy(x0, y1 - 1); ++ for (i = x0; i < x1; i++) ++ graphics_putchar(' '); ++ graphics_setxy(x0, y1 - 1); ++ ++ no_scroll = 0; ++} ++ ++ ++void graphics_cursor(int set) { ++ unsigned char *pat, *mem, *ptr, chr[16 << 2]; ++ int i, ch, invert, offset; ++ ++ if (set && no_scroll) ++ return; ++ ++ offset = cursorY * 80 + fontx; ++ ch = text[fonty * 80 + fontx] & 0xff; ++ invert = (text[fonty * 80 + fontx] & 0xff00) != 0; ++ pat = font8x16 + (ch << 4); ++ ++ mem = (unsigned char*)VIDEOMEM + offset; ++ ++ if (!set) { ++ for (i = 0; i < 16; i++) { ++ unsigned char mask = pat[i]; ++ ++ if (!invert) { ++ chr[i ] = ((unsigned char*)VSHADOW1)[offset]; ++ chr[16 + i] = ((unsigned char*)VSHADOW2)[offset]; ++ chr[32 + i] = ((unsigned char*)VSHADOW4)[offset]; ++ chr[48 + i] = ((unsigned char*)VSHADOW8)[offset]; ++ ++ /* FIXME: if (shade) */ ++ if (1) { ++ if (ch == DISP_VERT || ch == DISP_LL || ++ ch == DISP_UR || ch == DISP_LR) { ++ unsigned char pmask = ~(pat[i] >> 1); ++ ++ chr[i ] &= pmask; ++ chr[16 + i] &= pmask; ++ chr[32 + i] &= pmask; ++ chr[48 + i] &= pmask; ++ } ++ if (i > 0 && ch != DISP_VERT) { ++ unsigned char pmask = ~(pat[i - 1] >> 1); ++ ++ chr[i ] &= pmask; ++ chr[16 + i] &= pmask; ++ chr[32 + i] &= pmask; ++ chr[48 + i] &= pmask; ++ if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) { ++ pmask = ~pat[i - 1]; ++ ++ chr[i ] &= pmask; ++ chr[16 + i] &= pmask; ++ chr[32 + i] &= pmask; ++ chr[48 + i] &= pmask; ++ } ++ } ++ } ++ chr[i ] |= mask; ++ chr[16 + i] |= mask; ++ chr[32 + i] |= mask; ++ chr[48 + i] |= mask; ++ ++ offset += 80; ++ } ++ else { ++ chr[i ] = mask; ++ chr[16 + i] = mask; ++ chr[32 + i] = mask; ++ chr[48 + i] = mask; ++ } ++ } ++ } ++ else { ++ MapMask(15); ++ ptr = mem; ++ for (i = 0; i < 16; i++, ptr += 80) { ++ cursorBuf[i] = pat[i]; ++ *ptr = ~pat[i]; ++ } ++ return; ++ } ++ ++ offset = 0; ++ for (i = 1; i < 16; i <<= 1, offset += 16) { ++ int j; ++ ++ MapMask(i); ++ ptr = mem; ++ for (j = 0; j < 16; j++, ptr += 80) ++ *ptr = chr[j + offset]; ++ } ++ ++ MapMask(15); ++} ++ ++int grub_file_exists(char *s) { ++ if (!grub_open(s)) ++ return 0; ++ grub_close(); ++ return 1; ++} ++ ++#endif /* SUPPORT_GRAPHICS */ +diff -Nur grub-0.97/stage2/graphics.h grub-0.97-patched/stage2/graphics.h +--- grub-0.97/stage2/graphics.h 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/graphics.h 2012-11-11 17:06:33.321470879 +0100 +@@ -0,0 +1,45 @@ ++/* graphics.h - graphics console interface */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2002 Free Software Foundation, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef GRAPHICS_H ++#define GRAPHICS_H ++ ++/* magic constant */ ++#define VIDEOMEM 0xA0000 ++ ++/* function prototypes */ ++char *graphics_get_splash(void); ++ ++int read_image(char *s); ++void graphics_cursor(int set); ++ ++/* function prototypes for asm functions */ ++void * graphics_get_font(); ++void graphics_set_palette(int idx, int red, int green, int blue); ++void set_int1c_handler(); ++void unset_int1c_handler(); ++ ++/* Only to check for safe opening before we start */ ++int grub_file_exists(char *s); ++ ++extern short cursorX, cursorY; ++extern char cursorBuf[16]; ++ ++#endif /* GRAPHICS_H */ +diff -Nur grub-0.97/stage2/iso9660.h grub-0.97-patched/stage2/iso9660.h +--- grub-0.97/stage2/iso9660.h 2004-03-27 17:02:38.000000000 +0100 ++++ grub-0.97-patched/stage2/iso9660.h 2012-11-11 17:07:12.740730013 +0100 +@@ -73,11 +73,11 @@ + + typedef struct __iso_16bit { + u_int16_t l, b; +-} iso_16bit_t __attribute__ ((packed)); ++} iso_16bit_t; + + typedef struct __iso_32bit { + u_int32_t l, b; +-} iso_32bit_t __attribute__ ((packed)); ++} iso_32bit_t; + + typedef u_int8_t iso_date_t[7]; + +diff -Nur grub-0.97/stage2/Makefile.am grub-0.97-patched/stage2/Makefile.am +--- grub-0.97/stage2/Makefile.am 2005-02-02 21:37:35.000000000 +0100 ++++ grub-0.97-patched/stage2/Makefile.am 2012-11-11 17:07:12.747730236 +0100 +@@ -7,7 +7,7 @@ + fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \ + imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \ + nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \ +- terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h ++ terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h + EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS) + + # For <stage1.h>. +@@ -19,20 +19,20 @@ + disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \ + fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ + fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \ +- terminfo.c tparm.c +-libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ ++ terminfo.c tparm.c graphics.c ++libgrub_a_CFLAGS = $(GRUB_CFLAGS) -fno-stack-protector -I$(top_srcdir)/lib \ + -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ + -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ + -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \ + -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 + + # Stage 2 and Stage 1.5's. +-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) ++stagedir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) + + EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec + + if DISKLESS_SUPPORT +-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ ++stage_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ + ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ + reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \ + nbgrub pxegrub +@@ -43,7 +43,7 @@ + reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \ + xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec + else +-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ ++stage_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ + ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ + reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 + noinst_DATA = pre_stage2 start start_eltorito +@@ -79,8 +79,14 @@ + HERCULES_FLAGS = + endif + +-STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ +- $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) ++if GRAPHICS_SUPPORT ++GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1 ++else ++GRAPHICS_FLAGS = ++endif ++ ++STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-reorder-functions -fno-builtin -nostdinc \ ++ $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS) + + STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 + STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 +@@ -90,7 +96,8 @@ + cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ + fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ + fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ +- hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c ++ hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \ ++ graphics.c + pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) + pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) + pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK) +@@ -105,7 +112,7 @@ + BUILT_SOURCES = stage2_size.h + endif + +-CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES) ++CLEANFILES = $(stage_DATA) $(noinst_DATA) $(BUILT_SOURCES) + + stage2_size.h: pre_stage2 + -rm -f stage2_size.h +diff -Nur grub-0.97/stage2/Makefile.am.orig grub-0.97-patched/stage2/Makefile.am.orig +--- grub-0.97/stage2/Makefile.am.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/Makefile.am.orig 2005-02-02 21:37:35.000000000 +0100 +@@ -0,0 +1,272 @@ ++# For test target. ++TESTS = size_test ++noinst_SCRIPTS = $(TESTS) ++ ++# For dist target. ++noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \ ++ fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \ ++ imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \ ++ nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \ ++ terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h ++EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS) ++ ++# For <stage1.h>. ++INCLUDES = -I$(top_srcdir)/stage1 ++ ++# The library for /sbin/grub. ++noinst_LIBRARIES = libgrub.a ++libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \ ++ disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \ ++ fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ ++ fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \ ++ terminfo.c tparm.c ++libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ ++ -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ ++ -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ ++ -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \ ++ -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 ++ ++# Stage 2 and Stage 1.5's. ++pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) ++ ++EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec ++ ++if DISKLESS_SUPPORT ++pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ ++ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ ++ reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \ ++ nbgrub pxegrub ++noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless ++noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \ ++ e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \ ++ iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \ ++ reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \ ++ xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec ++else ++pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ ++ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ ++ reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 ++noinst_DATA = pre_stage2 start start_eltorito ++noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \ ++ e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \ ++ iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \ ++ reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \ ++ xfs_stage1_5.exec ++endif ++MOSTLYCLEANFILES = $(noinst_PROGRAMS) ++ ++PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 ++START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000 ++NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0 ++PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 ++START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 ++ ++if NETBOOT_SUPPORT ++NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1 ++else ++NETBOOT_FLAGS = ++endif ++ ++if SERIAL_SUPPORT ++SERIAL_FLAGS = -DSUPPORT_SERIAL=1 ++else ++SERIAL_FLAGS = ++endif ++ ++if HERCULES_SUPPORT ++HERCULES_FLAGS = -DSUPPORT_HERCULES=1 ++else ++HERCULES_FLAGS = ++endif ++ ++STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ ++ $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) ++ ++STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 ++STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 ++ ++# For stage2 target. ++pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \ ++ cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ ++ fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ ++ fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ ++ hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c ++pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) ++pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) ++pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK) ++ ++if NETBOOT_SUPPORT ++pre_stage2_exec_LDADD = ../netboot/libdrivers.a ++endif ++ ++if DISKLESS_SUPPORT ++BUILT_SOURCES = stage2_size.h diskless_size.h ++else ++BUILT_SOURCES = stage2_size.h ++endif ++ ++CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES) ++ ++stage2_size.h: pre_stage2 ++ -rm -f stage2_size.h ++ set dummy `ls -l pre_stage2`; \ ++ echo "#define STAGE2_SIZE $$6" > stage2_size.h ++ ++start_exec_SOURCES = start.S ++start_exec_CCASFLAGS = $(STAGE2_COMPILE) ++start_exec_LDFLAGS = $(START_LINK) ++ ++# XXX: automake doesn't provide a way to specify dependencies for object ++# files explicitly, so we must write this by a general Makefile scheme. ++# If automake change the naming scheme for per-executable objects, this ++# will be broken. ++start_exec-start.$(OBJEXT): stage2_size.h ++ ++stage2: pre_stage2 start ++ -rm -f stage2 ++ cat start pre_stage2 > stage2 ++ ++start_eltorito_exec_SOURCES = start_eltorito.S ++start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE) ++start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK) ++ ++start_eltorito_exec-start.$(OBJEXT): stage2_size.h ++ ++stage2_eltorito: pre_stage2 start_eltorito ++ -rm -f stage2_eltorito ++ cat start_eltorito pre_stage2 > stage2_eltorito ++ ++# For e2fs_stage1_5 target. ++e2fs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ ++ stage1_5.c fsys_ext2fs.c bios.c ++e2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \ ++ -DNO_BLOCK_FILES=1 ++e2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \ ++ -DNO_BLOCK_FILES=1 ++e2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For fat_stage1_5 target. ++fat_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ ++ stage1_5.c fsys_fat.c bios.c ++fat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \ ++ -DNO_BLOCK_FILES=1 ++fat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \ ++ -DNO_BLOCK_FILES=1 ++fat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For ffs_stage1_5 target. ++ffs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ ++ stage1_5.c fsys_ffs.c bios.c ++ffs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \ ++ -DNO_BLOCK_FILES=1 ++ffs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \ ++ -DNO_BLOCK_FILES=1 ++ffs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For ufs2_stage1_5 target. ++ufs2_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ ++ stage1_5.c fsys_ufs2.c bios.c ++ufs2_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \ ++ -DNO_BLOCK_FILES=1 ++ufs2_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \ ++ -DNO_BLOCK_FILES=1 ++ufs2_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For minix_stage1_5 target. ++minix_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ ++ stage1_5.c fsys_minix.c bios.c ++minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \ ++ -DNO_BLOCK_FILES=1 ++minix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \ ++ -DNO_BLOCK_FILES=1 ++minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For reiserfs_stage1_5 target. ++reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ ++ disk_io.c stage1_5.c fsys_reiserfs.c bios.c ++reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \ ++ -DNO_BLOCK_FILES=1 ++reiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \ ++ -DNO_BLOCK_FILES=1 ++reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For vstafs_stage1_5 target. ++vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ ++ disk_io.c stage1_5.c fsys_vstafs.c bios.c ++vstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \ ++ -DNO_BLOCK_FILES=1 ++vstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \ ++ -DNO_BLOCK_FILES=1 ++vstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For jfs_stage1_5 target. ++jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ ++ disk_io.c stage1_5.c fsys_jfs.c bios.c ++jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \ ++ -DNO_BLOCK_FILES=1 ++jfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \ ++ -DNO_BLOCK_FILES=1 ++jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For xfs_stage1_5 target. ++xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ ++ disk_io.c stage1_5.c fsys_xfs.c bios.c ++xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \ ++ -DNO_BLOCK_FILES=1 ++xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \ ++ -DNO_BLOCK_FILES=1 ++xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For iso9660_stage1_5 target. ++iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \ ++ disk_io.c stage1_5.c fsys_iso9660.c bios.c ++iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \ ++ -DNO_BLOCK_FILES=1 ++iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \ ++ -DNO_BLOCK_FILES=1 ++iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For diskless target. ++diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES) ++diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \ ++ -DSUPPORT_DISKLESS=1 ++diskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \ ++ -DSUPPORT_DISKLESS=1 ++diskless_exec_LDFLAGS = $(PRE_STAGE2_LINK) ++diskless_exec_LDADD = ../netboot/libdrivers.a ++ ++diskless_size.h: diskless ++ -rm -f $@ ++ set dummy `ls -l $^`; \ ++ echo "#define DISKLESS_SIZE $$6" > $@ ++ ++# For nbloader target. ++nbloader_exec_SOURCES = nbloader.S ++nbloader_exec_CCASFLAGS = $(STAGE2_COMPILE) ++nbloader_exec_LDFLAGS = $(NBLOADER_LINK) ++ ++# XXX: See the comment for start_exec-start.o. ++nbloader_exec-nbloader.$(OBJEXT): diskless_size.h ++ ++# For nbgrub target. ++nbgrub: nbloader diskless ++ -rm -f $@ ++ cat $^ > $@ ++ ++# For pxeloader target. ++pxeloader_exec_SOURCES = pxeloader.S ++pxeloader_exec_CCASFLAGS = $(STAGE2_COMPILE) ++pxeloader_exec_LDFLAGS = $(PXELOADER_LINK) ++ ++# XXX: See the comment for start_exec-start.o. ++pxeloader_exec-pxeloader.$(OBJEXT): diskless_size.h ++ ++# For pxegrub target. ++pxegrub: pxeloader diskless ++ -rm -f $@ ++ cat $^ > $@ ++ ++# General rule for making a raw binary. ++SUFFIXES = .exec ++.exec: ++ $(OBJCOPY) -O binary $< $@ +diff -Nur grub-0.97/stage2/pc_slice.h grub-0.97-patched/stage2/pc_slice.h +--- grub-0.97/stage2/pc_slice.h 2003-07-09 13:45:53.000000000 +0200 ++++ grub-0.97-patched/stage2/pc_slice.h 2012-11-11 17:07:12.698728671 +0100 +@@ -115,6 +115,7 @@ + #define PC_SLICE_TYPE_LINUX_EXTENDED 0x85 + #define PC_SLICE_TYPE_VSTAFS 0x9e + #define PC_SLICE_TYPE_DELL_UTIL 0xde ++#define PC_SLICE_TYPE_GPT 0xee + #define PC_SLICE_TYPE_LINUX_RAID 0xfd + + +diff -Nur grub-0.97/stage2/shared.h grub-0.97-patched/stage2/shared.h +--- grub-0.97/stage2/shared.h 2004-06-19 18:40:09.000000000 +0200 ++++ grub-0.97-patched/stage2/shared.h 2012-11-11 17:07:12.741730044 +0100 +@@ -36,8 +36,8 @@ + + /* Maybe redirect memory requests through grub_scratch_mem. */ + #ifdef GRUB_UTIL +-extern char *grub_scratch_mem; +-# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem) ++extern void *grub_scratch_mem; ++# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem) + # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4) + #else + # define RAW_ADDR(x) (x) +@@ -161,7 +161,9 @@ + + #define LINUX_CL_OFFSET 0x9000 + #define LINUX_CL_END_OFFSET 0x90FF +-#define LINUX_SETUP_MOVE_SIZE 0x9100 ++#define LINUX_CL_0202_PRM_OFFSET 0x9500 ++#define LINUX_CL_0202_PRM_END_OFFSET 0x9FFF ++#define LINUX_SETUP_MOVE_SIZE 0xA000 + #define LINUX_CL_MAGIC 0xA33F + + /* +@@ -499,7 +501,11 @@ + unsigned char linear_reserved_field_position; + unsigned long max_pixel_clock; + +- unsigned char reserved3[189]; ++ /* Reserved field to make structure to be 256 bytes long, VESA BIOS ++ Extension 3.0 Specification says to reserve 189 bytes here but ++ that doesn't make structure to be 256 bytes. So additional one is ++ added here. */ ++ unsigned char reserved3[189 + 1]; + } __attribute__ ((packed)); + + +@@ -807,7 +813,7 @@ + /* Low-level disk I/O */ + int get_diskinfo (int drive, struct geometry *geometry); + int biosdisk (int subfunc, int drive, struct geometry *geometry, +- int sector, int nsec, int segment); ++ unsigned int sector, int nsec, int segment); + void stop_floppy (void); + + /* Command-line interface functions. */ +@@ -871,6 +877,7 @@ + int grub_tolower (int c); + int grub_isspace (int c); + int grub_strncat (char *s1, const char *s2, int n); ++void grub_memcpy(void *dest, const void *src, int len); + void *grub_memmove (void *to, const void *from, int len); + void *grub_memset (void *start, int c, int len); + int grub_strncat (char *s1, const char *s2, int n); +@@ -911,7 +918,7 @@ + int nul_terminate (char *str); + int get_based_digit (int c, int base); + int safe_parse_maxint (char **str_ptr, int *myint_ptr); +-int memcheck (int start, int len); ++int memcheck (unsigned long start, unsigned long len); + void grub_putstr (const char *str); + + #ifndef NO_DECOMPRESSION +@@ -920,10 +927,10 @@ + int gunzip_read (char *buf, int len); + #endif /* NO_DECOMPRESSION */ + +-int rawread (int drive, int sector, int byte_offset, int byte_len, char *buf); +-int devread (int sector, int byte_offset, int byte_len, char *buf); +-int rawwrite (int drive, int sector, char *buf); +-int devwrite (int sector, int sector_len, char *buf); ++int rawread (int drive, unsigned int sector, int byte_offset, int byte_len, char *buf); ++int devread (unsigned int sector, int byte_offset, int byte_len, char *buf); ++int rawwrite (int drive, unsigned int sector, char *buf); ++int devwrite (unsigned int sector, int sector_len, char *buf); + + /* Parse a device string and initialize the global parameters. */ + char *set_device (char *device); +@@ -934,7 +941,9 @@ + unsigned long *partition, int *type, + unsigned long *start, unsigned long *len, + unsigned long *offset, int *entry, +- unsigned long *ext_offset, char *buf); ++ unsigned long *ext_offset, ++ unsigned long *gpt_offset, int *gpt_count, ++ int *gpt_size, char *buf); + + /* Sets device to the one represented by the SAVED_* parameters. */ + int make_saved_active (void); +diff -Nur grub-0.97/stage2/size_test grub-0.97-patched/stage2/size_test +--- grub-0.97/stage2/size_test 2004-05-14 21:30:52.000000000 +0200 ++++ grub-0.97-patched/stage2/size_test 2012-11-11 17:06:52.554085177 +0100 +@@ -36,9 +36,9 @@ + } + + # The bootloader area of a FFS partition is 14 sectors. +-check ffs_stage1_5 7168 +- +-check ufs2_stage1_5 7168 ++#check ffs_stage1_5 7168 ++# ++#check ufs2_stage1_5 7168 + + # Stage 1.5 can be installed in the sectors immediately after MBR in the + # first cylinder, so the size is (63 - 1) sectors. +diff -Nur grub-0.97/stage2/stage2.c grub-0.97-patched/stage2/stage2.c +--- grub-0.97/stage2/stage2.c 2005-03-19 18:51:57.000000000 +0100 ++++ grub-0.97-patched/stage2/stage2.c 2012-11-11 17:07:12.742730076 +0100 +@@ -233,6 +233,7 @@ + { + int c, time1, time2 = -1, first_entry = 0; + char *cur_entry = 0; ++ struct term_entry *prev_term = NULL; + + /* + * Main loop for menu UI. +@@ -651,7 +652,10 @@ + *(new_heap++) = 0; + + if (config_entries) +- run_menu (heap, NULL, new_num_entries, new_heap, 0); ++ { ++ current_entryno = first_entry + entryno; ++ run_menu (heap, NULL, new_num_entries, new_heap, 0); ++ } + else + { + cls (); +@@ -714,6 +718,15 @@ + + cls (); + setcursor (1); ++ /* if our terminal needed initialization, we should shut it down ++ * before booting the kernel, but we want to save what it was so ++ * we can come back if needed */ ++ prev_term = current_term; ++ if (current_term->shutdown) ++ { ++ (*current_term->shutdown)(); ++ current_term = term_table; /* assumption: console is first */ ++ } + + while (1) + { +@@ -727,7 +740,8 @@ + cur_entry = get_entry (config_entries, first_entry + entryno, 1); + + /* Set CURRENT_ENTRYNO for the command "savedefault". */ +- current_entryno = first_entry + entryno; ++ if (config_entries) ++ current_entryno = first_entry + entryno; + + if (run_script (cur_entry, heap)) + { +@@ -748,6 +762,13 @@ + break; + } + ++ /* if we get back here, we should go back to what our term was before */ ++ current_term = prev_term; ++ if (current_term->startup) ++ /* if our terminal fails to initialize, fall back to console since ++ * it should always work */ ++ if ((*current_term->startup)() == 0) ++ current_term = term_table; /* we know that console is first */ + show_menu = 1; + goto restart; + } +@@ -1050,6 +1071,10 @@ + while (is_preset); + } + ++ /* go ahead and make sure the terminal is setup */ ++ if (current_term->startup) ++ (*current_term->startup)(); ++ + if (! num_entries) + { + /* If no acceptable config file, goto command-line, starting +diff -Nur grub-0.97/stage2/stage2.c.orig grub-0.97-patched/stage2/stage2.c.orig +--- grub-0.97/stage2/stage2.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/stage2.c.orig 2005-03-19 18:51:57.000000000 +0100 +@@ -0,0 +1,1067 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2000,2001,2002,2004,2005 Free Software Foundation, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include <shared.h> ++#include <term.h> ++ ++grub_jmp_buf restart_env; ++ ++#if defined(PRESET_MENU_STRING) || defined(SUPPORT_DISKLESS) ++ ++# if defined(PRESET_MENU_STRING) ++static const char *preset_menu = PRESET_MENU_STRING; ++# elif defined(SUPPORT_DISKLESS) ++/* Execute the command "bootp" automatically. */ ++static const char *preset_menu = "bootp\n"; ++# endif /* SUPPORT_DISKLESS */ ++ ++static int preset_menu_offset; ++ ++static int ++open_preset_menu (void) ++{ ++#ifdef GRUB_UTIL ++ /* Unless the user explicitly requests to use the preset menu, ++ always opening the preset menu fails in the grub shell. */ ++ if (! use_preset_menu) ++ return 0; ++#endif /* GRUB_UTIL */ ++ ++ preset_menu_offset = 0; ++ return preset_menu != 0; ++} ++ ++static int ++read_from_preset_menu (char *buf, int maxlen) ++{ ++ int len = grub_strlen (preset_menu + preset_menu_offset); ++ ++ if (len > maxlen) ++ len = maxlen; ++ ++ grub_memmove (buf, preset_menu + preset_menu_offset, len); ++ preset_menu_offset += len; ++ ++ return len; ++} ++ ++static void ++close_preset_menu (void) ++{ ++ /* Disable the preset menu. */ ++ preset_menu = 0; ++} ++ ++#else /* ! PRESET_MENU_STRING && ! SUPPORT_DISKLESS */ ++ ++#define open_preset_menu() 0 ++#define read_from_preset_menu(buf, maxlen) 0 ++#define close_preset_menu() ++ ++#endif /* ! PRESET_MENU_STRING && ! SUPPORT_DISKLESS */ ++ ++static char * ++get_entry (char *list, int num, int nested) ++{ ++ int i; ++ ++ for (i = 0; i < num; i++) ++ { ++ do ++ { ++ while (*(list++)); ++ } ++ while (nested && *(list++)); ++ } ++ ++ return list; ++} ++ ++/* Print an entry in a line of the menu box. */ ++static void ++print_entry (int y, int highlight, char *entry) ++{ ++ int x; ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_NORMAL); ++ ++ if (highlight && current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_HIGHLIGHT); ++ ++ gotoxy (2, y); ++ grub_putchar (' '); ++ for (x = 3; x < 75; x++) ++ { ++ if (*entry && x <= 72) ++ { ++ if (x == 72) ++ grub_putchar (DISP_RIGHT); ++ else ++ grub_putchar (*entry++); ++ } ++ else ++ grub_putchar (' '); ++ } ++ gotoxy (74, y); ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_STANDARD); ++} ++ ++/* Print entries in the menu box. */ ++static void ++print_entries (int y, int size, int first, int entryno, char *menu_entries) ++{ ++ int i; ++ ++ gotoxy (77, y + 1); ++ ++ if (first) ++ grub_putchar (DISP_UP); ++ else ++ grub_putchar (' '); ++ ++ menu_entries = get_entry (menu_entries, first, 0); ++ ++ for (i = 0; i < size; i++) ++ { ++ print_entry (y + i + 1, entryno == i, menu_entries); ++ ++ while (*menu_entries) ++ menu_entries++; ++ ++ if (*(menu_entries - 1)) ++ menu_entries++; ++ } ++ ++ gotoxy (77, y + size); ++ ++ if (*menu_entries) ++ grub_putchar (DISP_DOWN); ++ else ++ grub_putchar (' '); ++ ++ gotoxy (74, y + entryno + 1); ++} ++ ++static void ++print_entries_raw (int size, int first, char *menu_entries) ++{ ++ int i; ++ ++#define LINE_LENGTH 67 ++ ++ for (i = 0; i < LINE_LENGTH; i++) ++ grub_putchar ('-'); ++ grub_putchar ('\n'); ++ ++ for (i = first; i < size; i++) ++ { ++ /* grub's printf can't %02d so ... */ ++ if (i < 10) ++ grub_putchar (' '); ++ grub_printf ("%d: %s\n", i, get_entry (menu_entries, i, 0)); ++ } ++ ++ for (i = 0; i < LINE_LENGTH; i++) ++ grub_putchar ('-'); ++ grub_putchar ('\n'); ++ ++#undef LINE_LENGTH ++} ++ ++ ++static void ++print_border (int y, int size) ++{ ++ int i; ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_NORMAL); ++ ++ gotoxy (1, y); ++ ++ grub_putchar (DISP_UL); ++ for (i = 0; i < 73; i++) ++ grub_putchar (DISP_HORIZ); ++ grub_putchar (DISP_UR); ++ ++ i = 1; ++ while (1) ++ { ++ gotoxy (1, y + i); ++ ++ if (i > size) ++ break; ++ ++ grub_putchar (DISP_VERT); ++ gotoxy (75, y + i); ++ grub_putchar (DISP_VERT); ++ ++ i++; ++ } ++ ++ grub_putchar (DISP_LL); ++ for (i = 0; i < 73; i++) ++ grub_putchar (DISP_HORIZ); ++ grub_putchar (DISP_LR); ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_STANDARD); ++} ++ ++static void ++run_menu (char *menu_entries, char *config_entries, int num_entries, ++ char *heap, int entryno) ++{ ++ int c, time1, time2 = -1, first_entry = 0; ++ char *cur_entry = 0; ++ ++ /* ++ * Main loop for menu UI. ++ */ ++ ++restart: ++ /* Dumb terminal always use all entries for display ++ invariant for TERM_DUMB: first_entry == 0 */ ++ if (! (current_term->flags & TERM_DUMB)) ++ { ++ while (entryno > 11) ++ { ++ first_entry++; ++ entryno--; ++ } ++ } ++ ++ /* If the timeout was expired or wasn't set, force to show the menu ++ interface. */ ++ if (grub_timeout < 0) ++ show_menu = 1; ++ ++ /* If SHOW_MENU is false, don't display the menu until ESC is pressed. */ ++ if (! show_menu) ++ { ++ /* Get current time. */ ++ while ((time1 = getrtsecs ()) == 0xFF) ++ ; ++ ++ while (1) ++ { ++ /* Check if ESC is pressed. */ ++ if (checkkey () != -1 && ASCII_CHAR (getkey ()) == '\e') ++ { ++ grub_timeout = -1; ++ show_menu = 1; ++ break; ++ } ++ ++ /* If GRUB_TIMEOUT is expired, boot the default entry. */ ++ if (grub_timeout >=0 ++ && (time1 = getrtsecs ()) != time2 ++ && time1 != 0xFF) ++ { ++ if (grub_timeout <= 0) ++ { ++ grub_timeout = -1; ++ goto boot_entry; ++ } ++ ++ time2 = time1; ++ grub_timeout--; ++ ++ /* Print a message. */ ++ grub_printf ("\rPress `ESC' to enter the menu... %d ", ++ grub_timeout); ++ } ++ } ++ } ++ ++ /* Only display the menu if the user wants to see it. */ ++ if (show_menu) ++ { ++ init_page (); ++ setcursor (0); ++ ++ if (current_term->flags & TERM_DUMB) ++ print_entries_raw (num_entries, first_entry, menu_entries); ++ else ++ print_border (3, 12); ++ ++ grub_printf ("\n\ ++ Use the %c and %c keys to select which entry is highlighted.\n", ++ DISP_UP, DISP_DOWN); ++ ++ if (! auth && password) ++ { ++ printf ("\ ++ Press enter to boot the selected OS or 'p' to enter a\n\ ++ password to unlock the next set of features."); ++ } ++ else ++ { ++ if (config_entries) ++ printf ("\ ++ Press enter to boot the selected OS, 'e' to edit the\n\ ++ commands before booting, or 'c' for a command-line."); ++ else ++ printf ("\ ++ Press 'b' to boot, 'e' to edit the selected command in the\n\ ++ boot sequence, 'c' for a command-line, 'o' to open a new line\n\ ++ after ('O' for before) the selected line, 'd' to remove the\n\ ++ selected line, or escape to go back to the main menu."); ++ } ++ ++ if (current_term->flags & TERM_DUMB) ++ grub_printf ("\n\nThe selected entry is %d ", entryno); ++ else ++ print_entries (3, 12, first_entry, entryno, menu_entries); ++ } ++ ++ /* XX using RT clock now, need to initialize value */ ++ while ((time1 = getrtsecs()) == 0xFF); ++ ++ while (1) ++ { ++ /* Initialize to NULL just in case... */ ++ cur_entry = NULL; ++ ++ if (grub_timeout >= 0 && (time1 = getrtsecs()) != time2 && time1 != 0xFF) ++ { ++ if (grub_timeout <= 0) ++ { ++ grub_timeout = -1; ++ break; ++ } ++ ++ /* else not booting yet! */ ++ time2 = time1; ++ ++ if (current_term->flags & TERM_DUMB) ++ grub_printf ("\r Entry %d will be booted automatically in %d seconds. ", ++ entryno, grub_timeout); ++ else ++ { ++ gotoxy (3, 22); ++ grub_printf ("The highlighted entry will be booted automatically in %d seconds. ", ++ grub_timeout); ++ gotoxy (74, 4 + entryno); ++ } ++ ++ grub_timeout--; ++ } ++ ++ /* Check for a keypress, however if TIMEOUT has been expired ++ (GRUB_TIMEOUT == -1) relax in GETKEY even if no key has been ++ pressed. ++ This avoids polling (relevant in the grub-shell and later on ++ in grub if interrupt driven I/O is done). */ ++ if (checkkey () >= 0 || grub_timeout < 0) ++ { ++ /* Key was pressed, show which entry is selected before GETKEY, ++ since we're comming in here also on GRUB_TIMEOUT == -1 and ++ hang in GETKEY */ ++ if (current_term->flags & TERM_DUMB) ++ grub_printf ("\r Highlighted entry is %d: ", entryno); ++ ++ c = ASCII_CHAR (getkey ()); ++ ++ if (grub_timeout >= 0) ++ { ++ if (current_term->flags & TERM_DUMB) ++ grub_putchar ('\r'); ++ else ++ gotoxy (3, 22); ++ printf (" "); ++ grub_timeout = -1; ++ fallback_entryno = -1; ++ if (! (current_term->flags & TERM_DUMB)) ++ gotoxy (74, 4 + entryno); ++ } ++ ++ /* We told them above (at least in SUPPORT_SERIAL) to use ++ '^' or 'v' so accept these keys. */ ++ if (c == 16 || c == '^') ++ { ++ if (current_term->flags & TERM_DUMB) ++ { ++ if (entryno > 0) ++ entryno--; ++ } ++ else ++ { ++ if (entryno > 0) ++ { ++ print_entry (4 + entryno, 0, ++ get_entry (menu_entries, ++ first_entry + entryno, ++ 0)); ++ entryno--; ++ print_entry (4 + entryno, 1, ++ get_entry (menu_entries, ++ first_entry + entryno, ++ 0)); ++ } ++ else if (first_entry > 0) ++ { ++ first_entry--; ++ print_entries (3, 12, first_entry, entryno, ++ menu_entries); ++ } ++ } ++ } ++ else if ((c == 14 || c == 'v') ++ && first_entry + entryno + 1 < num_entries) ++ { ++ if (current_term->flags & TERM_DUMB) ++ entryno++; ++ else ++ { ++ if (entryno < 11) ++ { ++ print_entry (4 + entryno, 0, ++ get_entry (menu_entries, ++ first_entry + entryno, ++ 0)); ++ entryno++; ++ print_entry (4 + entryno, 1, ++ get_entry (menu_entries, ++ first_entry + entryno, ++ 0)); ++ } ++ else if (num_entries > 12 + first_entry) ++ { ++ first_entry++; ++ print_entries (3, 12, first_entry, entryno, menu_entries); ++ } ++ } ++ } ++ else if (c == 7) ++ { ++ /* Page Up */ ++ first_entry -= 12; ++ if (first_entry < 0) ++ { ++ entryno += first_entry; ++ first_entry = 0; ++ if (entryno < 0) ++ entryno = 0; ++ } ++ print_entries (3, 12, first_entry, entryno, menu_entries); ++ } ++ else if (c == 3) ++ { ++ /* Page Down */ ++ first_entry += 12; ++ if (first_entry + entryno + 1 >= num_entries) ++ { ++ first_entry = num_entries - 12; ++ if (first_entry < 0) ++ first_entry = 0; ++ entryno = num_entries - first_entry - 1; ++ } ++ print_entries (3, 12, first_entry, entryno, menu_entries); ++ } ++ ++ if (config_entries) ++ { ++ if ((c == '\n') || (c == '\r') || (c == 6)) ++ break; ++ } ++ else ++ { ++ if ((c == 'd') || (c == 'o') || (c == 'O')) ++ { ++ if (! (current_term->flags & TERM_DUMB)) ++ print_entry (4 + entryno, 0, ++ get_entry (menu_entries, ++ first_entry + entryno, ++ 0)); ++ ++ /* insert after is almost exactly like insert before */ ++ if (c == 'o') ++ { ++ /* But `o' differs from `O', since it may causes ++ the menu screen to scroll up. */ ++ if (entryno < 11 || (current_term->flags & TERM_DUMB)) ++ entryno++; ++ else ++ first_entry++; ++ ++ c = 'O'; ++ } ++ ++ cur_entry = get_entry (menu_entries, ++ first_entry + entryno, ++ 0); ++ ++ if (c == 'O') ++ { ++ grub_memmove (cur_entry + 2, cur_entry, ++ ((int) heap) - ((int) cur_entry)); ++ ++ cur_entry[0] = ' '; ++ cur_entry[1] = 0; ++ ++ heap += 2; ++ ++ num_entries++; ++ } ++ else if (num_entries > 0) ++ { ++ char *ptr = get_entry(menu_entries, ++ first_entry + entryno + 1, ++ 0); ++ ++ grub_memmove (cur_entry, ptr, ++ ((int) heap) - ((int) ptr)); ++ heap -= (((int) ptr) - ((int) cur_entry)); ++ ++ num_entries--; ++ ++ if (entryno >= num_entries) ++ entryno--; ++ if (first_entry && num_entries < 12 + first_entry) ++ first_entry--; ++ } ++ ++ if (current_term->flags & TERM_DUMB) ++ { ++ grub_printf ("\n\n"); ++ print_entries_raw (num_entries, first_entry, ++ menu_entries); ++ grub_printf ("\n"); ++ } ++ else ++ print_entries (3, 12, first_entry, entryno, menu_entries); ++ } ++ ++ cur_entry = menu_entries; ++ if (c == 27) ++ return; ++ if (c == 'b') ++ break; ++ } ++ ++ if (! auth && password) ++ { ++ if (c == 'p') ++ { ++ /* Do password check here! */ ++ char entered[32]; ++ char *pptr = password; ++ ++ if (current_term->flags & TERM_DUMB) ++ grub_printf ("\r "); ++ else ++ gotoxy (1, 21); ++ ++ /* Wipe out the previously entered password */ ++ grub_memset (entered, 0, sizeof (entered)); ++ get_cmdline (" Password: ", entered, 31, '*', 0); ++ ++ while (! isspace (*pptr) && *pptr) ++ pptr++; ++ ++ /* Make sure that PASSWORD is NUL-terminated. */ ++ *pptr++ = 0; ++ ++ if (! check_password (entered, password, password_type)) ++ { ++ char *new_file = config_file; ++ while (isspace (*pptr)) ++ pptr++; ++ ++ /* If *PPTR is NUL, then allow the user to use ++ privileged instructions, otherwise, load ++ another configuration file. */ ++ if (*pptr != 0) ++ { ++ while ((*(new_file++) = *(pptr++)) != 0) ++ ; ++ ++ /* Make sure that the user will not have ++ authority in the next configuration. */ ++ auth = 0; ++ return; ++ } ++ else ++ { ++ /* Now the user is superhuman. */ ++ auth = 1; ++ goto restart; ++ } ++ } ++ else ++ { ++ grub_printf ("Failed!\n Press any key to continue..."); ++ getkey (); ++ goto restart; ++ } ++ } ++ } ++ else ++ { ++ if (c == 'e') ++ { ++ int new_num_entries = 0, i = 0; ++ char *new_heap; ++ ++ if (config_entries) ++ { ++ new_heap = heap; ++ cur_entry = get_entry (config_entries, ++ first_entry + entryno, ++ 1); ++ } ++ else ++ { ++ /* safe area! */ ++ new_heap = heap + NEW_HEAPSIZE + 1; ++ cur_entry = get_entry (menu_entries, ++ first_entry + entryno, ++ 0); ++ } ++ ++ do ++ { ++ while ((*(new_heap++) = cur_entry[i++]) != 0); ++ new_num_entries++; ++ } ++ while (config_entries && cur_entry[i]); ++ ++ /* this only needs to be done if config_entries is non-NULL, ++ but it doesn't hurt to do it always */ ++ *(new_heap++) = 0; ++ ++ if (config_entries) ++ run_menu (heap, NULL, new_num_entries, new_heap, 0); ++ else ++ { ++ cls (); ++ print_cmdline_message (0); ++ ++ new_heap = heap + NEW_HEAPSIZE + 1; ++ ++ saved_drive = boot_drive; ++ saved_partition = install_partition; ++ current_drive = GRUB_INVALID_DRIVE; ++ ++ if (! get_cmdline (PACKAGE " edit> ", new_heap, ++ NEW_HEAPSIZE + 1, 0, 1)) ++ { ++ int j = 0; ++ ++ /* get length of new command */ ++ while (new_heap[j++]) ++ ; ++ ++ if (j < 2) ++ { ++ j = 2; ++ new_heap[0] = ' '; ++ new_heap[1] = 0; ++ } ++ ++ /* align rest of commands properly */ ++ grub_memmove (cur_entry + j, cur_entry + i, ++ (int) heap - ((int) cur_entry + i)); ++ ++ /* copy command to correct area */ ++ grub_memmove (cur_entry, new_heap, j); ++ ++ heap += (j - i); ++ } ++ } ++ ++ goto restart; ++ } ++ if (c == 'c') ++ { ++ enter_cmdline (heap, 0); ++ goto restart; ++ } ++#ifdef GRUB_UTIL ++ if (c == 'q') ++ { ++ /* The same as ``quit''. */ ++ stop (); ++ } ++#endif ++ } ++ } ++ } ++ ++ /* Attempt to boot an entry. */ ++ ++ boot_entry: ++ ++ cls (); ++ setcursor (1); ++ ++ while (1) ++ { ++ if (config_entries) ++ printf (" Booting '%s'\n\n", ++ get_entry (menu_entries, first_entry + entryno, 0)); ++ else ++ printf (" Booting command-list\n\n"); ++ ++ if (! cur_entry) ++ cur_entry = get_entry (config_entries, first_entry + entryno, 1); ++ ++ /* Set CURRENT_ENTRYNO for the command "savedefault". */ ++ current_entryno = first_entry + entryno; ++ ++ if (run_script (cur_entry, heap)) ++ { ++ if (fallback_entryno >= 0) ++ { ++ cur_entry = NULL; ++ first_entry = 0; ++ entryno = fallback_entries[fallback_entryno]; ++ fallback_entryno++; ++ if (fallback_entryno >= MAX_FALLBACK_ENTRIES ++ || fallback_entries[fallback_entryno] < 0) ++ fallback_entryno = -1; ++ } ++ else ++ break; ++ } ++ else ++ break; ++ } ++ ++ show_menu = 1; ++ goto restart; ++} ++ ++ ++static int ++get_line_from_config (char *cmdline, int maxlen, int read_from_file) ++{ ++ int pos = 0, literal = 0, comment = 0; ++ char c; /* since we're loading it a byte at a time! */ ++ ++ while (1) ++ { ++ if (read_from_file) ++ { ++ if (! grub_read (&c, 1)) ++ break; ++ } ++ else ++ { ++ if (! read_from_preset_menu (&c, 1)) ++ break; ++ } ++ ++ /* Skip all carriage returns. */ ++ if (c == '\r') ++ continue; ++ ++ /* Replace tabs with spaces. */ ++ if (c == '\t') ++ c = ' '; ++ ++ /* The previous is a backslash, then... */ ++ if (literal) ++ { ++ /* If it is a newline, replace it with a space and continue. */ ++ if (c == '\n') ++ { ++ c = ' '; ++ ++ /* Go back to overwrite a backslash. */ ++ if (pos > 0) ++ pos--; ++ } ++ ++ literal = 0; ++ } ++ ++ /* translate characters first! */ ++ if (c == '\' && ! literal) ++ literal = 1; ++ ++ if (comment) ++ { ++ if (c == '\n') ++ comment = 0; ++ } ++ else if (! pos) ++ { ++ if (c == '#') ++ comment = 1; ++ else if ((c != ' ') && (c != '\n')) ++ cmdline[pos++] = c; ++ } ++ else ++ { ++ if (c == '\n') ++ break; ++ ++ if (pos < maxlen) ++ cmdline[pos++] = c; ++ } ++ } ++ ++ cmdline[pos] = 0; ++ ++ return pos; ++} ++ ++ ++/* This is the starting function in C. */ ++void ++cmain (void) ++{ ++ int config_len, menu_len, num_entries; ++ char *config_entries, *menu_entries; ++ char *kill_buf = (char *) KILL_BUF; ++ ++ auto void reset (void); ++ void reset (void) ++ { ++ count_lines = -1; ++ config_len = 0; ++ menu_len = 0; ++ num_entries = 0; ++ config_entries = (char *) mbi.drives_addr + mbi.drives_length; ++ menu_entries = (char *) MENU_BUF; ++ init_config (); ++ } ++ ++ /* Initialize the environment for restarting Stage 2. */ ++ grub_setjmp (restart_env); ++ ++ /* Initialize the kill buffer. */ ++ *kill_buf = 0; ++ ++ /* Never return. */ ++ for (;;) ++ { ++ int is_opened, is_preset; ++ ++ reset (); ++ ++ /* Here load the configuration file. */ ++ ++#ifdef GRUB_UTIL ++ if (use_config_file) ++#endif /* GRUB_UTIL */ ++ { ++ char *default_file = (char *) DEFAULT_FILE_BUF; ++ int i; ++ ++ /* Get a saved default entry if possible. */ ++ saved_entryno = 0; ++ *default_file = 0; ++ grub_strncat (default_file, config_file, DEFAULT_FILE_BUFLEN); ++ for (i = grub_strlen(default_file); i >= 0; i--) ++ if (default_file[i] == '/') ++ { ++ i++; ++ break; ++ } ++ default_file[i] = 0; ++ grub_strncat (default_file + i, "default", DEFAULT_FILE_BUFLEN - i); ++ if (grub_open (default_file)) ++ { ++ char buf[10]; /* This is good enough. */ ++ char *p = buf; ++ int len; ++ ++ len = grub_read (buf, sizeof (buf)); ++ if (len > 0) ++ { ++ buf[sizeof (buf) - 1] = 0; ++ safe_parse_maxint (&p, &saved_entryno); ++ } ++ ++ grub_close (); ++ } ++ errnum = ERR_NONE; ++ ++ do ++ { ++ /* STATE 0: Before any title command. ++ STATE 1: In a title command. ++ STATE >1: In a entry after a title command. */ ++ int state = 0, prev_config_len = 0, prev_menu_len = 0; ++ char *cmdline; ++ ++ /* Try the preset menu first. This will succeed at most once, ++ because close_preset_menu disables the preset menu. */ ++ is_opened = is_preset = open_preset_menu (); ++ if (! is_opened) ++ { ++ is_opened = grub_open (config_file); ++ errnum = ERR_NONE; ++ } ++ ++ if (! is_opened) ++ break; ++ ++ /* This is necessary, because the menu must be overrided. */ ++ reset (); ++ ++ cmdline = (char *) CMDLINE_BUF; ++ while (get_line_from_config (cmdline, NEW_HEAPSIZE, ++ ! is_preset)) ++ { ++ struct builtin *builtin; ++ ++ /* Get the pointer to the builtin structure. */ ++ builtin = find_command (cmdline); ++ errnum = 0; ++ if (! builtin) ++ /* Unknown command. Just skip now. */ ++ continue; ++ ++ if (builtin->flags & BUILTIN_TITLE) ++ { ++ char *ptr; ++ ++ /* the command "title" is specially treated. */ ++ if (state > 1) ++ { ++ /* The next title is found. */ ++ num_entries++; ++ config_entries[config_len++] = 0; ++ prev_menu_len = menu_len; ++ prev_config_len = config_len; ++ } ++ else ++ { ++ /* The first title is found. */ ++ menu_len = prev_menu_len; ++ config_len = prev_config_len; ++ } ++ ++ /* Reset the state. */ ++ state = 1; ++ ++ /* Copy title into menu area. */ ++ ptr = skip_to (1, cmdline); ++ while ((menu_entries[menu_len++] = *(ptr++)) != 0) ++ ; ++ } ++ else if (! state) ++ { ++ /* Run a command found is possible. */ ++ if (builtin->flags & BUILTIN_MENU) ++ { ++ char *arg = skip_to (1, cmdline); ++ (builtin->func) (arg, BUILTIN_MENU); ++ errnum = 0; ++ } ++ else ++ /* Ignored. */ ++ continue; ++ } ++ else ++ { ++ char *ptr = cmdline; ++ ++ state++; ++ /* Copy config file data to config area. */ ++ while ((config_entries[config_len++] = *ptr++) != 0) ++ ; ++ } ++ } ++ ++ if (state > 1) ++ { ++ /* Finish the last entry. */ ++ num_entries++; ++ config_entries[config_len++] = 0; ++ } ++ else ++ { ++ menu_len = prev_menu_len; ++ config_len = prev_config_len; ++ } ++ ++ menu_entries[menu_len++] = 0; ++ config_entries[config_len++] = 0; ++ grub_memmove (config_entries + config_len, menu_entries, ++ menu_len); ++ menu_entries = config_entries + config_len; ++ ++ /* Make sure that all fallback entries are valid. */ ++ if (fallback_entryno >= 0) ++ { ++ for (i = 0; i < MAX_FALLBACK_ENTRIES; i++) ++ { ++ if (fallback_entries[i] < 0) ++ break; ++ if (fallback_entries[i] >= num_entries) ++ { ++ grub_memmove (fallback_entries + i, ++ fallback_entries + i + 1, ++ ((MAX_FALLBACK_ENTRIES - i - 1) ++ * sizeof (int))); ++ i--; ++ } ++ } ++ ++ if (fallback_entries[0] < 0) ++ fallback_entryno = -1; ++ } ++ /* Check if the default entry is present. Otherwise reset ++ it to fallback if fallback is valid, or to DEFAULT_ENTRY ++ if not. */ ++ if (default_entry >= num_entries) ++ { ++ if (fallback_entryno >= 0) ++ { ++ default_entry = fallback_entries[0]; ++ fallback_entryno++; ++ if (fallback_entryno >= MAX_FALLBACK_ENTRIES ++ || fallback_entries[fallback_entryno] < 0) ++ fallback_entryno = -1; ++ } ++ else ++ default_entry = 0; ++ } ++ ++ if (is_preset) ++ close_preset_menu (); ++ else ++ grub_close (); ++ } ++ while (is_preset); ++ } ++ ++ if (! num_entries) ++ { ++ /* If no acceptable config file, goto command-line, starting ++ heap from where the config entries would have been stored ++ if there were any. */ ++ enter_cmdline (config_entries, 1); ++ } ++ else ++ { ++ /* Run menu interface. */ ++ run_menu (menu_entries, config_entries, num_entries, ++ menu_entries + menu_len, default_entry); ++ } ++ } ++} +diff -Nur grub-0.97/stage2/term.h grub-0.97-patched/stage2/term.h +--- grub-0.97/stage2/term.h 2003-07-09 13:45:53.000000000 +0200 ++++ grub-0.97-patched/stage2/term.h 2012-11-11 17:06:33.311470556 +0100 +@@ -60,6 +60,8 @@ + const char *name; + /* The feature flags defined above. */ + unsigned long flags; ++ /* Default for maximum number of lines if not specified */ ++ unsigned short max_lines; + /* Put a character. */ + void (*putchar) (int c); + /* Check if any input character is available. */ +@@ -79,6 +81,11 @@ + void (*setcolor) (int normal_color, int highlight_color); + /* Turn on/off the cursor. */ + int (*setcursor) (int on); ++ ++ /* function to start a terminal */ ++ int (*startup) (void); ++ /* function to use to shutdown a terminal */ ++ void (*shutdown) (void); + }; + + /* This lists up available terminals. */ +@@ -124,4 +131,23 @@ + int hercules_setcursor (int on); + #endif + ++#ifdef SUPPORT_GRAPHICS ++extern int foreground, background, border, graphics_inited; ++ ++void graphics_set_splash(char *splashfile); ++int set_videomode (int mode); ++void graphics_putchar (int c); ++int graphics_getxy(void); ++void graphics_gotoxy(int x, int y); ++void graphics_cls(void); ++void graphics_setcolorstate (color_state state); ++void graphics_setcolor (int normal_color, int highlight_color); ++void graphics_setcursor (int on); ++int graphics_init(void); ++void graphics_end(void); ++ ++int hex(int v); ++void graphics_set_palette(int idx, int red, int green, int blue); ++#endif /* SUPPORT_GRAPHICS */ ++ + #endif /* ! GRUB_TERM_HEADER */ +diff -Nur grub-0.97/THANKS grub-0.97-patched/THANKS +--- grub-0.97/THANKS 2005-05-08 04:17:43.000000000 +0200 ++++ grub-0.97-patched/THANKS 2012-11-11 17:07:12.709729021 +0100 +@@ -121,3 +121,4 @@ + Yedidyah Bar-David didi@post.tau.ac.il + Yury V. Umanets umka@namesys.com + Yuri Zaporogets yuriz@ukr.net ++Vitaly Fertman vitaly@namesys.com +diff -Nur grub-0.97/util/grub-install.in grub-0.97-patched/util/grub-install.in +--- grub-0.97/util/grub-install.in 2004-07-24 20:57:31.000000000 +0200 ++++ grub-0.97-patched/util/grub-install.in 2012-11-11 17:07:12.748730268 +0100 +@@ -96,24 +96,27 @@ + # Break the device name into the disk part and the partition part. + case "$host_os" in + linux*) +- tmp_disk=`echo "$1" | sed -e 's%([sh]d[a-z])[0-9]*$%\1%' \ ++ tmp_disk=`echo "$1" | sed -e 's%([shv]d[a-z])[0-9]*$%\1%' \ + -e 's%(d[0-9]*)p[0-9]*$%\1%' \ + -e 's%(fd[0-9]*)$%\1%' \ + -e 's%/part[0-9]*$%/disc%' \ +- -e 's%(c[0-7]d[0-9]*).*$%\1%'` +- tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]([0-9]*)$%\1%' \ ++ -e 's%(c[0-7]d[0-9]*).*$%\1%' \ ++ -e 's%(e[0-9].[0-9]*).*$%\1%'` ++ tmp_part=`echo "$1" | sed -e 's%.*/[shv]d[a-z]([0-9]*)$%\1%' \ + -e 's%.*d[0-9]*p%%' \ + -e 's%.*/fd[0-9]*$%%' \ + -e 's%.*/floppy/[0-9]*$%%' \ + -e 's%.*/(disc|part([0-9]*))$%\2%' \ +- -e 's%.*c[0-7]d[0-9]*p%%'` ++ -e 's%.*c[0-7]d[0-9]*p*%%' \ ++ -e 's%.*e[0-9].[0-9]*p%%' \ ++ -e 's%.*e[0-9].[0-9]*$%%'` + ;; + gnu*) + tmp_disk=`echo "$1" | sed 's%([sh]d[0-9]*).*%\1%'` + tmp_part=`echo "$1" | sed "s%$tmp_disk%%"` ;; + freebsd* | kfreebsd*-gnu) +- tmp_disk=`echo "$1" | sed 's%r{0,1}([saw]d[0-9]*).*$%r\1%' \ +- | sed 's%r{0,1}(da[0-9]*).*$%r\1%'` ++ tmp_disk=`echo "$1" | sed 's%r{0,1}([saw]d[0-9]*).*$%\1%' \ ++ | sed 's%r{0,1}(da[0-9]*).*$%\1%'` + tmp_part=`echo "$1" \ + | sed "s%.*/r{0,1}[saw]d[0-9](s[0-9]*[a-h])%\1%" \ + | sed "s%.*/r{0,1}da[0-9](s[0-9]*[a-h])%\1%"` +@@ -131,7 +134,7 @@ + + # Get the drive name. + tmp_drive=`grep -v '^#' $device_map | grep "$tmp_disk *$" \ +- | sed 's%.*(([hf]d[0-9][a-g0-9,]*)).*%\1%'` ++ | sed 's%.*(([hf]d[0-9][a-z0-9,]*)).*%\1%'` + + # If not found, print an error message and exit. + if test "x$tmp_drive" = x; then +@@ -148,13 +151,13 @@ + gnu*) + if echo $tmp_part | grep "^s" >/dev/null; then + tmp_pc_slice=`echo $tmp_part \ +- | sed "s%s([0-9]*)[a-g]*$%\1%"` ++ | sed "s%s([0-9]*)[a-z]*$%\1%"` + tmp_drive=`echo "$tmp_drive" \ + | sed "s%)%,`expr "$tmp_pc_slice" - 1`)%"` + fi +- if echo $tmp_part | grep "[a-g]$" >/dev/null; then ++ if echo $tmp_part | grep "[a-z]$" >/dev/null; then + tmp_bsd_partition=`echo "$tmp_part" \ +- | sed "s%[^a-g]*([a-g])$%\1%"` ++ | sed "s%[^a-z]*([a-z])$%\1%"` + tmp_drive=`echo "$tmp_drive" \ + | sed "s%)%,$tmp_bsd_partition)%"` + fi +@@ -336,6 +339,10 @@ + # Create a safe temporary file. + test -n "$mklog" && log_file=`$mklog` + ++ # Before all invocations of the grub shell, call sync to make sure ++ # the raw device is in sync with any bufferring in filesystems. ++ sync ++ + $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file + quit + EOF +@@ -450,6 +457,10 @@ + # Create a safe temporary file. + test -n "$mklog" && log_file=`$mklog` + ++# Before all invocations of the grub shell, call sync to make sure ++# the raw device is in sync with any bufferring in filesystems. ++sync ++ + # Now perform the installation. + $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file + root $root_drive +diff -Nur grub-0.97/util/grub-install.in.orig grub-0.97-patched/util/grub-install.in.orig +--- grub-0.97/util/grub-install.in.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/util/grub-install.in.orig 2004-07-24 20:57:31.000000000 +0200 +@@ -0,0 +1,477 @@ ++#! /bin/sh ++ ++# Install GRUB on your drive. ++# Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. ++# ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++# Initialize some variables. ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++sbindir=@sbindir@ ++libdir=@libdir@ ++PACKAGE=@PACKAGE@ ++VERSION=@VERSION@ ++host_cpu=@host_cpu@ ++host_os=@host_os@ ++host_vendor=@host_vendor@ ++pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor} ++ ++grub_shell=${sbindir}/grub ++grub_set_default=${sbindir}/grub-set-default ++log_file=/tmp/grub-install.log.$$ ++img_file=/tmp/grub-install.img.$$ ++rootdir= ++grub_prefix=/boot/grub ++ ++install_device= ++no_floppy= ++force_lba= ++recheck=no ++debug=no ++ ++# look for secure tempfile creation wrappers on this platform ++if test -x /bin/tempfile; then ++ mklog="/bin/tempfile --prefix=grub" ++ mkimg="/bin/tempfile --prefix=grub" ++elif test -x /bin/mktemp; then ++ mklog="/bin/mktemp /tmp/grub-install.log.XXXXXX" ++ mkimg="/bin/mktemp /tmp/grub-install.img.XXXXXX" ++else ++ mklog="" ++ mkimg="" ++fi ++ ++# Usage: usage ++# Print the usage. ++usage () { ++ cat <<EOF ++Usage: grub-install [OPTION] install_device ++Install GRUB on your drive. ++ ++ -h, --help print this message and exit ++ -v, --version print the version information and exit ++ --root-directory=DIR install GRUB images under the directory DIR ++ instead of the root directory ++ --grub-shell=FILE use FILE as the grub shell ++ --no-floppy do not probe any floppy drive ++ --force-lba force GRUB to use LBA mode even for a buggy ++ BIOS ++ --recheck probe a device map even if it already exists ++ ++INSTALL_DEVICE can be a GRUB device name or a system device filename. ++ ++grub-install copies GRUB images into the DIR/boot directory specfied by ++--root-directory, and uses the grub shell to install grub into the boot ++sector. ++ ++Report bugs to bug-grub@gnu.org. ++EOF ++} ++ ++# Usage: convert os_device ++# Convert an OS device to the corresponding GRUB drive. ++# This part is OS-specific. ++convert () { ++ # First, check if the device file exists. ++ if test -e "$1"; then ++ : ++ else ++ echo "$1: Not found or not a block device." 1>&2 ++ exit 1 ++ fi ++ ++ # Break the device name into the disk part and the partition part. ++ case "$host_os" in ++ linux*) ++ tmp_disk=`echo "$1" | sed -e 's%([sh]d[a-z])[0-9]*$%\1%' \ ++ -e 's%(d[0-9]*)p[0-9]*$%\1%' \ ++ -e 's%(fd[0-9]*)$%\1%' \ ++ -e 's%/part[0-9]*$%/disc%' \ ++ -e 's%(c[0-7]d[0-9]*).*$%\1%'` ++ tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]([0-9]*)$%\1%' \ ++ -e 's%.*d[0-9]*p%%' \ ++ -e 's%.*/fd[0-9]*$%%' \ ++ -e 's%.*/floppy/[0-9]*$%%' \ ++ -e 's%.*/(disc|part([0-9]*))$%\2%' \ ++ -e 's%.*c[0-7]d[0-9]*p%%'` ++ ;; ++ gnu*) ++ tmp_disk=`echo "$1" | sed 's%([sh]d[0-9]*).*%\1%'` ++ tmp_part=`echo "$1" | sed "s%$tmp_disk%%"` ;; ++ freebsd* | kfreebsd*-gnu) ++ tmp_disk=`echo "$1" | sed 's%r{0,1}([saw]d[0-9]*).*$%r\1%' \ ++ | sed 's%r{0,1}(da[0-9]*).*$%r\1%'` ++ tmp_part=`echo "$1" \ ++ | sed "s%.*/r{0,1}[saw]d[0-9](s[0-9]*[a-h])%\1%" \ ++ | sed "s%.*/r{0,1}da[0-9](s[0-9]*[a-h])%\1%"` ++ ;; ++ netbsd* | knetbsd*-gnu) ++ tmp_disk=`echo "$1" | sed 's%r{0,1}([sw]d[0-9]*).*$%r\1d%' \ ++ | sed 's%r{0,1}(fd[0-9]*).*$%r\1a%'` ++ tmp_part=`echo "$1" \ ++ | sed "s%.*/r{0,1}[sw]d[0-9]([abe-p])%\1%"` ++ ;; ++ *) ++ echo "grub-install does not support your OS yet." 1>&2 ++ exit 1 ;; ++ esac ++ ++ # Get the drive name. ++ tmp_drive=`grep -v '^#' $device_map | grep "$tmp_disk *$" \ ++ | sed 's%.*(([hf]d[0-9][a-g0-9,]*)).*%\1%'` ++ ++ # If not found, print an error message and exit. ++ if test "x$tmp_drive" = x; then ++ echo "$1 does not have any corresponding BIOS drive." 1>&2 ++ exit 1 ++ fi ++ ++ if test "x$tmp_part" != x; then ++ # If a partition is specified, we need to translate it into the ++ # GRUB's syntax. ++ case "$host_os" in ++ linux*) ++ echo "$tmp_drive" | sed "s%)$%,`expr $tmp_part - 1`)%" ;; ++ gnu*) ++ if echo $tmp_part | grep "^s" >/dev/null; then ++ tmp_pc_slice=`echo $tmp_part \ ++ | sed "s%s([0-9]*)[a-g]*$%\1%"` ++ tmp_drive=`echo "$tmp_drive" \ ++ | sed "s%)%,`expr "$tmp_pc_slice" - 1`)%"` ++ fi ++ if echo $tmp_part | grep "[a-g]$" >/dev/null; then ++ tmp_bsd_partition=`echo "$tmp_part" \ ++ | sed "s%[^a-g]*([a-g])$%\1%"` ++ tmp_drive=`echo "$tmp_drive" \ ++ | sed "s%)%,$tmp_bsd_partition)%"` ++ fi ++ echo "$tmp_drive" ;; ++ freebsd* | kfreebsd*-gnu) ++ if echo $tmp_part | grep "^s" >/dev/null; then ++ tmp_pc_slice=`echo $tmp_part \ ++ | sed "s%s([0-9]*)[a-h]*$%\1%"` ++ tmp_drive=`echo "$tmp_drive" \ ++ | sed "s%)%,`expr "$tmp_pc_slice" - 1`)%"` ++ fi ++ if echo $tmp_part | grep "[a-h]$" >/dev/null; then ++ tmp_bsd_partition=`echo "$tmp_part" \ ++ | sed "s%s{0,1}[0-9]*([a-h])$%\1%"` ++ tmp_drive=`echo "$tmp_drive" \ ++ | sed "s%)%,$tmp_bsd_partition)%"` ++ fi ++ echo "$tmp_drive" ;; ++ netbsd* | knetbsd*-gnu) ++ if echo $tmp_part | grep "^[abe-p]$" >/dev/null; then ++ tmp_bsd_partition=`echo "$tmp_part" \ ++ | sed "s%([a-p])$%\1%"` ++ tmp_drive=`echo "$tmp_drive" \ ++ | sed "s%)%,$tmp_bsd_partition)%"` ++ fi ++ echo "$tmp_drive" ;; ++ esac ++ else ++ # If no partition is specified, just print the drive name. ++ echo "$tmp_drive" ++ fi ++} ++ ++# Usage: resolve_symlink file ++# Find the real file/device that file points at ++resolve_symlink () { ++ tmp_fname=$1 ++ # Resolve symlinks ++ while test -L $tmp_fname; do ++ tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> (.*)%\1%p'` ++ if test -z "$tmp_new_fname"; then ++ echo "Unrecognized ls output" 2>&1 ++ exit 1 ++ fi ++ ++ # Convert relative symlinks ++ case $tmp_new_fname in ++ /*) tmp_fname="$tmp_new_fname" ++ ;; ++ *) tmp_fname="`echo $tmp_fname | sed 's%/[^/]*$%%'`/$tmp_new_fname" ++ ;; ++ esac ++ done ++ echo "$tmp_fname" ++} ++ ++# Usage: find_device file ++# Find block device on which the file resides. ++find_device () { ++ # For now, this uses the program `df' to get the device name, but is ++ # this really portable? ++ tmp_fname=`df $1/ | sed -n 's%.*(/dev/[^ ]*).*%\1%p'` ++ ++ if test -z "$tmp_fname"; then ++ echo "Could not find device for $1" 2>&1 ++ exit 1 ++ fi ++ ++ tmp_fname=`resolve_symlink $tmp_fname` ++ ++ echo "$tmp_fname" ++} ++ ++# Check the arguments. ++for option in "$@"; do ++ case "$option" in ++ -h | --help) ++ usage ++ exit 0 ;; ++ -v | --version) ++ echo "grub-install (GNU GRUB ${VERSION})" ++ exit 0 ;; ++ --root-directory=*) ++ rootdir=`echo "$option" | sed 's/--root-directory=//'` ;; ++ --grub-shell=*) ++ grub_shell=`echo "$option" | sed 's/--grub-shell=//'` ;; ++ --no-floppy) ++ no_floppy="--no-floppy" ;; ++ --force-lba) ++ force_lba="--force-lba" ;; ++ --recheck) ++ recheck=yes ;; ++ # This is an undocumented feature... ++ --debug) ++ debug=yes ;; ++ -*) ++ echo "Unrecognized option `$option'" 1>&2 ++ usage ++ exit 1 ++ ;; ++ *) ++ if test "x$install_device" != x; then ++ echo "More than one install_devices?" 1>&2 ++ usage ++ exit 1 ++ fi ++ install_device="${option}" ;; ++ esac ++done ++ ++if test "x$install_device" = x; then ++ echo "install_device not specified." 1>&2 ++ usage ++ exit 1 ++fi ++ ++# If the debugging feature is enabled, print commands. ++if test $debug = yes; then ++ set -x ++fi ++ ++# Initialize these directories here, since ROOTDIR was initialized. ++case "$host_os" in ++netbsd* | openbsd*) ++ # Because /boot is used for the boot block in NetBSD and OpenBSD, use /grub ++ # instead of /boot/grub. ++ grub_prefix=/grub ++ bootdir=${rootdir} ++ ;; ++*) ++ # Use /boot/grub by default. ++ bootdir=${rootdir}/boot ++ ;; ++esac ++ ++grubdir=${bootdir}/grub ++device_map=${grubdir}/device.map ++ ++# Check if GRUB is installed. ++# This is necessary, because the user can specify "grub --read-only". ++set $grub_shell dummy ++if test -f "$1"; then ++ : ++else ++ echo "$1: Not found." 1>&2 ++ exit 1 ++fi ++ ++if test -f "$pkglibdir/stage1"; then ++ : ++else ++ echo "${pkglibdir}/stage1: Not found." 1>&2 ++ exit 1 ++fi ++ ++if test -f "$pkglibdir/stage2"; then ++ : ++else ++ echo "${pkglibdir}/stage2: Not found." 1>&2 ++ exit 1 ++fi ++ ++# Don't check for *stage1_5, because it is not fatal even if any ++# Stage 1.5 does not exist. ++ ++# Create the GRUB directory if it is not present. ++test -d "$bootdir" || mkdir "$bootdir" || exit 1 ++test -d "$grubdir" || mkdir "$grubdir" || exit 1 ++ ++# If --recheck is specified, remove the device map, if present. ++if test $recheck = yes; then ++ rm -f $device_map ++fi ++ ++# Create the device map file if it is not present. ++if test -f "$device_map"; then ++ : ++else ++ # Create a safe temporary file. ++ test -n "$mklog" && log_file=`$mklog` ++ ++ $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file ++quit ++EOF ++ if grep "Error [0-9]*: " $log_file >/dev/null; then ++ cat $log_file 1>&2 ++ exit 1 ++ fi ++ ++ rm -f $log_file ++fi ++ ++# Make sure that there is no duplicated entry. ++tmp=`sed -n '/^([fh]d[0-9]*)/s/(^(.*)).*/\1/p' $device_map \ ++ | sort | uniq -d | sed -n 1p` ++if test -n "$tmp"; then ++ echo "The drive $tmp is defined multiple times in the device map $device_map" 1>&2 ++ exit 1 ++fi ++ ++# Check for INSTALL_DEVICE. ++case "$install_device" in ++/dev/*) ++ install_device=`resolve_symlink "$install_device"` ++ install_drive=`convert "$install_device"` ++ # I don't know why, but some shells wouldn't die if exit is ++ # called in a function. ++ if test "x$install_drive" = x; then ++ exit 1 ++ fi ;; ++([hf]d[0-9]*)) ++ install_drive="$install_device" ;; ++[hf]d[0-9]*) ++ # The GRUB format with no parenthesis. ++ install_drive="($install_device)" ;; ++*) ++ echo "Format of install_device not recognized." 1>&2 ++ usage ++ exit 1 ;; ++esac ++ ++# Get the root drive. ++root_device=`find_device ${rootdir}` ++bootdir_device=`find_device ${bootdir}` ++ ++# Check if the boot directory is in the same device as the root directory. ++if test "x$root_device" != "x$bootdir_device"; then ++ # Perhaps the user has a separate boot partition. ++ root_device=$bootdir_device ++ grub_prefix="/grub" ++fi ++ ++# Convert the root device to a GRUB drive. ++root_drive=`convert "$root_device"` ++if test "x$root_drive" = x; then ++ exit 1 ++fi ++ ++# Check if the root directory exists in the same device as the grub ++# directory. ++grubdir_device=`find_device ${grubdir}` ++ ++if test "x$grubdir_device" != "x$root_device"; then ++ # For now, cannot deal with this situation. ++ cat <<EOF 1>&2 ++You must set the root directory by the option --root-directory, because ++$grubdir does not exist in the root device $root_device. ++EOF ++ exit 1 ++fi ++ ++# Copy the GRUB images to the GRUB directory. ++for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do ++ rm -f $file || exit 1 ++done ++for file in \ ++ ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do ++ cp -f $file ${grubdir} || exit 1 ++done ++ ++# Make a default file. ++${grub_set_default} --root-directory=${rootdir} default ++ ++# Make sure that GRUB reads the same images as the host OS. ++test -n "$mkimg" && img_file=`$mkimg` ++test -n "$mklog" && log_file=`$mklog` ++ ++for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do ++ count=5 ++ tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` ++ while test $count -gt 0; do ++ $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file ++dump ${root_drive}${tmp} ${img_file} ++quit ++EOF ++ if grep "Error [0-9]*: " $log_file >/dev/null; then ++ : ++ elif cmp $file $img_file >/dev/null; then ++ break ++ fi ++ sleep 1 ++ count=`expr $count - 1` ++ done ++ if test $count -eq 0; then ++ echo "The file $file not read correctly." 1>&2 ++ exit 1 ++ fi ++done ++ ++rm -f $img_file ++rm -f $log_file ++ ++# Create a safe temporary file. ++test -n "$mklog" && log_file=`$mklog` ++ ++# Now perform the installation. ++$grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file ++root $root_drive ++setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $install_drive ++quit ++EOF ++ ++if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then ++ cat $log_file 1>&2 ++ exit 1 ++fi ++ ++rm -f $log_file ++ ++# Prompt the user to check if the device map is correct. ++echo "Installation finished. No error reported." ++echo "This is the contents of the device map $device_map." ++echo "Check if this is correct or not. If any of the lines is incorrect," ++echo "fix it and re-run the script `grub-install'." ++echo ++ ++cat $device_map ++ ++# Bye. ++exit 0 +diff -Nur grub-0.97/util/mkbimage grub-0.97-patched/util/mkbimage +--- grub-0.97/util/mkbimage 2004-07-24 20:57:31.000000000 +0200 ++++ grub-0.97-patched/util/mkbimage 2012-11-11 17:07:12.744730138 +0100 +@@ -1,7 +1,7 @@ + #!/bin/sh + # MaKe a Bootable IMAGE --- 1.44, 2.88 and El Torito no-emulation mode + # C) 2001,2002,2003 Thierry Laronde tlaronde@polynum.org +-# C) 2001,2002,2003 Robert Millan robertmh@gnu.org ++# C) 2001,2002,2003 Robert Millan rmh@aybabtu.com + + + # This program is free software; you can redistribute it and/or modify +@@ -94,15 +94,13 @@ + display Version information and exit + + Copyright (c) 2001,2002,2003 Thierry Laronde tlaronde@polynum.org. +-Copyright (c) 2001,2002 Robert Millan zeratul2@wanadoo.es. + GPLed." + + version="mkbimage $version_number + +-Written by Thierry Laronde and Robert Millan. ++Written by Thierry Laronde. + + Copyright (c) 2001,2002,2003 Thierry Laronde tlaronde@polynum.org. +-Copyright (c) 2001,2002,2003 Robert Millan zeratul2@wanadoo.es. + + This is free software under the GPL version 2 or later; see the source for + copying conditions. There is NO warranty, not even for MERCHANTABILITY or diff --git a/src/patches/iptables-1.4.12-IMQ-test4.diff b/src/patches/iptables-1.4.12-IMQ-test4.diff new file mode 100644 index 0000000..5ce17e1 --- /dev/null +++ b/src/patches/iptables-1.4.12-IMQ-test4.diff @@ -0,0 +1,141 @@ +diff -Naur iptables-1.4.12.1/extensions/libxt_IMQ.c iptables-1.4.12.1-imq/extensions/libxt_IMQ.c +--- iptables-1.4.12.1/extensions/libxt_IMQ.c 1970-01-01 02:00:00.000000000 +0200 ++++ iptables-1.4.12.1-imq/extensions/libxt_IMQ.c 2011-09-30 13:53:21.000000000 +0300 +@@ -0,0 +1,105 @@ ++/* Shared library add-on to iptables to add IMQ target support. */ ++#include <stdio.h> ++#include <string.h> ++#include <stdlib.h> ++#include <getopt.h> ++ ++#include <xtables.h> ++#include <linux/netfilter/x_tables.h> ++#include <linux/netfilter/xt_IMQ.h> ++ ++/* Function which prints out usage message. */ ++static void IMQ_help(void) ++{ ++ printf( ++"IMQ target options:\n" ++" --todev <N> enqueue to imq<N>, defaults to 0\n"); ++ ++} ++ ++static struct option IMQ_opts[] = { ++ { "todev", 1, 0, '1' }, ++ { 0 } ++}; ++ ++/* Initialize the target. */ ++static void IMQ_init(struct xt_entry_target *t) ++{ ++ struct xt_imq_info *mr = (struct xt_imq_info*)t->data; ++ ++ mr->todev = 0; ++} ++ ++/* Function which parses command options; returns true if it ++ ate an option */ ++static int IMQ_parse(int c, char **argv, int invert, unsigned int *flags, ++ const void *entry, struct xt_entry_target **target) ++{ ++ struct xt_imq_info *mr = (struct xt_imq_info*)(*target)->data; ++ ++ switch(c) { ++ case '1': ++/* if (xtables_check_inverse(optarg, &invert, NULL, 0, argv)) ++ xtables_error(PARAMETER_PROBLEM, ++ "Unexpected `!' after --todev"); ++*/ ++ mr->todev=atoi(optarg); ++ break; ++ ++ default: ++ return 0; ++ } ++ return 1; ++} ++ ++/* Prints out the targinfo. */ ++static void IMQ_print(const void *ip, ++ const struct xt_entry_target *target, ++ int numeric) ++{ ++ struct xt_imq_info *mr = (struct xt_imq_info*)target->data; ++ ++ printf("IMQ: todev %u ", mr->todev); ++} ++ ++/* Saves the union ipt_targinfo in parsable form to stdout. */ ++static void IMQ_save(const void *ip, const struct xt_entry_target *target) ++{ ++ struct xt_imq_info *mr = (struct xt_imq_info*)target->data; ++ ++ printf(" --todev %u", mr->todev); ++} ++ ++static struct xtables_target imq_target = { ++ .name = "IMQ", ++ .version = XTABLES_VERSION, ++ .family = NFPROTO_IPV4, ++ .size = XT_ALIGN(sizeof(struct xt_imq_info)), ++ .userspacesize = XT_ALIGN(sizeof(struct xt_imq_info)), ++ .help = IMQ_help, ++ .init = IMQ_init, ++ .parse = IMQ_parse, ++ .print = IMQ_print, ++ .save = IMQ_save, ++ .extra_opts = IMQ_opts, ++}; ++ ++static struct xtables_target imq_target6 = { ++ .name = "IMQ", ++ .version = XTABLES_VERSION, ++ .family = NFPROTO_IPV6, ++ .size = XT_ALIGN(sizeof(struct xt_imq_info)), ++ .userspacesize = XT_ALIGN(sizeof(struct xt_imq_info)), ++ .help = IMQ_help, ++ .init = IMQ_init, ++ .parse = IMQ_parse, ++ .print = IMQ_print, ++ .save = IMQ_save, ++ .extra_opts = IMQ_opts, ++}; ++ ++// void __attribute((constructor)) nf_ext_init(void){ ++void _init(void){ ++ xtables_register_target(&imq_target); ++ xtables_register_target(&imq_target6); ++} +diff -Naur iptables-1.4.12.1/extensions/libxt_IMQ.man iptables-1.4.12.1-imq/extensions/libxt_IMQ.man +--- iptables-1.4.12.1/extensions/libxt_IMQ.man 1970-01-01 02:00:00.000000000 +0200 ++++ iptables-1.4.12.1-imq/extensions/libxt_IMQ.man 2011-09-30 13:53:21.000000000 +0300 +@@ -0,0 +1,15 @@ ++This target is used to redirect the traffic to the IMQ driver and you can apply ++QoS rules like HTB or CBQ. ++For example you can select only traffic comming from a specific interface or ++is going out on a specific interface. ++Also it permits to capture the traffic BEFORE NAT in the case of outgoing traffic ++or AFTER NAT in the case of incomming traffic. ++.TP ++\fB--to-dev\fP \fIvalue\fP ++Set the IMQ interface where to send this traffic ++.TP ++Example: ++.TP ++Redirect incomming traffic from interface eth0 to imq0 and outgoing traffic to imq1: ++iptables -t mangle -A FORWARD -i eth0 -j IMQ --to-dev 0 ++iptables -t mangle -A FORWARD -o eth0 -j IMQ --to-dev 1 +diff -Naur iptables-1.4.12.1/include/linux/netfilter/xt_IMQ.h iptables-1.4.12.1-imq/include/linux/netfilter/xt_IMQ.h +--- iptables-1.4.12.1/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ iptables-1.4.12.1-imq/include/linux/netfilter/xt_IMQ.h 2011-09-30 13:53:21.000000000 +0300 +@@ -0,0 +1,9 @@ ++#ifndef _XT_IMQ_H ++#define _XT_IMQ_H ++ ++struct xt_imq_info { ++ unsigned int todev; /* target imq device */ ++}; ++ ++#endif /* _XT_IMQ_H */ ++ diff --git a/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch b/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch new file mode 100644 index 0000000..9a11eb5 --- /dev/null +++ b/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch @@ -0,0 +1,481 @@ +diff -Naur iptables-1.4.6.org/extensions/.ipp2p-test iptables-1.4.6/extensions/.ipp2p-test +--- iptables-1.4.6.org/extensions/.ipp2p-test 1970-01-01 01:00:00.000000000 +0100 ++++ iptables-1.4.6/extensions/.ipp2p-test 2010-02-13 20:02:52.000000000 +0100 +@@ -0,0 +1,2 @@ ++#! /bin/sh ++[ -f $KERNEL_DIR/include/linux/netfilter_ipv4/ipt_ipp2p.h ] && echo ipp2p +diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extensions/libipt_ipp2p.c +--- iptables-1.4.6.org/extensions/libipt_ipp2p.c 1970-01-01 01:00:00.000000000 +0100 ++++ iptables-1.4.6/extensions/libipt_ipp2p.c 2010-02-13 20:02:52.000000000 +0100 +@@ -0,0 +1,424 @@ ++#include <stdio.h> ++#include <netdb.h> ++#include <string.h> ++#include <stdlib.h> ++#include <getopt.h> ++#include <ctype.h> ++ ++#include <iptables.h> ++ ++#include <linux/netfilter_ipv4/ipt_ipp2p.h> ++ ++#ifndef XTABLES_VERSION ++#define XTABLES_VERSION IPTABLES_VERSION ++#endif ++ ++#ifdef IPT_LIB_DIR ++#define xtables_target iptables_target ++#define xtables_register_target register_target ++#endif ++ ++static void ++help(void) ++{ ++ printf( ++ "IPP2P v%s options:\n" ++ " --ipp2p Grab all known p2p packets\n" ++ " --edk [TCP&UDP] All known eDonkey/eMule/Overnet packets\n" ++ " --dc [TCP] All known Direct Connect packets\n" ++ " --kazaa [TCP&UDP] All known KaZaA packets\n" ++ " --gnu [TCP&UDP] All known Gnutella packets\n" ++ " --bit [TCP&UDP] All known BitTorrent packets\n" ++ " --apple [TCP] All known AppleJuice packets\n" ++ " --winmx [TCP] All known WinMX\n" ++ " --soul [TCP] All known SoulSeek\n" ++ " --ares [TCP] All known Ares\n\n" ++ " EXPERIMENTAL protocols (please send feedback to: ipp2p@ipp2p.org) :\n" ++ " --mute [TCP] All known Mute packets\n" ++ " --waste [TCP] All known Waste packets\n" ++ " --xdcc [TCP] All known XDCC packets (only xdcc login)\n\n" ++ " DEBUG SUPPPORT, use only if you know why\n" ++ " --debug Generate kernel debug output, THIS WILL SLOW DOWN THE FILTER\n" ++ "\nNote that the follwing options will have the same meaning:\n" ++ " '--ipp2p' is equal to '--edk --dc --kazaa --gnu --bit --apple --winmx --soul --ares'\n" ++ "\nIPP2P was intended for TCP only. Due to increasing usage of UDP we needed to change this.\n" ++ "You can now use -p udp to search UDP packets only or without -p switch to search UDP and TCP packets.\n" ++ "\nSee README included with this package for more details or visit http://www.ipp2p.org%5Cn" ++ "\nExamples:\n" ++ " iptables -A FORWARD -m ipp2p --ipp2p -j MARK --set-mark 0x01\n" ++ " iptables -A FORWARD -p udp -m ipp2p --kazaa --bit -j DROP\n" ++ " iptables -A FORWARD -p tcp -m ipp2p --edk --soul -j DROP\n\n" ++ , IPP2P_VERSION); ++} ++ ++static struct option opts[] = { ++ { "ipp2p", 0, 0, '1' }, ++ { "edk", 0, 0, '2' }, ++ { "dc", 0, 0, '7' }, ++ { "gnu", 0, 0, '9' }, ++ { "kazaa", 0, 0, 'a' }, ++ { "bit", 0, 0, 'b' }, ++ { "apple", 0, 0, 'c' }, ++ { "soul", 0, 0, 'd' }, ++ { "winmx", 0, 0, 'e' }, ++ { "ares", 0, 0, 'f' }, ++ { "mute", 0, 0, 'g' }, ++ { "waste", 0, 0, 'h' }, ++ { "xdcc", 0, 0, 'i' }, ++ { "debug", 0, 0, 'j' }, ++ {0} ++}; ++ ++ ++static void ++#ifdef _XTABLES_H ++init(struct xt_entry_match *m) ++#else ++init(struct ipt_entry_match *t, unsigned int *nfcache) ++#endif ++{ ++ struct ipt_p2p_info *info = (struct ipt_p2p_info *)m->data; ++ ++#ifndef _XTABLES_H ++ *nfcache |= NFC_UNKNOWN; ++#endif ++ ++ /*init the module with default values*/ ++ info->cmd = 0; ++ info->debug = 0; ++ ++} ++ ++ ++static int ++parse(int c, char **argv, int invert, unsigned int *flags, ++#ifdef _XTABLES_H ++ const void *entry, struct xt_entry_match **match) ++#else ++ const struct ipt_entry *entry, unsigned int *nfcache, struct ipt_entry_match **match) ++#endif ++{ ++ struct ipt_p2p_info *info = (struct ipt_p2p_info *)(*match)->data; ++ ++ switch (c) { ++ case '1': /*cmd: ipp2p*/ ++ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p' may only be " ++ "specified once!"); ++ ++/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p-data' may only be " ++ "specified alone!"); ++*/ ++ ++ if ((*flags) != 0) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p' may only be " ++ "specified alone!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += SHORT_HAND_IPP2P; ++ info->cmd = *flags; ++ break; ++ ++ case '2': /*cmd: edk*/ ++ if ((*flags & IPP2P_EDK) == IPP2P_EDK) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--edk' may only be " ++ "specified once"); ++ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p' may only be " ++ "specified alone!"); ++/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p-data' may only be " ++ "specified alone!");*/ ++ if ((*flags & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: use `--edk' OR `--edk-data' but not both of them!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_EDK; ++ info->cmd = *flags; ++ break; ++ ++ ++ case '7': /*cmd: dc*/ ++ if ((*flags & IPP2P_DC) == IPP2P_DC) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--dc' may only be " ++ "specified once!"); ++ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p' may only be " ++ "specified alone!"); ++/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p-data' may only be " ++ "specified alone!");*/ ++ if ((*flags & IPP2P_DATA_DC) == IPP2P_DATA_DC) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: use `--dc' OR `--dc-data' but not both of them!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_DC; ++ info->cmd = *flags; ++ break; ++ ++ ++ case '9': /*cmd: gnu*/ ++ if ((*flags & IPP2P_GNU) == IPP2P_GNU) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--gnu' may only be " ++ "specified once!"); ++/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p-data' may only be " ++ "specified alone!");*/ ++ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p' may only be " ++ "specified alone!"); ++ if ((*flags & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: use `--gnu' OR `--gnu-data' but not both of them!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_GNU; ++ info->cmd = *flags; ++ break; ++ ++ case 'a': /*cmd: kazaa*/ ++ if ((*flags & IPP2P_KAZAA) == IPP2P_KAZAA) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--kazaa' may only be " ++ "specified once!"); ++/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p-data' may only be " ++ "specified alone!");*/ ++ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p' may only be " ++ "specified alone!"); ++ if ((*flags & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: use `--kazaa' OR `--kazaa-data' but not both of them!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_KAZAA; ++ info->cmd = *flags; ++ break; ++ ++ case 'b': /*cmd: bit*/ ++ if ((*flags & IPP2P_BIT) == IPP2P_BIT) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--bit' may only be " ++ "specified once!"); ++ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p' may only be " ++ "specified alone!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_BIT; ++ info->cmd = *flags; ++ break; ++ ++ case 'c': /*cmd: apple*/ ++ if ((*flags & IPP2P_APPLE) == IPP2P_APPLE) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--apple' may only be " ++ "specified once!"); ++ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p' may only be " ++ "specified alone!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_APPLE; ++ info->cmd = *flags; ++ break; ++ ++ ++ case 'd': /*cmd: soul*/ ++ if ((*flags & IPP2P_SOUL) == IPP2P_SOUL) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--soul' may only be " ++ "specified once!"); ++ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p' may only be " ++ "specified alone!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_SOUL; ++ info->cmd = *flags; ++ break; ++ ++ ++ case 'e': /*cmd: winmx*/ ++ if ((*flags & IPP2P_WINMX) == IPP2P_WINMX) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--winmx' may only be " ++ "specified once!"); ++ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p' may only be " ++ "specified alone!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_WINMX; ++ info->cmd = *flags; ++ break; ++ ++ case 'f': /*cmd: ares*/ ++ if ((*flags & IPP2P_ARES) == IPP2P_ARES) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ares' may only be " ++ "specified once!"); ++ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ipp2p' may only be " ++ "specified alone!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_ARES; ++ info->cmd = *flags; ++ break; ++ ++ case 'g': /*cmd: mute*/ ++ if ((*flags & IPP2P_MUTE) == IPP2P_MUTE) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--mute' may only be " ++ "specified once!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_MUTE; ++ info->cmd = *flags; ++ break; ++ case 'h': /*cmd: waste*/ ++ if ((*flags & IPP2P_WASTE) == IPP2P_WASTE) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--waste' may only be " ++ "specified once!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_WASTE; ++ info->cmd = *flags; ++ break; ++ case 'i': /*cmd: xdcc*/ ++ if ((*flags & IPP2P_XDCC) == IPP2P_XDCC) ++ xtables_error(PARAMETER_PROBLEM, ++ "ipp2p: `--ares' may only be " ++ "specified once!"); ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ *flags += IPP2P_XDCC; ++ info->cmd = *flags; ++ break; ++ ++ case 'j': /*cmd: debug*/ ++ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); ++ info->debug = 1; ++ break; ++ ++ default: ++// xtables_error(PARAMETER_PROBLEM, ++// "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n"); ++ return 0; ++ } ++ return 1; ++} ++ ++ ++static void ++final_check(unsigned int flags) ++{ ++ if (!flags) ++ xtables_error(PARAMETER_PROBLEM, ++ "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n"); ++} ++ ++static void ++#ifdef _XTABLES_H ++print(const void *ip, ++ const struct xt_entry_match *match, ++#else ++print(const struct ipt_ip *ip, ++ const struct ipt_entry_match *match, ++#endif ++ int numeric) ++{ ++ struct ipt_p2p_info *info = (struct ipt_p2p_info *)match->data; ++ ++ printf("ipp2p v%s", IPP2P_VERSION); ++ if ((info->cmd & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) printf(" --ipp2p"); ++// if ((info->cmd & SHORT_HAND_DATA) == SHORT_HAND_DATA) printf(" --ipp2p-data"); ++ if ((info->cmd & IPP2P_KAZAA) == IPP2P_KAZAA) printf(" --kazaa"); ++// if ((info->cmd & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) printf(" --kazaa-data"); ++// if ((info->cmd & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) printf(" --gnu-data"); ++ if ((info->cmd & IPP2P_GNU) == IPP2P_GNU) printf(" --gnu"); ++ if ((info->cmd & IPP2P_EDK) == IPP2P_EDK) printf(" --edk"); ++// if ((info->cmd & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) printf(" --edk-data"); ++// if ((info->cmd & IPP2P_DATA_DC) == IPP2P_DATA_DC) printf(" --dc-data"); ++ if ((info->cmd & IPP2P_DC) == IPP2P_DC) printf(" --dc"); ++ if ((info->cmd & IPP2P_BIT) == IPP2P_BIT) printf(" --bit"); ++ if ((info->cmd & IPP2P_APPLE) == IPP2P_APPLE) printf(" --apple"); ++ if ((info->cmd & IPP2P_SOUL) == IPP2P_SOUL) printf(" --soul"); ++ if ((info->cmd & IPP2P_WINMX) == IPP2P_WINMX) printf(" --winmx"); ++ if ((info->cmd & IPP2P_ARES) == IPP2P_ARES) printf(" --ares"); ++ if ((info->cmd & IPP2P_MUTE) == IPP2P_MUTE) printf(" --mute"); ++ if ((info->cmd & IPP2P_WASTE) == IPP2P_WASTE) printf(" --waste"); ++ if ((info->cmd & IPP2P_XDCC) == IPP2P_XDCC) printf(" --xdcc"); ++ if (info->debug != 0) printf(" --debug"); ++ printf(" "); ++} ++ ++static void ++#ifdef _XTABLES_H ++save(const void *ip, ++ const struct xt_entry_match *match) ++#else ++save(const struct ipt_ip *ip, ++ const struct ipt_entry_match *match) ++#endif ++{ ++ struct ipt_p2p_info *info = (struct ipt_p2p_info *)match->data; ++ ++ if ((info->cmd & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) printf("--ipp2p "); ++// if ((info->cmd & SHORT_HAND_DATA) == SHORT_HAND_DATA) printf("--ipp2p-data "); ++ if ((info->cmd & IPP2P_KAZAA) == IPP2P_KAZAA) printf("--kazaa "); ++// if ((info->cmd & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) printf("--kazaa-data "); ++// if ((info->cmd & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) printf("--gnu-data "); ++ if ((info->cmd & IPP2P_GNU) == IPP2P_GNU) printf("--gnu "); ++ if ((info->cmd & IPP2P_EDK) == IPP2P_EDK) printf("--edk "); ++// if ((info->cmd & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) printf("--edk-data "); ++// if ((info->cmd & IPP2P_DATA_DC) == IPP2P_DATA_DC) printf("--dc-data "); ++ if ((info->cmd & IPP2P_DC) == IPP2P_DC) printf("--dc "); ++ if ((info->cmd & IPP2P_BIT) == IPP2P_BIT) printf("--bit "); ++ if ((info->cmd & IPP2P_APPLE) == IPP2P_APPLE) printf("--apple "); ++ if ((info->cmd & IPP2P_SOUL) == IPP2P_SOUL) printf("--soul "); ++ if ((info->cmd & IPP2P_WINMX) == IPP2P_WINMX) printf("--winmx "); ++ if ((info->cmd & IPP2P_ARES) == IPP2P_ARES) printf("--ares "); ++ if ((info->cmd & IPP2P_MUTE) == IPP2P_MUTE) printf(" --mute"); ++ if ((info->cmd & IPP2P_WASTE) == IPP2P_WASTE) printf(" --waste"); ++ if ((info->cmd & IPP2P_XDCC) == IPP2P_XDCC) printf(" --xdcc"); ++ if (info->debug != 0) printf("--debug "); ++} ++ ++ ++static ++struct xtables_match ipp2p= ++{ ++ .next = NULL, ++ .name = "ipp2p", ++ .version = XTABLES_VERSION, ++ .size = XT_ALIGN(sizeof(struct ipt_p2p_info)), ++ .userspacesize = XT_ALIGN(sizeof(struct ipt_p2p_info)), ++ .help = &help, ++ .init = &init, ++ .parse = &parse, ++ .final_check = &final_check, ++ .print = &print, ++ .save = &save, ++ .extra_opts = opts ++}; ++ ++ ++ ++void _init(void) ++{ ++ xtables_register_match(&ipp2p); ++} ++ +diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.man iptables-1.4.6/extensions/libipt_ipp2p.man +--- iptables-1.4.6.org/extensions/libipt_ipp2p.man 1970-01-01 01:00:00.000000000 +0100 ++++ iptables-1.4.6/extensions/libipt_ipp2p.man 2010-02-13 20:02:52.000000000 +0100 +@@ -0,0 +1,43 @@ ++This module matches certain packets in P2P flows. It is not ++designed to match all packets belonging to a P2P connection - ++use IPP2P together with CONNMARK for this purpose. Also visit ++http://www.ipp2p.org for detailed information. ++ ++Use it together with -p tcp or -p udp to search these protocols ++only or without -p switch to search packets of both protocols. ++ ++IPP2P provides the following options: ++.TP ++.B "--edk " ++Matches as many eDonkey/eMule packets as possible. ++.TP ++.B "--kazaa " ++Matches as many KaZaA packets as possible. ++.TP ++.B "--gnu " ++Matches as many Gnutella packets as possible. ++.TP ++.B "--dc " ++Matches as many Direct Connect packets as possible. ++.TP ++.B "--bit " ++Matches BitTorrent packets. ++.TP ++.B "--apple " ++Matches AppleJuice packets. ++.TP ++.B "--soul " ++Matches some SoulSeek packets. Considered as beta, use careful! ++.TP ++.B "--winmx " ++Matches some WinMX packets. Considered as beta, use careful! ++.TP ++.B "--ares " ++Matches Ares and AresLite packets. Use together with -j DROP only. ++.TP ++.B "--ipp2p " ++Short hand for: --edk --kazaa --gnu --dc ++.TP ++.B "--debug " ++Prints some information about each hit into kernel logfile. May ++produce huge logfiles so beware! diff --git a/src/patches/iptables-1.4.6-errorno_includes.patch b/src/patches/iptables-1.4.6-errorno_includes.patch deleted file mode 100644 index a25c5a3..0000000 --- a/src/patches/iptables-1.4.6-errorno_includes.patch +++ /dev/null @@ -1,170 +0,0 @@ -diff -Naur include.org/asm/errno.h include/asm/errno.h ---- include.org/asm/errno.h 2010-02-12 18:21:40.000000000 +0100 -+++ include/asm/errno.h 2010-02-12 18:19:41.000000000 +0100 -@@ -5,4 +5,8 @@ - #include <linux/errno.h> - #endif - -+#ifndef _ASM_GENERIC_ERRNO_H -+ #include <asm-generic/errno.h> -+#endif -+ - #endif -diff -Naur include.org/asm-generic/errno-base.h include/asm-generic/errno-base.h ---- include.org/asm-generic/errno-base.h 1970-01-01 01:00:00.000000000 +0100 -+++ include/asm-generic/errno-base.h 2010-02-09 13:57:19.000000000 +0100 -@@ -0,0 +1,39 @@ -+#ifndef _ASM_GENERIC_ERRNO_BASE_H -+#define _ASM_GENERIC_ERRNO_BASE_H -+ -+#define EPERM 1 /* Operation not permitted */ -+#define ENOENT 2 /* No such file or directory */ -+#define ESRCH 3 /* No such process */ -+#define EINTR 4 /* Interrupted system call */ -+#define EIO 5 /* I/O error */ -+#define ENXIO 6 /* No such device or address */ -+#define E2BIG 7 /* Argument list too long */ -+#define ENOEXEC 8 /* Exec format error */ -+#define EBADF 9 /* Bad file number */ -+#define ECHILD 10 /* No child processes */ -+#define EAGAIN 11 /* Try again */ -+#define ENOMEM 12 /* Out of memory */ -+#define EACCES 13 /* Permission denied */ -+#define EFAULT 14 /* Bad address */ -+#define ENOTBLK 15 /* Block device required */ -+#define EBUSY 16 /* Device or resource busy */ -+#define EEXIST 17 /* File exists */ -+#define EXDEV 18 /* Cross-device link */ -+#define ENODEV 19 /* No such device */ -+#define ENOTDIR 20 /* Not a directory */ -+#define EISDIR 21 /* Is a directory */ -+#define EINVAL 22 /* Invalid argument */ -+#define ENFILE 23 /* File table overflow */ -+#define EMFILE 24 /* Too many open files */ -+#define ENOTTY 25 /* Not a typewriter */ -+#define ETXTBSY 26 /* Text file busy */ -+#define EFBIG 27 /* File too large */ -+#define ENOSPC 28 /* No space left on device */ -+#define ESPIPE 29 /* Illegal seek */ -+#define EROFS 30 /* Read-only file system */ -+#define EMLINK 31 /* Too many links */ -+#define EPIPE 32 /* Broken pipe */ -+#define EDOM 33 /* Math argument out of domain of func */ -+#define ERANGE 34 /* Math result not representable */ -+ -+#endif -diff -Naur include.org/asm-generic/errno.h include/asm-generic/errno.h ---- include.org/asm-generic/errno.h 1970-01-01 01:00:00.000000000 +0100 -+++ include/asm-generic/errno.h 2010-02-09 13:57:19.000000000 +0100 -@@ -0,0 +1,111 @@ -+#ifndef _ASM_GENERIC_ERRNO_H -+#define _ASM_GENERIC_ERRNO_H -+ -+#include <asm-generic/errno-base.h> -+ -+#define EDEADLK 35 /* Resource deadlock would occur */ -+#define ENAMETOOLONG 36 /* File name too long */ -+#define ENOLCK 37 /* No record locks available */ -+#define ENOSYS 38 /* Function not implemented */ -+#define ENOTEMPTY 39 /* Directory not empty */ -+#define ELOOP 40 /* Too many symbolic links encountered */ -+#define EWOULDBLOCK EAGAIN /* Operation would block */ -+#define ENOMSG 42 /* No message of desired type */ -+#define EIDRM 43 /* Identifier removed */ -+#define ECHRNG 44 /* Channel number out of range */ -+#define EL2NSYNC 45 /* Level 2 not synchronized */ -+#define EL3HLT 46 /* Level 3 halted */ -+#define EL3RST 47 /* Level 3 reset */ -+#define ELNRNG 48 /* Link number out of range */ -+#define EUNATCH 49 /* Protocol driver not attached */ -+#define ENOCSI 50 /* No CSI structure available */ -+#define EL2HLT 51 /* Level 2 halted */ -+#define EBADE 52 /* Invalid exchange */ -+#define EBADR 53 /* Invalid request descriptor */ -+#define EXFULL 54 /* Exchange full */ -+#define ENOANO 55 /* No anode */ -+#define EBADRQC 56 /* Invalid request code */ -+#define EBADSLT 57 /* Invalid slot */ -+ -+#define EDEADLOCK EDEADLK -+ -+#define EBFONT 59 /* Bad font file format */ -+#define ENOSTR 60 /* Device not a stream */ -+#define ENODATA 61 /* No data available */ -+#define ETIME 62 /* Timer expired */ -+#define ENOSR 63 /* Out of streams resources */ -+#define ENONET 64 /* Machine is not on the network */ -+#define ENOPKG 65 /* Package not installed */ -+#define EREMOTE 66 /* Object is remote */ -+#define ENOLINK 67 /* Link has been severed */ -+#define EADV 68 /* Advertise error */ -+#define ESRMNT 69 /* Srmount error */ -+#define ECOMM 70 /* Communication error on send */ -+#define EPROTO 71 /* Protocol error */ -+#define EMULTIHOP 72 /* Multihop attempted */ -+#define EDOTDOT 73 /* RFS specific error */ -+#define EBADMSG 74 /* Not a data message */ -+#define EOVERFLOW 75 /* Value too large for defined data type */ -+#define ENOTUNIQ 76 /* Name not unique on network */ -+#define EBADFD 77 /* File descriptor in bad state */ -+#define EREMCHG 78 /* Remote address changed */ -+#define ELIBACC 79 /* Can not access a needed shared library */ -+#define ELIBBAD 80 /* Accessing a corrupted shared library */ -+#define ELIBSCN 81 /* .lib section in a.out corrupted */ -+#define ELIBMAX 82 /* Attempting to link in too many shared libraries */ -+#define ELIBEXEC 83 /* Cannot exec a shared library directly */ -+#define EILSEQ 84 /* Illegal byte sequence */ -+#define ERESTART 85 /* Interrupted system call should be restarted */ -+#define ESTRPIPE 86 /* Streams pipe error */ -+#define EUSERS 87 /* Too many users */ -+#define ENOTSOCK 88 /* Socket operation on non-socket */ -+#define EDESTADDRREQ 89 /* Destination address required */ -+#define EMSGSIZE 90 /* Message too long */ -+#define EPROTOTYPE 91 /* Protocol wrong type for socket */ -+#define ENOPROTOOPT 92 /* Protocol not available */ -+#define EPROTONOSUPPORT 93 /* Protocol not supported */ -+#define ESOCKTNOSUPPORT 94 /* Socket type not supported */ -+#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ -+#define EPFNOSUPPORT 96 /* Protocol family not supported */ -+#define EAFNOSUPPORT 97 /* Address family not supported by protocol */ -+#define EADDRINUSE 98 /* Address already in use */ -+#define EADDRNOTAVAIL 99 /* Cannot assign requested address */ -+#define ENETDOWN 100 /* Network is down */ -+#define ENETUNREACH 101 /* Network is unreachable */ -+#define ENETRESET 102 /* Network dropped connection because of reset */ -+#define ECONNABORTED 103 /* Software caused connection abort */ -+#define ECONNRESET 104 /* Connection reset by peer */ -+#define ENOBUFS 105 /* No buffer space available */ -+#define EISCONN 106 /* Transport endpoint is already connected */ -+#define ENOTCONN 107 /* Transport endpoint is not connected */ -+#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ -+#define ETOOMANYREFS 109 /* Too many references: cannot splice */ -+#define ETIMEDOUT 110 /* Connection timed out */ -+#define ECONNREFUSED 111 /* Connection refused */ -+#define EHOSTDOWN 112 /* Host is down */ -+#define EHOSTUNREACH 113 /* No route to host */ -+#define EALREADY 114 /* Operation already in progress */ -+#define EINPROGRESS 115 /* Operation now in progress */ -+#define ESTALE 116 /* Stale NFS file handle */ -+#define EUCLEAN 117 /* Structure needs cleaning */ -+#define ENOTNAM 118 /* Not a XENIX named type file */ -+#define ENAVAIL 119 /* No XENIX semaphores available */ -+#define EISNAM 120 /* Is a named type file */ -+#define EREMOTEIO 121 /* Remote I/O error */ -+#define EDQUOT 122 /* Quota exceeded */ -+ -+#define ENOMEDIUM 123 /* No medium found */ -+#define EMEDIUMTYPE 124 /* Wrong medium type */ -+#define ECANCELED 125 /* Operation Canceled */ -+#define ENOKEY 126 /* Required key not available */ -+#define EKEYEXPIRED 127 /* Key has expired */ -+#define EKEYREVOKED 128 /* Key has been revoked */ -+#define EKEYREJECTED 129 /* Key was rejected by service */ -+ -+/* for robust mutexes */ -+#define EOWNERDEAD 130 /* Owner died */ -+#define ENOTRECOVERABLE 131 /* State not recoverable */ -+ -+#define ERFKILL 132 /* Operation not possible due to RF-kill */ -+ -+#endif diff --git a/src/patches/iptables-1.4.6-imq_test1.patch b/src/patches/iptables-1.4.6-imq_test1.patch deleted file mode 100644 index 2b4fb79..0000000 --- a/src/patches/iptables-1.4.6-imq_test1.patch +++ /dev/null @@ -1,126 +0,0 @@ -diff -Naurw iptables-1.4.1/extensions/.IMQ-testx iptables-1.4.1.imq/extensions/.IMQ-testx ---- iptables-1.4.1/extensions/.IMQ-testx 1969-12-31 21:00:00.000000000 -0300 -+++ iptables-1.4.1.imq/extensions/.IMQ-testx 2008-06-24 22:20:06.000000000 -0300 -@@ -0,0 +1,3 @@ -+#!/bin/sh -+# True if IMQ target patch is applied. -+[ -f $KERNEL_DIR/include/linux/netfilter/xt_IMQ.h ] && echo IMQ -diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/libxt_IMQ.c ---- iptables-1.4.1/extensions/libxt_IMQ.c 1969-12-31 21:00:00.000000000 -0300 -+++ iptables-1.4.1.imq/extensions/libxt_IMQ.c 2008-06-24 22:31:02.000000000 -0300 -@@ -0,0 +1,103 @@ -+/* Shared library add-on to iptables to add IMQ target support. */ -+#include <stdio.h> -+#include <string.h> -+#include <stdlib.h> -+#include <getopt.h> -+ -+#include <xtables.h> -+#include <linux/netfilter/x_tables.h> -+#include <linux/netfilter/xt_IMQ.h> -+ -+/* Function which prints out usage message. */ -+static void IMQ_help(void) -+{ -+ printf( -+"IMQ target options:\n" -+" --todev <N> enqueue to imq<N>, defaults to 0\n"); -+ -+} -+ -+static struct option IMQ_opts[] = { -+ { "todev", 1, 0, '1' }, -+ { 0 } -+}; -+ -+/* Initialize the target. */ -+static void IMQ_init(struct xt_entry_target *t) -+{ -+ struct xt_imq_info *mr = (struct xt_imq_info*)t->data; -+ -+ mr->todev = 0; -+} -+ -+/* Function which parses command options; returns true if it -+ ate an option */ -+static int IMQ_parse(int c, char **argv, int invert, unsigned int *flags, -+ const void *entry, struct xt_entry_target **target) -+{ -+ struct xt_imq_info *mr = (struct xt_imq_info*)(*target)->data; -+ -+ switch(c) { -+ case '1': -+ if (xtables_check_inverse(optarg, &invert, NULL, 0, argv)) -+ xtables_error(PARAMETER_PROBLEM, -+ "Unexpected `!' for --todev"); -+ mr->todev=atoi(optarg); -+ break; -+ default: -+ return 0; -+ } -+ return 1; -+} -+ -+/* Prints out the targinfo. */ -+static void IMQ_print(const void *ip, -+ const struct xt_entry_target *target, -+ int numeric) -+{ -+ struct xt_imq_info *mr = (struct xt_imq_info*)target->data; -+ -+ printf("IMQ: todev %u ", mr->todev); -+} -+ -+/* Saves the union ipt_targinfo in parsable form to stdout. */ -+static void IMQ_save(const void *ip, const struct xt_entry_target *target) -+{ -+ struct xt_imq_info *mr = (struct xt_imq_info*)target->data; -+ -+ printf("--todev %u", mr->todev); -+} -+ -+static struct xtables_target imq_target = { -+ .name = "IMQ", -+ .version = XTABLES_VERSION, -+ .family = NFPROTO_IPV4, -+ .size = XT_ALIGN(sizeof(struct xt_imq_info)), -+ .userspacesize = XT_ALIGN(sizeof(struct xt_imq_info)), -+ .help = IMQ_help, -+ .init = IMQ_init, -+ .parse = IMQ_parse, -+ .print = IMQ_print, -+ .save = IMQ_save, -+ .extra_opts = IMQ_opts, -+}; -+ -+static struct xtables_target imq_target6 = { -+ .name = "IMQ", -+ .version = XTABLES_VERSION, -+ .family = NFPROTO_IPV6, -+ .size = XT_ALIGN(sizeof(struct xt_imq_info)), -+ .userspacesize = XT_ALIGN(sizeof(struct xt_imq_info)), -+ .help = IMQ_help, -+ .init = IMQ_init, -+ .parse = IMQ_parse, -+ .print = IMQ_print, -+ .save = IMQ_save, -+ .extra_opts = IMQ_opts, -+}; -+ -+// void __attribute((constructor)) nf_ext_init(void){ -+void _init(void){ -+ xtables_register_target(&imq_target); -+ xtables_register_target(&imq_target6); -+} ---- iptables-1.4.1.1/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 -+++ iptables-1.4.1.1.new/include/linux/netfilter/xt_IMQ.h 2008-08-05 00:41:28.000000000 +0300 -@@ -0,0 +1,9 @@ -+#ifndef _XT_IMQ_H -+#define _XT_IMQ_H -+ -+struct xt_imq_info { -+ unsigned int todev; /* target imq device */ -+}; -+ -+#endif /* _XT_IMQ_H */ -+ diff --git a/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch b/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch deleted file mode 100644 index 68e44b1..0000000 --- a/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch +++ /dev/null @@ -1,481 +0,0 @@ -diff -Naur iptables-1.4.6.org/extensions/.ipp2p-test iptables-1.4.6/extensions/.ipp2p-test ---- iptables-1.4.6.org/extensions/.ipp2p-test 1970-01-01 01:00:00.000000000 +0100 -+++ iptables-1.4.6/extensions/.ipp2p-test 2010-02-13 20:02:52.000000000 +0100 -@@ -0,0 +1,2 @@ -+#! /bin/sh -+[ -f $KERNEL_DIR/include/linux/netfilter_ipv4/ipt_ipp2p.h ] && echo ipp2p -diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extensions/libipt_ipp2p.c ---- iptables-1.4.6.org/extensions/libipt_ipp2p.c 1970-01-01 01:00:00.000000000 +0100 -+++ iptables-1.4.6/extensions/libipt_ipp2p.c 2010-02-13 20:02:52.000000000 +0100 -@@ -0,0 +1,424 @@ -+#include <stdio.h> -+#include <netdb.h> -+#include <string.h> -+#include <stdlib.h> -+#include <getopt.h> -+#include <ctype.h> -+ -+#include <iptables.h> -+ -+#include <linux/netfilter_ipv4/ipt_ipp2p.h> -+ -+#ifndef XTABLES_VERSION -+#define XTABLES_VERSION IPTABLES_VERSION -+#endif -+ -+#ifdef IPT_LIB_DIR -+#define xtables_target iptables_target -+#define xtables_register_target register_target -+#endif -+ -+static void -+help(void) -+{ -+ printf( -+ "IPP2P v%s options:\n" -+ " --ipp2p Grab all known p2p packets\n" -+ " --edk [TCP&UDP] All known eDonkey/eMule/Overnet packets\n" -+ " --dc [TCP] All known Direct Connect packets\n" -+ " --kazaa [TCP&UDP] All known KaZaA packets\n" -+ " --gnu [TCP&UDP] All known Gnutella packets\n" -+ " --bit [TCP&UDP] All known BitTorrent packets\n" -+ " --apple [TCP] All known AppleJuice packets\n" -+ " --winmx [TCP] All known WinMX\n" -+ " --soul [TCP] All known SoulSeek\n" -+ " --ares [TCP] All known Ares\n\n" -+ " EXPERIMENTAL protocols (please send feedback to: ipp2p@ipp2p.org) :\n" -+ " --mute [TCP] All known Mute packets\n" -+ " --waste [TCP] All known Waste packets\n" -+ " --xdcc [TCP] All known XDCC packets (only xdcc login)\n\n" -+ " DEBUG SUPPPORT, use only if you know why\n" -+ " --debug Generate kernel debug output, THIS WILL SLOW DOWN THE FILTER\n" -+ "\nNote that the follwing options will have the same meaning:\n" -+ " '--ipp2p' is equal to '--edk --dc --kazaa --gnu --bit --apple --winmx --soul --ares'\n" -+ "\nIPP2P was intended for TCP only. Due to increasing usage of UDP we needed to change this.\n" -+ "You can now use -p udp to search UDP packets only or without -p switch to search UDP and TCP packets.\n" -+ "\nSee README included with this package for more details or visit http://www.ipp2p.org%5Cn" -+ "\nExamples:\n" -+ " iptables -A FORWARD -m ipp2p --ipp2p -j MARK --set-mark 0x01\n" -+ " iptables -A FORWARD -p udp -m ipp2p --kazaa --bit -j DROP\n" -+ " iptables -A FORWARD -p tcp -m ipp2p --edk --soul -j DROP\n\n" -+ , IPP2P_VERSION); -+} -+ -+static struct option opts[] = { -+ { "ipp2p", 0, 0, '1' }, -+ { "edk", 0, 0, '2' }, -+ { "dc", 0, 0, '7' }, -+ { "gnu", 0, 0, '9' }, -+ { "kazaa", 0, 0, 'a' }, -+ { "bit", 0, 0, 'b' }, -+ { "apple", 0, 0, 'c' }, -+ { "soul", 0, 0, 'd' }, -+ { "winmx", 0, 0, 'e' }, -+ { "ares", 0, 0, 'f' }, -+ { "mute", 0, 0, 'g' }, -+ { "waste", 0, 0, 'h' }, -+ { "xdcc", 0, 0, 'i' }, -+ { "debug", 0, 0, 'j' }, -+ {0} -+}; -+ -+ -+static void -+#ifdef _XTABLES_H -+init(struct xt_entry_match *m) -+#else -+init(struct ipt_entry_match *t, unsigned int *nfcache) -+#endif -+{ -+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)m->data; -+ -+#ifndef _XTABLES_H -+ *nfcache |= NFC_UNKNOWN; -+#endif -+ -+ /*init the module with default values*/ -+ info->cmd = 0; -+ info->debug = 0; -+ -+} -+ -+ -+static int -+parse(int c, char **argv, int invert, unsigned int *flags, -+#ifdef _XTABLES_H -+ const void *entry, struct xt_entry_match **match) -+#else -+ const struct ipt_entry *entry, unsigned int *nfcache, struct ipt_entry_match **match) -+#endif -+{ -+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)(*match)->data; -+ -+ switch (c) { -+ case '1': /*cmd: ipp2p*/ -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified once!"); -+ -+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p-data' may only be " -+ "specified alone!"); -+*/ -+ -+ if ((*flags) != 0) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += SHORT_HAND_IPP2P; -+ info->cmd = *flags; -+ break; -+ -+ case '2': /*cmd: edk*/ -+ if ((*flags & IPP2P_EDK) == IPP2P_EDK) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--edk' may only be " -+ "specified once"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p-data' may only be " -+ "specified alone!");*/ -+ if ((*flags & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: use `--edk' OR `--edk-data' but not both of them!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_EDK; -+ info->cmd = *flags; -+ break; -+ -+ -+ case '7': /*cmd: dc*/ -+ if ((*flags & IPP2P_DC) == IPP2P_DC) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--dc' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p-data' may only be " -+ "specified alone!");*/ -+ if ((*flags & IPP2P_DATA_DC) == IPP2P_DATA_DC) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: use `--dc' OR `--dc-data' but not both of them!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_DC; -+ info->cmd = *flags; -+ break; -+ -+ -+ case '9': /*cmd: gnu*/ -+ if ((*flags & IPP2P_GNU) == IPP2P_GNU) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--gnu' may only be " -+ "specified once!"); -+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p-data' may only be " -+ "specified alone!");*/ -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if ((*flags & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: use `--gnu' OR `--gnu-data' but not both of them!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_GNU; -+ info->cmd = *flags; -+ break; -+ -+ case 'a': /*cmd: kazaa*/ -+ if ((*flags & IPP2P_KAZAA) == IPP2P_KAZAA) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--kazaa' may only be " -+ "specified once!"); -+/* if ((*flags & SHORT_HAND_DATA) == SHORT_HAND_DATA) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p-data' may only be " -+ "specified alone!");*/ -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if ((*flags & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: use `--kazaa' OR `--kazaa-data' but not both of them!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_KAZAA; -+ info->cmd = *flags; -+ break; -+ -+ case 'b': /*cmd: bit*/ -+ if ((*flags & IPP2P_BIT) == IPP2P_BIT) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--bit' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_BIT; -+ info->cmd = *flags; -+ break; -+ -+ case 'c': /*cmd: apple*/ -+ if ((*flags & IPP2P_APPLE) == IPP2P_APPLE) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--apple' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_APPLE; -+ info->cmd = *flags; -+ break; -+ -+ -+ case 'd': /*cmd: soul*/ -+ if ((*flags & IPP2P_SOUL) == IPP2P_SOUL) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--soul' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_SOUL; -+ info->cmd = *flags; -+ break; -+ -+ -+ case 'e': /*cmd: winmx*/ -+ if ((*flags & IPP2P_WINMX) == IPP2P_WINMX) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--winmx' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_WINMX; -+ info->cmd = *flags; -+ break; -+ -+ case 'f': /*cmd: ares*/ -+ if ((*flags & IPP2P_ARES) == IPP2P_ARES) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ares' may only be " -+ "specified once!"); -+ if ((*flags & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ipp2p' may only be " -+ "specified alone!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_ARES; -+ info->cmd = *flags; -+ break; -+ -+ case 'g': /*cmd: mute*/ -+ if ((*flags & IPP2P_MUTE) == IPP2P_MUTE) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--mute' may only be " -+ "specified once!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_MUTE; -+ info->cmd = *flags; -+ break; -+ case 'h': /*cmd: waste*/ -+ if ((*flags & IPP2P_WASTE) == IPP2P_WASTE) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--waste' may only be " -+ "specified once!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_WASTE; -+ info->cmd = *flags; -+ break; -+ case 'i': /*cmd: xdcc*/ -+ if ((*flags & IPP2P_XDCC) == IPP2P_XDCC) -+ xtables_error(PARAMETER_PROBLEM, -+ "ipp2p: `--ares' may only be " -+ "specified once!"); -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ *flags += IPP2P_XDCC; -+ info->cmd = *flags; -+ break; -+ -+ case 'j': /*cmd: debug*/ -+ if (invert) xtables_error(PARAMETER_PROBLEM, "ipp2p: invert [!] is not allowed!"); -+ info->debug = 1; -+ break; -+ -+ default: -+// xtables_error(PARAMETER_PROBLEM, -+// "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n"); -+ return 0; -+ } -+ return 1; -+} -+ -+ -+static void -+final_check(unsigned int flags) -+{ -+ if (!flags) -+ xtables_error(PARAMETER_PROBLEM, -+ "\nipp2p-parameter problem: for ipp2p usage type: iptables -m ipp2p --help\n"); -+} -+ -+static void -+#ifdef _XTABLES_H -+print(const void *ip, -+ const struct xt_entry_match *match, -+#else -+print(const struct ipt_ip *ip, -+ const struct ipt_entry_match *match, -+#endif -+ int numeric) -+{ -+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)match->data; -+ -+ printf("ipp2p v%s", IPP2P_VERSION); -+ if ((info->cmd & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) printf(" --ipp2p"); -+// if ((info->cmd & SHORT_HAND_DATA) == SHORT_HAND_DATA) printf(" --ipp2p-data"); -+ if ((info->cmd & IPP2P_KAZAA) == IPP2P_KAZAA) printf(" --kazaa"); -+// if ((info->cmd & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) printf(" --kazaa-data"); -+// if ((info->cmd & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) printf(" --gnu-data"); -+ if ((info->cmd & IPP2P_GNU) == IPP2P_GNU) printf(" --gnu"); -+ if ((info->cmd & IPP2P_EDK) == IPP2P_EDK) printf(" --edk"); -+// if ((info->cmd & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) printf(" --edk-data"); -+// if ((info->cmd & IPP2P_DATA_DC) == IPP2P_DATA_DC) printf(" --dc-data"); -+ if ((info->cmd & IPP2P_DC) == IPP2P_DC) printf(" --dc"); -+ if ((info->cmd & IPP2P_BIT) == IPP2P_BIT) printf(" --bit"); -+ if ((info->cmd & IPP2P_APPLE) == IPP2P_APPLE) printf(" --apple"); -+ if ((info->cmd & IPP2P_SOUL) == IPP2P_SOUL) printf(" --soul"); -+ if ((info->cmd & IPP2P_WINMX) == IPP2P_WINMX) printf(" --winmx"); -+ if ((info->cmd & IPP2P_ARES) == IPP2P_ARES) printf(" --ares"); -+ if ((info->cmd & IPP2P_MUTE) == IPP2P_MUTE) printf(" --mute"); -+ if ((info->cmd & IPP2P_WASTE) == IPP2P_WASTE) printf(" --waste"); -+ if ((info->cmd & IPP2P_XDCC) == IPP2P_XDCC) printf(" --xdcc"); -+ if (info->debug != 0) printf(" --debug"); -+ printf(" "); -+} -+ -+static void -+#ifdef _XTABLES_H -+save(const void *ip, -+ const struct xt_entry_match *match) -+#else -+save(const struct ipt_ip *ip, -+ const struct ipt_entry_match *match) -+#endif -+{ -+ struct ipt_p2p_info *info = (struct ipt_p2p_info *)match->data; -+ -+ if ((info->cmd & SHORT_HAND_IPP2P) == SHORT_HAND_IPP2P) printf("--ipp2p "); -+// if ((info->cmd & SHORT_HAND_DATA) == SHORT_HAND_DATA) printf("--ipp2p-data "); -+ if ((info->cmd & IPP2P_KAZAA) == IPP2P_KAZAA) printf("--kazaa "); -+// if ((info->cmd & IPP2P_DATA_KAZAA) == IPP2P_DATA_KAZAA) printf("--kazaa-data "); -+// if ((info->cmd & IPP2P_DATA_GNU) == IPP2P_DATA_GNU) printf("--gnu-data "); -+ if ((info->cmd & IPP2P_GNU) == IPP2P_GNU) printf("--gnu "); -+ if ((info->cmd & IPP2P_EDK) == IPP2P_EDK) printf("--edk "); -+// if ((info->cmd & IPP2P_DATA_EDK) == IPP2P_DATA_EDK) printf("--edk-data "); -+// if ((info->cmd & IPP2P_DATA_DC) == IPP2P_DATA_DC) printf("--dc-data "); -+ if ((info->cmd & IPP2P_DC) == IPP2P_DC) printf("--dc "); -+ if ((info->cmd & IPP2P_BIT) == IPP2P_BIT) printf("--bit "); -+ if ((info->cmd & IPP2P_APPLE) == IPP2P_APPLE) printf("--apple "); -+ if ((info->cmd & IPP2P_SOUL) == IPP2P_SOUL) printf("--soul "); -+ if ((info->cmd & IPP2P_WINMX) == IPP2P_WINMX) printf("--winmx "); -+ if ((info->cmd & IPP2P_ARES) == IPP2P_ARES) printf("--ares "); -+ if ((info->cmd & IPP2P_MUTE) == IPP2P_MUTE) printf(" --mute"); -+ if ((info->cmd & IPP2P_WASTE) == IPP2P_WASTE) printf(" --waste"); -+ if ((info->cmd & IPP2P_XDCC) == IPP2P_XDCC) printf(" --xdcc"); -+ if (info->debug != 0) printf("--debug "); -+} -+ -+ -+static -+struct xtables_match ipp2p= -+{ -+ .next = NULL, -+ .name = "ipp2p", -+ .version = XTABLES_VERSION, -+ .size = IPT_ALIGN(sizeof(struct ipt_p2p_info)), -+ .userspacesize = IPT_ALIGN(sizeof(struct ipt_p2p_info)), -+ .help = &help, -+ .init = &init, -+ .parse = &parse, -+ .final_check = &final_check, -+ .print = &print, -+ .save = &save, -+ .extra_opts = opts -+}; -+ -+ -+ -+void _init(void) -+{ -+ xtables_register_match(&ipp2p); -+} -+ -diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.man iptables-1.4.6/extensions/libipt_ipp2p.man ---- iptables-1.4.6.org/extensions/libipt_ipp2p.man 1970-01-01 01:00:00.000000000 +0100 -+++ iptables-1.4.6/extensions/libipt_ipp2p.man 2010-02-13 20:02:52.000000000 +0100 -@@ -0,0 +1,43 @@ -+This module matches certain packets in P2P flows. It is not -+designed to match all packets belonging to a P2P connection - -+use IPP2P together with CONNMARK for this purpose. Also visit -+http://www.ipp2p.org for detailed information. -+ -+Use it together with -p tcp or -p udp to search these protocols -+only or without -p switch to search packets of both protocols. -+ -+IPP2P provides the following options: -+.TP -+.B "--edk " -+Matches as many eDonkey/eMule packets as possible. -+.TP -+.B "--kazaa " -+Matches as many KaZaA packets as possible. -+.TP -+.B "--gnu " -+Matches as many Gnutella packets as possible. -+.TP -+.B "--dc " -+Matches as many Direct Connect packets as possible. -+.TP -+.B "--bit " -+Matches BitTorrent packets. -+.TP -+.B "--apple " -+Matches AppleJuice packets. -+.TP -+.B "--soul " -+Matches some SoulSeek packets. Considered as beta, use careful! -+.TP -+.B "--winmx " -+Matches some WinMX packets. Considered as beta, use careful! -+.TP -+.B "--ares " -+Matches Ares and AresLite packets. Use together with -j DROP only. -+.TP -+.B "--ipp2p " -+Short hand for: --edk --kazaa --gnu --dc -+.TP -+.B "--debug " -+Prints some information about each hit into kernel logfile. May -+produce huge logfiles so beware! diff --git a/src/patches/kudzu-link-lintl.diff b/src/patches/kudzu-link-lintl.diff deleted file mode 100644 index ec3974c..0000000 --- a/src/patches/kudzu-link-lintl.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- tmp/kudzu-1.2.60/Makefile 2006-09-05 15:56:21.000000000 +0200 -+++ build/usr/src/kudzu-1.2.60/Makefile 2006-11-20 15:08:32.000000000 +0100 -@@ -63,7 +63,7 @@ - $(RANLIB) libkudzu.a - - kudzu: libkudzu.a $(KUDOBJS) po -- $(CC) $(CFLAGS) $(LDFLAGS) $(KUDOBJS) -o kudzu -L. -lkudzu -L. -lpci -Wl,-Bstatic -lpopt -Wl,-Bdynamic -+ $(CC) $(CFLAGS) $(LDFLAGS) $(KUDOBJS) -o kudzu -L. -lkudzu -L. -lpci -L. -lintl -Wl,-Bstatic -lpopt -Wl,-Bdynamic - - module_upgrade: libkudzu.a module_upgrade.c - $(CC) $(CFLAGS) $(LDFLAGS) module_upgrade.c -o module_upgrade -L. -lkudzu -lpci diff --git a/src/patches/kudzu-usbnet.patch b/src/patches/kudzu-usbnet.patch deleted file mode 100644 index 185d1a7..0000000 --- a/src/patches/kudzu-usbnet.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -Naur kudzu-1.2.64.org/usb.c kudzu-1.2.64/usb.c ---- kudzu-1.2.64.org/usb.c 2006-11-28 17:58:58.000000000 +0100 -+++ kudzu-1.2.64/usb.c 2009-07-16 20:33:19.000000000 +0200 -@@ -261,13 +261,33 @@ - t->desc = strdup(t->usbprod); - else - asprintf(&t->desc,"Unknown USB device 0x%x:0x%x",t->vendorId,t->deviceId); -- if (t->driver && (!strcmp(t->driver, "pegasus") || -+ if (t->driver && (!strcmp(t->driver, "asix") || - !strcmp(t->driver, "catc") || -+ !strcmp(t->driver, "cdc_ether") || -+ !strcmp(t->driver, "cdc_subset") || -+ !strcmp(t->driver, "dm9601") || -+ !strcmp(t->driver, "gl620a") || - !strcmp(t->driver, "kaweth") || -+ !strcmp(t->driver, "mcs7830") || -+ !strcmp(t->driver, "net1080") || -+ !strcmp(t->driver, "pegasus") || -+ !strcmp(t->driver, "plusb") || -+ !strcmp(t->driver, "rndis_host") || - !strcmp(t->driver, "rtl8150") || -- !strcmp(t->driver, "ax8817x") || -+ !strcmp(t->driver, "zaurus") || -+ !strcmp(t->driver, "rt2500usb") || -+ !strcmp(t->driver, "rt2800usb") || -+ !strcmp(t->driver, "rt2x00usb") || -+ !strcmp(t->driver, "rt73usb") || -+ !strcmp(t->driver, "ar9170usb") || -+ !strcmp(t->driver, "libertas_tf_usb") || -+ !strcmp(t->driver, "at76c50x-usb") || -+ !strcmp(t->driver, "p54usb") || -+ !strcmp(t->driver, "rndis_wlan") || -+ !strcmp(t->driver, "rtl8187") || -+ !strcmp(t->driver, "usb8xxx") || - !strcmp(t->driver, "zd1201") || -- !strcmp(t->driver, "asix") || -+ !strcmp(t->driver, "zd1211rw") || - !strcmp(t->driver, "usbnet"))) { - if (t->type == CLASS_OTHER) - t->type = CLASS_NETWORK; diff --git a/src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch b/src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch deleted file mode 100644 index 331e8a1..0000000 --- a/src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff -Naur kvm-kmod-2.6.38.6.org/x86/external-module-compat.h kvm-kmod-2.6.38.6/x86/external-module-compat.h ---- kvm-kmod-2.6.38.6.org/x86/external-module-compat.h 2011-05-15 09:34:48.000000000 +0200 -+++ kvm-kmod-2.6.38.6/x86/external-module-compat.h 2011-05-21 13:30:50.529469540 +0200 -@@ -1064,41 +1064,6 @@ - - #endif /* >= 2.6.36 */ - --#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) --static inline u64 pvclock_scale_delta(u64 delta, u32 mul_frac, int shift) --{ -- u64 product; --#ifdef __i386__ -- u32 tmp1, tmp2; --#endif -- -- if (shift < 0) -- delta >>= -shift; -- else -- delta <<= shift; -- --#ifdef __i386__ -- __asm__ ( -- "mul %5 ; " -- "mov %4,%%eax ; " -- "mov %%edx,%4 ; " -- "mul %5 ; " -- "xor %5,%5 ; " -- "add %4,%%eax ; " -- "adc %5,%%edx ; " -- : "=A" (product), "=r" (tmp1), "=r" (tmp2) -- : "a" ((u32)delta), "1" ((u32)(delta >> 32)), "2" (mul_frac) ); --#elif defined(__x86_64__) -- __asm__ ( -- "mul %%rdx ; shrd $32,%%rdx,%%rax" -- : "=a" (product) : "0" (delta), "d" ((u64)mul_frac) ); --#else --#error implement me! --#endif -- -- return product; --} --#endif - - #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34) && \ - LINUX_VERSION_CODE != KERNEL_VERSION(2,6,32) && defined(CONFIG_X86_64) diff --git a/src/patches/kvm-kmod-3.0b_remove_pvclock_scale_delta_redefinition.patch b/src/patches/kvm-kmod-3.0b_remove_pvclock_scale_delta_redefinition.patch deleted file mode 100644 index 87effb3..0000000 --- a/src/patches/kvm-kmod-3.0b_remove_pvclock_scale_delta_redefinition.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur kvm-kmod-3.0b.org/x86/external-module-compat.h kvm-kmod-3.0b/x86/external-module-compat.h ---- kvm-kmod-3.0b.org/x86/external-module-compat.h 2011-07-23 16:39:10.000000000 +0200 -+++ kvm-kmod-3.0b/x86/external-module-compat.h 2011-08-13 21:37:56.046677541 +0200 -@@ -1095,7 +1095,7 @@ - - #endif /* >= 2.6.36 */ - --#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) || \ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) && \ - (LINUX_VERSION_CODE == KERNEL_VERSION(2,6,32) && KERNEL_EXTRAVERSION < 40) - static inline u64 pvclock_scale_delta(u64 delta, u32 mul_frac, int shift) - { diff --git a/src/patches/libmad-0.15.1b-cflags-O2.patch b/src/patches/libmad-0.15.1b-cflags-O2.patch new file mode 100644 index 0000000..61b4b13 --- /dev/null +++ b/src/patches/libmad-0.15.1b-cflags-O2.patch @@ -0,0 +1,12 @@ +diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b-orig/configure.ac 2007-07-01 12:58:13.000000000 -0600 ++++ libmad-0.15.1b/configure.ac 2007-07-01 12:59:13.000000000 -0600 +@@ -105,7 +105,7 @@ + shift + ;; + -O2) +- optimize="-O" ++ optimize="-O2" + shift + ;; + -fomit-frame-pointer) diff --git a/src/patches/libmad-0.15.1b-cflags.patch b/src/patches/libmad-0.15.1b-cflags.patch new file mode 100644 index 0000000..2ec44e3 --- /dev/null +++ b/src/patches/libmad-0.15.1b-cflags.patch @@ -0,0 +1,146 @@ +diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b-orig/configure.ac 2007-06-30 20:22:31.000000000 -0600 ++++ libmad-0.15.1b/configure.ac 2007-06-30 20:25:31.000000000 -0600 +@@ -122,74 +122,74 @@ + esac + done + +-if test "$GCC" = yes +-then +- if test -z "$arch" +- then +- case "$host" in +- i386-*) ;; +- i?86-*) arch="-march=i486" ;; +- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; +- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; +- powerpc-*) ;; +- mips*-agenda-*) arch="-mcpu=vr4100" ;; +- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; +- esac +- fi +- +- case "$optimize" in +- -O|"-O "*) +- optimize="-O" +- optimize="$optimize -fforce-mem" +- optimize="$optimize -fforce-addr" +- : #x optimize="$optimize -finline-functions" +- : #- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -fthread-jumps" +- optimize="$optimize -fcse-follow-jumps" +- optimize="$optimize -fcse-skip-blocks" +- : #x optimize="$optimize -frerun-cse-after-loop" +- : #x optimize="$optimize -frerun-loop-opt" +- : #x optimize="$optimize -fgcse" +- optimize="$optimize -fexpensive-optimizations" +- optimize="$optimize -fregmove" +- : #* optimize="$optimize -fdelayed-branch" +- : #x optimize="$optimize -fschedule-insns" +- optimize="$optimize -fschedule-insns2" +- : #? optimize="$optimize -ffunction-sections" +- : #? optimize="$optimize -fcaller-saves" +- : #> optimize="$optimize -funroll-loops" +- : #> optimize="$optimize -funroll-all-loops" +- : #x optimize="$optimize -fmove-all-movables" +- : #x optimize="$optimize -freduce-all-givs" +- : #? optimize="$optimize -fstrict-aliasing" +- : #* optimize="$optimize -fstructure-noalias" +- +- case "$host" in +- arm*-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- mips*-*) +- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -finline-functions" +- ;; +- i?86-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- powerpc-apple-*) +- # this triggers an internal compiler error with gcc2 +- : #optimize="$optimize -fstrength-reduce" +- +- # this is really only beneficial with gcc3 +- : #optimize="$optimize -finline-functions" +- ;; +- *) +- # this sometimes provokes bugs in gcc 2.95.2 +- : #optimize="$optimize -fstrength-reduce" +- ;; +- esac +- ;; +- esac +-fi ++#if test "$GCC" = yes ++#then ++# if test -z "$arch" ++# then ++# case "$host" in ++# i386-*) ;; ++# i?86-*) arch="-march=i486" ;; ++# arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; ++# armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; ++# powerpc-*) ;; ++# mips*-agenda-*) arch="-mcpu=vr4100" ;; ++# mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; ++# esac ++# fi ++# ++# case "$optimize" in ++# -O|"-O "*) ++# optimize="-O" ++# optimize="$optimize -fforce-mem" ++# optimize="$optimize -fforce-addr" ++# : #x optimize="$optimize -finline-functions" ++# : #- optimize="$optimize -fstrength-reduce" ++# optimize="$optimize -fthread-jumps" ++# optimize="$optimize -fcse-follow-jumps" ++# optimize="$optimize -fcse-skip-blocks" ++# : #x optimize="$optimize -frerun-cse-after-loop" ++# : #x optimize="$optimize -frerun-loop-opt" ++# : #x optimize="$optimize -fgcse" ++# optimize="$optimize -fexpensive-optimizations" ++# optimize="$optimize -fregmove" ++# : #* optimize="$optimize -fdelayed-branch" ++# : #x optimize="$optimize -fschedule-insns" ++# optimize="$optimize -fschedule-insns2" ++# : #? optimize="$optimize -ffunction-sections" ++# : #? optimize="$optimize -fcaller-saves" ++# : #> optimize="$optimize -funroll-loops" ++# : #> optimize="$optimize -funroll-all-loops" ++# : #x optimize="$optimize -fmove-all-movables" ++# : #x optimize="$optimize -freduce-all-givs" ++# : #? optimize="$optimize -fstrict-aliasing" ++# : #* optimize="$optimize -fstructure-noalias" ++# ++# case "$host" in ++# arm*-*) ++# optimize="$optimize -fstrength-reduce" ++# ;; ++# mips*-*) ++# optimize="$optimize -fstrength-reduce" ++# optimize="$optimize -finline-functions" ++# ;; ++# i?86-*) ++# optimize="$optimize -fstrength-reduce" ++# ;; ++# powerpc-apple-*) ++# # this triggers an internal compiler error with gcc2 ++# : #optimize="$optimize -fstrength-reduce" ++# ++# # this is really only beneficial with gcc3 ++# : #optimize="$optimize -finline-functions" ++# ;; ++# *) ++# # this sometimes provokes bugs in gcc 2.95.2 ++# : #optimize="$optimize -fstrength-reduce" ++# ;; ++# esac ++# ;; ++# esac ++#fi + + case "$host" in + mips*-agenda-*) diff --git a/src/patches/libnl-1.1-ULONG_MAX.patch b/src/patches/libnl-1.1-ULONG_MAX.patch new file mode 100644 index 0000000..ca3dd40 --- /dev/null +++ b/src/patches/libnl-1.1-ULONG_MAX.patch @@ -0,0 +1,11 @@ +--- libnl-1.1/include/netlink-local.h.orig 2008-06-08 19:09:20.000000000 +0200 ++++ libnl-1.1/include/netlink-local.h 2008-06-08 19:09:33.000000000 +0200 +@@ -26,6 +26,7 @@ + #include <sys/socket.h> + #include <inttypes.h> + #include <assert.h> ++#include <limits.h> + + #include <arpa/inet.h> + #include <netdb.h> + diff --git a/src/patches/libsafe-alpha.diff b/src/patches/libsafe-alpha.diff deleted file mode 100644 index dfeb9f2..0000000 --- a/src/patches/libsafe-alpha.diff +++ /dev/null @@ -1,232 +0,0 @@ ---- libsafe-2.0-16-orig/src/intercept.c 2003-03-15 16:02:12.000000000 +0100 -+++ libsafe-2.0-16/src/intercept.c 2003-03-15 16:12:22.000000000 +0100 -@@ -165,7 +165,8 @@ - */ - char *strcpy(char *dest, const char *src) - { -- size_t max_size, len; -+ uint max_size; -+ size_t len; - - if (!real_memcpy) - real_memcpy = (memcpy_t) getLibraryFunction("memcpy"); -@@ -196,7 +197,8 @@ - - char *strncpy(char *dest, const char *src, size_t n) - { -- size_t max_size, len; -+ uint max_size; -+ size_t len; - - if (!real_strncpy) - real_strncpy = (strncpy_t) getLibraryFunction("strncpy"); -@@ -219,7 +221,8 @@ - - char *stpcpy(char *dest, const char *src) - { -- size_t max_size, len; -+ uint max_size; -+ size_t len; - - if (!real_memcpy) - real_memcpy = (memcpy_t) getLibraryFunction("memcpy"); -@@ -251,7 +254,8 @@ - #ifndef MISSING_WCSNLEN - wchar_t *wcscpy(wchar_t *dest, const wchar_t *src) - { -- size_t max_bytes, max_wchars, len; -+ size_t max_wchars, len; -+ uint max_bytes; - - if (!real_wcscpy) - real_wcscpy = (wcscpy_t) getLibraryFunction("wcscpy"); -@@ -291,7 +295,8 @@ - - wchar_t *wcpcpy(wchar_t *dest, const wchar_t *src) - { -- size_t max_bytes, max_wchars, len; -+ size_t max_wchars, len; -+ uint max_bytes; - - if (!real_wcpcpy) - real_wcpcpy = (wcpcpy_t) getLibraryFunction("wcpcpy"); -@@ -333,9 +338,15 @@ - /* - * This is needed! See the strcpy() for the reason. -ab. - */ --void *memcpy(void *dest, const void *src, size_t n) -+void *memcpy(void *dest, const void *src, size_t hack) - { -- size_t max_size; -+ /* -+ * a size_t IS an unsigned long everywhere, though it sometimes -+ * doesn't state so, making printf misinterpret it. -+ */ -+ unsigned long n = hack; -+ uint max_size; -+ - - if (!real_memcpy) - real_memcpy = (memcpy_t) getLibraryFunction("memcpy"); -@@ -344,11 +355,11 @@ - return real_memcpy(dest, src, n); - - if ((max_size = _libsafe_stackVariableP(dest)) == 0) { -- LOG(5, "memcpy(<heap var> , <src>, %d)\n", n); -+ LOG(5, "memcpy(<heap var> , <src>, %ld)\n", n); - return real_memcpy(dest, src, n); - } - -- LOG(4, "memcpy(<stack var> , <src>, %d) stack limit=%d)\n", n, max_size); -+ LOG(4, "memcpy(<stack var> , <src>, %ld) stack limit=%d)\n", n, max_size); - if (n > max_size) - _libsafe_die("Overflow caused by memcpy()"); - return real_memcpy(dest, src, n); -@@ -357,7 +368,7 @@ - - char *strcat(char *dest, const char *src) - { -- size_t max_size; -+ uint max_size; - uint dest_len, src_len; - - if (!real_memcpy) -@@ -388,7 +399,7 @@ - - char *strncat(char *dest, const char *src, size_t n) - { -- size_t max_size; -+ uint max_size; - uint dest_len, src_len; - - if (!real_strncat) -@@ -1008,12 +1019,31 @@ - if (is_printf_convspec[(int)*p]) { - caddr_t addr; - c++; -+#if 0 -+ /* -+ * cannot add va_list (ap here) with a number on alpha. -+ * this is faster than the other method, and might be -+ * a good idea to enable this on !alpha arch. -+ */ - if (pnum) { - addr = *((caddr_t*)(ap + (atoi(pnum)-1)*sizeof(char*))); - } - else { - addr = *((caddr_t*)(ap + c*sizeof(char*))); - } -+#else -+ { -+ va_list apc; -+ uint nb = c + 1; -+ -+ va_copy(apc, ap); -+ if (pnum) -+ nb = atoi(pnum); -+ addr = NULL; -+ while (nb--) -+ addr = va_arg(apc, caddr_t); -+ } -+#endif - if (*p == 'n') { - if (_libsafe_raVariableP((void *)(addr))) { - _libsafe_die("printf("%%n")"); -@@ -1172,12 +1202,32 @@ - if (is_printf_convspec[(int)*p]) { - caddr_t addr; - c++; -+#if 0 -+ /* -+ * cannot add va_list (ap here) with a number on alpha. -+ * this is faster than the other method, and might be -+ * a good idea to enable this on !alpha arch. -+ */ -+ - if (pnum) { - addr = *((caddr_t*)(ap + (atoi(pnum)-1)*sizeof(char*))); - } - else { - addr = *((caddr_t*)(ap + c*sizeof(char*))); - } -+#else -+ { -+ va_list apc; -+ uint nb = c + 1; -+ -+ va_copy(apc, ap); -+ if (pnum) -+ nb = atoi(pnum); -+ addr = NULL; -+ while (nb--) -+ addr = va_arg(apc, caddr_t); -+ } -+#endif - if (*p == 'n') { - if (_libsafe_raVariableP((void *)(addr))) { - _libsafe_die("printf("%%n")"); -@@ -1194,7 +1244,7 @@ - - int sprintf(char *str, const char *format, ...) - { -- size_t max_size; -+ uint max_size; - va_list ap; - int res; - -@@ -1242,7 +1292,7 @@ - - int snprintf(char *str, size_t size, const char *format, ...) - { -- size_t max_size; -+ uint max_size; - va_list ap; - int res; - -@@ -1288,7 +1338,7 @@ - - int vsprintf(char *str, const char *format, va_list ap) - { -- size_t max_size; -+ uint max_size; - int res; - - if (!real_vsprintf) -@@ -1325,7 +1375,7 @@ - - int vsnprintf(char *str, size_t size, const char *format, va_list ap) - { -- size_t max_size; -+ uint max_size; - int res; - - if (!real_vsnprintf) -@@ -1360,7 +1410,7 @@ - - char *getwd(char *buf) - { -- size_t max_size; -+ uint max_size; - char *res; - - if (!real_getwd) -@@ -1384,7 +1434,8 @@ - - char *gets(char *s) - { -- size_t max_size, len; -+ uint max_size; -+ size_t len; - - if (!real_gets) - real_gets = (gets_t) getLibraryFunction("gets"); -@@ -1409,7 +1460,8 @@ - - char *realpath(char *path, char resolved_path[]) - { -- size_t max_size, len; -+ uint max_size; -+ size_t len; - char *res; - char buf[MAXPATHLEN + 1]; - diff --git a/src/patches/libsafe-functioncaching.diff b/src/patches/libsafe-functioncaching.diff deleted file mode 100644 index db003a4..0000000 --- a/src/patches/libsafe-functioncaching.diff +++ /dev/null @@ -1,258 +0,0 @@ -From: Goswin Brederlow goswin.brederlow@student.uni-tuebingen.de -Subject: Bug#129345: patch to prevent a loop between libdl and libsafe causing libdl to crash -To: 129345@bugs.debian.org -Date: 01 Sep 2002 23:54:35 +0200 -Reply-To: Goswin Brederlow goswin.brederlow@student.uni-tuebingen.de, - 129345@bugs.debian.org -Resent-From: Goswin Brederlow goswin.brederlow@student.uni-tuebingen.de - - -------- -[D. Coe edited this patch slightly -- moved an unrelated change into the -Makefile itself [it changed the debugging comments only], and corrected a -spelling error and reworded the comments. The original patch is in the -bug tracking system, if you want to see it as submitted by Goswin.] -------- -------- -D. Coe subsequently modified the patch further, because in some cases -the initializations did not occur (e.g. when IO_vfscanf or memcpy was -called from ps or top (likely one of the libraries they use). maybe -they do something that disables libsafe's library globals initialization? - - -In any case, I've adopted both strategise in this new patch; the addresses -are preloaded as Goswin had coded, but they are also individually checked -each time needed (as was the case before Goswin's patch), and are initialized -at that point if necessary. Hopefully this will let ps and top work -and also continue to work around the libdl problem. -------- - -Hi, - -if libsafe is invoked from inside libdl (or only inside dlerror()?) -and a real_XXX function is not yet looked up it will reenter -libdl. That causes memory corruption resulting in a read from 0x0 and -thus segfault. - -The patch below makes libsafe cache all needed symbols once upon -init. That not only causes less lookups than before but should prevent -fatal loops. Failures of the initial lookups might not be reported -correctly but terminate in some odd way if the functions needed to -report are not yet looked up. - -MfG - Goswin - ----------------------------------------------------------------------- -diff -Nurd libsafe-2.0-16/src/intercept.c libsafe-2.0-16-mrvn/src/intercept.c ---- libsafe-2.0-16/src/intercept.c 2002-05-31 19:37:34.000000000 +0200 -+++ libsafe-2.0-16-mrvn/src/intercept.c 2002-09-01 23:44:55.000000000 +0200 -@@ -128,14 +128,29 @@ - } - - --/* Starting with version 2.0, we keep a single global copy of the pointer to -- * the real memcpy() function. This allows us to call -- * getLibraryFunction("memcpy") just once instead of multiple times, since -- * memcpy() is needed in four different functions below. -+/* Starting with Debian version 2.0-16-2, we keep a global copy of the pointer -+ * to each real functions. Otherwise a getLibraryFunction might -+ * be triggered from inside dlsym() and cause memory corruption reulting in a -+ * segfault. - */ --static memcpy_t real_memcpy = NULL; -- -- -+static memcpy_t real_memcpy = NULL; -+static _IO_vfscanf_t real_IO_vfscanf = NULL; -+static vfprintf_t real_vfprintf = NULL; -+static vsnprintf_t real_vsnprintf = NULL; -+static vsprintf_t real_vsprintf = NULL; -+static gets_t real_gets = NULL; -+static getwd_t real_getwd = NULL; -+static realpath_t real_realpath = NULL; -+static stpcpy_t real_stpcpy = NULL; -+static strcat_t real_strcat = NULL; -+static strcpy_t real_strcpy = NULL; -+static strncat_t real_strncat = NULL; -+static strncpy_t real_strncpy = NULL; -+static wcscpy_t real_wcscpy = NULL; -+static wcpcpy_t real_wcpcpy = NULL; -+#ifndef MISSING_WCSNLEN -+static wcscat_t real_wcscat = NULL; -+#endif - /* - * -------------- system library implementations ------------------- - * Here is the story: if a C source file includes <string.h> and is -@@ -150,7 +165,6 @@ - */ - char *strcpy(char *dest, const char *src) - { -- static strcpy_t real_strcpy = NULL; - size_t max_size, len; - - if (!real_memcpy) -@@ -182,7 +196,6 @@ - - char *strncpy(char *dest, const char *src, size_t n) - { -- static strncpy_t real_strncpy = NULL; - size_t max_size, len; - - if (!real_strncpy) -@@ -206,7 +219,6 @@ - - char *stpcpy(char *dest, const char *src) - { -- static stpcpy_t real_stpcpy = NULL; - size_t max_size, len; - - if (!real_memcpy) -@@ -239,7 +251,6 @@ - #ifndef MISSING_WCSNLEN - wchar_t *wcscpy(wchar_t *dest, const wchar_t *src) - { -- static wcscpy_t real_wcscpy = NULL; - size_t max_bytes, max_wchars, len; - - if (!real_wcscpy) -@@ -280,7 +291,6 @@ - - wchar_t *wcpcpy(wchar_t *dest, const wchar_t *src) - { -- static wcpcpy_t real_wcpcpy = NULL; - size_t max_bytes, max_wchars, len; - - if (!real_wcpcpy) -@@ -347,7 +357,6 @@ - - char *strcat(char *dest, const char *src) - { -- static strcat_t real_strcat = NULL; - size_t max_size; - uint dest_len, src_len; - -@@ -379,7 +388,6 @@ - - char *strncat(char *dest, const char *src, size_t n) - { -- static strncat_t real_strncat = NULL; - size_t max_size; - uint dest_len, src_len; - -@@ -408,7 +416,6 @@ - #ifndef MISSING_WCSNLEN - wchar_t *wcscat(wchar_t *dest, const wchar_t *src) - { -- static wcscat_t real_wcscat = NULL; - size_t max_bytes; - uint dest_len, src_len; - -@@ -861,7 +868,6 @@ - */ - int vfprintf(FILE *fp, const char *format, va_list ap) - { -- static vfprintf_t real_vfprintf = NULL; - int res; - char *p, *pnum; - int c = -1; /* Next var arg to be used */ -@@ -1026,7 +1032,6 @@ - */ - int _IO_vfprintf(FILE *fp, const char *format, va_list ap) - { -- static vfprintf_t real_vfprintf = NULL; - int res; - char *p, *pnum; - int c = -1; /* Next var arg to be used */ -@@ -1189,8 +1194,6 @@ - - int sprintf(char *str, const char *format, ...) - { -- static vsprintf_t real_vsprintf = NULL; -- static vsnprintf_t real_vsnprintf = NULL; - size_t max_size; - va_list ap; - int res; -@@ -1239,7 +1242,6 @@ - - int snprintf(char *str, size_t size, const char *format, ...) - { -- static vsnprintf_t real_vsnprintf = NULL; - size_t max_size; - va_list ap; - int res; -@@ -1286,8 +1288,6 @@ - - int vsprintf(char *str, const char *format, va_list ap) - { -- static vsprintf_t real_vsprintf = NULL; -- static vsnprintf_t real_vsnprintf = NULL; - size_t max_size; - int res; - -@@ -1325,7 +1325,6 @@ - - int vsnprintf(char *str, size_t size, const char *format, va_list ap) - { -- static vsnprintf_t real_vsnprintf = NULL; - size_t max_size; - int res; - -@@ -1361,7 +1360,6 @@ - - char *getwd(char *buf) - { -- static getwd_t real_getwd = NULL; - size_t max_size; - char *res; - -@@ -1386,7 +1384,6 @@ - - char *gets(char *s) - { -- static gets_t real_gets = NULL; - size_t max_size, len; - - if (!real_gets) -@@ -1412,7 +1409,6 @@ - - char *realpath(char *path, char resolved_path[]) - { -- static realpath_t real_realpath = NULL; - size_t max_size, len; - char *res; - char buf[MAXPATHLEN + 1]; -@@ -1445,7 +1441,6 @@ - - int _IO_vfscanf (_IO_FILE *s, const char *format, _IO_va_list argptr, int *errp) - { -- static _IO_vfscanf_t real_IO_vfscanf = NULL; - int res, save_count; - caddr_t ra_array[MAXLEVELS], fp_array[MAXLEVELS]; - -@@ -1529,6 +1524,25 @@ - - fclose(fp); - } -+ -+ real_memcpy = (memcpy_t) getLibraryFunction("memcpy"); -+ real_IO_vfscanf = (_IO_vfscanf_t) getLibraryFunction("_IO_vfscanf"); -+ real_vfprintf = (vfprintf_t) getLibraryFunction("vfprintf"); -+ real_vsnprintf = (vsnprintf_t) getLibraryFunction("vsnprintf"); -+ real_vsprintf = (vsprintf_t) getLibraryFunction("vsprintf"); -+ real_gets = (gets_t) getLibraryFunction("gets"); -+ real_getwd = (getwd_t) getLibraryFunction("getwd"); -+ real_realpath = (realpath_t) getLibraryFunction("realpath"); -+ real_stpcpy = (stpcpy_t) getLibraryFunction("stpcpy"); -+ real_strcat = (strcat_t) getLibraryFunction("strcat"); -+ real_strcpy = (strcpy_t) getLibraryFunction("strcpy"); -+ real_strncat = (strncat_t) getLibraryFunction("strncat"); -+ real_strncpy = (strncpy_t) getLibraryFunction("strncpy"); -+ real_wcscpy = (wcscpy_t) getLibraryFunction("wcscpy"); -+ real_wcpcpy = (wcpcpy_t) getLibraryFunction("wcpcpy"); -+#ifndef MISSING_WCSNLEN -+ real_wcscat = (wcscat_t) getLibraryFunction("wcscat"); -+#endif - } - - diff --git a/src/patches/libsigc++-gcc43.patch b/src/patches/libsigc++-gcc43.patch new file mode 100644 index 0000000..528f21e --- /dev/null +++ b/src/patches/libsigc++-gcc43.patch @@ -0,0 +1,85 @@ +diff -urN libsigc++-2.0-2.0.17.old/sigc++/signal.h libsigc++-2.0-2.0.17/sigc++/signal.h +--- libsigc++-2.0-2.0.17.old/sigc++/signal.h 2005-12-20 08:35:21.000000000 +0000 ++++ libsigc++-2.0-2.0.17/sigc++/signal.h 2008-02-22 00:22:44.000000000 +0000 +@@ -1661,7 +1661,7 @@ + typedef internal::signal_emit0<T_return, T_accumulator> emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot<T_return> slot_type; +- typedef slot_list<slot_type> slot_list_type; ++ typedef sigc::slot_list<slot_type> slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -1770,7 +1770,7 @@ + typedef internal::signal_emit1<T_return, T_arg1, T_accumulator> emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot<T_return, T_arg1> slot_type; +- typedef slot_list<slot_type> slot_list_type; ++ typedef sigc::slot_list<slot_type> slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -1881,7 +1881,7 @@ + typedef internal::signal_emit2<T_return, T_arg1,T_arg2, T_accumulator> emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot<T_return, T_arg1,T_arg2> slot_type; +- typedef slot_list<slot_type> slot_list_type; ++ typedef sigc::slot_list<slot_type> slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -1994,7 +1994,7 @@ + typedef internal::signal_emit3<T_return, T_arg1,T_arg2,T_arg3, T_accumulator> emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot<T_return, T_arg1,T_arg2,T_arg3> slot_type; +- typedef slot_list<slot_type> slot_list_type; ++ typedef sigc::slot_list<slot_type> slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -2109,7 +2109,7 @@ + typedef internal::signal_emit4<T_return, T_arg1,T_arg2,T_arg3,T_arg4, T_accumulator> emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4> slot_type; +- typedef slot_list<slot_type> slot_list_type; ++ typedef sigc::slot_list<slot_type> slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -2226,7 +2226,7 @@ + typedef internal::signal_emit5<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5, T_accumulator> emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5> slot_type; +- typedef slot_list<slot_type> slot_list_type; ++ typedef sigc::slot_list<slot_type> slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -2345,7 +2345,7 @@ + typedef internal::signal_emit6<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6, T_accumulator> emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6> slot_type; +- typedef slot_list<slot_type> slot_list_type; ++ typedef sigc::slot_list<slot_type> slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -2466,7 +2466,7 @@ + typedef internal::signal_emit7<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7, T_accumulator> emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> slot_type; +- typedef slot_list<slot_type> slot_list_type; ++ typedef sigc::slot_list<slot_type> slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +diff -urN libsigc++-2.0-2.0.17.old/tests/test_copy_invalid_slot.cc libsigc++-2.0-2.0.17/tests/test_copy_invalid_slot.cc +--- libsigc++-2.0-2.0.17.old/tests/test_copy_invalid_slot.cc 2005-05-01 02:00:47.000000000 +0000 ++++ libsigc++-2.0-2.0.17/tests/test_copy_invalid_slot.cc 2008-02-22 00:24:08.000000000 +0000 +@@ -1,4 +1,6 @@ + #include <iostream> ++#include <cstdlib> ++#include <cstring> + #include <sigc++/sigc++.h> + + void Foo(sigc::trackable &t) {} diff --git a/src/patches/linux-2.6-arm-asm-constraint.patch b/src/patches/linux-2.6-arm-asm-constraint.patch new file mode 100644 index 0000000..ac0641e --- /dev/null +++ b/src/patches/linux-2.6-arm-asm-constraint.patch @@ -0,0 +1,347 @@ +From 398aa66827155ef52bab58bebd24597d90968929 Mon Sep 17 00:00:00 2001 +From: Will Deacon will.deacon@arm.com +Date: Thu, 8 Jul 2010 10:59:16 +0100 +Subject: [PATCH] ARM: 6212/1: atomic ops: add memory constraints to inline + asm + +Currently, the 32-bit and 64-bit atomic operations on ARM do not +include memory constraints in the inline assembly blocks. In the +case of barrier-less operations [for example, atomic_add], this +means that the compiler may constant fold values which have actually +been modified by a call to an atomic operation. + +This issue can be observed in the atomic64_test routine in +<kernel root>/lib/atomic64_test.c: + +00000000 <test_atomic64>: + 0: e1a0c00d mov ip, sp + 4: e92dd830 push {r4, r5, fp, ip, lr, pc} + 8: e24cb004 sub fp, ip, #4 + c: e24dd008 sub sp, sp, #8 + 10: e24b3014 sub r3, fp, #20 + 14: e30d000d movw r0, #53261 ; 0xd00d + 18: e3011337 movw r1, #4919 ; 0x1337 + 1c: e34c0001 movt r0, #49153 ; 0xc001 + 20: e34a1aa3 movt r1, #43683 ; 0xaaa3 + 24: e16300f8 strd r0, [r3, #-8]! + 28: e30c0afe movw r0, #51966 ; 0xcafe + 2c: e30b1eef movw r1, #48879 ; 0xbeef + 30: e34d0eaf movt r0, #57007 ; 0xdeaf + 34: e34d1ead movt r1, #57005 ; 0xdead + 38: e1b34f9f ldrexd r4, [r3] + 3c: e1a34f90 strexd r4, r0, [r3] + 40: e3340000 teq r4, #0 + 44: 1afffffb bne 38 <test_atomic64+0x38> + 48: e59f0004 ldr r0, [pc, #4] ; 54 <test_atomic64+0x54> + 4c: e3a0101e mov r1, #30 + 50: ebfffffe bl 0 <__bug> + 54: 00000000 .word 0x00000000 + +The atomic64_set (0x38-0x44) writes to the atomic64_t, but the +compiler doesn't see this, assumes the test condition is always +false and generates an unconditional branch to __bug. The rest of the +test is optimised away. + +This patch adds suitable memory constraints to the atomic operations on ARM +to ensure that the compiler is informed of the correct data hazards. We have +to use the "Qo" constraints to avoid hitting the GCC anomaly described at +http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44492 , where the compiler +makes assumptions about the writeback in the addressing mode used by the +inline assembly. These constraints forbid the use of auto{inc,dec} addressing +modes, so it doesn't matter if we don't use the operand exactly once. + +Cc: stable@kernel.org +Reviewed-by: Nicolas Pitre nicolas.pitre@linaro.org +Signed-off-by: Will Deacon will.deacon@arm.com +Signed-off-by: Russell King rmk+kernel@arm.linux.org.uk +--- + arch/arm/include/asm/atomic.h | 132 ++++++++++++++++++++-------------------- + 1 files changed, 66 insertions(+), 66 deletions(-) + +diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h +index e9e56c0..7e79503 100644 +--- a/arch/arm/include/asm/atomic.h ++++ b/arch/arm/include/asm/atomic.h +@@ -40,12 +40,12 @@ static inline void atomic_add(int i, atomic_t *v) + int result; + + __asm__ __volatile__("@ atomic_add\n" +-"1: ldrex %0, [%2]\n" +-" add %0, %0, %3\n" +-" strex %1, %0, [%2]\n" ++"1: ldrex %0, [%3]\n" ++" add %0, %0, %4\n" ++" strex %1, %0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "Ir" (i) + : "cc"); + } +@@ -58,12 +58,12 @@ static inline int atomic_add_return(int i, atomic_t *v) + smp_mb(); + + __asm__ __volatile__("@ atomic_add_return\n" +-"1: ldrex %0, [%2]\n" +-" add %0, %0, %3\n" +-" strex %1, %0, [%2]\n" ++"1: ldrex %0, [%3]\n" ++" add %0, %0, %4\n" ++" strex %1, %0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "Ir" (i) + : "cc"); + +@@ -78,12 +78,12 @@ static inline void atomic_sub(int i, atomic_t *v) + int result; + + __asm__ __volatile__("@ atomic_sub\n" +-"1: ldrex %0, [%2]\n" +-" sub %0, %0, %3\n" +-" strex %1, %0, [%2]\n" ++"1: ldrex %0, [%3]\n" ++" sub %0, %0, %4\n" ++" strex %1, %0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "Ir" (i) + : "cc"); + } +@@ -96,12 +96,12 @@ static inline int atomic_sub_return(int i, atomic_t *v) + smp_mb(); + + __asm__ __volatile__("@ atomic_sub_return\n" +-"1: ldrex %0, [%2]\n" +-" sub %0, %0, %3\n" +-" strex %1, %0, [%2]\n" ++"1: ldrex %0, [%3]\n" ++" sub %0, %0, %4\n" ++" strex %1, %0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "Ir" (i) + : "cc"); + +@@ -118,11 +118,11 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new) + + do { + __asm__ __volatile__("@ atomic_cmpxchg\n" +- "ldrex %1, [%2]\n" ++ "ldrex %1, [%3]\n" + "mov %0, #0\n" +- "teq %1, %3\n" +- "strexeq %0, %4, [%2]\n" +- : "=&r" (res), "=&r" (oldval) ++ "teq %1, %4\n" ++ "strexeq %0, %5, [%3]\n" ++ : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter) + : "r" (&ptr->counter), "Ir" (old), "r" (new) + : "cc"); + } while (res); +@@ -137,12 +137,12 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr) + unsigned long tmp, tmp2; + + __asm__ __volatile__("@ atomic_clear_mask\n" +-"1: ldrex %0, [%2]\n" +-" bic %0, %0, %3\n" +-" strex %1, %0, [%2]\n" ++"1: ldrex %0, [%3]\n" ++" bic %0, %0, %4\n" ++" strex %1, %0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (tmp), "=&r" (tmp2) ++ : "=&r" (tmp), "=&r" (tmp2), "+Qo" (*addr) + : "r" (addr), "Ir" (mask) + : "cc"); + } +@@ -249,7 +249,7 @@ static inline u64 atomic64_read(atomic64_t *v) + __asm__ __volatile__("@ atomic64_read\n" + " ldrexd %0, %H0, [%1]" + : "=&r" (result) +- : "r" (&v->counter) ++ : "r" (&v->counter), "Qo" (v->counter) + ); + + return result; +@@ -260,11 +260,11 @@ static inline void atomic64_set(atomic64_t *v, u64 i) + u64 tmp; + + __asm__ __volatile__("@ atomic64_set\n" +-"1: ldrexd %0, %H0, [%1]\n" +-" strexd %0, %2, %H2, [%1]\n" ++"1: ldrexd %0, %H0, [%2]\n" ++" strexd %0, %3, %H3, [%2]\n" + " teq %0, #0\n" + " bne 1b" +- : "=&r" (tmp) ++ : "=&r" (tmp), "=Qo" (v->counter) + : "r" (&v->counter), "r" (i) + : "cc"); + } +@@ -275,13 +275,13 @@ static inline void atomic64_add(u64 i, atomic64_t *v) + unsigned long tmp; + + __asm__ __volatile__("@ atomic64_add\n" +-"1: ldrexd %0, %H0, [%2]\n" +-" adds %0, %0, %3\n" +-" adc %H0, %H0, %H3\n" +-" strexd %1, %0, %H0, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" ++" adds %0, %0, %4\n" ++" adc %H0, %H0, %H4\n" ++" strexd %1, %0, %H0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "r" (i) + : "cc"); + } +@@ -294,13 +294,13 @@ static inline u64 atomic64_add_return(u64 i, atomic64_t *v) + smp_mb(); + + __asm__ __volatile__("@ atomic64_add_return\n" +-"1: ldrexd %0, %H0, [%2]\n" +-" adds %0, %0, %3\n" +-" adc %H0, %H0, %H3\n" +-" strexd %1, %0, %H0, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" ++" adds %0, %0, %4\n" ++" adc %H0, %H0, %H4\n" ++" strexd %1, %0, %H0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "r" (i) + : "cc"); + +@@ -315,13 +315,13 @@ static inline void atomic64_sub(u64 i, atomic64_t *v) + unsigned long tmp; + + __asm__ __volatile__("@ atomic64_sub\n" +-"1: ldrexd %0, %H0, [%2]\n" +-" subs %0, %0, %3\n" +-" sbc %H0, %H0, %H3\n" +-" strexd %1, %0, %H0, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" ++" subs %0, %0, %4\n" ++" sbc %H0, %H0, %H4\n" ++" strexd %1, %0, %H0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "r" (i) + : "cc"); + } +@@ -334,13 +334,13 @@ static inline u64 atomic64_sub_return(u64 i, atomic64_t *v) + smp_mb(); + + __asm__ __volatile__("@ atomic64_sub_return\n" +-"1: ldrexd %0, %H0, [%2]\n" +-" subs %0, %0, %3\n" +-" sbc %H0, %H0, %H3\n" +-" strexd %1, %0, %H0, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" ++" subs %0, %0, %4\n" ++" sbc %H0, %H0, %H4\n" ++" strexd %1, %0, %H0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "r" (i) + : "cc"); + +@@ -358,12 +358,12 @@ static inline u64 atomic64_cmpxchg(atomic64_t *ptr, u64 old, u64 new) + + do { + __asm__ __volatile__("@ atomic64_cmpxchg\n" +- "ldrexd %1, %H1, [%2]\n" ++ "ldrexd %1, %H1, [%3]\n" + "mov %0, #0\n" +- "teq %1, %3\n" +- "teqeq %H1, %H3\n" +- "strexdeq %0, %4, %H4, [%2]" +- : "=&r" (res), "=&r" (oldval) ++ "teq %1, %4\n" ++ "teqeq %H1, %H4\n" ++ "strexdeq %0, %5, %H5, [%3]" ++ : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter) + : "r" (&ptr->counter), "r" (old), "r" (new) + : "cc"); + } while (res); +@@ -381,11 +381,11 @@ static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new) + smp_mb(); + + __asm__ __volatile__("@ atomic64_xchg\n" +-"1: ldrexd %0, %H0, [%2]\n" +-" strexd %1, %3, %H3, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" ++" strexd %1, %4, %H4, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (ptr->counter) + : "r" (&ptr->counter), "r" (new) + : "cc"); + +@@ -402,16 +402,16 @@ static inline u64 atomic64_dec_if_positive(atomic64_t *v) + smp_mb(); + + __asm__ __volatile__("@ atomic64_dec_if_positive\n" +-"1: ldrexd %0, %H0, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" + " subs %0, %0, #1\n" + " sbc %H0, %H0, #0\n" + " teq %H0, #0\n" + " bmi 2f\n" +-" strexd %1, %0, %H0, [%2]\n" ++" strexd %1, %0, %H0, [%3]\n" + " teq %1, #0\n" + " bne 1b\n" + "2:" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter) + : "cc"); + +@@ -429,18 +429,18 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u) + smp_mb(); + + __asm__ __volatile__("@ atomic64_add_unless\n" +-"1: ldrexd %0, %H0, [%3]\n" +-" teq %0, %4\n" +-" teqeq %H0, %H4\n" ++"1: ldrexd %0, %H0, [%4]\n" ++" teq %0, %5\n" ++" teqeq %H0, %H5\n" + " moveq %1, #0\n" + " beq 2f\n" +-" adds %0, %0, %5\n" +-" adc %H0, %H0, %H5\n" +-" strexd %2, %0, %H0, [%3]\n" ++" adds %0, %0, %6\n" ++" adc %H0, %H0, %H6\n" ++" strexd %2, %0, %H0, [%4]\n" + " teq %2, #0\n" + " bne 1b\n" + "2:" +- : "=&r" (val), "+r" (ret), "=&r" (tmp) ++ : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "r" (u), "r" (a) + : "cc"); + +-- +1.7.6.2 + diff --git a/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch b/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch deleted file mode 100644 index 7419c05..0000000 --- a/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -Naur linux-2.6.25.18.org/kernel/sysctl.c linux-2.6.25.18/kernel/sysctl.c ---- linux-2.6.25.18.org/kernel/sysctl.c 2008-10-09 04:58:32.000000000 +0200 -+++ linux-2.6.25.18/kernel/sysctl.c 2008-10-10 18:03:33.000000000 +0200 -@@ -2807,6 +2807,10 @@ - if ((args->nlen == 2) && (name[0] == CTL_KERN) && (name[1] == KERN_VERSION)) - return 0; - -+ /* Ignore kudzu syscall 1.23 */ -+ if ((args->nlen == 2) && (name[0] == 1) && (name[1] == 23)) -+ return 0; -+ - if (msg_count < 5) { - msg_count++; - printk(KERN_INFO diff --git a/src/patches/linux-2.6.32-crypto-mv_cesa.patch b/src/patches/linux-2.6.32-crypto-mv_cesa.patch new file mode 100644 index 0000000..cc85d52 --- /dev/null +++ b/src/patches/linux-2.6.32-crypto-mv_cesa.patch @@ -0,0 +1,647 @@ +From 0328ac267564089d9cedfb568f936d30a6debd21 Mon Sep 17 00:00:00 2001 +From: Uri Simchoni uri@jdland.co.il +Date: Thu, 8 Apr 2010 19:25:37 +0300 +Subject: [PATCH] crypto: mv_cesa - Invoke the user callback from a softirq + context + +Invoke the user callback from a softirq context + +Signed-off-by: Uri Simchoni uri@jdland.co.il +Signed-off-by: Herbert Xu herbert@gondor.apana.org.au +--- + drivers/crypto/mv_cesa.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index b21ef63..3e60ba9 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -275,7 +275,9 @@ static void dequeue_complete_req(void) + sg_miter_stop(&cpg->p.dst_sg_it); + mv_crypto_algo_completion(); + cpg->eng_st = ENGINE_IDLE; ++ local_bh_disable(); + req->base.complete(&req->base, 0); ++ local_bh_enable(); + } + } + +-- +1.7.6.5 +From 6bc6fcd609080461682c5cc0a1e3bf4345d6419d Mon Sep 17 00:00:00 2001 +From: Uri Simchoni uri@jdland.co.il +Date: Thu, 8 Apr 2010 19:25:56 +0300 +Subject: [PATCH] crypto: mv_cesa - Remove compiler warning in mv_cesa driver + +Remove compiler warning + +Signed-off-by: Uri Simchoni uri@jdland.co.il +Signed-off-by: Herbert Xu herbert@gondor.apana.org.au +--- + drivers/crypto/mv_cesa.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 3e60ba9..37d9f06 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -178,6 +178,7 @@ static void mv_process_current_q(int first_block) + op.config = CFG_OP_CRYPT_ONLY | CFG_ENCM_AES | CFG_ENC_MODE_ECB; + break; + case COP_AES_CBC: ++ default: + op.config = CFG_OP_CRYPT_ONLY | CFG_ENCM_AES | CFG_ENC_MODE_CBC; + op.enc_iv = ENC_IV_POINT(SRAM_DATA_IV) | + ENC_IV_BUF_POINT(SRAM_DATA_IV_BUF); +-- +1.7.6.5 +X-Git-Url: http://git.kernelconcepts.de/?p=mv-sheeva.git;a=blobdiff_plain;f=drivers%2Fc... + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 37d9f06..018a95c 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -242,6 +242,8 @@ static void dequeue_complete_req(void) + struct ablkcipher_request *req = cpg->cur_req; + void *buf; + int ret; ++ int need_copy_len = cpg->p.crypt_len; ++ int sram_offset = 0; + + cpg->p.total_req_bytes += cpg->p.crypt_len; + do { +@@ -257,14 +259,16 @@ static void dequeue_complete_req(void) + buf = cpg->p.dst_sg_it.addr; + buf += cpg->p.dst_start; + +- dst_copy = min(cpg->p.crypt_len, cpg->p.sg_dst_left); +- +- memcpy(buf, cpg->sram + SRAM_DATA_OUT_START, dst_copy); ++ dst_copy = min(need_copy_len, cpg->p.sg_dst_left); + ++ memcpy(buf, ++ cpg->sram + SRAM_DATA_OUT_START + sram_offset, ++ dst_copy); ++ sram_offset += dst_copy; + cpg->p.sg_dst_left -= dst_copy; +- cpg->p.crypt_len -= dst_copy; ++ need_copy_len -= dst_copy; + cpg->p.dst_start += dst_copy; +- } while (cpg->p.crypt_len > 0); ++ } while (need_copy_len > 0); + + BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE); + if (cpg->p.total_req_bytes < req->nbytes) { +From 15d4dd3594221f11a7730fcf2d5f9942b96cdd7e Mon Sep 17 00:00:00 2001 +From: Uri Simchoni uri@jdland.co.il +Date: Thu, 8 Apr 2010 19:27:02 +0300 +Subject: [PATCH] crypto: mv_cesa - Fix situations where the src sglist spans + more data than the request asks for + +Fix for situations where the source scatterlist spans more data than the +request nbytes + +Signed-off-by: Uri Simchoni uri@jdland.co.il +Signed-off-by: Herbert Xu herbert@gondor.apana.org.au +--- + drivers/crypto/mv_cesa.c | 66 ++++++++++++++++++++++++++++++--------------- + 1 files changed, 44 insertions(+), 22 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 018a95c..096f9ff 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -143,27 +143,45 @@ static int mv_setkey_aes(struct crypto_ablkcipher *cipher, const u8 *key, + return 0; + } + +-static void setup_data_in(struct ablkcipher_request *req) ++static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len) + { + int ret; +- void *buf; +- +- if (!cpg->p.sg_src_left) { +- ret = sg_miter_next(&cpg->p.src_sg_it); +- BUG_ON(!ret); +- cpg->p.sg_src_left = cpg->p.src_sg_it.length; +- cpg->p.src_start = 0; +- } ++ void *sbuf; ++ int copied = 0; + +- cpg->p.crypt_len = min(cpg->p.sg_src_left, cpg->max_req_size); +- +- buf = cpg->p.src_sg_it.addr; +- buf += cpg->p.src_start; ++ while (1) { ++ if (!p->sg_src_left) { ++ ret = sg_miter_next(&p->src_sg_it); ++ BUG_ON(!ret); ++ p->sg_src_left = p->src_sg_it.length; ++ p->src_start = 0; ++ } + +- memcpy(cpg->sram + SRAM_DATA_IN_START, buf, cpg->p.crypt_len); ++ sbuf = p->src_sg_it.addr + p->src_start; ++ ++ if (p->sg_src_left <= len - copied) { ++ memcpy(dbuf + copied, sbuf, p->sg_src_left); ++ copied += p->sg_src_left; ++ p->sg_src_left = 0; ++ if (copied >= len) ++ break; ++ } else { ++ int copy_len = len - copied; ++ memcpy(dbuf + copied, sbuf, copy_len); ++ p->src_start += copy_len; ++ p->sg_src_left -= copy_len; ++ break; ++ } ++ } ++} + +- cpg->p.sg_src_left -= cpg->p.crypt_len; +- cpg->p.src_start += cpg->p.crypt_len; ++static void setup_data_in(struct ablkcipher_request *req) ++{ ++ struct req_progress *p = &cpg->p; ++ p->crypt_len = ++ min((int)req->nbytes - p->total_req_bytes, cpg->max_req_size); ++ copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START, ++ p->crypt_len); + } + + static void mv_process_current_q(int first_block) +@@ -289,12 +307,16 @@ static void dequeue_complete_req(void) + static int count_sgs(struct scatterlist *sl, unsigned int total_bytes) + { + int i = 0; +- +- do { +- total_bytes -= sl[i].length; +- i++; +- +- } while (total_bytes > 0); ++ size_t cur_len; ++ ++ while (1) { ++ cur_len = sl[i].length; ++ ++i; ++ if (total_bytes > cur_len) ++ total_bytes -= cur_len; ++ else ++ break; ++ } + + return i; + } +-- +1.7.6.5 +From 3b61a90502481045f56c1c41a2af35ee48ca8b80 Mon Sep 17 00:00:00 2001 +From: Uri Simchoni uri@jdland.co.il +Date: Thu, 8 Apr 2010 19:27:33 +0300 +Subject: [PATCH] crypto: mv_cesa - Enqueue generic async requests + +Enqueue generic async requests rather than ablkcipher requests +in the driver's queue + +Signed-off-by: Uri Simchoni uri@jdland.co.il +Signed-off-by: Herbert Xu herbert@gondor.apana.org.au +--- + drivers/crypto/mv_cesa.c | 43 ++++++++++++++++++++++++------------------- + 1 files changed, 24 insertions(+), 19 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 096f9ff..8891e2e 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -39,6 +39,7 @@ enum engine_status { + * @sg_src_left: bytes left in src to process (scatter list) + * @src_start: offset to add to src start position (scatter list) + * @crypt_len: length of current crypt process ++ * @hw_nbytes: total bytes to process in hw for this request + * @sg_dst_left: bytes left dst to process in this scatter list + * @dst_start: offset to add to dst start position (scatter list) + * @total_req_bytes: total number of bytes processed (request). +@@ -55,6 +56,7 @@ struct req_progress { + int sg_src_left; + int src_start; + int crypt_len; ++ int hw_nbytes; + /* dst mostly */ + int sg_dst_left; + int dst_start; +@@ -71,7 +73,7 @@ struct crypto_priv { + spinlock_t lock; + struct crypto_queue queue; + enum engine_status eng_st; +- struct ablkcipher_request *cur_req; ++ struct crypto_async_request *cur_req; + struct req_progress p; + int max_req_size; + int sram_size; +@@ -175,18 +177,18 @@ static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len) + } + } + +-static void setup_data_in(struct ablkcipher_request *req) ++static void setup_data_in(void) + { + struct req_progress *p = &cpg->p; + p->crypt_len = +- min((int)req->nbytes - p->total_req_bytes, cpg->max_req_size); ++ min(p->hw_nbytes - p->total_req_bytes, cpg->max_req_size); + copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START, + p->crypt_len); + } + + static void mv_process_current_q(int first_block) + { +- struct ablkcipher_request *req = cpg->cur_req; ++ struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req); + struct mv_ctx *ctx = crypto_tfm_ctx(req->base.tfm); + struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req); + struct sec_accel_config op; +@@ -229,7 +231,7 @@ static void mv_process_current_q(int first_block) + ENC_P_DST(SRAM_DATA_OUT_START); + op.enc_key_p = SRAM_DATA_KEY_P; + +- setup_data_in(req); ++ setup_data_in(); + op.enc_len = cpg->p.crypt_len; + memcpy(cpg->sram + SRAM_CONFIG, &op, + sizeof(struct sec_accel_config)); +@@ -246,7 +248,7 @@ static void mv_process_current_q(int first_block) + + static void mv_crypto_algo_completion(void) + { +- struct ablkcipher_request *req = cpg->cur_req; ++ struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req); + struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req); + + if (req_ctx->op != COP_AES_CBC) +@@ -257,7 +259,7 @@ static void mv_crypto_algo_completion(void) + + static void dequeue_complete_req(void) + { +- struct ablkcipher_request *req = cpg->cur_req; ++ struct crypto_async_request *req = cpg->cur_req; + void *buf; + int ret; + int need_copy_len = cpg->p.crypt_len; +@@ -289,7 +291,7 @@ static void dequeue_complete_req(void) + } while (need_copy_len > 0); + + BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE); +- if (cpg->p.total_req_bytes < req->nbytes) { ++ if (cpg->p.total_req_bytes < cpg->p.hw_nbytes) { + /* process next scatter list entry */ + cpg->eng_st = ENGINE_BUSY; + mv_process_current_q(0); +@@ -299,7 +301,7 @@ static void dequeue_complete_req(void) + mv_crypto_algo_completion(); + cpg->eng_st = ENGINE_IDLE; + local_bh_disable(); +- req->base.complete(&req->base, 0); ++ req->complete(req, 0); + local_bh_enable(); + } + } +@@ -323,16 +325,19 @@ static int count_sgs(struct scatterlist *sl, unsigned int total_bytes) + + static void mv_enqueue_new_req(struct ablkcipher_request *req) + { ++ struct req_progress *p = &cpg->p; + int num_sgs; + +- cpg->cur_req = req; +- memset(&cpg->p, 0, sizeof(struct req_progress)); ++ cpg->cur_req = &req->base; ++ memset(p, 0, sizeof(struct req_progress)); ++ p->hw_nbytes = req->nbytes; + + num_sgs = count_sgs(req->src, req->nbytes); +- sg_miter_start(&cpg->p.src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG); ++ sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG); + + num_sgs = count_sgs(req->dst, req->nbytes); +- sg_miter_start(&cpg->p.dst_sg_it, req->dst, num_sgs, SG_MITER_TO_SG); ++ sg_miter_start(&p->dst_sg_it, req->dst, num_sgs, SG_MITER_TO_SG); ++ + mv_process_current_q(1); + } + +@@ -378,13 +383,13 @@ static int queue_manag(void *data) + return 0; + } + +-static int mv_handle_req(struct ablkcipher_request *req) ++static int mv_handle_req(struct crypto_async_request *req) + { + unsigned long flags; + int ret; + + spin_lock_irqsave(&cpg->lock, flags); +- ret = ablkcipher_enqueue_request(&cpg->queue, req); ++ ret = crypto_enqueue_request(&cpg->queue, req); + spin_unlock_irqrestore(&cpg->lock, flags); + wake_up_process(cpg->queue_th); + return ret; +@@ -397,7 +402,7 @@ static int mv_enc_aes_ecb(struct ablkcipher_request *req) + req_ctx->op = COP_AES_ECB; + req_ctx->decrypt = 0; + +- return mv_handle_req(req); ++ return mv_handle_req(&req->base); + } + + static int mv_dec_aes_ecb(struct ablkcipher_request *req) +@@ -409,7 +414,7 @@ static int mv_dec_aes_ecb(struct ablkcipher_request *req) + req_ctx->decrypt = 1; + + compute_aes_dec_key(ctx); +- return mv_handle_req(req); ++ return mv_handle_req(&req->base); + } + + static int mv_enc_aes_cbc(struct ablkcipher_request *req) +@@ -419,7 +424,7 @@ static int mv_enc_aes_cbc(struct ablkcipher_request *req) + req_ctx->op = COP_AES_CBC; + req_ctx->decrypt = 0; + +- return mv_handle_req(req); ++ return mv_handle_req(&req->base); + } + + static int mv_dec_aes_cbc(struct ablkcipher_request *req) +@@ -431,7 +436,7 @@ static int mv_dec_aes_cbc(struct ablkcipher_request *req) + req_ctx->decrypt = 1; + + compute_aes_dec_key(ctx); +- return mv_handle_req(req); ++ return mv_handle_req(&req->base); + } + + static int mv_cra_init(struct crypto_tfm *tfm) +-- +1.7.6.5 +From 7a5f691ef03f4c01d2703b5ec4ddd4c17e645dec Mon Sep 17 00:00:00 2001 +From: Uri Simchoni uri@jdland.co.il +Date: Thu, 8 Apr 2010 19:29:16 +0300 +Subject: [PATCH] crypto: mv_cesa - Rename a variable to a more suitable name + +Rename a variable to a more suitable name + +Signed-off-by: Uri Simchoni uri@jdland.co.il +Signed-off-by: Herbert Xu herbert@gondor.apana.org.au +--- + drivers/crypto/mv_cesa.c | 10 +++++----- + 1 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 8891e2e..4262932 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -42,7 +42,7 @@ enum engine_status { + * @hw_nbytes: total bytes to process in hw for this request + * @sg_dst_left: bytes left dst to process in this scatter list + * @dst_start: offset to add to dst start position (scatter list) +- * @total_req_bytes: total number of bytes processed (request). ++ * @hw_processed_bytes: number of bytes processed by hw (request). + * + * sg helper are used to iterate over the scatterlist. Since the size of the + * SRAM may be less than the scatter size, this struct struct is used to keep +@@ -60,7 +60,7 @@ struct req_progress { + /* dst mostly */ + int sg_dst_left; + int dst_start; +- int total_req_bytes; ++ int hw_processed_bytes; + }; + + struct crypto_priv { +@@ -181,7 +181,7 @@ static void setup_data_in(void) + { + struct req_progress *p = &cpg->p; + p->crypt_len = +- min(p->hw_nbytes - p->total_req_bytes, cpg->max_req_size); ++ min(p->hw_nbytes - p->hw_processed_bytes, cpg->max_req_size); + copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START, + p->crypt_len); + } +@@ -265,7 +265,7 @@ static void dequeue_complete_req(void) + int need_copy_len = cpg->p.crypt_len; + int sram_offset = 0; + +- cpg->p.total_req_bytes += cpg->p.crypt_len; ++ cpg->p.hw_processed_bytes += cpg->p.crypt_len; + do { + int dst_copy; + +@@ -291,7 +291,7 @@ static void dequeue_complete_req(void) + } while (need_copy_len > 0); + + BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE); +- if (cpg->p.total_req_bytes < cpg->p.hw_nbytes) { ++ if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) { + /* process next scatter list entry */ + cpg->eng_st = ENGINE_BUSY; + mv_process_current_q(0); +-- +1.6.5.GIT +From a58094ac5f95d6969e5c52ff096d2fd2864542af Mon Sep 17 00:00:00 2001 +From: Uri Simchoni uri@jdland.co.il +Date: Thu, 8 Apr 2010 19:30:19 +0300 +Subject: [PATCH] crypto: mv_cesa - Execute some code via function pointers + rathr than direct calls + +Execute some code via function pointers rathr than direct calls +(to allow customization in the hashing request) + +Signed-off-by: Uri Simchoni uri@jdland.co.il +Signed-off-by: Herbert Xu herbert@gondor.apana.org.au +--- + drivers/crypto/mv_cesa.c | 13 +++++++++---- + 1 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 4262932..2b4f07a 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -51,6 +51,8 @@ enum engine_status { + struct req_progress { + struct sg_mapping_iter src_sg_it; + struct sg_mapping_iter dst_sg_it; ++ void (*complete) (void); ++ void (*process) (int is_first); + + /* src mostly */ + int sg_src_left; +@@ -251,6 +253,9 @@ static void mv_crypto_algo_completion(void) + struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req); + struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req); + ++ sg_miter_stop(&cpg->p.src_sg_it); ++ sg_miter_stop(&cpg->p.dst_sg_it); ++ + if (req_ctx->op != COP_AES_CBC) + return ; + +@@ -294,11 +299,9 @@ static void dequeue_complete_req(void) + if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) { + /* process next scatter list entry */ + cpg->eng_st = ENGINE_BUSY; +- mv_process_current_q(0); ++ cpg->p.process(0); + } else { +- sg_miter_stop(&cpg->p.src_sg_it); +- sg_miter_stop(&cpg->p.dst_sg_it); +- mv_crypto_algo_completion(); ++ cpg->p.complete(); + cpg->eng_st = ENGINE_IDLE; + local_bh_disable(); + req->complete(req, 0); +@@ -331,6 +334,8 @@ static void mv_enqueue_new_req(struct ablkcipher_request *req) + cpg->cur_req = &req->base; + memset(p, 0, sizeof(struct req_progress)); + p->hw_nbytes = req->nbytes; ++ p->complete = mv_crypto_algo_completion; ++ p->process = mv_process_current_q; + + num_sgs = count_sgs(req->src, req->nbytes); + sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG); +-- +1.7.6.5 +X-Git-Url: http://git.kernelconcepts.de/?p=mv-sheeva.git;a=blobdiff_plain;f=drivers%2Fc... + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 2b4f07a..49a2206 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -40,6 +40,7 @@ enum engine_status { + * @src_start: offset to add to src start position (scatter list) + * @crypt_len: length of current crypt process + * @hw_nbytes: total bytes to process in hw for this request ++ * @copy_back: whether to copy data back (crypt) or not (hash) + * @sg_dst_left: bytes left dst to process in this scatter list + * @dst_start: offset to add to dst start position (scatter list) + * @hw_processed_bytes: number of bytes processed by hw (request). +@@ -60,6 +61,7 @@ struct req_progress { + int crypt_len; + int hw_nbytes; + /* dst mostly */ ++ int copy_back; + int sg_dst_left; + int dst_start; + int hw_processed_bytes; +@@ -267,33 +269,35 @@ static void dequeue_complete_req(void) + struct crypto_async_request *req = cpg->cur_req; + void *buf; + int ret; +- int need_copy_len = cpg->p.crypt_len; +- int sram_offset = 0; +- + cpg->p.hw_processed_bytes += cpg->p.crypt_len; +- do { +- int dst_copy; ++ if (cpg->p.copy_back) { ++ int need_copy_len = cpg->p.crypt_len; ++ int sram_offset = 0; ++ do { ++ int dst_copy; ++ ++ if (!cpg->p.sg_dst_left) { ++ ret = sg_miter_next(&cpg->p.dst_sg_it); ++ BUG_ON(!ret); ++ cpg->p.sg_dst_left = cpg->p.dst_sg_it.length; ++ cpg->p.dst_start = 0; ++ } + +- if (!cpg->p.sg_dst_left) { +- ret = sg_miter_next(&cpg->p.dst_sg_it); +- BUG_ON(!ret); +- cpg->p.sg_dst_left = cpg->p.dst_sg_it.length; +- cpg->p.dst_start = 0; +- } ++ buf = cpg->p.dst_sg_it.addr; ++ buf += cpg->p.dst_start; + +- buf = cpg->p.dst_sg_it.addr; +- buf += cpg->p.dst_start; ++ dst_copy = min(need_copy_len, cpg->p.sg_dst_left); + +- dst_copy = min(need_copy_len, cpg->p.sg_dst_left); ++ memcpy(buf, ++ cpg->sram + SRAM_DATA_OUT_START + sram_offset, ++ dst_copy); ++ sram_offset += dst_copy; ++ cpg->p.sg_dst_left -= dst_copy; ++ need_copy_len -= dst_copy; ++ cpg->p.dst_start += dst_copy; ++ } while (need_copy_len > 0); ++ } + +- memcpy(buf, +- cpg->sram + SRAM_DATA_OUT_START + sram_offset, +- dst_copy); +- sram_offset += dst_copy; +- cpg->p.sg_dst_left -= dst_copy; +- need_copy_len -= dst_copy; +- cpg->p.dst_start += dst_copy; +- } while (need_copy_len > 0); + + BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE); + if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) { +@@ -336,6 +340,7 @@ static void mv_enqueue_new_req(struct ablkcipher_request *req) + p->hw_nbytes = req->nbytes; + p->complete = mv_crypto_algo_completion; + p->process = mv_process_current_q; ++ p->copy_back = 1; + + num_sgs = count_sgs(req->src, req->nbytes); + sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG); +From 0c5c6c4bae8fe9ae3d86b44c332eb1267df1ec99 Mon Sep 17 00:00:00 2001 +From: Uri Simchoni uri@jdland.co.il +Date: Thu, 8 Apr 2010 19:33:26 +0300 +Subject: [PATCH] crypto: mv_cesa - Support processing of data from previous + requests + +Support processing of data from previous requests (as in hashing +update/final requests). + +Signed-off-by: Uri Simchoni uri@jdland.co.il +Signed-off-by: Herbert Xu herbert@gondor.apana.org.au +--- + drivers/crypto/mv_cesa.c | 8 +++++--- + 1 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 49a2206..d0fb10e 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -184,10 +184,11 @@ static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len) + static void setup_data_in(void) + { + struct req_progress *p = &cpg->p; +- p->crypt_len = ++ int data_in_sram = + min(p->hw_nbytes - p->hw_processed_bytes, cpg->max_req_size); +- copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START, +- p->crypt_len); ++ copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START + p->crypt_len, ++ data_in_sram - p->crypt_len); ++ p->crypt_len = data_in_sram; + } + + static void mv_process_current_q(int first_block) +@@ -298,6 +299,7 @@ static void dequeue_complete_req(void) + } while (need_copy_len > 0); + } + ++ cpg->p.crypt_len = 0; + + BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE); + if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) { +-- +1.7.6.5 diff --git a/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch b/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch deleted file mode 100644 index b102380..0000000 --- a/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -Naur linux-2.6.32.11.org/drivers/usb/serial/option.c linux-2.6.32.11/drivers/usb/serial/option.c ---- linux-2.6.32.11.org/drivers/usb/serial/option.c 2010-04-02 00:59:14.000000000 +0200 -+++ linux-2.6.32.11/drivers/usb/serial/option.c 2010-04-21 21:56:56.000000000 +0200 -@@ -165,6 +165,10 @@ - #define HUAWEI_PRODUCT_E143D 0x143D - #define HUAWEI_PRODUCT_E143E 0x143E - #define HUAWEI_PRODUCT_E143F 0x143F -+/* Vodafone K4505-H */ -+#define HUAWEI_PRODUCT_E1464 0x1464 -+/* Vodafone K3765-H */ -+#define HUAWEI_PRODUCT_E1465 0x1465 - #define HUAWEI_PRODUCT_E14AC 0x14AC - - #define QUANTA_VENDOR_ID 0x0408 -@@ -443,6 +447,8 @@ - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1464, 0xff, 0xff, 0xff) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1465, 0xff, 0xff, 0xff) }, - { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC) }, - { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) }, - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */ diff --git a/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch b/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch deleted file mode 100644 index 9db9c2e..0000000 --- a/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch +++ /dev/null @@ -1,522 +0,0 @@ -diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c 2011-10-11 15:35:37.000000000 +0200 -@@ -0,0 +1,140 @@ -+/* -+ * arch/arm/mach-kirkwood/dreamplug-setup.c -+ * -+ * Marvell DreamPlug Reference Board Setup -+ * -+ * This file is licensed under the terms of the GNU General Public -+ * License version 2. This program is licensed "as is" without any -+ * warranty of any kind, whether express or implied. -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/platform_device.h> -+#include <linux/mtd/partitions.h> -+#include <linux/ata_platform.h> -+#include <linux/mv643xx_eth.h> -+#include <linux/gpio.h> -+#include <linux/leds.h> -+#include <linux/spi/flash.h> -+#include <linux/spi/spi.h> -+#include <linux/spi/orion_spi.h> -+#include <asm/mach-types.h> -+#include <asm/mach/arch.h> -+#include <mach/kirkwood.h> -+#include <plat/mvsdio.h> -+#include "common.h" -+#include "mpp.h" -+ -+static const struct flash_platform_data dreamplug_spi_slave_data = { -+ .type = "mx25l1606e", -+}; -+ -+static struct spi_board_info __initdata dreamplug_spi_slave_info[] = { -+ { -+ .modalias = "m25p80", -+ .platform_data = &dreamplug_spi_slave_data, -+ .irq = -1, -+ .max_speed_hz = 50000000, -+ .bus_num = 0, -+ .chip_select = 0, -+ }, -+}; -+ -+static struct mv643xx_eth_platform_data dreamplug_ge00_data = { -+ .phy_addr = MV643XX_ETH_PHY_ADDR(0), -+}; -+ -+static struct mv643xx_eth_platform_data dreamplug_ge01_data = { -+ .phy_addr = MV643XX_ETH_PHY_ADDR(1), -+}; -+ -+static struct mv_sata_platform_data dreamplug_sata_data = { -+ .n_ports = 1, -+}; -+ -+static struct mvsdio_platform_data dreamplug_mvsdio_data = { -+ /* unfortunately the CD signal has not been connected */ -+}; -+ -+static struct gpio_led dreamplug_led_pins[] = { -+ { -+ .name = "dreamplug:blue:bluetooth", -+ .gpio = 47, -+ .active_low = 1, -+ }, -+ { -+ .name = "dreamplug:green:wlan", -+ .gpio = 48, -+ .active_low = 1, -+ }, -+ { -+ .name = "dreamplug:blue:wlanap", -+ .gpio = 49, -+ .active_low = 1, -+ }, -+}; -+ -+static struct gpio_led_platform_data dreamplug_led_data = { -+ .leds = dreamplug_led_pins, -+ .num_leds = ARRAY_SIZE(dreamplug_led_pins), -+}; -+ -+static struct platform_device dreamplug_leds = { -+ .name = "leds-gpio", -+ .id = -1, -+ .dev = { -+ .platform_data = &dreamplug_led_data, -+ } -+}; -+ -+static unsigned int dreamplug_mpp_config[] __initdata = { -+ MPP0_SPI_SCn, -+ MPP1_SPI_MOSI, -+ MPP2_SPI_SCK, -+ MPP3_SPI_MISO, -+ MPP4_GPIO, -+ MPP5_GPO, -+ MPP7_GPO, -+ MPP18_GPO, -+ MPP19_GPO, -+ MPP47_GPIO, /* B_BLED */ -+ MPP48_GPIO, /* W_GLED */ -+ MPP49_GPIO, /* W_BLED */ -+ 0 -+}; -+ -+static void __init dreamplug_init(void) -+{ -+ /* -+ * Basic setup. Needs to be called early. -+ */ -+ kirkwood_init(); -+ kirkwood_mpp_conf(dreamplug_mpp_config); -+ -+ kirkwood_uart0_init(); -+ -+ spi_register_board_info(dreamplug_spi_slave_info, -+ ARRAY_SIZE(dreamplug_spi_slave_info)); -+ -+ kirkwood_spi_init(); -+ kirkwood_ehci_init(); -+ -+ kirkwood_ge00_init(&dreamplug_ge00_data); -+ kirkwood_ge01_init(&dreamplug_ge01_data); -+ kirkwood_sata_init(&dreamplug_sata_data); -+ kirkwood_sdio_init(&dreamplug_mvsdio_data); -+ -+ platform_device_register(&dreamplug_leds); -+} -+ -+MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board") -+ /* Maintainer: Siddarth Gore <gores <at> marvell.com> */ -+ .phys_io = KIRKWOOD_REGS_PHYS_BASE, -+ .io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc, -+ .boot_params = 0x00000100, -+ .init_machine = dreamplug_init, -+ .map_io = kirkwood_map_io, -+ .init_irq = kirkwood_init_irq, -+ .timer = &kirkwood_timer, -+MACHINE_END -diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c 2011-10-11 15:35:37.000000000 +0200 -@@ -0,0 +1,131 @@ -+/* -+ * arch/arm/mach-kirkwood/guruplug-setup.c -+ * -+ * Marvell GuruPlug Reference Board Setup -+ * -+ * This file is licensed under the terms of the GNU General Public -+ * License version 2. This program is licensed "as is" without any -+ * warranty of any kind, whether express or implied. -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/platform_device.h> -+#include <linux/mtd/partitions.h> -+#include <linux/ata_platform.h> -+#include <linux/mv643xx_eth.h> -+#include <linux/gpio.h> -+#include <linux/leds.h> -+#include <asm/mach-types.h> -+#include <asm/mach/arch.h> -+#include <mach/kirkwood.h> -+#include <plat/mvsdio.h> -+#include "common.h" -+#include "mpp.h" -+ -+static struct mtd_partition guruplug_nand_parts[] = { -+ { -+ .name = "u-boot", -+ .offset = 0, -+ .size = SZ_1M -+ }, { -+ .name = "uImage", -+ .offset = MTDPART_OFS_NXTBLK, -+ .size = SZ_4M -+ }, { -+ .name = "root", -+ .offset = MTDPART_OFS_NXTBLK, -+ .size = MTDPART_SIZ_FULL -+ }, -+}; -+ -+static struct mv643xx_eth_platform_data guruplug_ge00_data = { -+ .phy_addr = MV643XX_ETH_PHY_ADDR(0), -+}; -+ -+static struct mv643xx_eth_platform_data guruplug_ge01_data = { -+ .phy_addr = MV643XX_ETH_PHY_ADDR(1), -+}; -+ -+static struct mv_sata_platform_data guruplug_sata_data = { -+ .n_ports = 1, -+}; -+ -+static struct mvsdio_platform_data guruplug_mvsdio_data = { -+ /* unfortunately the CD signal has not been connected */ -+}; -+ -+static struct gpio_led guruplug_led_pins[] = { -+ { -+ .name = "guruplug:red:health", -+ .gpio = 46, -+ .active_low = 1, -+ }, -+ { -+ .name = "guruplug:green:health", -+ .gpio = 47, -+ .active_low = 1, -+ }, -+ { -+ .name = "guruplug:red:wmode", -+ .gpio = 48, -+ .active_low = 1, -+ }, -+ { -+ .name = "guruplug:green:wmode", -+ .gpio = 49, -+ .active_low = 1, -+ }, -+}; -+ -+static struct gpio_led_platform_data guruplug_led_data = { -+ .leds = guruplug_led_pins, -+ .num_leds = ARRAY_SIZE(guruplug_led_pins), -+}; -+ -+static struct platform_device guruplug_leds = { -+ .name = "leds-gpio", -+ .id = -1, -+ .dev = { -+ .platform_data = &guruplug_led_data, -+ } -+}; -+ -+static unsigned int guruplug_mpp_config[] __initdata = { -+ MPP46_GPIO, /* M_RLED */ -+ MPP47_GPIO, /* M_GLED */ -+ MPP48_GPIO, /* B_RLED */ -+ MPP49_GPIO, /* B_GLED */ -+ 0 -+}; -+ -+static void __init guruplug_init(void) -+{ -+ /* -+ * Basic setup. Needs to be called early. -+ */ -+ kirkwood_init(); -+ kirkwood_mpp_conf(guruplug_mpp_config); -+ -+ kirkwood_uart0_init(); -+ kirkwood_nand_init(ARRAY_AND_SIZE(guruplug_nand_parts), 25); -+ -+ kirkwood_ehci_init(); -+ kirkwood_ge00_init(&guruplug_ge00_data); -+ kirkwood_ge01_init(&guruplug_ge01_data); -+ kirkwood_sata_init(&guruplug_sata_data); -+ kirkwood_sdio_init(&guruplug_mvsdio_data); -+ -+ platform_device_register(&guruplug_leds); -+} -+ -+MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board") -+ /* Maintainer: Siddarth Gore gores@marvell.com */ -+ .phys_io = KIRKWOOD_REGS_PHYS_BASE, -+ .io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc, -+ .boot_params = 0x00000100, -+ .init_machine = guruplug_init, -+ .map_io = kirkwood_map_io, -+ .init_irq = kirkwood_init_irq, -+ .timer = &kirkwood_timer, -+MACHINE_END -diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig 2011-08-16 03:57:37.000000000 +0200 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig 2011-10-15 17:06:55.816070291 +0200 -@@ -32,6 +32,18 @@ - Say 'Y' here if you want your kernel to support the - Marvell SheevaPlug Reference Board. - -+config MACH_DREAMPLUG -+ bool "Marvell DreamPlug Reference Board" -+ help -+ Say 'Y' here if you want your kernel to support the -+ Marvell DreamPlug Reference Board. -+ -+config MACH_GURUPLUG -+ bool "Marvell GuruPlug Reference Board" -+ help -+ Say 'Y' here if you want your kernel to support the -+ Marvell GuruPlug Reference Board. -+ - config MACH_TS219 - bool "QNAP TS-119 and TS-219 Turbo NAS" - help -@@ -44,6 +56,12 @@ - Say 'Y' here if you want your kernel to support the - Marvell OpenRD Base Board. - -+config MACH_NAS6210 -+ bool "RaidSonic ICY BOX IB-NAS62x0" -+ help -+ Say 'Y' here if you want your kernel to support the -+ RaidSonic ICY BOX IB-NAS62x0 device. -+ - endmenu - - endif -diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile 2011-08-16 03:57:37.000000000 +0200 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile 2011-10-15 17:07:16.346068829 +0200 -@@ -5,7 +5,10 @@ - obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o - obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o - obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o -+obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o -+obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o - obj-$(CONFIG_MACH_TS219) += ts219-setup.o - obj-$(CONFIG_MACH_OPENRD_BASE) += openrd_base-setup.o -+obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o - - obj-$(CONFIG_CPU_IDLE) += cpuidle.o -diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c 2011-10-16 09:57:35.268409525 +0200 -@@ -0,0 +1,180 @@ -+/* -+ * arch/arm/mach-kirkwood/nas6210-setup.c -+ * -+ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup -+ * -+ * This file is licensed under the terms of the GNU General Public -+ * License version 2. This program is licensed "as is" without any -+ * warranty of any kind, whether express or implied. -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/platform_device.h> -+#include <linux/mtd/partitions.h> -+#include <linux/ata_platform.h> -+#include <linux/mv643xx_eth.h> -+#include <linux/gpio.h> -+#include <linux/gpio_keys.h> -+#include <linux/input.h> -+#include <linux/leds.h> -+#include <asm/mach-types.h> -+#include <asm/mach/arch.h> -+#include <mach/kirkwood.h> -+#include "common.h" -+#include "mpp.h" -+ -+#define NAS6210_GPIO_POWER_OFF 24 -+ -+static struct mtd_partition nas6210_nand_parts[] = { -+ { -+ .name = "u-boot", -+ .offset = 0, -+ .size = SZ_1M -+ }, { -+ .name = "uImage", -+ .offset = MTDPART_OFS_NXTBLK, -+ .size = (SZ_1M*6) -+ }, { -+ .name = "root", -+ .offset = MTDPART_OFS_NXTBLK, -+ .size = MTDPART_SIZ_FULL -+ }, -+}; -+ -+static struct mv643xx_eth_platform_data nas6210_ge00_data = { -+ .phy_addr = MV643XX_ETH_PHY_ADDR(8), -+}; -+ -+static struct mv_sata_platform_data nas6210_sata_data = { -+ .n_ports = 2, -+}; -+ -+static struct gpio_led nas6210_led_pins[] = { -+ { -+ .name = "nas6210:green:power", -+ .default_trigger = "default-on", -+ .gpio = 25, -+ .active_low = 0, -+ }, -+ { -+ .name = "nas6210:red:power", -+ .default_trigger = "none", -+ .gpio = 22, -+ .active_low = 0, -+ }, -+ { -+ .name = "nas6210:red:usb_copy", -+ .default_trigger = "none", -+ .gpio = 27, -+ .active_low = 0, -+ }, -+}; -+ -+static struct gpio_led_platform_data nas6210_led_data = { -+ .leds = nas6210_led_pins, -+ .num_leds = ARRAY_SIZE(nas6210_led_pins), -+}; -+ -+static struct platform_device nas6210_leds = { -+ .name = "leds-gpio", -+ .id = -1, -+ .dev = { -+ .platform_data = &nas6210_led_data, -+ } -+}; -+ -+static struct gpio_keys_button nas6210_buttons[] = { -+ { -+ .code = KEY_COPY, -+ .gpio = 29, -+ .desc = "USB Copy", -+ .active_low = 1, -+ }, -+ { -+ .code = KEY_RESTART, -+ .gpio = 28, -+ .desc = "Reset", -+ .active_low = 1, -+ }, -+}; -+ -+static struct gpio_keys_platform_data nas6210_button_data = { -+ .buttons = nas6210_buttons, -+ .nbuttons = ARRAY_SIZE(nas6210_buttons), -+}; -+ -+static struct platform_device nas6210_button_device = { -+ .name = "gpio-keys", -+ .id = -1, -+ .num_resources = 0, -+ .dev = { -+ .platform_data = &nas6210_button_data, -+ } -+}; -+ -+static unsigned int nas6210_mpp_config[] __initdata = { -+ MPP0_NF_IO2, -+ MPP1_NF_IO3, -+ MPP2_NF_IO4, -+ MPP3_NF_IO5, -+ MPP4_NF_IO6, -+ MPP5_NF_IO7, -+ MPP18_NF_IO0, -+ MPP19_NF_IO1, -+ MPP22_GPIO, /* Power LED red */ -+ MPP24_GPIO, /* Power off */ -+ MPP25_GPIO, /* Power LED green */ -+ MPP27_GPIO, /* USB transfer LED */ -+ MPP28_GPIO, /* Reset button */ -+ MPP29_GPIO, /* USB Copy button */ -+ 0 -+}; -+ -+void nas6210_power_off(void) -+{ -+ gpio_set_value(NAS6210_GPIO_POWER_OFF, 1); -+ while(1); -+} -+ -+static void __init nas6210_init(void) -+{ -+ /* -+ * Basic setup. Needs to be called early. -+ */ -+ kirkwood_init(); -+ kirkwood_mpp_conf(nas6210_mpp_config); -+ -+ kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25); -+ kirkwood_ehci_init(); -+ kirkwood_ge00_init(&nas6210_ge00_data); -+ kirkwood_sata_init(&nas6210_sata_data); -+ kirkwood_uart0_init(); -+ platform_device_register(&nas6210_leds); -+ platform_device_register(&nas6210_button_device); -+ -+ if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 && -+ gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0) -+ pm_power_off = nas6210_power_off; -+ -+ else -+ pr_err("nas6210: failed to configure power-off gpio pin"); -+} -+ -+static int __init nas6210_pci_init(void) -+{ -+ if (machine_is_nas6210()) { -+ kirkwood_pcie_init(); -+ } -+ return 0; -+} -+subsys_initcall(nas6210_pci_init); -+ -+MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0") -+ /* Maintainer: Arne Fitzenreiter arne_f@ipfire.org */ -+ .boot_params = 0x00000100, -+ .init_machine = nas6210_init, -+ .map_io = kirkwood_map_io, -+ .init_irq = kirkwood_init_irq, -+ .timer = &kirkwood_timer, -+MACHINE_END -diff -Naur linux-2.6.32.45.org/arch/arm/tools/mach-types linux-2.6.32.45/arch/arm/tools/mach-types ---- linux-2.6.32.45.org/arch/arm/tools/mach-types 2011-08-16 03:57:37.000000000 +0200 -+++ linux-2.6.32.45/arch/arm/tools/mach-types 2011-10-15 17:05:46.486069811 +0200 -@@ -2536,3 +2536,6 @@ - mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 - esyx MACH_ESYX ESYX 2551 - bulldog MACH_BULLDOG BULLDOG 2553 -+guruplug MACH_GURUPLUG GURUPLUG 2601 -+dreamplug MACH_DREAMPLUG DREAMPLUG 2659 -+nas6210 MACH_NAS6210 NAS6210 3104 diff --git a/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch b/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch new file mode 100644 index 0000000..2aea1d1 --- /dev/null +++ b/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch @@ -0,0 +1,149 @@ +Added smsc95xx.macaddr module parameter to allow the user to +change the MAC address on boot if there was no MAC on the EEPROM. + +The parameter take the MAC address in 01:23:45:67:89:ab format and +needs to be locally assigned. The MAC get assigned to the first +smsc95xx device with no MAC on EEPROM (which resulted in a random +MAC before). If there is more than one device without MAC on +EEPROM and the user needs set the MAC to a specific device, it +can be done by attaching the netdev name (e.g. eth0) to the +smsc95xx.macaddr parameter seperated by a ';' as e.g. in +'01:23:45:67:89:ab;eth0' + +This allows e.g. u-boot to pass on PandaBoard or BeagleBoard +the by u-boot generated static MAC address to the kernel device +to ensure the MAC stays the same during the whole boot process. + +Signed-off-by: Danny Kukawka <danny.kukawka@...> +--- + drivers/net/usb/smsc95xx.c | 85 ++++++++++++++++++++++++++++++++++++++++++-- + 1 files changed, 82 insertions(+), 3 deletions(-) + +diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c +index d45520e..3198c7d 100644 +--- a/drivers/net/usb/smsc95xx.c ++++ b/drivers/net/usb/smsc95xx.c +@@ -52,6 +52,8 @@ struct smsc95xx_priv { + u32 hash_hi; + u32 hash_lo; + spinlock_t mac_cr_lock; ++ bool mac_set_from_param; ++ bool mac_is_random; + }; + + struct usb_context { +@@ -63,6 +65,11 @@ static bool turbo_mode = true; + module_param(turbo_mode, bool, 0644); + MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); + ++static char *macaddr = ":"; ++static bool set_macaddr = false; ++module_param(macaddr, charp, 0); ++MODULE_PARM_DESC(macaddr, " macaddr=macaddr;[tgt-netdevname] (Set MAC only if there is a device without MAC on EEPROM)"); ++ + static int smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data) + { + u32 *buf = kmalloc(4, GFP_KERNEL); +@@ -601,8 +608,71 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) + return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL); + } + ++/* set mac address from the macaddr module parameter */ ++static int smsc95xx_init_mac_address_from_param(struct usbnet *dev) ++{ ++ struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); ++ int i, parsed, ret; ++ u8 mtbl[ETH_ALEN]; ++ char *input = NULL; ++ char *config_param = NULL; ++ char *netdev_name = NULL; ++ ++ parsed = 0; ++ ret = 0; ++ ++ input = kstrdup(macaddr, GFP_KERNEL); ++ ++ if (!input) ++ return -ENOMEM; ++ ++ if (strlen(input) >= 17) { ++ while ((config_param = strsep(&input, ";"))) { ++ if (parsed == 0) { ++ if (!mac_pton(config_param, mtbl)) { ++ ret = 1; ++ goto parse_err; ++ } ++ } else { ++ netdev_name = config_param; ++ } ++ parsed ++; ++ } ++ ++ if (parsed && is_valid_ether_addr(mtbl)) { ++ if (netdev_name && strlen(netdev_name)) { ++ if (strcmp(netdev_name, dev->net->name) != 0) { ++ netif_dbg(dev, ifup, dev->net, "requested devname (%s) didn't match (%s)\n", netdev_name, dev->net->name); ++ ret = 1; ++ goto out; ++ } ++ } ++ ++ for (i = 0; i < ETH_ALEN; i++) { ++ dev->net->dev_addr[i] = mtbl[i]; ++ } ++ ++ netif_dbg(dev, ifup, dev->net, "set valid MAC address from smsc95xx.macaddr\n"); ++ set_macaddr = true; ++ pdata->mac_set_from_param = true; ++ pdata->mac_is_random = false; ++ goto out; ++ } ++ } ++ ++parse_err: ++ netif_dbg(dev, ifup, dev->net, "failed to parse (valid) MAC from smsc95xx.macaddr\n"); ++ set_macaddr = true; ++out: ++ if (input) ++ kfree(input); ++ return ret; ++} ++ + static void smsc95xx_init_mac_address(struct usbnet *dev) + { ++ struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); ++ + /* try reading mac address from EEPROM */ + if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, + dev->net->dev_addr) == 0) { +@@ -615,16 +685,25 @@ static void smsc95xx_init_mac_address(struct usbnet *dev) + + /* no eeprom, or eeprom values are invalid. generate random MAC */ + random_ether_addr(dev->net->dev_addr); ++ pdata->mac_is_random = true; + netif_dbg(dev, ifup, dev->net, "MAC address set to random_ether_addr\n"); + } + + static int smsc95xx_set_mac_address(struct usbnet *dev) + { +- u32 addr_lo = dev->net->dev_addr[0] | dev->net->dev_addr[1] << 8 | +- dev->net->dev_addr[2] << 16 | dev->net->dev_addr[3] << 24; +- u32 addr_hi = dev->net->dev_addr[4] | dev->net->dev_addr[5] << 8; ++ struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); ++ u32 addr_lo, addr_hi; + int ret; + ++ if (pdata->mac_is_random && !pdata->mac_set_from_param && !set_macaddr) { ++ netif_dbg(dev, ifup, dev->net, "random MAC address, not yet set from smsc95xx.macaddr, try to set it ...\n"); ++ smsc95xx_init_mac_address_from_param(dev); ++ } ++ ++ addr_lo = dev->net->dev_addr[0] | dev->net->dev_addr[1] << 8 | ++ dev->net->dev_addr[2] << 16 | dev->net->dev_addr[3] << 24; ++ addr_hi = dev->net->dev_addr[4] | dev->net->dev_addr[5] << 8; ++ + ret = smsc95xx_write_reg(dev, ADDRL, addr_lo); + if (ret < 0) { + netdev_warn(dev->net, "Failed to write ADDRL: %d\n", ret); +-- + diff --git a/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch b/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch new file mode 100644 index 0000000..34cba84 --- /dev/null +++ b/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch @@ -0,0 +1,1039 @@ +diff -Naur linux-3.0.24.org/include/linux/netfilter_ipv4/ipt_ipp2p.h linux-3.0.24/include/linux/netfilter_ipv4/ipt_ipp2p.h +--- linux-3.0.24.org/include/linux/netfilter_ipv4/ipt_ipp2p.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/include/linux/netfilter_ipv4/ipt_ipp2p.h 2012-03-20 09:29:20.616541362 +0100 +@@ -0,0 +1,31 @@ ++#ifndef __IPT_IPP2P_H ++#define __IPT_IPP2P_H ++#define IPP2P_VERSION "0.8.2-ipfire" ++ ++struct ipt_p2p_info { ++ int cmd; ++ int debug; ++}; ++ ++#endif //__IPT_IPP2P_H ++ ++#define SHORT_HAND_IPP2P 1 /* --ipp2p switch*/ ++//#define SHORT_HAND_DATA 4 /* --ipp2p-data switch*/ ++#define SHORT_HAND_NONE 5 /* no short hand*/ ++ ++#define IPP2P_EDK (1 << 1) ++#define IPP2P_DATA_KAZAA (1 << 2) ++#define IPP2P_DATA_EDK (1 << 3) ++#define IPP2P_DATA_DC (1 << 4) ++#define IPP2P_DC (1 << 5) ++#define IPP2P_DATA_GNU (1 << 6) ++#define IPP2P_GNU (1 << 7) ++#define IPP2P_KAZAA (1 << 8) ++#define IPP2P_BIT (1 << 9) ++#define IPP2P_APPLE (1 << 10) ++#define IPP2P_SOUL (1 << 11) ++#define IPP2P_WINMX (1 << 12) ++#define IPP2P_ARES (1 << 13) ++#define IPP2P_MUTE (1 << 14) ++#define IPP2P_WASTE (1 << 15) ++#define IPP2P_XDCC (1 << 16) +diff -Naur linux-3.0.24.org/net/ipv4/netfilter/ipt_ipp2p.c linux-3.0.24/net/ipv4/netfilter/ipt_ipp2p.c +--- linux-3.0.24.org/net/ipv4/netfilter/ipt_ipp2p.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/ipv4/netfilter/ipt_ipp2p.c 2012-03-20 11:26:38.593101443 +0100 +@@ -0,0 +1,970 @@ ++#if defined(MODVERSIONS) ++#include <linux/modversions.h> ++#endif ++#include <linux/module.h> ++#include <linux/version.h> ++#include <linux/netfilter_ipv4/ip_tables.h> ++#include <linux/netfilter_ipv4/ipt_ipp2p.h> ++#include <net/tcp.h> ++#include <net/udp.h> ++ ++#define get_u8(X,O) (*(__u8 *)(X + O)) ++#define get_u16(X,O) (*(__u16 *)(X + O)) ++#define get_u32(X,O) (*(__u32 *)(X + O)) ++ ++MODULE_AUTHOR("Eicke Friedrich/Klaus Degner ipp2p@ipp2p.org"); ++MODULE_DESCRIPTION("An extension to iptables to identify P2P traffic."); ++MODULE_LICENSE("GPL"); ++ ++ ++/*Search for UDP eDonkey/eMule/Kad commands*/ ++int ++udp_search_edk (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ t += 8; ++ ++ switch (t[0]) { ++ case 0xe3: ++ { /*edonkey*/ ++ switch (t[1]) ++ { ++ /* client -> server status request */ ++ case 0x96: ++ if (packet_len == 14) return ((IPP2P_EDK * 100) + 50); ++ break; ++ /* server -> client status request */ ++ case 0x97: if (packet_len == 42) return ((IPP2P_EDK * 100) + 51); ++ break; ++ /* server description request */ ++ /* e3 2a ff f0 .. | size == 6 */ ++ case 0xa2: if ( (packet_len == 14) && ( get_u16(t,2) == __constant_htons(0xfff0) ) ) return ((IPP2P_EDK * 100) + 52); ++ break; ++ /* server description response */ ++ /* e3 a3 ff f0 .. | size > 40 && size < 200 */ ++ //case 0xa3: return ((IPP2P_EDK * 100) + 53); ++ // break; ++ case 0x9a: if (packet_len==26) return ((IPP2P_EDK * 100) + 54); ++ break; ++ ++ case 0x92: if (packet_len==18) return ((IPP2P_EDK * 100) + 55); ++ break; ++ } ++ break; ++ } ++ case 0xe4: ++ { ++ switch (t[1]) ++ { ++ /* e4 20 .. | size == 43 */ ++ case 0x20: if ((packet_len == 43) && (t[2] != 0x00) && (t[34] != 0x00)) return ((IPP2P_EDK * 100) + 60); ++ break; ++ /* e4 00 .. 00 | size == 35 ? */ ++ case 0x00: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 61); ++ break; ++ /* e4 10 .. 00 | size == 35 ? */ ++ case 0x10: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 62); ++ break; ++ /* e4 18 .. 00 | size == 35 ? */ ++ case 0x18: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 63); ++ break; ++ /* e4 52 .. | size = 44 */ ++ case 0x52: if (packet_len == 44 ) return ((IPP2P_EDK * 100) + 64); ++ break; ++ /* e4 58 .. | size == 6 */ ++ case 0x58: if (packet_len == 14 ) return ((IPP2P_EDK * 100) + 65); ++ break; ++ /* e4 59 .. | size == 2 */ ++ case 0x59: if (packet_len == 10 )return ((IPP2P_EDK * 100) + 66); ++ break; ++ /* e4 28 .. | packet_len == 52,77,102,127... */ ++ case 0x28: if (((packet_len-52) % 25) == 0) return ((IPP2P_EDK * 100) + 67); ++ break; ++ /* e4 50 xx xx | size == 4 */ ++ case 0x50: if (packet_len == 12) return ((IPP2P_EDK * 100) + 68); ++ break; ++ /* e4 40 xx xx | size == 48 */ ++ case 0x40: if (packet_len == 56) return ((IPP2P_EDK * 100) + 69); ++ break; ++ } ++ break; ++ } ++ } /* end of switch (t[0]) */ ++ return 0; ++}/*udp_search_edk*/ ++ ++ ++/*Search for UDP Gnutella commands*/ ++int ++udp_search_gnu (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ t += 8; ++ ++ if (memcmp(t, "GND", 3) == 0) return ((IPP2P_GNU * 100) + 51); ++ if (memcmp(t, "GNUTELLA ", 9) == 0) return ((IPP2P_GNU * 100) + 52); ++ return 0; ++}/*udp_search_gnu*/ ++ ++ ++/*Search for UDP KaZaA commands*/ ++int ++udp_search_kazaa (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ ++ if (t[packet_len-1] == 0x00){ ++ t += (packet_len - 6); ++ if (memcmp(t, "KaZaA", 5) == 0) return (IPP2P_KAZAA * 100 +50); ++ } ++ ++ return 0; ++}/*udp_search_kazaa*/ ++ ++/*Search for UDP DirectConnect commands*/ ++int ++udp_search_directconnect (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ if ((*(t + 8) == 0x24) && (*(t + packet_len - 1) == 0x7c)) { ++ t+=8; ++ if (memcmp(t, "SR ", 3) == 0) return ((IPP2P_DC * 100) + 60); ++ if (memcmp(t, "Ping ", 5) == 0) return ((IPP2P_DC * 100) + 61); ++ } ++ return 0; ++}/*udp_search_directconnect*/ ++ ++ ++ ++/*Search for UDP BitTorrent commands*/ ++int ++udp_search_bit (unsigned char *haystack, int packet_len) ++{ ++ switch(packet_len) ++ { ++ case 24: ++ /* ^ 00 00 04 17 27 10 19 80 */ ++ if ((ntohl(get_u32(haystack, 8)) == 0x00000417) && (ntohl(get_u32(haystack, 12)) == 0x27101980)) ++ return (IPP2P_BIT * 100 + 50); ++ break; ++ case 44: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000400) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 51); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000400)) ++ return (IPP2P_BIT * 100 + 61); ++ break; ++ case 65: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000404) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 52); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000404)) ++ return (IPP2P_BIT * 100 + 62); ++ break; ++ case 67: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000406) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 53); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000406)) ++ return (IPP2P_BIT * 100 + 63); ++ break; ++ case 211: ++ if (get_u32(haystack, 8) == __constant_htonl(0x00000405)) ++ return (IPP2P_BIT * 100 + 54); ++ break; ++ case 29: ++ if ((get_u32(haystack, 8) == __constant_htonl(0x00000401))) ++ return (IPP2P_BIT * 100 + 55); ++ break; ++ case 52: ++ if (get_u32(haystack,8) == __constant_htonl(0x00000827) && ++ get_u32(haystack,12) == __constant_htonl(0x37502950)) ++ return (IPP2P_BIT * 100 + 80); ++ break; ++ default: ++ /* this packet does not have a constant size */ ++ if (packet_len >= 40 && get_u32(haystack, 16) == __constant_htonl(0x00000402) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 56); ++ break; ++ } ++ ++ /* some extra-bitcomet rules: ++ * "d1:" [a|r] "d2:id20:" ++ */ ++ if (packet_len > 30 && get_u8(haystack, 8) == 'd' && get_u8(haystack, 9) == '1' && get_u8(haystack, 10) == ':' ) ++ { ++ if (get_u8(haystack, 11) == 'a' || get_u8(haystack, 11) == 'r') ++ { ++ if (memcmp(haystack+12,"d2:id20:",8)==0) ++ return (IPP2P_BIT * 100 + 57); ++ } ++ } ++ ++#if 0 ++ /* bitlord rules */ ++ /* packetlen must be bigger than 40 */ ++ /* first 4 bytes are zero */ ++ if (packet_len > 40 && get_u32(haystack, 8) == 0x00000000) ++ { ++ /* first rule: 00 00 00 00 01 00 00 xx xx xx xx 00 00 00 00*/ ++ if (get_u32(haystack, 12) == 0x00000000 && ++ get_u32(haystack, 16) == 0x00010000 && ++ get_u32(haystack, 24) == 0x00000000 ) ++ return (IPP2P_BIT * 100 + 71); ++ ++ /* 00 01 00 00 0d 00 00 xx xx xx xx 00 00 00 00*/ ++ if (get_u32(haystack, 12) == 0x00000001 && ++ get_u32(haystack, 16) == 0x000d0000 && ++ get_u32(haystack, 24) == 0x00000000 ) ++ return (IPP2P_BIT * 100 + 71); ++ ++ ++ } ++#endif ++ ++ return 0; ++}/*udp_search_bit*/ ++ ++ ++ ++/*Search for Ares commands*/ ++//#define IPP2P_DEBUG_ARES ++int ++search_ares (const unsigned char *payload, const u16 plen) ++//int search_ares (unsigned char *haystack, int packet_len, int head_len) ++{ ++// const unsigned char *t = haystack + head_len; ++ ++ /* all ares packets start with */ ++ if (payload[1] == 0 && (plen - payload[0]) == 3) ++ { ++ switch (payload[2]) ++ { ++ case 0x5a: ++ /* ares connect */ ++ if ( plen == 6 && payload[5] == 0x05 ) return ((IPP2P_ARES * 100) + 1); ++ break; ++ case 0x09: ++ /* ares search, min 3 chars --> 14 bytes ++ * lets define a search can be up to 30 chars --> max 34 bytes ++ */ ++ if ( plen >= 14 && plen <= 34 ) return ((IPP2P_ARES * 100) + 1); ++ break; ++#ifdef IPP2P_DEBUG_ARES ++ default: ++ printk(KERN_DEBUG "Unknown Ares command %x recognized, len: %u \n", (unsigned int) payload[2],plen); ++#endif /* IPP2P_DEBUG_ARES */ ++ } ++ } ++ ++#if 0 ++ /* found connect packet: 03 00 5a 04 03 05 */ ++ /* new version ares 1.8: 03 00 5a xx xx 05 */ ++ if ((plen) == 6){ /* possible connect command*/ ++ if ((payload[0] == 0x03) && (payload[1] == 0x00) && (payload[2] == 0x5a) && (payload[5] == 0x05)) ++ return ((IPP2P_ARES * 100) + 1); ++ } ++ if ((plen) == 60){ /* possible download command*/ ++ if ((payload[59] == 0x0a) && (payload[58] == 0x0a)){ ++ if (memcmp(t, "PUSH SHA1:", 10) == 0) /* found download command */ ++ return ((IPP2P_ARES * 100) + 2); ++ } ++ } ++#endif ++ ++ return 0; ++} /*search_ares*/ ++ ++/*Search for SoulSeek commands*/ ++int ++search_soul (const unsigned char *payload, const u16 plen) ++{ ++//#define IPP2P_DEBUG_SOUL ++ /* match: xx xx xx xx | xx = sizeof(payload) - 4 */ ++ if (get_u32(payload, 0) == (plen - 4)){ ++ const __u32 m=get_u32(payload, 4); ++ /* match 00 yy yy 00, yy can be everything */ ++ if ( get_u8(payload, 4) == 0x00 && get_u8(payload, 7) == 0x00 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "0: Soulseek command 0x%x recognized\n",get_u32(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 1); ++ } ++ ++ /* next match: 01 yy 00 00 | yy can be everything */ ++ if ( get_u8(payload, 4) == 0x01 && get_u16(payload, 6) == 0x0000 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "1: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 2); ++ } ++ ++ /* other soulseek commandos are: 1-5,7,9,13-18,22,23,26,28,35-37,40-46,50,51,60,62-69,91,92,1001 */ ++ /* try to do this in an intelligent way */ ++ /* get all small commandos */ ++ switch(m) ++ { ++ case 7: ++ case 9: ++ case 22: ++ case 23: ++ case 26: ++ case 28: ++ case 50: ++ case 51: ++ case 60: ++ case 91: ++ case 92: ++ case 1001: ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "2: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 3); ++ } ++ ++ if (m > 0 && m < 6 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "3: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 4); ++ } ++ if (m > 12 && m < 19 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "4: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 5); ++ } ++ ++ if (m > 34 && m < 38 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "5: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 6); ++ } ++ ++ if (m > 39 && m < 47 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "6: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 7); ++ } ++ ++ if (m > 61 && m < 70 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "7: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 8); ++ } ++ ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "unknown SOULSEEK command: 0x%x, first 16 bit: 0x%x, first 8 bit: 0x%x ,soulseek ???\n",get_u32(payload, 4),get_u16(payload, 4) >> 16,get_u8(payload, 4) >> 24); ++#endif /* IPP2P_DEBUG_SOUL */ ++ } ++ ++ /* match 14 00 00 00 01 yy 00 00 00 STRING(YY) 01 00 00 00 00 46|50 00 00 00 00 */ ++ /* without size at the beginning !!! */ ++ if ( get_u32(payload, 0) == 0x14 && get_u8(payload, 4) == 0x01 ) ++ { ++ __u32 y=get_u32(payload, 5); ++ /* we need 19 chars + string */ ++ if ( (y + 19) <= (plen) ) ++ { ++ const unsigned char *w=payload+9+y; ++ if (get_u32(w, 0) == 0x01 && ( get_u16(w, 4) == 0x4600 || get_u16(w, 4) == 0x5000) && get_u32(w, 6) == 0x00); ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "Soulssek special client command recognized\n"); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 9); ++ } ++ } ++ return 0; ++} ++ ++ ++/*Search for WinMX commands*/ ++int ++search_winmx (const unsigned char *payload, const u16 plen) ++{ ++//#define IPP2P_DEBUG_WINMX ++ if (((plen) == 4) && (memcmp(payload, "SEND", 4) == 0)) return ((IPP2P_WINMX * 100) + 1); ++ if (((plen) == 3) && (memcmp(payload, "GET", 3) == 0)) return ((IPP2P_WINMX * 100) + 2); ++ //if (packet_len < (head_len + 10)) return 0; ++ if (plen < 10) return 0; ++ ++ if ((memcmp(payload, "SEND", 4) == 0) || (memcmp(payload, "GET", 3) == 0)){ ++ u16 c=4; ++ const u16 end=plen-2; ++ u8 count=0; ++ while (c < end) ++ { ++ if (payload[c]== 0x20 && payload[c+1] == 0x22) ++ { ++ c++; ++ count++; ++ if (count>=2) return ((IPP2P_WINMX * 100) + 3); ++ } ++ c++; ++ } ++ } ++ ++ if ( plen == 149 && payload[0] == '8' ) ++ { ++#ifdef IPP2P_DEBUG_WINMX ++ printk(KERN_INFO "maybe WinMX\n"); ++#endif ++ if (get_u32(payload,17) == 0 && get_u32(payload,21) == 0 && get_u32(payload,25) == 0 && ++// get_u32(payload,33) == __constant_htonl(0x71182b1a) && get_u32(payload,37) == __constant_htonl(0x05050000) && ++// get_u32(payload,133) == __constant_htonl(0x31097edf) && get_u32(payload,145) == __constant_htonl(0xdcb8f792)) ++ get_u16(payload,39) == 0 && get_u16(payload,135) == __constant_htons(0x7edf) && get_u16(payload,147) == __constant_htons(0xf792)) ++ ++ { ++#ifdef IPP2P_DEBUG_WINMX ++ printk(KERN_INFO "got WinMX\n"); ++#endif ++ return ((IPP2P_WINMX * 100) + 4); ++ } ++ } ++ return 0; ++} /*search_winmx*/ ++ ++ ++/*Search for appleJuice commands*/ ++int ++search_apple (const unsigned char *payload, const u16 plen) ++{ ++ if ( (plen > 7) && (payload[6] == 0x0d) && (payload[7] == 0x0a) && (memcmp(payload, "ajprot", 6) == 0)) return (IPP2P_APPLE * 100); ++ ++ return 0; ++} ++ ++ ++/*Search for BitTorrent commands*/ ++int ++search_bittorrent (const unsigned char *payload, const u16 plen) ++{ ++ if (plen > 20) ++ { ++ /* test for match 0x13+"BitTorrent protocol" */ ++ if (payload[0] == 0x13) ++ { ++ if (memcmp(payload+1, "BitTorrent protocol", 19) == 0) return (IPP2P_BIT * 100); ++ } ++ ++ /* get tracker commandos, all starts with GET / ++ * then it can follow: scrape| announce ++ * and then ?hash_info= ++ */ ++ if (memcmp(payload,"GET /",5) == 0) ++ { ++ /* message scrape */ ++ if ( memcmp(payload+5,"scrape?info_hash=",17)==0 ) return (IPP2P_BIT * 100 + 1); ++ /* message announce */ ++ if ( memcmp(payload+5,"announce?info_hash=",19)==0 ) return (IPP2P_BIT * 100 + 2); ++ } ++ } ++ else ++ { ++ /* bitcomet encryptes the first packet, so we have to detect another ++ * one later in the flow */ ++ /* first try failed, too many missdetections */ ++ //if ( size == 5 && get_u32(t,0) == __constant_htonl(1) && t[4] < 3) return (IPP2P_BIT * 100 + 3); ++ ++ /* second try: block request packets */ ++ if ( plen == 17 && get_u32(payload,0) == __constant_htonl(0x0d) && payload[4] == 0x06 && get_u32(payload,13) == __constant_htonl(0x4000) ) return (IPP2P_BIT * 100 + 3); ++ } ++ ++ return 0; ++} ++ ++ ++ ++/*check for Kazaa get command*/ ++int ++search_kazaa (const unsigned char *payload, const u16 plen) ++ ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a) && memcmp(payload, "GET /.hash=", 11) == 0) ++ return (IPP2P_DATA_KAZAA * 100); ++ ++ return 0; ++} ++ ++ ++/*check for gnutella get command*/ ++int ++search_gnu (const unsigned char *payload, const u16 plen) ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ if (memcmp(payload, "GET /get/", 9) == 0) return ((IPP2P_DATA_GNU * 100) + 1); ++ if (memcmp(payload, "GET /uri-res/", 13) == 0) return ((IPP2P_DATA_GNU * 100) + 2); ++ } ++ return 0; ++} ++ ++ ++/*check for gnutella get commands and other typical data*/ ++int ++search_all_gnu (const unsigned char *payload, const u16 plen) ++{ ++ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ ++ if (memcmp(payload, "GNUTELLA CONNECT/", 17) == 0) return ((IPP2P_GNU * 100) + 1); ++ if (memcmp(payload, "GNUTELLA/", 9) == 0) return ((IPP2P_GNU * 100) + 2); ++ ++ ++ if ((memcmp(payload, "GET /get/", 9) == 0) || (memcmp(payload, "GET /uri-res/", 13) == 0)) ++ { ++ u16 c=8; ++ const u16 end=plen-22; ++ while (c < end) { ++ if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Gnutella-", 11) == 0) || (memcmp(&payload[c+2], "X-Queue:", 8) == 0))) ++ return ((IPP2P_GNU * 100) + 3); ++ c++; ++ } ++ } ++ } ++ return 0; ++} ++ ++ ++/*check for KaZaA download commands and other typical data*/ ++int ++search_all_kazaa (const unsigned char *payload, const u16 plen) ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ ++ if (memcmp(payload, "GIVE ", 5) == 0) return ((IPP2P_KAZAA * 100) + 1); ++ ++ if (memcmp(payload, "GET /", 5) == 0) { ++ u16 c = 8; ++ const u16 end=plen-22; ++ while (c < end) { ++ if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Kazaa-Username: ", 18) == 0) || (memcmp(&payload[c+2], "User-Agent: PeerEnabler/", 24) == 0))) ++ return ((IPP2P_KAZAA * 100) + 2); ++ c++; ++ } ++ } ++ } ++ return 0; ++} ++ ++/*fast check for edonkey file segment transfer command*/ ++int ++search_edk (const unsigned char *payload, const u16 plen) ++{ ++ if (payload[0] != 0xe3) ++ return 0; ++ else { ++ if (payload[5] == 0x47) ++ return (IPP2P_DATA_EDK * 100); ++ else ++ return 0; ++ } ++} ++ ++ ++ ++/*intensive but slower search for some edonkey packets including size-check*/ ++int ++search_all_edk (const unsigned char *payload, const u16 plen) ++{ ++ if (payload[0] != 0xe3) ++ return 0; ++ else { ++ //t += head_len; ++ const u16 cmd = get_u16(payload, 1); ++ if (cmd == (plen - 5)) { ++ switch (payload[5]) { ++ case 0x01: return ((IPP2P_EDK * 100) + 1); /*Client: hello or Server:hello*/ ++ case 0x4c: return ((IPP2P_EDK * 100) + 9); /*Client: Hello-Answer*/ ++ } ++ } ++ return 0; ++ } ++} ++ ++ ++/*fast check for Direct Connect send command*/ ++int ++search_dc (const unsigned char *payload, const u16 plen) ++{ ++ ++ if (payload[0] != 0x24 ) ++ return 0; ++ else { ++ if (memcmp(&payload[1], "Send|", 5) == 0) ++ return (IPP2P_DATA_DC * 100); ++ else ++ return 0; ++ } ++ ++} ++ ++ ++/*intensive but slower check for all direct connect packets*/ ++int ++search_all_dc (const unsigned char *payload, const u16 plen) ++{ ++// unsigned char *t = haystack; ++ ++ if (payload[0] == 0x24 && payload[plen-1] == 0x7c) ++ { ++ const unsigned char *t=&payload[1]; ++ /* Client-Hub-Protocol */ ++ if (memcmp(t, "Lock ", 5) == 0) return ((IPP2P_DC * 100) + 1); ++ /* Client-Client-Protocol, some are already recognized by client-hub (like lock) */ ++ if (memcmp(t, "MyNick ", 7) == 0) return ((IPP2P_DC * 100) + 38); ++ } ++ return 0; ++} ++ ++/*check for mute*/ ++int ++search_mute (const unsigned char *payload, const u16 plen) ++{ ++ if ( plen == 209 || plen == 345 || plen == 473 || plen == 609 || plen == 1121 ) ++ { ++ //printk(KERN_DEBUG "size hit: %u",size); ++ if (memcmp(payload,"PublicKey: ",11) == 0 ) ++ { ++ return ((IPP2P_MUTE * 100) + 0); ++ ++/* if (memcmp(t+size-14,"\x0aEndPublicKey\x0a",14) == 0) ++ { ++ printk(KERN_DEBUG "end pubic key hit: %u",size); ++ ++ }*/ ++ } ++ } ++ return 0; ++} ++ ++ ++/* check for xdcc */ ++int ++search_xdcc (const unsigned char *payload, const u16 plen) ++{ ++ /* search in small packets only */ ++ if (plen > 20 && plen < 200 && payload[plen-1] == 0x0a && payload[plen-2] == 0x0d && memcmp(payload,"PRIVMSG ",8) == 0) ++ { ++ ++ u16 x=10; ++ const u16 end=plen - 13; ++ ++ /* is seems to be a irc private massage, chedck for xdcc command */ ++ while (x < end) ++ { ++ if (payload[x] == ':') ++ { ++ if ( memcmp(&payload[x+1],"xdcc send #",11) == 0 ) ++ return ((IPP2P_XDCC * 100) + 0); ++ } ++ x++; ++ } ++ } ++ return 0; ++} ++ ++/* search for waste */ ++int search_waste(const unsigned char *payload, const u16 plen) ++{ ++ if ( plen >= 8 && memcmp(payload,"GET.sha1:",9) == 0) ++ return ((IPP2P_WASTE * 100) + 0); ++ ++ return 0; ++} ++ ++ ++static struct { ++ int command; ++ __u8 short_hand; /*for fucntions included in short hands*/ ++ int packet_len; ++ int (*function_name) (const unsigned char *, const u16); ++} matchlist[] = { ++ {IPP2P_EDK,SHORT_HAND_IPP2P,20, &search_all_edk}, ++// {IPP2P_DATA_KAZAA,SHORT_HAND_DATA,200, &search_kazaa}, ++// {IPP2P_DATA_EDK,SHORT_HAND_DATA,60, &search_edk}, ++// {IPP2P_DATA_DC,SHORT_HAND_DATA,26, &search_dc}, ++ {IPP2P_DC,SHORT_HAND_IPP2P,5, search_all_dc}, ++// {IPP2P_DATA_GNU,SHORT_HAND_DATA,40, &search_gnu}, ++ {IPP2P_GNU,SHORT_HAND_IPP2P,5, &search_all_gnu}, ++ {IPP2P_KAZAA,SHORT_HAND_IPP2P,5, &search_all_kazaa}, ++ {IPP2P_BIT,SHORT_HAND_IPP2P,20, &search_bittorrent}, ++ {IPP2P_APPLE,SHORT_HAND_IPP2P,5, &search_apple}, ++ {IPP2P_SOUL,SHORT_HAND_IPP2P,5, &search_soul}, ++ {IPP2P_WINMX,SHORT_HAND_IPP2P,2, &search_winmx}, ++ {IPP2P_ARES,SHORT_HAND_IPP2P,5, &search_ares}, ++ {IPP2P_MUTE,SHORT_HAND_NONE,200, &search_mute}, ++ {IPP2P_WASTE,SHORT_HAND_NONE,5, &search_waste}, ++ {IPP2P_XDCC,SHORT_HAND_NONE,5, &search_xdcc}, ++ {0,0,0,NULL} ++}; ++ ++ ++static struct { ++ int command; ++ __u8 short_hand; /*for fucntions included in short hands*/ ++ int packet_len; ++ int (*function_name) (unsigned char *, int); ++} udp_list[] = { ++ { IPP2P_KAZAA, SHORT_HAND_IPP2P, 14, &udp_search_kazaa}, ++ { IPP2P_BIT, SHORT_HAND_IPP2P, 23, &udp_search_bit}, ++ { IPP2P_GNU, SHORT_HAND_IPP2P, 11, &udp_search_gnu}, ++ { IPP2P_EDK, SHORT_HAND_IPP2P, 9, &udp_search_edk}, ++ { IPP2P_DC, SHORT_HAND_IPP2P, 12, &udp_search_directconnect}, ++ { 0, 0, 0, NULL } ++}; ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ const void *hdr, ++ u_int16_t datalen, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++static bool ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ bool *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++static bool ++match(const struct sk_buff *skb, ++ const struct xt_match_param *par) ++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */ ++static int ++match(const struct sk_buff *skb, ++ struct xt_action_param *par) ++#endif ++{ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++ const struct ipt_p2p_info *info = matchinfo; ++#else ++ const struct ipt_p2p_info *info = par->matchinfo; ++ const int offset = par->fragoff; ++#endif ++ unsigned char *haystack; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) ++ struct iphdr *ip = ip_hdr(skb); ++#else ++ struct iphdr *ip = skb->nh.iph; ++#endif ++ int p2p_result = 0, i = 0; ++// int head_len; ++ int hlen = ntohs(ip->tot_len)-(ip->ihl*4); /*hlen = packet-data length*/ ++ ++ /*must not be a fragment*/ ++ if (offset) { ++ if (info->debug) printk("IPP2P.match: offset found %i \n",offset); ++ return 0; ++ } ++ ++ /*make sure that skb is linear*/ ++ if(skb_is_nonlinear(skb)){ ++ if (info->debug) printk("IPP2P.match: nonlinear skb found\n"); ++ return 0; ++ } ++ ++ ++ haystack=(char *)ip+(ip->ihl*4); /*haystack = packet data*/ ++ ++ switch (ip->protocol){ ++ case IPPROTO_TCP: /*what to do with a TCP packet*/ ++ { ++ struct tcphdr *tcph = (void *) ip + ip->ihl * 4; ++ ++ if (tcph->fin) return 0; /*if FIN bit is set bail out*/ ++ if (tcph->syn) return 0; /*if SYN bit is set bail out*/ ++ if (tcph->rst) return 0; /*if RST bit is set bail out*/ ++ ++ haystack += tcph->doff * 4; /*get TCP-Header-Size*/ ++ hlen -= tcph->doff * 4; ++ while (matchlist[i].command) { ++ if ((((info->cmd & matchlist[i].command) == matchlist[i].command) || ++ ((info->cmd & matchlist[i].short_hand) == matchlist[i].short_hand)) && ++ (hlen > matchlist[i].packet_len)) { ++ p2p_result = matchlist[i].function_name(haystack, hlen); ++ if (p2p_result) ++ { ++ if (info->debug) printk("IPP2P.debug:TCP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", ++ p2p_result, &ip->saddr,ntohs(tcph->source), &ip->daddr,ntohs(tcph->dest),hlen); ++ return p2p_result; ++ } ++ } ++ i++; ++ } ++ return p2p_result; ++ } ++ ++ case IPPROTO_UDP: /*what to do with an UDP packet*/ ++ { ++ struct udphdr *udph = (void *) ip + ip->ihl * 4; ++ ++ while (udp_list[i].command){ ++ if ((((info->cmd & udp_list[i].command) == udp_list[i].command) || ++ ((info->cmd & udp_list[i].short_hand) == udp_list[i].short_hand)) && ++ (hlen > udp_list[i].packet_len)) { ++ p2p_result = udp_list[i].function_name(haystack, hlen); ++ if (p2p_result){ ++ if (info->debug) printk("IPP2P.debug:UDP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", ++ p2p_result, &ip->saddr,ntohs(udph->source), &ip->daddr,ntohs(udph->dest),hlen); ++ return p2p_result; ++ } ++ } ++ i++; ++ } ++ return p2p_result; ++ } ++ ++ default: return 0; ++ } ++} ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) ++static int ++checkentry(const char *tablename, ++ const struct ipt_ip *ip, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++static bool ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++static bool ++checkentry(const struct xt_mtchk_param *par) ++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */ ++static int ++checkentry(const struct xt_mtchk_param *par) ++#endif ++{ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++ return 1; ++#else ++ return 0; ++#endif ++} ++ ++ ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++static struct xt_match ipp2p_match = { ++#else ++static struct ipt_match ipp2p_match = { ++#endif ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++ { NULL, NULL }, ++ "ipp2p", ++ &ipp2p_match, ++ &ipp2p_checkentry, ++ NULL, ++ THIS_MODULE ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++ .name = "ipp2p", ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ .family = AF_INET, ++#endif ++ .match = &match, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17) ++ .matchsize = sizeof(struct ipt_p2p_info), ++#endif ++ .checkentry = &checkentry, ++ .me = THIS_MODULE, ++#endif ++}; ++ ++ ++static int __init init(void) ++{ ++ printk(KERN_INFO "IPP2P v%s loading\n", IPP2P_VERSION); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ return xt_register_match(&ipp2p_match); ++#else ++ return ipt_register_match(&ipp2p_match); ++#endif ++} ++ ++static void __exit fini(void) ++{ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ xt_unregister_match(&ipp2p_match); ++#else ++ ipt_unregister_match(&ipp2p_match); ++#endif ++ printk(KERN_INFO "IPP2P v%s unloaded\n", IPP2P_VERSION); ++} ++ ++module_init(init); ++module_exit(fini); ++ ++ +diff -Naur linux-3.0.24.org/net/ipv4/netfilter/Kconfig linux-3.0.24/net/ipv4/netfilter/Kconfig +--- linux-3.0.24.org/net/ipv4/netfilter/Kconfig 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/ipv4/netfilter/Kconfig 2012-03-20 09:05:15.827477622 +0100 +@@ -379,5 +379,15 @@ + + endif # IP_NF_ARPTABLES + ++config IP_NF_MATCH_IPP2P ++ tristate 'IPP2P match support' ++ depends on IP_NF_IPTABLES ++ help ++ This option makes possible to match some P2P packets ++ therefore helps controlling such traffic. ++ ++ If you want to compile it as a module, say M here and read ++ file:Documentation/modules.txt. If unsure, say `N'. ++ + endmenu + +diff -Naur linux-3.0.24.org/net/ipv4/netfilter/Makefile linux-3.0.24/net/ipv4/netfilter/Makefile +--- linux-3.0.24.org/net/ipv4/netfilter/Makefile 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/ipv4/netfilter/Makefile 2012-03-20 09:13:38.960288878 +0100 +@@ -50,6 +50,7 @@ + # matches + obj-$(CONFIG_IP_NF_MATCH_AH) += ipt_ah.o + obj-$(CONFIG_IP_NF_MATCH_ECN) += ipt_ecn.o ++obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_ipp2p.o + + # targets + obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o diff --git a/src/patches/linux-3.1-imq.patch b/src/patches/linux-3.1-imq.patch new file mode 100644 index 0000000..6e97f1c --- /dev/null +++ b/src/patches/linux-3.1-imq.patch @@ -0,0 +1,1603 @@ +diff -uNr linux-3.1/drivers/net/imq.c linux-3.1-imq/drivers/net/imq.c +--- linux-3.1/drivers/net/imq.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/drivers/net/imq.c 2011-11-04 12:16:10.454992642 +0200 +@@ -0,0 +1,850 @@ ++/* ++ * Pseudo-driver for the intermediate queue device. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version ++ * 2 of the License, or (at your option) any later version. ++ * ++ * Authors: Patrick McHardy, kaber@trash.net ++ * ++ * The first version was written by Martin Devera, devik@cdi.cz ++ * ++ * Credits: Jan Rafaj imq2t@cedric.vabo.cz ++ * - Update patch to 2.4.21 ++ * Sebastian Strollo sstrollo@nortelnetworks.com ++ * - Fix "Dead-loop on netdevice imq"-issue ++ * Marcel Sebek sebek64@post.cz ++ * - Update to 2.6.2-rc1 ++ * ++ * After some time of inactivity there is a group taking care ++ * of IMQ again: http://www.linuximq.net ++ * ++ * ++ * 2004/06/30 - New version of IMQ patch to kernels <=2.6.7 ++ * including the following changes: ++ * ++ * - Correction of ipv6 support "+"s issue (Hasso Tepper) ++ * - Correction of imq_init_devs() issue that resulted in ++ * kernel OOPS unloading IMQ as module (Norbert Buchmuller) ++ * - Addition of functionality to choose number of IMQ devices ++ * during kernel config (Andre Correa) ++ * - Addition of functionality to choose how IMQ hooks on ++ * PRE and POSTROUTING (after or before NAT) (Andre Correa) ++ * - Cosmetic corrections (Norbert Buchmuller) (Andre Correa) ++ * ++ * ++ * 2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were ++ * released with almost no problems. 2.6.14-x was released ++ * with some important changes: nfcache was removed; After ++ * some weeks of trouble we figured out that some IMQ fields ++ * in skb were missing in skbuff.c - skb_clone and copy_skb_header. ++ * These functions are correctly patched by this new patch version. ++ * ++ * Thanks for all who helped to figure out all the problems with ++ * 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX, ++ * Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully ++ * I didn't forget anybody). I apologize again for my lack of time. ++ * ++ * ++ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead ++ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid ++ * recursive locking. New initialization routines to fix 'rmmod' not ++ * working anymore. Used code from ifb.c. (Jussi Kivilinna) ++ * ++ * 2008/08/06 - 2.6.26 - (JK) ++ * - Replaced tasklet with 'netif_schedule()'. ++ * - Cleaned up and added comments for imq_nf_queue(). ++ * ++ * 2009/04/12 ++ * - Add skb_save_cb/skb_restore_cb helper functions for backuping ++ * control buffer. This is needed because qdisc-layer on kernels ++ * 2.6.27 and newer overwrite control buffer. (Jussi Kivilinna) ++ * - Add better locking for IMQ device. Hopefully this will solve ++ * SMP issues. (Jussi Kivilinna) ++ * - Port to 2.6.27 ++ * - Port to 2.6.28 ++ * - Port to 2.6.29 + fix rmmod not working ++ * ++ * 2009/04/20 - (Jussi Kivilinna) ++ * - Use netdevice feature flags to avoid extra packet handling ++ * by core networking layer and possibly increase performance. ++ * ++ * 2009/09/26 - (Jussi Kivilinna) ++ * - Add imq_nf_reinject_lockless to fix deadlock with ++ * imq_nf_queue/imq_nf_reinject. ++ * ++ * 2009/12/08 - (Jussi Kivilinna) ++ * - Port to 2.6.32 ++ * - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit() ++ * - Also add better error checking for skb->nf_queue_entry usage ++ * ++ * 2010/02/25 - (Jussi Kivilinna) ++ * - Port to 2.6.33 ++ * ++ * 2010/08/15 - (Jussi Kivilinna) ++ * - Port to 2.6.35 ++ * - Simplify hook registration by using nf_register_hooks. ++ * - nf_reinject doesn't need spinlock around it, therefore remove ++ * imq_nf_reinject function. Other nf_reinject users protect ++ * their own data with spinlock. With IMQ however all data is ++ * needed is stored per skbuff, so no locking is needed. ++ * - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of ++ * NF_QUEUE, this allows working coexistance of IMQ and other ++ * NF_QUEUE users. ++ * - Make IMQ multi-queue. Number of IMQ device queues can be ++ * increased with 'numqueues' module parameters. Default number ++ * of queues is 1, in other words by default IMQ works as ++ * single-queue device. Multi-queue selection is based on ++ * IFB multi-queue patch by Changli Gao xiaosuo@gmail.com. ++ * ++ * 2011/03/18 - (Jussi Kivilinna) ++ * - Port to 2.6.38 ++ * ++ * 2011/07/12 - (syoder89@gmail.com) ++ * - Crash fix that happens when the receiving interface has more ++ * than one queue (add missing skb_set_queue_mapping in ++ * imq_select_queue). ++ * ++ * 2011/07/26 - (Jussi Kivilinna) ++ * - Add queue mapping checks for packets exiting IMQ. ++ * - Port to 3.0 ++ * ++ * 2011/08/16 - (Jussi Kivilinna) ++ * - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2 ++ * ++ * 2011/11/03 - Germano Michel germanomichel@gmail.com ++ * - Fix IMQ for net namespaces ++ * ++ * 2011/11/04 - Jussi Kivilinna jussi.kivilinna@mbnet.fi ++ * - Port to 3.1 ++ * - Clean-up, move 'get imq device pointer by imqX name' to ++ * separate function from imq_nf_queue(). ++ * ++ * Also, many thanks to pablo Sebastian Greco for making the initial ++ * patch and to those who helped the testing. ++ * ++ * More info at: http://www.linuximq.net/ (Andre Correa) ++ */ ++ ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/moduleparam.h> ++#include <linux/list.h> ++#include <linux/skbuff.h> ++#include <linux/netdevice.h> ++#include <linux/etherdevice.h> ++#include <linux/rtnetlink.h> ++#include <linux/if_arp.h> ++#include <linux/netfilter.h> ++#include <linux/netfilter_ipv4.h> ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ #include <linux/netfilter_ipv6.h> ++#endif ++#include <linux/imq.h> ++#include <net/pkt_sched.h> ++#include <net/netfilter/nf_queue.h> ++#include <net/sock.h> ++#include <linux/ip.h> ++#include <linux/ipv6.h> ++#include <linux/if_vlan.h> ++#include <linux/if_pppox.h> ++#include <net/ip.h> ++#include <net/ipv6.h> ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num); ++ ++static nf_hookfn imq_nf_hook; ++ ++static struct nf_hook_ops imq_ops[] = { ++ { ++ /* imq_ingress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP_PRI_LAST, ++#else ++ .priority = NF_IP_PRI_NAT_SRC - 1, ++#endif ++ }, ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ { ++ /* imq_ingress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP6_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP6_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP6_PRI_LAST, ++#else ++ .priority = NF_IP6_PRI_NAT_SRC - 1, ++#endif ++ }, ++#endif ++}; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++static int numdevs = CONFIG_IMQ_NUM_DEVS; ++#else ++static int numdevs = IMQ_MAX_DEVS; ++#endif ++ ++static struct net_device *imq_devs_cache[IMQ_MAX_DEVS]; ++ ++#define IMQ_MAX_QUEUES 32 ++static int numqueues = 1; ++static u32 imq_hashrnd; ++ ++static inline __be16 pppoe_proto(const struct sk_buff *skb) ++{ ++ return *((__be16 *)(skb_mac_header(skb) + ETH_HLEN + ++ sizeof(struct pppoe_hdr))); ++} ++ ++static u16 imq_hash(struct net_device *dev, struct sk_buff *skb) ++{ ++ unsigned int pull_len; ++ u16 protocol = skb->protocol; ++ u32 addr1, addr2; ++ u32 hash, ihl = 0; ++ union { ++ u16 in16[2]; ++ u32 in32; ++ } ports; ++ u8 ip_proto; ++ ++ pull_len = 0; ++ ++recheck: ++ switch (protocol) { ++ case htons(ETH_P_8021Q): { ++ if (unlikely(skb_pull(skb, VLAN_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += VLAN_HLEN; ++ skb->network_header += VLAN_HLEN; ++ ++ protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto; ++ goto recheck; ++ } ++ ++ case htons(ETH_P_PPP_SES): { ++ if (unlikely(skb_pull(skb, PPPOE_SES_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += PPPOE_SES_HLEN; ++ skb->network_header += PPPOE_SES_HLEN; ++ ++ protocol = pppoe_proto(skb); ++ goto recheck; ++ } ++ ++ case htons(ETH_P_IP): { ++ const struct iphdr *iph = ip_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct iphdr)))) ++ goto other; ++ ++ addr1 = iph->daddr; ++ addr2 = iph->saddr; ++ ++ ip_proto = !(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ? ++ iph->protocol : 0; ++ ihl = ip_hdrlen(skb); ++ ++ break; ++ } ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ case htons(ETH_P_IPV6): { ++ const struct ipv6hdr *iph = ipv6_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr)))) ++ goto other; ++ ++ addr1 = iph->daddr.s6_addr32[3]; ++ addr2 = iph->saddr.s6_addr32[3]; ++ ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto); ++ if (unlikely(ihl < 0)) ++ goto other; ++ ++ break; ++ } ++#endif ++ default: ++other: ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ return (u16)(ntohs(protocol) % dev->real_num_tx_queues); ++ } ++ ++ if (addr1 > addr2) ++ swap(addr1, addr2); ++ ++ switch (ip_proto) { ++ case IPPROTO_TCP: ++ case IPPROTO_UDP: ++ case IPPROTO_DCCP: ++ case IPPROTO_ESP: ++ case IPPROTO_AH: ++ case IPPROTO_SCTP: ++ case IPPROTO_UDPLITE: { ++ if (likely(skb_copy_bits(skb, ihl, &ports.in32, 4) >= 0)) { ++ if (ports.in16[0] > ports.in16[1]) ++ swap(ports.in16[0], ports.in16[1]); ++ break; ++ } ++ /* fall-through */ ++ } ++ default: ++ ports.in32 = 0; ++ break; ++ } ++ ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ hash = jhash_3words(addr1, addr2, ports.in32, imq_hashrnd ^ ip_proto); ++ ++ return (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++} ++ ++static inline bool sk_tx_queue_recorded(struct sock *sk) ++{ ++ return (sk_tx_queue_get(sk) >= 0); ++} ++ ++static struct netdev_queue *imq_select_queue(struct net_device *dev, ++ struct sk_buff *skb) ++{ ++ u16 queue_index = 0; ++ u32 hash; ++ ++ if (likely(dev->real_num_tx_queues == 1)) ++ goto out; ++ ++ /* IMQ can be receiving ingress or engress packets. */ ++ ++ /* Check first for if rx_queue is set */ ++ if (skb_rx_queue_recorded(skb)) { ++ queue_index = skb_get_rx_queue(skb); ++ goto out; ++ } ++ ++ /* Check if socket has tx_queue set */ ++ if (sk_tx_queue_recorded(skb->sk)) { ++ queue_index = sk_tx_queue_get(skb->sk); ++ goto out; ++ } ++ ++ /* Try use socket hash */ ++ if (skb->sk && skb->sk->sk_hash) { ++ hash = skb->sk->sk_hash; ++ queue_index = ++ (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++ goto out; ++ } ++ ++ /* Generate hash from packet data */ ++ queue_index = imq_hash(dev, skb); ++ ++out: ++ if (unlikely(queue_index >= dev->real_num_tx_queues)) ++ queue_index = (u16)((u32)queue_index % dev->real_num_tx_queues); ++ ++ skb_set_queue_mapping(skb, queue_index); ++ return netdev_get_tx_queue(dev, queue_index); ++} ++ ++static struct net_device_stats *imq_get_stats(struct net_device *dev) ++{ ++ return &dev->stats; ++} ++ ++/* called for packets kfree'd in qdiscs at places other than enqueue */ ++static void imq_skb_destructor(struct sk_buff *skb) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ ++ if (entry) { ++ nf_queue_entry_release_refs(entry); ++ kfree(entry); ++ } ++ ++ skb_restore_cb(skb); /* kfree backup */ ++} ++ ++static void imq_done_check_queue_mapping(struct sk_buff *skb, ++ struct net_device *dev) ++{ ++ unsigned int queue_index; ++ ++ /* Don't let queue_mapping be left too large after exiting IMQ */ ++ if (likely(skb->dev != dev && skb->dev != NULL)) { ++ queue_index = skb_get_queue_mapping(skb); ++ if (unlikely(queue_index >= skb->dev->real_num_tx_queues)) { ++ queue_index = (u16)((u32)queue_index % ++ skb->dev->real_num_tx_queues); ++ skb_set_queue_mapping(skb, queue_index); ++ } ++ } else { ++ /* skb->dev was IMQ device itself or NULL, be on safe side and ++ * just clear queue mapping. ++ */ ++ skb_set_queue_mapping(skb, 0); ++ } ++} ++ ++static netdev_tx_t imq_dev_xmit(struct sk_buff *skb, struct net_device *dev) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ dev->trans_start = jiffies; ++ ++ dev->stats.tx_bytes += skb->len; ++ dev->stats.tx_packets++; ++ ++ if (unlikely(entry == NULL)) { ++ /* We don't know what is going on here.. packet is queued for ++ * imq device, but (probably) not by us. ++ * ++ * If this packet was not send here by imq_nf_queue(), then ++ * skb_save_cb() was not used and skb_free() should not show: ++ * WARNING: IMQ: kfree_skb: skb->cb_next:.. ++ * and/or ++ * WARNING: IMQ: kfree_skb: skb->nf_queue_entry... ++ * ++ * However if this message is shown, then IMQ is somehow broken ++ * and you should report this to linuximq.net. ++ */ ++ ++ /* imq_dev_xmit is black hole that eats all packets, report that ++ * we eat this packet happily and increase dropped counters. ++ */ ++ ++ dev->stats.tx_dropped++; ++ dev_kfree_skb(skb); ++ ++ return NETDEV_TX_OK; ++ } ++ ++ skb_restore_cb(skb); /* restore skb->cb */ ++ ++ skb->imq_flags = 0; ++ skb->destructor = NULL; ++ ++ imq_done_check_queue_mapping(skb, dev); ++ ++ nf_reinject(entry, NF_ACCEPT); ++ ++ return NETDEV_TX_OK; ++} ++ ++static struct net_device *get_imq_device_by_index(int index) ++{ ++ struct net_device *dev = NULL; ++ struct net *net; ++ char buf[8]; ++ ++ /* get device by name and cache result */ ++ snprintf(buf, sizeof(buf), "imq%d", index); ++ ++ /* Search device from all namespaces. */ ++ for_each_net(net) { ++ dev = dev_get_by_name(net, buf); ++ if (dev) ++ break; ++ } ++ ++ if (WARN_ON_ONCE(dev == NULL)) { ++ /* IMQ device not found. Exotic config? */ ++ return ERR_PTR(-ENODEV); ++ } ++ ++ imq_devs_cache[index] = dev; ++ dev_put(dev); ++ ++ return dev; ++} ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num) ++{ ++ struct net_device *dev; ++ struct sk_buff *skb_orig, *skb, *skb_shared; ++ struct Qdisc *q; ++ struct netdev_queue *txq; ++ spinlock_t *root_lock; ++ int users, index; ++ int retval = -EINVAL; ++ unsigned int orig_queue_index; ++ ++ index = entry->skb->imq_flags & IMQ_F_IFMASK; ++ if (unlikely(index > numdevs - 1)) { ++ if (net_ratelimit()) ++ printk(KERN_WARNING ++ "IMQ: invalid device specified, highest is %u\n", ++ numdevs - 1); ++ retval = -EINVAL; ++ goto out; ++ } ++ ++ /* check for imq device by index from cache */ ++ dev = imq_devs_cache[index]; ++ if (unlikely(!dev)) { ++ dev = get_imq_device_by_index(index); ++ if (IS_ERR(dev)) { ++ retval = PTR_ERR(dev); ++ goto out; ++ } ++ } ++ ++ if (unlikely(!(dev->flags & IFF_UP))) { ++ entry->skb->imq_flags = 0; ++ nf_reinject(entry, NF_ACCEPT); ++ retval = 0; ++ goto out; ++ } ++ dev->last_rx = jiffies; ++ ++ skb = entry->skb; ++ skb_orig = NULL; ++ ++ /* skb has owner? => make clone */ ++ if (unlikely(skb->destructor)) { ++ skb_orig = skb; ++ skb = skb_clone(skb, GFP_ATOMIC); ++ if (unlikely(!skb)) { ++ retval = -ENOMEM; ++ goto out; ++ } ++ entry->skb = skb; ++ } ++ ++ skb->nf_queue_entry = entry; ++ ++ dev->stats.rx_bytes += skb->len; ++ dev->stats.rx_packets++; ++ ++ if (!skb->dev) { ++ /* skb->dev == NULL causes problems, try the find cause. */ ++ if (net_ratelimit()) { ++ dev_warn(&dev->dev, ++ "received packet with skb->dev == NULL\n"); ++ dump_stack(); ++ } ++ ++ skb->dev = dev; ++ } ++ ++ /* Disables softirqs for lock below */ ++ rcu_read_lock_bh(); ++ ++ /* Multi-queue selection */ ++ orig_queue_index = skb_get_queue_mapping(skb); ++ txq = imq_select_queue(dev, skb); ++ ++ q = rcu_dereference(txq->qdisc); ++ if (unlikely(!q->enqueue)) ++ goto packet_not_eaten_by_imq_dev; ++ ++ root_lock = qdisc_lock(q); ++ spin_lock(root_lock); ++ ++ users = atomic_read(&skb->users); ++ ++ skb_shared = skb_get(skb); /* increase reference count by one */ ++ skb_save_cb(skb_shared); /* backup skb->cb, as qdisc layer will ++ overwrite it */ ++ qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */ ++ ++ if (likely(atomic_read(&skb_shared->users) == users + 1)) { ++ kfree_skb(skb_shared); /* decrease reference count by one */ ++ ++ skb->destructor = &imq_skb_destructor; ++ ++ /* cloned? */ ++ if (unlikely(skb_orig)) ++ kfree_skb(skb_orig); /* free original */ ++ ++ spin_unlock(root_lock); ++ rcu_read_unlock_bh(); ++ ++ /* schedule qdisc dequeue */ ++ __netif_schedule(q); ++ ++ retval = 0; ++ goto out; ++ } else { ++ skb_restore_cb(skb_shared); /* restore skb->cb */ ++ skb->nf_queue_entry = NULL; ++ /* qdisc dropped packet and decreased skb reference count of ++ * skb, so we don't really want to and try refree as that would ++ * actually destroy the skb. */ ++ spin_unlock(root_lock); ++ goto packet_not_eaten_by_imq_dev; ++ } ++ ++packet_not_eaten_by_imq_dev: ++ skb_set_queue_mapping(skb, orig_queue_index); ++ rcu_read_unlock_bh(); ++ ++ /* cloned? restore original */ ++ if (unlikely(skb_orig)) { ++ kfree_skb(skb); ++ entry->skb = skb_orig; ++ } ++ retval = -1; ++out: ++ return retval; ++} ++ ++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb, ++ const struct net_device *indev, ++ const struct net_device *outdev, ++ int (*okfn)(struct sk_buff *)) ++{ ++ return (pskb->imq_flags & IMQ_F_ENQUEUE) ? NF_IMQ_QUEUE : NF_ACCEPT; ++} ++ ++static int imq_close(struct net_device *dev) ++{ ++ netif_stop_queue(dev); ++ return 0; ++} ++ ++static int imq_open(struct net_device *dev) ++{ ++ netif_start_queue(dev); ++ return 0; ++} ++ ++static const struct net_device_ops imq_netdev_ops = { ++ .ndo_open = imq_open, ++ .ndo_stop = imq_close, ++ .ndo_start_xmit = imq_dev_xmit, ++ .ndo_get_stats = imq_get_stats, ++}; ++ ++static void imq_setup(struct net_device *dev) ++{ ++ dev->netdev_ops = &imq_netdev_ops; ++ dev->type = ARPHRD_VOID; ++ dev->mtu = 16000; /* too small? */ ++ dev->tx_queue_len = 11000; /* too big? */ ++ dev->flags = IFF_NOARP; ++ dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | ++ NETIF_F_GSO | NETIF_F_HW_CSUM | ++ NETIF_F_HIGHDMA; ++ dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | ++ IFF_TX_SKB_SHARING); ++} ++ ++static int imq_validate(struct nlattr *tb[], struct nlattr *data[]) ++{ ++ int ret = 0; ++ ++ if (tb[IFLA_ADDRESS]) { ++ if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) { ++ ret = -EINVAL; ++ goto end; ++ } ++ if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) { ++ ret = -EADDRNOTAVAIL; ++ goto end; ++ } ++ } ++ return 0; ++end: ++ printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret); ++ return ret; ++} ++ ++static struct rtnl_link_ops imq_link_ops __read_mostly = { ++ .kind = "imq", ++ .priv_size = 0, ++ .setup = imq_setup, ++ .validate = imq_validate, ++}; ++ ++static const struct nf_queue_handler imq_nfqh = { ++ .name = "imq", ++ .outfn = imq_nf_queue, ++}; ++ ++static int __init imq_init_hooks(void) ++{ ++ int ret; ++ ++ nf_register_queue_imq_handler(&imq_nfqh); ++ ++ ret = nf_register_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ if (ret < 0) ++ nf_unregister_queue_imq_handler(); ++ ++ return ret; ++} ++ ++static int __init imq_init_one(int index) ++{ ++ struct net_device *dev; ++ int ret; ++ ++ dev = alloc_netdev_mq(0, "imq%d", imq_setup, numqueues); ++ if (!dev) ++ return -ENOMEM; ++ ++ ret = dev_alloc_name(dev, dev->name); ++ if (ret < 0) ++ goto fail; ++ ++ dev->rtnl_link_ops = &imq_link_ops; ++ ret = register_netdevice(dev); ++ if (ret < 0) ++ goto fail; ++ ++ return 0; ++fail: ++ free_netdev(dev); ++ return ret; ++} ++ ++static int __init imq_init_devs(void) ++{ ++ int err, i; ++ ++ if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) { ++ printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n", ++ IMQ_MAX_DEVS); ++ return -EINVAL; ++ } ++ ++ if (numqueues < 1 || numqueues > IMQ_MAX_QUEUES) { ++ printk(KERN_ERR "IMQ: numqueues has to be betweed 1 and %u\n", ++ IMQ_MAX_QUEUES); ++ return -EINVAL; ++ } ++ ++ get_random_bytes(&imq_hashrnd, sizeof(imq_hashrnd)); ++ ++ rtnl_lock(); ++ err = __rtnl_link_register(&imq_link_ops); ++ ++ for (i = 0; i < numdevs && !err; i++) ++ err = imq_init_one(i); ++ ++ if (err) { ++ __rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ } ++ rtnl_unlock(); ++ ++ return err; ++} ++ ++static int __init imq_init_module(void) ++{ ++ int err; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK); ++#endif ++ ++ err = imq_init_devs(); ++ if (err) { ++ printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n"); ++ return err; ++ } ++ ++ err = imq_init_hooks(); ++ if (err) { ++ printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n"); ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ return err; ++ } ++ ++ printk(KERN_INFO "IMQ driver loaded successfully. " ++ "(numdevs = %d, numqueues = %d)\n", numdevs, numqueues); ++ ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n"); ++#else ++ printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n"); ++#endif ++#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n"); ++#else ++ printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n"); ++#endif ++ ++ return 0; ++} ++ ++static void __exit imq_unhook(void) ++{ ++ nf_unregister_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ nf_unregister_queue_imq_handler(); ++} ++ ++static void __exit imq_cleanup_devs(void) ++{ ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++} ++ ++static void __exit imq_exit_module(void) ++{ ++ imq_unhook(); ++ imq_cleanup_devs(); ++ printk(KERN_INFO "IMQ driver unloaded successfully.\n"); ++} ++ ++module_init(imq_init_module); ++module_exit(imq_exit_module); ++ ++module_param(numdevs, int, 0); ++module_param(numqueues, int, 0); ++MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will " ++ "be created)"); ++MODULE_PARM_DESC(numqueues, "number of queues per IMQ device"); ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See " ++ "http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS_RTNL_LINK("imq"); ++ +diff -uNr linux-3.1/drivers/net/Kconfig linux-3.1-imq/drivers/net/Kconfig +--- linux-3.1/drivers/net/Kconfig 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/drivers/net/Kconfig 2011-11-04 11:12:52.106390309 +0200 +@@ -124,6 +124,125 @@ + To compile this driver as a module, choose M here: the module + will be called eql. If unsure, say N. + ++config IMQ ++ tristate "IMQ (intermediate queueing device) support" ++ depends on NETDEVICES && NETFILTER ++ ---help--- ++ The IMQ device(s) is used as placeholder for QoS queueing ++ disciplines. Every packet entering/leaving the IP stack can be ++ directed through the IMQ device where it's enqueued/dequeued to the ++ attached qdisc. This allows you to treat network devices as classes ++ and distribute bandwidth among them. Iptables is used to specify ++ through which IMQ device, if any, packets travel. ++ ++ More information at: http://www.linuximq.net/ ++ ++ To compile this driver as a module, choose M here: the module ++ will be called imq. If unsure, say N. ++ ++choice ++ prompt "IMQ behavior (PRE/POSTROUTING)" ++ depends on IMQ ++ default IMQ_BEHAVIOR_AB ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ IMQ can work in any of the following ways: ++ ++ PREROUTING | POSTROUTING ++ -----------------|------------------- ++ #1 After NAT | After NAT ++ #2 After NAT | Before NAT ++ #3 Before NAT | After NAT ++ #4 Before NAT | Before NAT ++ ++ The default behavior is to hook before NAT on PREROUTING ++ and after NAT on POSTROUTING (#3). ++ ++ This settings are specially usefull when trying to use IMQ ++ to shape NATed clients. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AA ++ bool "IMQ AA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AB ++ bool "IMQ AB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BA ++ bool "IMQ BA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BB ++ bool "IMQ BB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++endchoice ++ ++config IMQ_NUM_DEVS ++ int "Number of IMQ devices" ++ range 2 16 ++ depends on IMQ ++ default "16" ++ help ++ This setting defines how many IMQ devices will be created. ++ ++ The default value is 16. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ + config TUN + tristate "Universal TUN/TAP device driver support" + select CRC32 +diff -uNr linux-3.1/drivers/net/Makefile linux-3.1-imq/drivers/net/Makefile +--- linux-3.1/drivers/net/Makefile 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/drivers/net/Makefile 2011-11-04 11:12:52.106390309 +0200 +@@ -175,6 +175,7 @@ + obj-$(CONFIG_XEN_NETDEV_BACKEND) += xen-netback/ + + obj-$(CONFIG_DUMMY) += dummy.o ++obj-$(CONFIG_IMQ) += imq.o + obj-$(CONFIG_IFB) += ifb.o + obj-$(CONFIG_MACVLAN) += macvlan.o + obj-$(CONFIG_MACVTAP) += macvtap.o +diff -uNr linux-3.1/include/linux/imq.h linux-3.1-imq/include/linux/imq.h +--- linux-3.1/include/linux/imq.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/include/linux/imq.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,13 @@ ++#ifndef _IMQ_H ++#define _IMQ_H ++ ++/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */ ++#define IMQ_F_BITS 5 ++ ++#define IMQ_F_IFMASK 0x0f ++#define IMQ_F_ENQUEUE 0x10 ++ ++#define IMQ_MAX_DEVS (IMQ_F_IFMASK + 1) ++ ++#endif /* _IMQ_H */ ++ +diff -uNr linux-3.1/include/linux/netfilter/xt_IMQ.h linux-3.1-imq/include/linux/netfilter/xt_IMQ.h +--- linux-3.1/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/include/linux/netfilter/xt_IMQ.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,9 @@ ++#ifndef _XT_IMQ_H ++#define _XT_IMQ_H ++ ++struct xt_imq_info { ++ unsigned int todev; /* target imq device */ ++}; ++ ++#endif /* _XT_IMQ_H */ ++ +diff -uNr linux-3.1/include/linux/netfilter.h linux-3.1-imq/include/linux/netfilter.h +--- linux-3.1/include/linux/netfilter.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/include/linux/netfilter.h 2011-11-04 11:12:52.109723710 +0200 +@@ -22,7 +22,8 @@ + #define NF_QUEUE 3 + #define NF_REPEAT 4 + #define NF_STOP 5 +-#define NF_MAX_VERDICT NF_STOP ++#define NF_IMQ_QUEUE 6 ++#define NF_MAX_VERDICT NF_IMQ_QUEUE + + /* we overload the higher bits for encoding auxiliary data such as the queue + * number or errno values. Not nice, but better than additional function +diff -uNr linux-3.1/include/linux/netfilter_ipv4/ipt_IMQ.h linux-3.1-imq/include/linux/netfilter_ipv4/ipt_IMQ.h +--- linux-3.1/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/include/linux/netfilter_ipv4/ipt_IMQ.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,10 @@ ++#ifndef _IPT_IMQ_H ++#define _IPT_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include <linux/netfilter/xt_IMQ.h> ++ ++#define ipt_imq_info xt_imq_info ++ ++#endif /* _IPT_IMQ_H */ ++ +diff -uNr linux-3.1/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-3.1-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h +--- linux-3.1/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h 2011-11-04 11:12:52.113057113 +0200 +@@ -0,0 +1,10 @@ ++#ifndef _IP6T_IMQ_H ++#define _IP6T_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include <linux/netfilter/xt_IMQ.h> ++ ++#define ip6t_imq_info xt_imq_info ++ ++#endif /* _IP6T_IMQ_H */ ++ +diff -uNr linux-3.1/include/linux/skbuff.h linux-3.1-imq/include/linux/skbuff.h +--- linux-3.1/include/linux/skbuff.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/include/linux/skbuff.h 2011-11-04 11:12:52.116390515 +0200 +@@ -29,6 +29,9 @@ + #include <linux/rcupdate.h> + #include <linux/dmaengine.h> + #include <linux/hrtimer.h> ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include <linux/imq.h> ++#endif + + /* Don't change this without changing skb_csum_unnecessary! */ + #define CHECKSUM_NONE 0 +@@ -356,6 +359,9 @@ + * first. This is owned by whoever has the skb queued ATM. + */ + char cb[48] __aligned(8); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ void *cb_next; ++#endif + + unsigned long _skb_refdst; + #ifdef CONFIG_XFRM +@@ -394,6 +400,9 @@ + #ifdef NET_SKBUFF_NF_DEFRAG_NEEDED + struct sk_buff *nfct_reasm; + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ struct nf_queue_entry *nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + struct nf_bridge_info *nf_bridge; + #endif +@@ -418,6 +427,10 @@ + + /* 0/13 bit hole */ + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ __u8 imq_flags:IMQ_F_BITS; ++#endif ++ + #ifdef CONFIG_NET_DMA + dma_cookie_t dma_cookie; + #endif +@@ -504,6 +517,12 @@ + return (struct rtable *)skb_dst(skb); + } + ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern int skb_save_cb(struct sk_buff *skb); ++extern int skb_restore_cb(struct sk_buff *skb); ++#endif ++ + extern void kfree_skb(struct sk_buff *skb); + extern void consume_skb(struct sk_buff *skb); + extern void __kfree_skb(struct sk_buff *skb); +@@ -2157,6 +2176,10 @@ + dst->nfct_reasm = src->nfct_reasm; + nf_conntrack_get_reasm(src->nfct_reasm); + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ dst->imq_flags = src->imq_flags; ++ dst->nf_queue_entry = src->nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + dst->nf_bridge = src->nf_bridge; + nf_bridge_get(src->nf_bridge); +diff -uNr linux-3.1/include/net/netfilter/nf_queue.h linux-3.1-imq/include/net/netfilter/nf_queue.h +--- linux-3.1/include/net/netfilter/nf_queue.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/include/net/netfilter/nf_queue.h 2011-11-04 11:12:52.116390515 +0200 +@@ -30,5 +30,11 @@ + const struct nf_queue_handler *qh); + extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh); + extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); ++extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry); ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh); ++extern void nf_unregister_queue_imq_handler(void); ++#endif + + #endif /* _NF_QUEUE_H */ +diff -uNr linux-3.1/net/core/dev.c linux-3.1-imq/net/core/dev.c +--- linux-3.1/net/core/dev.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/core/dev.c 2011-11-04 11:12:52.119723915 +0200 +@@ -98,6 +98,9 @@ + #include <net/net_namespace.h> + #include <net/sock.h> + #include <linux/rtnetlink.h> ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include <linux/imq.h> ++#endif + #include <linux/proc_fs.h> + #include <linux/seq_file.h> + #include <linux/stat.h> +@@ -2126,7 +2129,12 @@ + if (dev->priv_flags & IFF_XMIT_DST_RELEASE) + skb_dst_drop(skb); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ if (!list_empty(&ptype_all) && ++ !(skb->imq_flags & IMQ_F_ENQUEUE)) ++#else + if (!list_empty(&ptype_all)) ++#endif + dev_queue_xmit_nit(skb, dev); + + skb_orphan_try(skb); +diff -uNr linux-3.1/net/core/skbuff.c linux-3.1-imq/net/core/skbuff.c +--- linux-3.1/net/core/skbuff.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/core/skbuff.c 2011-11-04 11:12:52.123057315 +0200 +@@ -73,6 +73,9 @@ + + static struct kmem_cache *skbuff_head_cache __read_mostly; + static struct kmem_cache *skbuff_fclone_cache __read_mostly; ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static struct kmem_cache *skbuff_cb_store_cache __read_mostly; ++#endif + + static void sock_pipe_buf_release(struct pipe_inode_info *pipe, + struct pipe_buffer *buf) +@@ -92,6 +95,82 @@ + return 1; + } + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++/* Control buffer save/restore for IMQ devices */ ++struct skb_cb_table { ++ char cb[48] __aligned(8); ++ void *cb_next; ++ atomic_t refcnt; ++}; ++ ++static DEFINE_SPINLOCK(skb_cb_store_lock); ++ ++int skb_save_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC); ++ if (!next) ++ return -ENOMEM; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(next->cb, skb->cb, sizeof(skb->cb)); ++ next->cb_next = skb->cb_next; ++ ++ atomic_set(&next->refcnt, 1); ++ ++ skb->cb_next = next; ++ return 0; ++} ++EXPORT_SYMBOL(skb_save_cb); ++ ++int skb_restore_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ if (!skb->cb_next) ++ return 0; ++ ++ next = skb->cb_next; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(skb->cb, next->cb, sizeof(skb->cb)); ++ skb->cb_next = next->cb_next; ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ if (atomic_dec_and_test(&next->refcnt)) ++ kmem_cache_free(skbuff_cb_store_cache, next); ++ ++ spin_unlock(&skb_cb_store_lock); ++ ++ return 0; ++} ++EXPORT_SYMBOL(skb_restore_cb); ++ ++static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old) ++{ ++ struct skb_cb_table *next; ++ struct sk_buff *old; ++ ++ if (!__old->cb_next) { ++ new->cb_next = NULL; ++ return; ++ } ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ old = (struct sk_buff *)__old; ++ ++ next = old->cb_next; ++ atomic_inc(&next->refcnt); ++ new->cb_next = next; ++ ++ spin_unlock(&skb_cb_store_lock); ++} ++#endif + + /* Pipe buffer operations for a socket. */ + static const struct pipe_buf_operations sock_pipe_buf_ops = { +@@ -392,6 +471,26 @@ + WARN_ON(in_irq()); + skb->destructor(skb); + } ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ /* This should not happen. When it does, avoid memleak by restoring ++ the chain of cb-backups. */ ++ while (skb->cb_next != NULL) { ++ if (net_ratelimit()) ++ printk(KERN_WARNING "IMQ: kfree_skb: skb->cb_next: " ++ "%08x\n", (unsigned int)skb->cb_next); ++ ++ skb_restore_cb(skb); ++ } ++ /* This should not happen either, nf_queue_entry is nullified in ++ * imq_dev_xmit(). If we have non-NULL nf_queue_entry then we are ++ * leaking entry pointers, maybe memory. We don't know if this is ++ * pointer to already freed memory, or should this be freed. ++ * If this happens we need to add refcounting, etc for nf_queue_entry. ++ */ ++ if (skb->nf_queue_entry && net_ratelimit()) ++ printk(KERN_WARNING ++ "IMQ: kfree_skb: skb->nf_queue_entry != NULL"); ++#endif + #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) + nf_conntrack_put(skb->nfct); + #endif +@@ -533,6 +632,9 @@ + new->sp = secpath_get(old->sp); + #endif + memcpy(new->cb, old->cb, sizeof(old->cb)); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skb_copy_stored_cb(new, old); ++#endif + new->csum = old->csum; + new->local_df = old->local_df; + new->pkt_type = old->pkt_type; +@@ -2888,6 +2990,13 @@ + 0, + SLAB_HWCACHE_ALIGN|SLAB_PANIC, + NULL); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache", ++ sizeof(struct skb_cb_table), ++ 0, ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC, ++ NULL); ++#endif + } + + /** +diff -uNr linux-3.1/net/ipv6/ip6_output.c linux-3.1-imq/net/ipv6/ip6_output.c +--- linux-3.1/net/ipv6/ip6_output.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/ipv6/ip6_output.c 2011-11-04 11:12:52.123057315 +0200 +@@ -102,9 +102,6 @@ + struct net_device *dev = dst->dev; + struct neighbour *neigh; + +- skb->protocol = htons(ETH_P_IPV6); +- skb->dev = dev; +- + if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { + struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); + +@@ -170,6 +167,11 @@ + return 0; + } + ++ /* IMQ-patch: moved setting skb->dev and skb->protocol from ++ * ip6_finish_output2 to fix crashing at netif_skb_features(). */ ++ skb->protocol = htons(ETH_P_IPV6); ++ skb->dev = dev; ++ + return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev, + ip6_finish_output, + !(IP6CB(skb)->flags & IP6SKB_REROUTED)); +diff -uNr linux-3.1/net/netfilter/core.c linux-3.1-imq/net/netfilter/core.c +--- linux-3.1/net/netfilter/core.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/netfilter/core.c 2011-11-04 11:12:52.123057315 +0200 +@@ -179,9 +179,11 @@ + ret = NF_DROP_GETERR(verdict); + if (ret == 0) + ret = -EPERM; +- } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) { ++ } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE || ++ (verdict & NF_VERDICT_MASK) == NF_IMQ_QUEUE) { + ret = nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (ret < 0) { + if (ret == -ECANCELED) + goto next_hook; +diff -uNr linux-3.1/net/netfilter/Kconfig linux-3.1-imq/net/netfilter/Kconfig +--- linux-3.1/net/netfilter/Kconfig 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/netfilter/Kconfig 2011-11-04 11:12:52.123057315 +0200 +@@ -507,6 +507,18 @@ + For more information on the LEDs available on your system, see + Documentation/leds-class.txt + ++config NETFILTER_XT_TARGET_IMQ ++ tristate '"IMQ" target support' ++ depends on NETFILTER_XTABLES ++ depends on IP_NF_MANGLE || IP6_NF_MANGLE ++ select IMQ ++ default m if NETFILTER_ADVANCED=n ++ help ++ This option adds a `IMQ' target which is used to specify if and ++ to which imq device packets should get enqueued/dequeued. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ + config NETFILTER_XT_TARGET_MARK + tristate '"MARK" target support' + depends on NETFILTER_ADVANCED +diff -uNr linux-3.1/net/netfilter/Makefile linux-3.1-imq/net/netfilter/Makefile +--- linux-3.1/net/netfilter/Makefile 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/netfilter/Makefile 2011-11-04 11:12:52.123057315 +0200 +@@ -56,6 +56,7 @@ + obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o + obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o + obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o ++obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o + obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o +diff -uNr linux-3.1/net/netfilter/nf_internals.h linux-3.1-imq/net/netfilter/nf_internals.h +--- linux-3.1/net/netfilter/nf_internals.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/netfilter/nf_internals.h 2011-11-04 11:12:52.123057315 +0200 +@@ -29,7 +29,7 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum); ++ unsigned int queuenum, unsigned int queuetype); + extern int __init netfilter_queue_init(void); + + /* nf_log.c */ +diff -uNr linux-3.1/net/netfilter/nf_queue.c linux-3.1-imq/net/netfilter/nf_queue.c +--- linux-3.1/net/netfilter/nf_queue.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/netfilter/nf_queue.c 2011-11-04 11:12:52.123057315 +0200 +@@ -22,6 +22,26 @@ + + static DEFINE_MUTEX(queue_handler_mutex); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static const struct nf_queue_handler *queue_imq_handler; ++ ++void nf_register_queue_imq_handler(const struct nf_queue_handler *qh) ++{ ++ mutex_lock(&queue_handler_mutex); ++ rcu_assign_pointer(queue_imq_handler, qh); ++ mutex_unlock(&queue_handler_mutex); ++} ++EXPORT_SYMBOL_GPL(nf_register_queue_imq_handler); ++ ++void nf_unregister_queue_imq_handler(void) ++{ ++ mutex_lock(&queue_handler_mutex); ++ rcu_assign_pointer(queue_imq_handler, NULL); ++ mutex_unlock(&queue_handler_mutex); ++} ++EXPORT_SYMBOL_GPL(nf_unregister_queue_imq_handler); ++#endif ++ + /* return EBUSY when somebody else is registered, return EEXIST if the + * same handler is registered, return 0 in case of success. */ + int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh) +@@ -92,7 +112,7 @@ + } + EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers); + +-static void nf_queue_entry_release_refs(struct nf_queue_entry *entry) ++void nf_queue_entry_release_refs(struct nf_queue_entry *entry) + { + /* Release those devices we held, or Alexey will kill me. */ + if (entry->indev) +@@ -112,6 +132,7 @@ + /* Drop reference to owner of hook which queued us. */ + module_put(entry->elem->owner); + } ++EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs); + + /* + * Any packet that leaves via this function must come back +@@ -123,7 +144,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + int status = -ENOENT; + struct nf_queue_entry *entry = NULL; +@@ -137,7 +159,17 @@ + /* QUEUE == DROP if no one is waiting, to be safe. */ + rcu_read_lock(); + +- qh = rcu_dereference(queue_handler[pf]); ++ if (queuetype == NF_IMQ_QUEUE) { ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ qh = rcu_dereference(queue_imq_handler); ++#else ++ BUG(); ++ goto err_unlock; ++#endif ++ } else { ++ qh = rcu_dereference(queue_handler[pf]); ++ } ++ + if (!qh) { + status = -ESRCH; + goto err_unlock; +@@ -209,7 +241,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + struct sk_buff *segs; + int err; +@@ -217,7 +250,7 @@ + + if (!skb_is_gso(skb)) + return __nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- queuenum); ++ queuenum, queuetype); + + switch (pf) { + case NFPROTO_IPV4: +@@ -244,7 +277,7 @@ + segs->next = NULL; + if (err == 0) + err = __nf_queue(segs, elem, pf, hook, indev, +- outdev, okfn, queuenum); ++ outdev, okfn, queuenum, queuetype); + if (err == 0) + queued++; + else +@@ -299,9 +332,11 @@ + local_bh_enable(); + break; + case NF_QUEUE: ++ case NF_IMQ_QUEUE: + err = __nf_queue(skb, elem, entry->pf, entry->hook, + entry->indev, entry->outdev, entry->okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -uNr linux-3.1/net/netfilter/xt_IMQ.c linux-3.1-imq/net/netfilter/xt_IMQ.c +--- linux-3.1/net/netfilter/xt_IMQ.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/net/netfilter/xt_IMQ.c 2011-11-04 11:12:52.123057315 +0200 +@@ -0,0 +1,74 @@ ++/* ++ * This target marks packets to be enqueued to an imq device ++ */ ++#include <linux/module.h> ++#include <linux/skbuff.h> ++#include <linux/netfilter/x_tables.h> ++#include <linux/netfilter/xt_IMQ.h> ++#include <linux/imq.h> ++ ++static unsigned int imq_target(struct sk_buff *pskb, ++ const struct xt_action_param *par) ++{ ++ const struct xt_imq_info *mr = par->targinfo; ++ ++ pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE; ++ ++ return XT_CONTINUE; ++} ++ ++static int imq_checkentry(const struct xt_tgchk_param *par) ++{ ++ struct xt_imq_info *mr = par->targinfo; ++ ++ if (mr->todev > IMQ_MAX_DEVS - 1) { ++ printk(KERN_WARNING ++ "IMQ: invalid device specified, highest is %u\n", ++ IMQ_MAX_DEVS - 1); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static struct xt_target xt_imq_reg[] __read_mostly = { ++ { ++ .name = "IMQ", ++ .family = AF_INET, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++ { ++ .name = "IMQ", ++ .family = AF_INET6, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++}; ++ ++static int __init imq_init(void) ++{ ++ return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++static void __exit imq_fini(void) ++{ ++ xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++module_init(imq_init); ++module_exit(imq_fini); ++ ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. " ++ "See http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("ipt_IMQ"); ++MODULE_ALIAS("ip6t_IMQ"); ++ diff --git a/src/patches/linux-3.2-0001-panda-wlan-fix.patch b/src/patches/linux-3.2-0001-panda-wlan-fix.patch new file mode 100644 index 0000000..a2aaf20 --- /dev/null +++ b/src/patches/linux-3.2-0001-panda-wlan-fix.patch @@ -0,0 +1,12 @@ +diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c +index daa056e..fe03b09 100644 +--- a/arch/arm/mach-omap2/twl-common.c ++++ b/arch/arm/mach-omap2/twl-common.c +@@ -261,6 +261,7 @@ static struct regulator_init_data omap4_vusb_idata = { + static struct regulator_init_data omap4_clk32kg_idata = { + .constraints = { + .valid_ops_mask = REGULATOR_CHANGE_STATUS, ++ .always_on = true, + }, + }; + diff --git a/src/patches/linux-3.2-0002-panda-i2c.patch b/src/patches/linux-3.2-0002-panda-i2c.patch new file mode 100644 index 0000000..fa3f6cc --- /dev/null +++ b/src/patches/linux-3.2-0002-panda-i2c.patch @@ -0,0 +1,51 @@ +diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c +index 7f47092..2a05d3d 100644 +--- a/arch/arm/mach-omap2/id.c ++++ b/arch/arm/mach-omap2/id.c +@@ -389,8 +389,10 @@ static void __init omap4_check_revision(void) + omap_revision = OMAP4430_REV_ES2_1; + break; + case 4: +- default: + omap_revision = OMAP4430_REV_ES2_2; ++ case 6: ++ default: ++ omap_revision = OMAP4430_REV_ES2_3; + } + break; + case 0xb94e: +@@ -403,7 +405,7 @@ static void __init omap4_check_revision(void) + break; + default: + /* Unknown default to latest silicon rev as default */ +- omap_revision = OMAP4430_REV_ES2_2; ++ omap_revision = OMAP4430_REV_ES2_3; + } + + pr_info("OMAP%04x ES%d.%d\n", omap_rev() >> 16, +diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +index 7695e5d..71d3e36 100644 +--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c ++++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +@@ -2257,7 +2257,8 @@ static struct omap_hwmod_class omap44xx_i2c_hwmod_class = { + }; + + static struct omap_i2c_dev_attr i2c_dev_attr = { +- .flags = OMAP_I2C_FLAG_BUS_SHIFT_NONE, ++ .flags = OMAP_I2C_FLAG_BUS_SHIFT_NONE | ++ OMAP_I2C_FLAG_RESET_REGS_POSTIDLE, + }; + + /* i2c1 */ +diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h +index 408a12f..e279395 100644 +--- a/arch/arm/plat-omap/include/plat/cpu.h ++++ b/arch/arm/plat-omap/include/plat/cpu.h +@@ -391,6 +391,7 @@ IS_OMAP_TYPE(3517, 0x3517) + #define OMAP4430_REV_ES2_0 (OMAP443X_CLASS | (0x20 << 8)) + #define OMAP4430_REV_ES2_1 (OMAP443X_CLASS | (0x21 << 8)) + #define OMAP4430_REV_ES2_2 (OMAP443X_CLASS | (0x22 << 8)) ++#define OMAP4430_REV_ES2_3 (OMAP443X_CLASS | (0x23 << 8)) + + #define OMAP446X_CLASS 0x44600044 + #define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) diff --git a/src/patches/linux-3.2-imq.patch b/src/patches/linux-3.2-imq.patch new file mode 100644 index 0000000..8e8685d --- /dev/null +++ b/src/patches/linux-3.2-imq.patch @@ -0,0 +1,1603 @@ +diff -uNr linux-3.2/drivers/net/imq.c linux-3.2-imq/drivers/net/imq.c +--- linux-3.2/drivers/net/imq.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/drivers/net/imq.c 2011-11-04 12:16:10.454992642 +0200 +@@ -0,0 +1,850 @@ ++/* ++ * Pseudo-driver for the intermediate queue device. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version ++ * 2 of the License, or (at your option) any later version. ++ * ++ * Authors: Patrick McHardy, kaber@trash.net ++ * ++ * The first version was written by Martin Devera, devik@cdi.cz ++ * ++ * Credits: Jan Rafaj imq2t@cedric.vabo.cz ++ * - Update patch to 2.4.21 ++ * Sebastian Strollo sstrollo@nortelnetworks.com ++ * - Fix "Dead-loop on netdevice imq"-issue ++ * Marcel Sebek sebek64@post.cz ++ * - Update to 2.6.2-rc1 ++ * ++ * After some time of inactivity there is a group taking care ++ * of IMQ again: http://www.linuximq.net ++ * ++ * ++ * 2004/06/30 - New version of IMQ patch to kernels <=2.6.7 ++ * including the following changes: ++ * ++ * - Correction of ipv6 support "+"s issue (Hasso Tepper) ++ * - Correction of imq_init_devs() issue that resulted in ++ * kernel OOPS unloading IMQ as module (Norbert Buchmuller) ++ * - Addition of functionality to choose number of IMQ devices ++ * during kernel config (Andre Correa) ++ * - Addition of functionality to choose how IMQ hooks on ++ * PRE and POSTROUTING (after or before NAT) (Andre Correa) ++ * - Cosmetic corrections (Norbert Buchmuller) (Andre Correa) ++ * ++ * ++ * 2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were ++ * released with almost no problems. 2.6.14-x was released ++ * with some important changes: nfcache was removed; After ++ * some weeks of trouble we figured out that some IMQ fields ++ * in skb were missing in skbuff.c - skb_clone and copy_skb_header. ++ * These functions are correctly patched by this new patch version. ++ * ++ * Thanks for all who helped to figure out all the problems with ++ * 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX, ++ * Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully ++ * I didn't forget anybody). I apologize again for my lack of time. ++ * ++ * ++ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead ++ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid ++ * recursive locking. New initialization routines to fix 'rmmod' not ++ * working anymore. Used code from ifb.c. (Jussi Kivilinna) ++ * ++ * 2008/08/06 - 2.6.26 - (JK) ++ * - Replaced tasklet with 'netif_schedule()'. ++ * - Cleaned up and added comments for imq_nf_queue(). ++ * ++ * 2009/04/12 ++ * - Add skb_save_cb/skb_restore_cb helper functions for backuping ++ * control buffer. This is needed because qdisc-layer on kernels ++ * 2.6.27 and newer overwrite control buffer. (Jussi Kivilinna) ++ * - Add better locking for IMQ device. Hopefully this will solve ++ * SMP issues. (Jussi Kivilinna) ++ * - Port to 2.6.27 ++ * - Port to 2.6.28 ++ * - Port to 2.6.29 + fix rmmod not working ++ * ++ * 2009/04/20 - (Jussi Kivilinna) ++ * - Use netdevice feature flags to avoid extra packet handling ++ * by core networking layer and possibly increase performance. ++ * ++ * 2009/09/26 - (Jussi Kivilinna) ++ * - Add imq_nf_reinject_lockless to fix deadlock with ++ * imq_nf_queue/imq_nf_reinject. ++ * ++ * 2009/12/08 - (Jussi Kivilinna) ++ * - Port to 2.6.32 ++ * - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit() ++ * - Also add better error checking for skb->nf_queue_entry usage ++ * ++ * 2010/02/25 - (Jussi Kivilinna) ++ * - Port to 2.6.33 ++ * ++ * 2010/08/15 - (Jussi Kivilinna) ++ * - Port to 2.6.35 ++ * - Simplify hook registration by using nf_register_hooks. ++ * - nf_reinject doesn't need spinlock around it, therefore remove ++ * imq_nf_reinject function. Other nf_reinject users protect ++ * their own data with spinlock. With IMQ however all data is ++ * needed is stored per skbuff, so no locking is needed. ++ * - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of ++ * NF_QUEUE, this allows working coexistance of IMQ and other ++ * NF_QUEUE users. ++ * - Make IMQ multi-queue. Number of IMQ device queues can be ++ * increased with 'numqueues' module parameters. Default number ++ * of queues is 1, in other words by default IMQ works as ++ * single-queue device. Multi-queue selection is based on ++ * IFB multi-queue patch by Changli Gao xiaosuo@gmail.com. ++ * ++ * 2011/03/18 - (Jussi Kivilinna) ++ * - Port to 2.6.38 ++ * ++ * 2011/07/12 - (syoder89@gmail.com) ++ * - Crash fix that happens when the receiving interface has more ++ * than one queue (add missing skb_set_queue_mapping in ++ * imq_select_queue). ++ * ++ * 2011/07/26 - (Jussi Kivilinna) ++ * - Add queue mapping checks for packets exiting IMQ. ++ * - Port to 3.0 ++ * ++ * 2011/08/16 - (Jussi Kivilinna) ++ * - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2 ++ * ++ * 2011/11/03 - Germano Michel germanomichel@gmail.com ++ * - Fix IMQ for net namespaces ++ * ++ * 2011/11/04 - Jussi Kivilinna jussi.kivilinna@mbnet.fi ++ * - Port to 3.1 ++ * - Clean-up, move 'get imq device pointer by imqX name' to ++ * separate function from imq_nf_queue(). ++ * ++ * Also, many thanks to pablo Sebastian Greco for making the initial ++ * patch and to those who helped the testing. ++ * ++ * More info at: http://www.linuximq.net/ (Andre Correa) ++ */ ++ ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/moduleparam.h> ++#include <linux/list.h> ++#include <linux/skbuff.h> ++#include <linux/netdevice.h> ++#include <linux/etherdevice.h> ++#include <linux/rtnetlink.h> ++#include <linux/if_arp.h> ++#include <linux/netfilter.h> ++#include <linux/netfilter_ipv4.h> ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ #include <linux/netfilter_ipv6.h> ++#endif ++#include <linux/imq.h> ++#include <net/pkt_sched.h> ++#include <net/netfilter/nf_queue.h> ++#include <net/sock.h> ++#include <linux/ip.h> ++#include <linux/ipv6.h> ++#include <linux/if_vlan.h> ++#include <linux/if_pppox.h> ++#include <net/ip.h> ++#include <net/ipv6.h> ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num); ++ ++static nf_hookfn imq_nf_hook; ++ ++static struct nf_hook_ops imq_ops[] = { ++ { ++ /* imq_ingress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP_PRI_LAST, ++#else ++ .priority = NF_IP_PRI_NAT_SRC - 1, ++#endif ++ }, ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ { ++ /* imq_ingress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP6_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP6_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP6_PRI_LAST, ++#else ++ .priority = NF_IP6_PRI_NAT_SRC - 1, ++#endif ++ }, ++#endif ++}; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++static int numdevs = CONFIG_IMQ_NUM_DEVS; ++#else ++static int numdevs = IMQ_MAX_DEVS; ++#endif ++ ++static struct net_device *imq_devs_cache[IMQ_MAX_DEVS]; ++ ++#define IMQ_MAX_QUEUES 32 ++static int numqueues = 1; ++static u32 imq_hashrnd; ++ ++static inline __be16 pppoe_proto(const struct sk_buff *skb) ++{ ++ return *((__be16 *)(skb_mac_header(skb) + ETH_HLEN + ++ sizeof(struct pppoe_hdr))); ++} ++ ++static u16 imq_hash(struct net_device *dev, struct sk_buff *skb) ++{ ++ unsigned int pull_len; ++ u16 protocol = skb->protocol; ++ u32 addr1, addr2; ++ u32 hash, ihl = 0; ++ union { ++ u16 in16[2]; ++ u32 in32; ++ } ports; ++ u8 ip_proto; ++ ++ pull_len = 0; ++ ++recheck: ++ switch (protocol) { ++ case htons(ETH_P_8021Q): { ++ if (unlikely(skb_pull(skb, VLAN_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += VLAN_HLEN; ++ skb->network_header += VLAN_HLEN; ++ ++ protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto; ++ goto recheck; ++ } ++ ++ case htons(ETH_P_PPP_SES): { ++ if (unlikely(skb_pull(skb, PPPOE_SES_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += PPPOE_SES_HLEN; ++ skb->network_header += PPPOE_SES_HLEN; ++ ++ protocol = pppoe_proto(skb); ++ goto recheck; ++ } ++ ++ case htons(ETH_P_IP): { ++ const struct iphdr *iph = ip_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct iphdr)))) ++ goto other; ++ ++ addr1 = iph->daddr; ++ addr2 = iph->saddr; ++ ++ ip_proto = !(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ? ++ iph->protocol : 0; ++ ihl = ip_hdrlen(skb); ++ ++ break; ++ } ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ case htons(ETH_P_IPV6): { ++ const struct ipv6hdr *iph = ipv6_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr)))) ++ goto other; ++ ++ addr1 = iph->daddr.s6_addr32[3]; ++ addr2 = iph->saddr.s6_addr32[3]; ++ ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto); ++ if (unlikely(ihl < 0)) ++ goto other; ++ ++ break; ++ } ++#endif ++ default: ++other: ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ return (u16)(ntohs(protocol) % dev->real_num_tx_queues); ++ } ++ ++ if (addr1 > addr2) ++ swap(addr1, addr2); ++ ++ switch (ip_proto) { ++ case IPPROTO_TCP: ++ case IPPROTO_UDP: ++ case IPPROTO_DCCP: ++ case IPPROTO_ESP: ++ case IPPROTO_AH: ++ case IPPROTO_SCTP: ++ case IPPROTO_UDPLITE: { ++ if (likely(skb_copy_bits(skb, ihl, &ports.in32, 4) >= 0)) { ++ if (ports.in16[0] > ports.in16[1]) ++ swap(ports.in16[0], ports.in16[1]); ++ break; ++ } ++ /* fall-through */ ++ } ++ default: ++ ports.in32 = 0; ++ break; ++ } ++ ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ hash = jhash_3words(addr1, addr2, ports.in32, imq_hashrnd ^ ip_proto); ++ ++ return (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++} ++ ++static inline bool sk_tx_queue_recorded(struct sock *sk) ++{ ++ return (sk_tx_queue_get(sk) >= 0); ++} ++ ++static struct netdev_queue *imq_select_queue(struct net_device *dev, ++ struct sk_buff *skb) ++{ ++ u16 queue_index = 0; ++ u32 hash; ++ ++ if (likely(dev->real_num_tx_queues == 1)) ++ goto out; ++ ++ /* IMQ can be receiving ingress or engress packets. */ ++ ++ /* Check first for if rx_queue is set */ ++ if (skb_rx_queue_recorded(skb)) { ++ queue_index = skb_get_rx_queue(skb); ++ goto out; ++ } ++ ++ /* Check if socket has tx_queue set */ ++ if (sk_tx_queue_recorded(skb->sk)) { ++ queue_index = sk_tx_queue_get(skb->sk); ++ goto out; ++ } ++ ++ /* Try use socket hash */ ++ if (skb->sk && skb->sk->sk_hash) { ++ hash = skb->sk->sk_hash; ++ queue_index = ++ (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++ goto out; ++ } ++ ++ /* Generate hash from packet data */ ++ queue_index = imq_hash(dev, skb); ++ ++out: ++ if (unlikely(queue_index >= dev->real_num_tx_queues)) ++ queue_index = (u16)((u32)queue_index % dev->real_num_tx_queues); ++ ++ skb_set_queue_mapping(skb, queue_index); ++ return netdev_get_tx_queue(dev, queue_index); ++} ++ ++static struct net_device_stats *imq_get_stats(struct net_device *dev) ++{ ++ return &dev->stats; ++} ++ ++/* called for packets kfree'd in qdiscs at places other than enqueue */ ++static void imq_skb_destructor(struct sk_buff *skb) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ ++ if (entry) { ++ nf_queue_entry_release_refs(entry); ++ kfree(entry); ++ } ++ ++ skb_restore_cb(skb); /* kfree backup */ ++} ++ ++static void imq_done_check_queue_mapping(struct sk_buff *skb, ++ struct net_device *dev) ++{ ++ unsigned int queue_index; ++ ++ /* Don't let queue_mapping be left too large after exiting IMQ */ ++ if (likely(skb->dev != dev && skb->dev != NULL)) { ++ queue_index = skb_get_queue_mapping(skb); ++ if (unlikely(queue_index >= skb->dev->real_num_tx_queues)) { ++ queue_index = (u16)((u32)queue_index % ++ skb->dev->real_num_tx_queues); ++ skb_set_queue_mapping(skb, queue_index); ++ } ++ } else { ++ /* skb->dev was IMQ device itself or NULL, be on safe side and ++ * just clear queue mapping. ++ */ ++ skb_set_queue_mapping(skb, 0); ++ } ++} ++ ++static netdev_tx_t imq_dev_xmit(struct sk_buff *skb, struct net_device *dev) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ dev->trans_start = jiffies; ++ ++ dev->stats.tx_bytes += skb->len; ++ dev->stats.tx_packets++; ++ ++ if (unlikely(entry == NULL)) { ++ /* We don't know what is going on here.. packet is queued for ++ * imq device, but (probably) not by us. ++ * ++ * If this packet was not send here by imq_nf_queue(), then ++ * skb_save_cb() was not used and skb_free() should not show: ++ * WARNING: IMQ: kfree_skb: skb->cb_next:.. ++ * and/or ++ * WARNING: IMQ: kfree_skb: skb->nf_queue_entry... ++ * ++ * However if this message is shown, then IMQ is somehow broken ++ * and you should report this to linuximq.net. ++ */ ++ ++ /* imq_dev_xmit is black hole that eats all packets, report that ++ * we eat this packet happily and increase dropped counters. ++ */ ++ ++ dev->stats.tx_dropped++; ++ dev_kfree_skb(skb); ++ ++ return NETDEV_TX_OK; ++ } ++ ++ skb_restore_cb(skb); /* restore skb->cb */ ++ ++ skb->imq_flags = 0; ++ skb->destructor = NULL; ++ ++ imq_done_check_queue_mapping(skb, dev); ++ ++ nf_reinject(entry, NF_ACCEPT); ++ ++ return NETDEV_TX_OK; ++} ++ ++static struct net_device *get_imq_device_by_index(int index) ++{ ++ struct net_device *dev = NULL; ++ struct net *net; ++ char buf[8]; ++ ++ /* get device by name and cache result */ ++ snprintf(buf, sizeof(buf), "imq%d", index); ++ ++ /* Search device from all namespaces. */ ++ for_each_net(net) { ++ dev = dev_get_by_name(net, buf); ++ if (dev) ++ break; ++ } ++ ++ if (WARN_ON_ONCE(dev == NULL)) { ++ /* IMQ device not found. Exotic config? */ ++ return ERR_PTR(-ENODEV); ++ } ++ ++ imq_devs_cache[index] = dev; ++ dev_put(dev); ++ ++ return dev; ++} ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num) ++{ ++ struct net_device *dev; ++ struct sk_buff *skb_orig, *skb, *skb_shared; ++ struct Qdisc *q; ++ struct netdev_queue *txq; ++ spinlock_t *root_lock; ++ int users, index; ++ int retval = -EINVAL; ++ unsigned int orig_queue_index; ++ ++ index = entry->skb->imq_flags & IMQ_F_IFMASK; ++ if (unlikely(index > numdevs - 1)) { ++ if (net_ratelimit()) ++ printk(KERN_WARNING ++ "IMQ: invalid device specified, highest is %u\n", ++ numdevs - 1); ++ retval = -EINVAL; ++ goto out; ++ } ++ ++ /* check for imq device by index from cache */ ++ dev = imq_devs_cache[index]; ++ if (unlikely(!dev)) { ++ dev = get_imq_device_by_index(index); ++ if (IS_ERR(dev)) { ++ retval = PTR_ERR(dev); ++ goto out; ++ } ++ } ++ ++ if (unlikely(!(dev->flags & IFF_UP))) { ++ entry->skb->imq_flags = 0; ++ nf_reinject(entry, NF_ACCEPT); ++ retval = 0; ++ goto out; ++ } ++ dev->last_rx = jiffies; ++ ++ skb = entry->skb; ++ skb_orig = NULL; ++ ++ /* skb has owner? => make clone */ ++ if (unlikely(skb->destructor)) { ++ skb_orig = skb; ++ skb = skb_clone(skb, GFP_ATOMIC); ++ if (unlikely(!skb)) { ++ retval = -ENOMEM; ++ goto out; ++ } ++ entry->skb = skb; ++ } ++ ++ skb->nf_queue_entry = entry; ++ ++ dev->stats.rx_bytes += skb->len; ++ dev->stats.rx_packets++; ++ ++ if (!skb->dev) { ++ /* skb->dev == NULL causes problems, try the find cause. */ ++ if (net_ratelimit()) { ++ dev_warn(&dev->dev, ++ "received packet with skb->dev == NULL\n"); ++ dump_stack(); ++ } ++ ++ skb->dev = dev; ++ } ++ ++ /* Disables softirqs for lock below */ ++ rcu_read_lock_bh(); ++ ++ /* Multi-queue selection */ ++ orig_queue_index = skb_get_queue_mapping(skb); ++ txq = imq_select_queue(dev, skb); ++ ++ q = rcu_dereference(txq->qdisc); ++ if (unlikely(!q->enqueue)) ++ goto packet_not_eaten_by_imq_dev; ++ ++ root_lock = qdisc_lock(q); ++ spin_lock(root_lock); ++ ++ users = atomic_read(&skb->users); ++ ++ skb_shared = skb_get(skb); /* increase reference count by one */ ++ skb_save_cb(skb_shared); /* backup skb->cb, as qdisc layer will ++ overwrite it */ ++ qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */ ++ ++ if (likely(atomic_read(&skb_shared->users) == users + 1)) { ++ kfree_skb(skb_shared); /* decrease reference count by one */ ++ ++ skb->destructor = &imq_skb_destructor; ++ ++ /* cloned? */ ++ if (unlikely(skb_orig)) ++ kfree_skb(skb_orig); /* free original */ ++ ++ spin_unlock(root_lock); ++ rcu_read_unlock_bh(); ++ ++ /* schedule qdisc dequeue */ ++ __netif_schedule(q); ++ ++ retval = 0; ++ goto out; ++ } else { ++ skb_restore_cb(skb_shared); /* restore skb->cb */ ++ skb->nf_queue_entry = NULL; ++ /* qdisc dropped packet and decreased skb reference count of ++ * skb, so we don't really want to and try refree as that would ++ * actually destroy the skb. */ ++ spin_unlock(root_lock); ++ goto packet_not_eaten_by_imq_dev; ++ } ++ ++packet_not_eaten_by_imq_dev: ++ skb_set_queue_mapping(skb, orig_queue_index); ++ rcu_read_unlock_bh(); ++ ++ /* cloned? restore original */ ++ if (unlikely(skb_orig)) { ++ kfree_skb(skb); ++ entry->skb = skb_orig; ++ } ++ retval = -1; ++out: ++ return retval; ++} ++ ++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb, ++ const struct net_device *indev, ++ const struct net_device *outdev, ++ int (*okfn)(struct sk_buff *)) ++{ ++ return (pskb->imq_flags & IMQ_F_ENQUEUE) ? NF_IMQ_QUEUE : NF_ACCEPT; ++} ++ ++static int imq_close(struct net_device *dev) ++{ ++ netif_stop_queue(dev); ++ return 0; ++} ++ ++static int imq_open(struct net_device *dev) ++{ ++ netif_start_queue(dev); ++ return 0; ++} ++ ++static const struct net_device_ops imq_netdev_ops = { ++ .ndo_open = imq_open, ++ .ndo_stop = imq_close, ++ .ndo_start_xmit = imq_dev_xmit, ++ .ndo_get_stats = imq_get_stats, ++}; ++ ++static void imq_setup(struct net_device *dev) ++{ ++ dev->netdev_ops = &imq_netdev_ops; ++ dev->type = ARPHRD_VOID; ++ dev->mtu = 16000; /* too small? */ ++ dev->tx_queue_len = 11000; /* too big? */ ++ dev->flags = IFF_NOARP; ++ dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | ++ NETIF_F_GSO | NETIF_F_HW_CSUM | ++ NETIF_F_HIGHDMA; ++ dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | ++ IFF_TX_SKB_SHARING); ++} ++ ++static int imq_validate(struct nlattr *tb[], struct nlattr *data[]) ++{ ++ int ret = 0; ++ ++ if (tb[IFLA_ADDRESS]) { ++ if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) { ++ ret = -EINVAL; ++ goto end; ++ } ++ if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) { ++ ret = -EADDRNOTAVAIL; ++ goto end; ++ } ++ } ++ return 0; ++end: ++ printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret); ++ return ret; ++} ++ ++static struct rtnl_link_ops imq_link_ops __read_mostly = { ++ .kind = "imq", ++ .priv_size = 0, ++ .setup = imq_setup, ++ .validate = imq_validate, ++}; ++ ++static const struct nf_queue_handler imq_nfqh = { ++ .name = "imq", ++ .outfn = imq_nf_queue, ++}; ++ ++static int __init imq_init_hooks(void) ++{ ++ int ret; ++ ++ nf_register_queue_imq_handler(&imq_nfqh); ++ ++ ret = nf_register_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ if (ret < 0) ++ nf_unregister_queue_imq_handler(); ++ ++ return ret; ++} ++ ++static int __init imq_init_one(int index) ++{ ++ struct net_device *dev; ++ int ret; ++ ++ dev = alloc_netdev_mq(0, "imq%d", imq_setup, numqueues); ++ if (!dev) ++ return -ENOMEM; ++ ++ ret = dev_alloc_name(dev, dev->name); ++ if (ret < 0) ++ goto fail; ++ ++ dev->rtnl_link_ops = &imq_link_ops; ++ ret = register_netdevice(dev); ++ if (ret < 0) ++ goto fail; ++ ++ return 0; ++fail: ++ free_netdev(dev); ++ return ret; ++} ++ ++static int __init imq_init_devs(void) ++{ ++ int err, i; ++ ++ if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) { ++ printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n", ++ IMQ_MAX_DEVS); ++ return -EINVAL; ++ } ++ ++ if (numqueues < 1 || numqueues > IMQ_MAX_QUEUES) { ++ printk(KERN_ERR "IMQ: numqueues has to be betweed 1 and %u\n", ++ IMQ_MAX_QUEUES); ++ return -EINVAL; ++ } ++ ++ get_random_bytes(&imq_hashrnd, sizeof(imq_hashrnd)); ++ ++ rtnl_lock(); ++ err = __rtnl_link_register(&imq_link_ops); ++ ++ for (i = 0; i < numdevs && !err; i++) ++ err = imq_init_one(i); ++ ++ if (err) { ++ __rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ } ++ rtnl_unlock(); ++ ++ return err; ++} ++ ++static int __init imq_init_module(void) ++{ ++ int err; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK); ++#endif ++ ++ err = imq_init_devs(); ++ if (err) { ++ printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n"); ++ return err; ++ } ++ ++ err = imq_init_hooks(); ++ if (err) { ++ printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n"); ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ return err; ++ } ++ ++ printk(KERN_INFO "IMQ driver loaded successfully. " ++ "(numdevs = %d, numqueues = %d)\n", numdevs, numqueues); ++ ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n"); ++#else ++ printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n"); ++#endif ++#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n"); ++#else ++ printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n"); ++#endif ++ ++ return 0; ++} ++ ++static void __exit imq_unhook(void) ++{ ++ nf_unregister_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ nf_unregister_queue_imq_handler(); ++} ++ ++static void __exit imq_cleanup_devs(void) ++{ ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++} ++ ++static void __exit imq_exit_module(void) ++{ ++ imq_unhook(); ++ imq_cleanup_devs(); ++ printk(KERN_INFO "IMQ driver unloaded successfully.\n"); ++} ++ ++module_init(imq_init_module); ++module_exit(imq_exit_module); ++ ++module_param(numdevs, int, 0); ++module_param(numqueues, int, 0); ++MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will " ++ "be created)"); ++MODULE_PARM_DESC(numqueues, "number of queues per IMQ device"); ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See " ++ "http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS_RTNL_LINK("imq"); ++ +diff -uNr linux-3.2/drivers/net/Kconfig linux-3.2-imq/drivers/net/Kconfig +--- linux-3.2/drivers/net/Kconfig 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/drivers/net/Kconfig 2011-11-04 11:12:52.106390309 +0200 +@@ -90,6 +90,125 @@ + To compile this driver as a module, choose M here: the module + will be called eql. If unsure, say N. + ++config IMQ ++ tristate "IMQ (intermediate queueing device) support" ++ depends on NETDEVICES && NETFILTER ++ ---help--- ++ The IMQ device(s) is used as placeholder for QoS queueing ++ disciplines. Every packet entering/leaving the IP stack can be ++ directed through the IMQ device where it's enqueued/dequeued to the ++ attached qdisc. This allows you to treat network devices as classes ++ and distribute bandwidth among them. Iptables is used to specify ++ through which IMQ device, if any, packets travel. ++ ++ More information at: http://www.linuximq.net/ ++ ++ To compile this driver as a module, choose M here: the module ++ will be called imq. If unsure, say N. ++ ++choice ++ prompt "IMQ behavior (PRE/POSTROUTING)" ++ depends on IMQ ++ default IMQ_BEHAVIOR_AB ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ IMQ can work in any of the following ways: ++ ++ PREROUTING | POSTROUTING ++ -----------------|------------------- ++ #1 After NAT | After NAT ++ #2 After NAT | Before NAT ++ #3 Before NAT | After NAT ++ #4 Before NAT | Before NAT ++ ++ The default behavior is to hook before NAT on PREROUTING ++ and after NAT on POSTROUTING (#3). ++ ++ This settings are specially usefull when trying to use IMQ ++ to shape NATed clients. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AA ++ bool "IMQ AA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AB ++ bool "IMQ AB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BA ++ bool "IMQ BA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BB ++ bool "IMQ BB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++endchoice ++ ++config IMQ_NUM_DEVS ++ int "Number of IMQ devices" ++ range 2 16 ++ depends on IMQ ++ default "16" ++ help ++ This setting defines how many IMQ devices will be created. ++ ++ The default value is 16. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ + config NET_FC + bool "Fibre Channel driver support" + depends on SCSI && PCI +diff -uNr linux-3.2/drivers/net/Makefile linux-3.2-imq/drivers/net/Makefile +--- linux-3.2/drivers/net/Makefile 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/drivers/net/Makefile 2011-11-04 11:12:52.106390309 +0200 +@@ -8,6 +8,7 @@ + obj-$(CONFIG_BONDING) += bonding/ + obj-$(CONFIG_DUMMY) += dummy.o + obj-$(CONFIG_EQUALIZER) += eql.o ++obj-$(CONFIG_IMQ) += imq.o + obj-$(CONFIG_IFB) += ifb.o + obj-$(CONFIG_MACVLAN) += macvlan.o + obj-$(CONFIG_MACVTAP) += macvtap.o +diff -uNr linux-3.2/include/linux/imq.h linux-3.2-imq/include/linux/imq.h +--- linux-3.2/include/linux/imq.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/imq.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,13 @@ ++#ifndef _IMQ_H ++#define _IMQ_H ++ ++/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */ ++#define IMQ_F_BITS 5 ++ ++#define IMQ_F_IFMASK 0x0f ++#define IMQ_F_ENQUEUE 0x10 ++ ++#define IMQ_MAX_DEVS (IMQ_F_IFMASK + 1) ++ ++#endif /* _IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/netfilter/xt_IMQ.h linux-3.2-imq/include/linux/netfilter/xt_IMQ.h +--- linux-3.2/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/netfilter/xt_IMQ.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,9 @@ ++#ifndef _XT_IMQ_H ++#define _XT_IMQ_H ++ ++struct xt_imq_info { ++ unsigned int todev; /* target imq device */ ++}; ++ ++#endif /* _XT_IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/netfilter.h linux-3.2-imq/include/linux/netfilter.h +--- linux-3.2/include/linux/netfilter.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/include/linux/netfilter.h 2011-11-04 11:12:52.109723710 +0200 +@@ -22,7 +22,8 @@ + #define NF_QUEUE 3 + #define NF_REPEAT 4 + #define NF_STOP 5 +-#define NF_MAX_VERDICT NF_STOP ++#define NF_IMQ_QUEUE 6 ++#define NF_MAX_VERDICT NF_IMQ_QUEUE + + /* we overload the higher bits for encoding auxiliary data such as the queue + * number or errno values. Not nice, but better than additional function +diff -uNr linux-3.2/include/linux/netfilter_ipv4/ipt_IMQ.h linux-3.2-imq/include/linux/netfilter_ipv4/ipt_IMQ.h +--- linux-3.2/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/netfilter_ipv4/ipt_IMQ.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,10 @@ ++#ifndef _IPT_IMQ_H ++#define _IPT_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include <linux/netfilter/xt_IMQ.h> ++ ++#define ipt_imq_info xt_imq_info ++ ++#endif /* _IPT_IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-3.2-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h +--- linux-3.2/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h 2011-11-04 11:12:52.113057113 +0200 +@@ -0,0 +1,10 @@ ++#ifndef _IP6T_IMQ_H ++#define _IP6T_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include <linux/netfilter/xt_IMQ.h> ++ ++#define ip6t_imq_info xt_imq_info ++ ++#endif /* _IP6T_IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/skbuff.h linux-3.2-imq/include/linux/skbuff.h +--- linux-3.2/include/linux/skbuff.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/include/linux/skbuff.h 2011-11-04 11:12:52.116390515 +0200 +@@ -30,6 +30,9 @@ + #include <linux/dmaengine.h> + #include <linux/hrtimer.h> + #include <linux/dma-mapping.h> ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include <linux/imq.h> ++#endif + + /* Don't change this without changing skb_csum_unnecessary! */ + #define CHECKSUM_NONE 0 +@@ -386,6 +389,9 @@ + * first. This is owned by whoever has the skb queued ATM. + */ + char cb[48] __aligned(8); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ void *cb_next; ++#endif + + unsigned long _skb_refdst; + #ifdef CONFIG_XFRM +@@ -424,6 +430,9 @@ + #ifdef NET_SKBUFF_NF_DEFRAG_NEEDED + struct sk_buff *nfct_reasm; + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ struct nf_queue_entry *nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + struct nf_bridge_info *nf_bridge; + #endif +@@ -449,6 +458,10 @@ + + /* 0/13 bit hole */ + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ __u8 imq_flags:IMQ_F_BITS; ++#endif ++ + #ifdef CONFIG_NET_DMA + dma_cookie_t dma_cookie; + #endif +@@ -535,6 +548,12 @@ + return (struct rtable *)skb_dst(skb); + } + ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern int skb_save_cb(struct sk_buff *skb); ++extern int skb_restore_cb(struct sk_buff *skb); ++#endif ++ + extern void kfree_skb(struct sk_buff *skb); + extern void consume_skb(struct sk_buff *skb); + extern void __kfree_skb(struct sk_buff *skb); +@@ -2368,6 +2387,10 @@ + dst->nfct_reasm = src->nfct_reasm; + nf_conntrack_get_reasm(src->nfct_reasm); + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ dst->imq_flags = src->imq_flags; ++ dst->nf_queue_entry = src->nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + dst->nf_bridge = src->nf_bridge; + nf_bridge_get(src->nf_bridge); +diff -uNr linux-3.2/include/net/netfilter/nf_queue.h linux-3.2-imq/include/net/netfilter/nf_queue.h +--- linux-3.2/include/net/netfilter/nf_queue.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/include/net/netfilter/nf_queue.h 2011-11-04 11:12:52.116390515 +0200 +@@ -30,5 +30,11 @@ + const struct nf_queue_handler *qh); + extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh); + extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); ++extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry); ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh); ++extern void nf_unregister_queue_imq_handler(void); ++#endif + + #endif /* _NF_QUEUE_H */ +diff -uNr linux-3.2/net/core/dev.c linux-3.2-imq/net/core/dev.c +--- linux-3.2/net/core/dev.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/core/dev.c 2011-11-04 11:12:52.119723915 +0200 +@@ -98,6 +98,9 @@ + #include <net/net_namespace.h> + #include <net/sock.h> + #include <linux/rtnetlink.h> ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include <linux/imq.h> ++#endif + #include <linux/proc_fs.h> + #include <linux/seq_file.h> + #include <linux/stat.h> +@@ -2185,7 +2188,12 @@ + if (dev->priv_flags & IFF_XMIT_DST_RELEASE) + skb_dst_drop(skb); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ if (!list_empty(&ptype_all) && ++ !(skb->imq_flags & IMQ_F_ENQUEUE)) ++#else + if (!list_empty(&ptype_all)) ++#endif + dev_queue_xmit_nit(skb, dev); + + skb_orphan_try(skb); +diff -uNr linux-3.2/net/core/skbuff.c linux-3.2-imq/net/core/skbuff.c +--- linux-3.2/net/core/skbuff.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/core/skbuff.c 2011-11-04 11:12:52.123057315 +0200 +@@ -73,6 +73,9 @@ + + static struct kmem_cache *skbuff_head_cache __read_mostly; + static struct kmem_cache *skbuff_fclone_cache __read_mostly; ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static struct kmem_cache *skbuff_cb_store_cache __read_mostly; ++#endif + + static void sock_pipe_buf_release(struct pipe_inode_info *pipe, + struct pipe_buffer *buf) +@@ -92,6 +95,82 @@ + return 1; + } + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++/* Control buffer save/restore for IMQ devices */ ++struct skb_cb_table { ++ char cb[48] __aligned(8); ++ void *cb_next; ++ atomic_t refcnt; ++}; ++ ++static DEFINE_SPINLOCK(skb_cb_store_lock); ++ ++int skb_save_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC); ++ if (!next) ++ return -ENOMEM; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(next->cb, skb->cb, sizeof(skb->cb)); ++ next->cb_next = skb->cb_next; ++ ++ atomic_set(&next->refcnt, 1); ++ ++ skb->cb_next = next; ++ return 0; ++} ++EXPORT_SYMBOL(skb_save_cb); ++ ++int skb_restore_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ if (!skb->cb_next) ++ return 0; ++ ++ next = skb->cb_next; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(skb->cb, next->cb, sizeof(skb->cb)); ++ skb->cb_next = next->cb_next; ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ if (atomic_dec_and_test(&next->refcnt)) ++ kmem_cache_free(skbuff_cb_store_cache, next); ++ ++ spin_unlock(&skb_cb_store_lock); ++ ++ return 0; ++} ++EXPORT_SYMBOL(skb_restore_cb); ++ ++static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old) ++{ ++ struct skb_cb_table *next; ++ struct sk_buff *old; ++ ++ if (!__old->cb_next) { ++ new->cb_next = NULL; ++ return; ++ } ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ old = (struct sk_buff *)__old; ++ ++ next = old->cb_next; ++ atomic_inc(&next->refcnt); ++ new->cb_next = next; ++ ++ spin_unlock(&skb_cb_store_lock); ++} ++#endif + + /* Pipe buffer operations for a socket. */ + static const struct pipe_buf_operations sock_pipe_buf_ops = { +@@ -403,6 +482,26 @@ + WARN_ON(in_irq()); + skb->destructor(skb); + } ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ /* This should not happen. When it does, avoid memleak by restoring ++ the chain of cb-backups. */ ++ while (skb->cb_next != NULL) { ++ if (net_ratelimit()) ++ printk(KERN_WARNING "IMQ: kfree_skb: skb->cb_next: " ++ "%08x\n", (unsigned int)skb->cb_next); ++ ++ skb_restore_cb(skb); ++ } ++ /* This should not happen either, nf_queue_entry is nullified in ++ * imq_dev_xmit(). If we have non-NULL nf_queue_entry then we are ++ * leaking entry pointers, maybe memory. We don't know if this is ++ * pointer to already freed memory, or should this be freed. ++ * If this happens we need to add refcounting, etc for nf_queue_entry. ++ */ ++ if (skb->nf_queue_entry && net_ratelimit()) ++ printk(KERN_WARNING ++ "IMQ: kfree_skb: skb->nf_queue_entry != NULL"); ++#endif + #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) + nf_conntrack_put(skb->nfct); + #endif +@@ -547,6 +646,9 @@ + new->sp = secpath_get(old->sp); + #endif + memcpy(new->cb, old->cb, sizeof(old->cb)); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skb_copy_stored_cb(new, old); ++#endif + new->csum = old->csum; + new->local_df = old->local_df; + new->pkt_type = old->pkt_type; +@@ -2907,6 +3009,13 @@ + 0, + SLAB_HWCACHE_ALIGN|SLAB_PANIC, + NULL); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache", ++ sizeof(struct skb_cb_table), ++ 0, ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC, ++ NULL); ++#endif + } + + /** +diff -uNr linux-3.2/net/ipv6/ip6_output.c linux-3.2-imq/net/ipv6/ip6_output.c +--- linux-3.2/net/ipv6/ip6_output.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/ipv6/ip6_output.c 2011-11-04 11:12:52.123057315 +0200 +@@ -102,9 +102,6 @@ + struct net_device *dev = dst->dev; + struct neighbour *neigh; + +- skb->protocol = htons(ETH_P_IPV6); +- skb->dev = dev; +- + if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { + struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); + +@@ -170,6 +167,11 @@ + return 0; + } + ++ /* IMQ-patch: moved setting skb->dev and skb->protocol from ++ * ip6_finish_output2 to fix crashing at netif_skb_features(). */ ++ skb->protocol = htons(ETH_P_IPV6); ++ skb->dev = dev; ++ + return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev, + ip6_finish_output, + !(IP6CB(skb)->flags & IP6SKB_REROUTED)); +diff -uNr linux-3.2/net/netfilter/core.c linux-3.2-imq/net/netfilter/core.c +--- linux-3.2/net/netfilter/core.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/core.c 2011-11-04 11:12:52.123057315 +0200 +@@ -179,9 +179,11 @@ + ret = NF_DROP_GETERR(verdict); + if (ret == 0) + ret = -EPERM; +- } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) { ++ } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE || ++ (verdict & NF_VERDICT_MASK) == NF_IMQ_QUEUE) { + int err = nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -uNr linux-3.2/net/netfilter/Kconfig linux-3.2-imq/net/netfilter/Kconfig +--- linux-3.2/net/netfilter/Kconfig 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/Kconfig 2011-11-04 11:12:52.123057315 +0200 +@@ -506,6 +506,18 @@ + For more information on the LEDs available on your system, see + Documentation/leds/leds-class.txt + ++config NETFILTER_XT_TARGET_IMQ ++ tristate '"IMQ" target support' ++ depends on NETFILTER_XTABLES ++ depends on IP_NF_MANGLE || IP6_NF_MANGLE ++ select IMQ ++ default m if NETFILTER_ADVANCED=n ++ help ++ This option adds a `IMQ' target which is used to specify if and ++ to which imq device packets should get enqueued/dequeued. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ + config NETFILTER_XT_TARGET_MARK + tristate '"MARK" target support' + depends on NETFILTER_ADVANCED +diff -uNr linux-3.2/net/netfilter/Makefile linux-3.2-imq/net/netfilter/Makefile +--- linux-3.2/net/netfilter/Makefile 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/Makefile 2011-11-04 11:12:52.123057315 +0200 +@@ -56,6 +56,7 @@ + obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o + obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o + obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o ++obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o + obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o +diff -uNr linux-3.2/net/netfilter/nf_internals.h linux-3.2-imq/net/netfilter/nf_internals.h +--- linux-3.2/net/netfilter/nf_internals.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/nf_internals.h 2011-11-04 11:12:52.123057315 +0200 +@@ -29,7 +29,7 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum); ++ unsigned int queuenum, unsigned int queuetype); + extern int __init netfilter_queue_init(void); + + /* nf_log.c */ +diff -uNr linux-3.2/net/netfilter/nf_queue.c linux-3.2-imq/net/netfilter/nf_queue.c +--- linux-3.2/net/netfilter/nf_queue.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/nf_queue.c 2011-11-04 11:12:52.123057315 +0200 +@@ -22,6 +22,26 @@ + + static DEFINE_MUTEX(queue_handler_mutex); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static const struct nf_queue_handler *queue_imq_handler; ++ ++void nf_register_queue_imq_handler(const struct nf_queue_handler *qh) ++{ ++ mutex_lock(&queue_handler_mutex); ++ rcu_assign_pointer(queue_imq_handler, qh); ++ mutex_unlock(&queue_handler_mutex); ++} ++EXPORT_SYMBOL_GPL(nf_register_queue_imq_handler); ++ ++void nf_unregister_queue_imq_handler(void) ++{ ++ mutex_lock(&queue_handler_mutex); ++ rcu_assign_pointer(queue_imq_handler, NULL); ++ mutex_unlock(&queue_handler_mutex); ++} ++EXPORT_SYMBOL_GPL(nf_unregister_queue_imq_handler); ++#endif ++ + /* return EBUSY when somebody else is registered, return EEXIST if the + * same handler is registered, return 0 in case of success. */ + int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh) +@@ -92,7 +112,7 @@ + } + EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers); + +-static void nf_queue_entry_release_refs(struct nf_queue_entry *entry) ++void nf_queue_entry_release_refs(struct nf_queue_entry *entry) + { + /* Release those devices we held, or Alexey will kill me. */ + if (entry->indev) +@@ -112,6 +132,7 @@ + /* Drop reference to owner of hook which queued us. */ + module_put(entry->elem->owner); + } ++EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs); + + /* + * Any packet that leaves via this function must come back +@@ -123,7 +144,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + int status = -ENOENT; + struct nf_queue_entry *entry = NULL; +@@ -137,7 +159,17 @@ + /* QUEUE == DROP if no one is waiting, to be safe. */ + rcu_read_lock(); + +- qh = rcu_dereference(queue_handler[pf]); ++ if (queuetype == NF_IMQ_QUEUE) { ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ qh = rcu_dereference(queue_imq_handler); ++#else ++ BUG(); ++ goto err_unlock; ++#endif ++ } else { ++ qh = rcu_dereference(queue_handler[pf]); ++ } ++ + if (!qh) { + status = -ESRCH; + goto err_unlock; +@@ -209,7 +241,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + struct sk_buff *segs; + int err; +@@ -217,7 +250,7 @@ + + if (!skb_is_gso(skb)) + return __nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- queuenum); ++ queuenum, queuetype); + + switch (pf) { + case NFPROTO_IPV4: +@@ -244,7 +277,7 @@ + segs->next = NULL; + if (err == 0) + err = __nf_queue(segs, elem, pf, hook, indev, +- outdev, okfn, queuenum); ++ outdev, okfn, queuenum, queuetype); + if (err == 0) + queued++; + else +@@ -299,9 +332,11 @@ + local_bh_enable(); + break; + case NF_QUEUE: ++ case NF_IMQ_QUEUE: + err = __nf_queue(skb, elem, entry->pf, entry->hook, + entry->indev, entry->outdev, entry->okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -uNr linux-3.2/net/netfilter/xt_IMQ.c linux-3.2-imq/net/netfilter/xt_IMQ.c +--- linux-3.2/net/netfilter/xt_IMQ.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/net/netfilter/xt_IMQ.c 2011-11-04 11:12:52.123057315 +0200 +@@ -0,0 +1,74 @@ ++/* ++ * This target marks packets to be enqueued to an imq device ++ */ ++#include <linux/module.h> ++#include <linux/skbuff.h> ++#include <linux/netfilter/x_tables.h> ++#include <linux/netfilter/xt_IMQ.h> ++#include <linux/imq.h> ++ ++static unsigned int imq_target(struct sk_buff *pskb, ++ const struct xt_action_param *par) ++{ ++ const struct xt_imq_info *mr = par->targinfo; ++ ++ pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE; ++ ++ return XT_CONTINUE; ++} ++ ++static int imq_checkentry(const struct xt_tgchk_param *par) ++{ ++ struct xt_imq_info *mr = par->targinfo; ++ ++ if (mr->todev > IMQ_MAX_DEVS - 1) { ++ printk(KERN_WARNING ++ "IMQ: invalid device specified, highest is %u\n", ++ IMQ_MAX_DEVS - 1); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static struct xt_target xt_imq_reg[] __read_mostly = { ++ { ++ .name = "IMQ", ++ .family = AF_INET, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++ { ++ .name = "IMQ", ++ .family = AF_INET6, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++}; ++ ++static int __init imq_init(void) ++{ ++ return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++static void __exit imq_fini(void) ++{ ++ xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++module_init(imq_init); ++module_exit(imq_fini); ++ ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. " ++ "See http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("ipt_IMQ"); ++MODULE_ALIAS("ip6t_IMQ"); ++ diff --git a/src/patches/linux-3.2-panda-reboot.patch b/src/patches/linux-3.2-panda-reboot.patch new file mode 100644 index 0000000..8e37837 --- /dev/null +++ b/src/patches/linux-3.2-panda-reboot.patch @@ -0,0 +1,29 @@ +With commit 3d3f78d752bf, reboot seems to broken on ARM +machines. CPU dies while doing flush_pmd_entry() as part of +setup_mm_for_reboot() + +I know this is not the fix but intention is to report the +issue and also provide temporary fix till it get fixed correctly + +Signed-off-by: Santosh Shilimkar santosh.shilimkar@xxxxxx +Reported-by: Anand Gadiyar gadiyar@xxxxxx +--- +Tested with OMAP4 device. + + arch/arm/kernel/process.c | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c +index e76fcaa..ac370b2 100644 +--- a/arch/arm/kernel/process.c ++++ b/arch/arm/kernel/process.c +@@ -247,7 +247,6 @@ void machine_power_off(void) + + void machine_restart(char *cmd) + { +- machine_shutdown(); + arm_pm_restart(reboot_mode, cmd); + } + +-- +1.6.0.4 diff --git a/src/patches/linux-3.2.25-arm_kirkwood_setups.patch b/src/patches/linux-3.2.25-arm_kirkwood_setups.patch new file mode 100644 index 0000000..94bbb4b --- /dev/null +++ b/src/patches/linux-3.2.25-arm_kirkwood_setups.patch @@ -0,0 +1,692 @@ +diff -Naur linux-3.2.25.org/arch/arm/Kconfig linux-3.2.25/arch/arm/Kconfig +--- linux-3.2.25.org/arch/arm/Kconfig 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/Kconfig 2012-08-11 04:42:20.985949735 -0400 +@@ -197,7 +197,7 @@ + + config ARM_PATCH_PHYS_VIRT + bool "Patch physical to virtual translations at runtime" if EMBEDDED +- default y ++ default n + depends on !XIP_KERNEL && MMU + depends on !ARCH_REALVIEW || !SPARSEMEM + help +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-3.2.25/arch/arm/mach-kirkwood/dreamplug-setup.c +--- linux-3.2.25.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1969-12-31 19:00:00.000000000 -0500 ++++ linux-3.2.25/arch/arm/mach-kirkwood/dreamplug-setup.c 2012-08-11 10:22:53.242276474 -0400 +@@ -0,0 +1,148 @@ ++/* ++ * arch/arm/mach-kirkwood/dreamplug-setup.c ++ * ++ * Marvell DreamPlug Reference Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/mtd/partitions.h> ++#include <linux/ata_platform.h> ++#include <linux/mv643xx_eth.h> ++#include <linux/gpio.h> ++#include <linux/leds.h> ++#include <linux/spi/flash.h> ++#include <linux/spi/spi.h> ++#include <linux/spi/orion_spi.h> ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <mach/kirkwood.h> ++#include <plat/mvsdio.h> ++#include "common.h" ++#include "mpp.h" ++ ++static const struct flash_platform_data dreamplug_spi_slave_data = { ++ .type = "mx25l1606e", ++}; ++ ++static struct spi_board_info __initdata dreamplug_spi_slave_info[] = { ++ { ++ .modalias = "m25p80", ++ .platform_data = &dreamplug_spi_slave_data, ++ .irq = -1, ++ .max_speed_hz = 50000000, ++ .bus_num = 0, ++ .chip_select = 0, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data dreamplug_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(0), ++}; ++ ++static struct mv643xx_eth_platform_data dreamplug_ge01_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(1), ++}; ++ ++static struct mv_sata_platform_data dreamplug_sata_data = { ++ .n_ports = 1, ++}; ++ ++static struct mvsdio_platform_data dreamplug_mvsdio_data = { ++ /* unfortunately the CD signal has not been connected */ ++}; ++ ++static struct gpio_led dreamplug_led_pins[] = { ++ { ++ .name = "dreamplug:blue:bluetooth", ++ .gpio = 47, ++ .active_low = 1, ++ }, ++ { ++ .name = "dreamplug:green:wlan", ++ .gpio = 48, ++ .active_low = 1, ++ }, ++ { ++ .name = "dreamplug:blue:wlanap", ++ .gpio = 49, ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_led_platform_data dreamplug_led_data = { ++ .leds = dreamplug_led_pins, ++ .num_leds = ARRAY_SIZE(dreamplug_led_pins), ++}; ++ ++static struct platform_device dreamplug_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &dreamplug_led_data, ++ } ++}; ++ ++static unsigned int dreamplug_mpp_config[] __initdata = { ++ MPP0_SPI_SCn, ++ MPP1_SPI_MOSI, ++ MPP2_SPI_SCK, ++ MPP3_SPI_MISO, ++ MPP4_GPIO, ++ MPP5_GPO, ++ MPP7_GPO, ++ MPP18_GPO, ++ MPP19_GPO, ++ MPP47_GPIO, /* B_BLED */ ++ MPP48_GPIO, /* W_GLED */ ++ MPP49_GPIO, /* W_BLED */ ++ 0 ++}; ++ ++static void __init dreamplug_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(dreamplug_mpp_config); ++ ++ kirkwood_uart0_init(); ++ ++ spi_register_board_info(dreamplug_spi_slave_info, ++ ARRAY_SIZE(dreamplug_spi_slave_info)); ++ ++ kirkwood_spi_init(); ++ kirkwood_ehci_init(); ++ ++ kirkwood_ge00_init(&dreamplug_ge00_data); ++ kirkwood_ge01_init(&dreamplug_ge01_data); ++ kirkwood_sata_init(&dreamplug_sata_data); ++ kirkwood_sdio_init(&dreamplug_mvsdio_data); ++ ++ platform_device_register(&dreamplug_leds); ++} ++ ++MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board") ++ /* Maintainer: Siddarth Gore <gores <at> marvell.com> */ ++ .atag_offset = 0x100, ++ .init_machine = dreamplug_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .timer = &kirkwood_timer, ++MACHINE_END ++ ++MACHINE_START(DREAMPLUG1, "Marvell DreamPlug Reference Board") ++ .atag_offset = 0x100, ++ .init_machine = dreamplug_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .timer = &kirkwood_timer, ++MACHINE_END +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-3.2.25/arch/arm/mach-kirkwood/guruplug-setup.c +--- linux-3.2.25.org/arch/arm/mach-kirkwood/guruplug-setup.c 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/mach-kirkwood/guruplug-setup.c 2012-08-05 13:05:22.000000000 -0400 +@@ -11,6 +11,7 @@ + #include <linux/kernel.h> + #include <linux/init.h> + #include <linux/platform_device.h> ++#include <linux/mtd/mtd.h> + #include <linux/mtd/partitions.h> + #include <linux/ata_platform.h> + #include <linux/mv643xx_eth.h> +@@ -27,15 +28,16 @@ + { + .name = "u-boot", + .offset = 0, +- .size = SZ_1M ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ + }, { + .name = "uImage", + .offset = MTDPART_OFS_NXTBLK, +- .size = SZ_4M ++ .size = SZ_4M, + }, { + .name = "root", + .offset = MTDPART_OFS_NXTBLK, +- .size = MTDPART_SIZ_FULL ++ .size = MTDPART_SIZ_FULL, + }, + }; + +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/iconnect-setup.c linux-3.2.25/arch/arm/mach-kirkwood/iconnect-setup.c +--- linux-3.2.25.org/arch/arm/mach-kirkwood/iconnect-setup.c 1969-12-31 19:00:00.000000000 -0500 ++++ linux-3.2.25/arch/arm/mach-kirkwood/iconnect-setup.c 2012-08-11 04:58:00.565660184 -0400 +@@ -0,0 +1,212 @@ ++/* ++ * arch/arm/mach-kirkwood/iconnect-setup.c ++ * ++ * Iomega iConnect Wireless Data Station Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/mtd/mtd.h> ++#include <linux/mtd/partitions.h> ++#include <linux/ata_platform.h> ++#include <linux/mv643xx_eth.h> ++#include <linux/gpio.h> ++#include <linux/gpio_keys.h> ++#include <linux/i2c.h> ++#include <linux/input.h> ++#include <linux/leds.h> ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <mach/kirkwood.h> ++#include "common.h" ++#include "mpp.h" ++ ++static struct mtd_partition iconnect_nand_parts[] = { ++ { ++ .name = "u-boot", ++ .offset = 0, ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ ++ }, { ++ .name = "uImage", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = 0x440000, ++ }, { ++ .name = "uInit", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = 0x440000, ++ }, { ++ .name = "root", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = MTDPART_SIZ_FULL, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data iconnect_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(0xB), ++}; ++ ++static struct gpio_led iconnect_led_pins[] = { ++ { ++ .name = "iconnect:led_level", ++ .default_trigger = "default-on", ++ .gpio = 41, ++ .active_low = 0, ++ }, ++ ++ { ++ .name = "iconnect:blue:power", ++ .default_trigger = "default-on", ++ .gpio = 42, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:red:power", ++ .default_trigger = "none", ++ .gpio = 43, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_1", ++ .default_trigger = "none", ++ .gpio = 44, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_2", ++ .default_trigger = "none", ++ .gpio = 45, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_3", ++ .default_trigger = "none", ++ .gpio = 46, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_4", ++ .default_trigger = "none", ++ .gpio = 47, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:otb", ++ .default_trigger = "none", ++ .gpio = 48, ++ .active_low = 0, ++ }, ++}; ++ ++static struct gpio_led_platform_data iconnect_led_data = { ++ .leds = iconnect_led_pins, ++ .num_leds = ARRAY_SIZE(iconnect_led_pins), ++}; ++ ++static struct platform_device iconnect_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &iconnect_led_data, ++ } ++}; ++ ++static struct gpio_keys_button iconnect_buttons[] = { ++ { ++ .code = KEY_COPY, ++ .gpio = 35, ++ .desc = "OTB Button", ++ .active_low = 1, ++ }, ++ { ++ .code = KEY_RESTART, ++ .gpio = 12, ++ .desc = "Reset", ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_keys_platform_data iconnect_button_data = { ++ .buttons = iconnect_buttons, ++ .nbuttons = ARRAY_SIZE(iconnect_buttons), ++}; ++ ++static struct platform_device iconnect_button_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .num_resources = 0, ++ .dev = { ++ .platform_data = &iconnect_button_data, ++ } ++}; ++ ++static unsigned int iconnect_mpp_config[] __initdata = { ++ MPP0_NF_IO2, ++ MPP1_NF_IO3, ++ MPP2_NF_IO4, ++ MPP3_NF_IO5, ++ MPP4_NF_IO6, ++ MPP5_NF_IO7, ++ MPP18_NF_IO0, ++ MPP19_NF_IO1, ++ MPP12_GPIO, /* Reset Button */ ++ MPP35_GPIO, /* OTB Button */ ++ ++ MPP41_GPIO, /* LED Level */ ++ MPP42_GPIO, /* Power LED blue */ ++ MPP43_GPIO, /* Power LED red */ ++ MPP44_GPIO, /* USB LED 1 */ ++ MPP45_GPIO, /* USB LED 2 */ ++ MPP46_GPIO, /* USB LED 3 */ ++ MPP47_GPIO, /* USB LED 4 */ ++ MPP48_GPIO, /* OTB LED */ ++ 0 ++}; ++ ++static struct i2c_board_info __initdata iconnect_i2c = { ++ I2C_BOARD_INFO("lm63", 0x4c), ++}; ++ ++static void __init iconnect_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(iconnect_mpp_config); ++ ++ kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25); ++ kirkwood_ehci_init(); ++ kirkwood_ge00_init(&iconnect_ge00_data); ++ ++ kirkwood_uart0_init(); ++ platform_device_register(&iconnect_leds); ++ platform_device_register(&iconnect_button_device); ++ ++ kirkwood_i2c_init(); ++ i2c_register_board_info(0, &iconnect_i2c,1); ++} ++ ++static int __init iconnect_pci_init(void) ++{ ++ if (machine_is_iconnect()) { ++ kirkwood_pcie_init(KW_PCIE0); ++ } ++ return 0; ++} ++subsys_initcall(iconnect_pci_init); ++ ++MACHINE_START(ICONNECT, "Iomega iConnect Wireless Data Station") ++ /* Maintainer: Arne Fitzenreiter arne_f@ipfire.org */ ++ .atag_offset = 0x100, ++ .init_machine = iconnect_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .timer = &kirkwood_timer, ++MACHINE_END +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/Kconfig linux-3.2.25/arch/arm/mach-kirkwood/Kconfig +--- linux-3.2.25.org/arch/arm/mach-kirkwood/Kconfig 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/mach-kirkwood/Kconfig 2012-08-05 12:45:22.015253501 -0400 +@@ -44,6 +44,12 @@ + Say 'Y' here if you want your kernel to support the + Marvell GuruPlug Reference Board. + ++config MACH_DREAMPLUG ++ bool "Marvell DreamPlug Reference Board" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Marvell DreamPlug Reference Board. ++ + config MACH_TS219 + bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" + help +@@ -130,6 +136,18 @@ + Say 'Y' here if you want your kernel to support the + HP t5325 Thin Client. + ++config MACH_ICONNECT ++ bool "Iomega iConnect Wireless Data Station" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Iomega iConnect Wireless Data Station. ++ ++config MACH_NAS6210 ++ bool "Raidsonic ICY BOX IB-62x0" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Raidsonic ICY BOX IB-62x0. ++ + endmenu + + endif +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/Makefile linux-3.2.25/arch/arm/mach-kirkwood/Makefile +--- linux-3.2.25.org/arch/arm/mach-kirkwood/Makefile 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/mach-kirkwood/Makefile 2012-08-05 12:46:49.015253501 -0400 +@@ -7,6 +7,7 @@ + obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o + obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o + obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o ++obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o + obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o + obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o + obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o +@@ -18,5 +19,7 @@ + obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o + obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o + obj-$(CONFIG_MACH_T5325) += t5325-setup.o ++obj-$(CONFIG_MACH_ICONNECT) += iconnect-setup.o ++obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o + + obj-$(CONFIG_CPU_IDLE) += cpuidle.o +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/mpp.h linux-3.2.25/arch/arm/mach-kirkwood/mpp.h +--- linux-3.2.25.org/arch/arm/mach-kirkwood/mpp.h 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/mach-kirkwood/mpp.h 2012-08-05 13:08:23.835566001 -0400 +@@ -102,6 +102,7 @@ + #define MPP11_SATA0_ACTn MPP( 11, 0x5, 0, 0, 0, 1, 1, 1, 1 ) + + #define MPP12_GPO MPP( 12, 0x0, 0, 1, 1, 1, 1, 1, 1 ) ++#define MPP12_GPIO MPP( 12, 0x0, 1, 1, 1, 1, 1, 1, 1 ) + #define MPP12_SD_CLK MPP( 12, 0x1, 0, 0, 1, 1, 1, 1, 1 ) + #define MPP12_AU_SPDIF0 MPP( 12, 0xa, 0, 0, 0, 0, 0, 0, 1 ) + #define MPP12_SPI_MOSI MPP( 12, 0xb, 0, 0, 0, 0, 0, 0, 1 ) +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-3.2.25/arch/arm/mach-kirkwood/nas6210-setup.c +--- linux-3.2.25.org/arch/arm/mach-kirkwood/nas6210-setup.c 1969-12-31 19:00:00.000000000 -0500 ++++ linux-3.2.25/arch/arm/mach-kirkwood/nas6210-setup.c 2012-08-11 04:58:35.223186956 -0400 +@@ -0,0 +1,184 @@ ++/* ++ * arch/arm/mach-kirkwood/nas6210-setup.c ++ * ++ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/mtd/mtd.h> ++#include <linux/mtd/partitions.h> ++#include <linux/ata_platform.h> ++#include <linux/mv643xx_eth.h> ++#include <linux/gpio.h> ++#include <linux/gpio_keys.h> ++#include <linux/i2c.h> ++#include <linux/input.h> ++#include <linux/leds.h> ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <mach/kirkwood.h> ++#include "common.h" ++#include "mpp.h" ++ ++#define NAS6210_GPIO_POWER_OFF 24 ++ ++static struct mtd_partition nas6210_nand_parts[] = { ++ { ++ .name = "u-boot", ++ .offset = 0, ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ ++ }, { ++ .name = "uImage", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = (SZ_1M*6), ++ }, { ++ .name = "root", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = MTDPART_SIZ_FULL, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data nas6210_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(8), ++}; ++ ++static struct mv_sata_platform_data nas6210_sata_data = { ++ .n_ports = 2, ++}; ++ ++static struct gpio_led nas6210_led_pins[] = { ++ { ++ .name = "nas6210:green:power", ++ .default_trigger = "default-on", ++ .gpio = 25, ++ .active_low = 0, ++ }, ++ { ++ .name = "nas6210:red:power", ++ .default_trigger = "none", ++ .gpio = 22, ++ .active_low = 0, ++ }, ++ { ++ .name = "nas6210:red:usb_copy", ++ .default_trigger = "none", ++ .gpio = 27, ++ .active_low = 0, ++ }, ++}; ++ ++static struct gpio_led_platform_data nas6210_led_data = { ++ .leds = nas6210_led_pins, ++ .num_leds = ARRAY_SIZE(nas6210_led_pins), ++}; ++ ++static struct platform_device nas6210_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &nas6210_led_data, ++ } ++}; ++ ++static struct gpio_keys_button nas6210_buttons[] = { ++ { ++ .code = KEY_COPY, ++ .gpio = 29, ++ .desc = "USB Copy", ++ .active_low = 1, ++ }, ++ { ++ .code = KEY_RESTART, ++ .gpio = 28, ++ .desc = "Reset", ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_keys_platform_data nas6210_button_data = { ++ .buttons = nas6210_buttons, ++ .nbuttons = ARRAY_SIZE(nas6210_buttons), ++}; ++ ++static struct platform_device nas6210_button_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .num_resources = 0, ++ .dev = { ++ .platform_data = &nas6210_button_data, ++ } ++}; ++ ++static unsigned int nas6210_mpp_config[] __initdata = { ++ MPP0_NF_IO2, ++ MPP1_NF_IO3, ++ MPP2_NF_IO4, ++ MPP3_NF_IO5, ++ MPP4_NF_IO6, ++ MPP5_NF_IO7, ++ MPP18_NF_IO0, ++ MPP19_NF_IO1, ++ MPP22_GPIO, /* Power LED red */ ++ MPP24_GPIO, /* Power off */ ++ MPP25_GPIO, /* Power LED green */ ++ MPP27_GPIO, /* USB transfer LED */ ++ MPP28_GPIO, /* Reset button */ ++ MPP29_GPIO, /* USB Copy button */ ++ 0 ++}; ++ ++void nas6210_power_off(void) ++{ ++ gpio_set_value(NAS6210_GPIO_POWER_OFF, 1); ++ while(1); ++} ++ ++static void __init nas6210_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(nas6210_mpp_config); ++ ++ kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25); ++ kirkwood_ehci_init(); ++ kirkwood_ge00_init(&nas6210_ge00_data); ++ kirkwood_sata_init(&nas6210_sata_data); ++ kirkwood_uart0_init(); ++ platform_device_register(&nas6210_leds); ++ platform_device_register(&nas6210_button_device); ++ ++ if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 && ++ gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0) ++ pm_power_off = nas6210_power_off; ++ ++ else ++ pr_err("nas6210: failed to configure power-off gpio pin"); ++} ++ ++static int __init nas6210_pci_init(void) ++{ ++ if (machine_is_nas6210()) { ++ kirkwood_pcie_init(KW_PCIE0); ++ } ++ return 0; ++} ++subsys_initcall(nas6210_pci_init); ++ ++MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0") ++ /* Maintainer: Arne Fitzenreiter arne_f@ipfire.org */ ++ .atag_offset = 0x00000100, ++ .init_machine = nas6210_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .timer = &kirkwood_timer, ++MACHINE_END +diff -Naur linux-3.2.25.org/arch/arm/tools/mach-types linux-3.2.25/arch/arm/tools/mach-types +--- linux-3.2.25.org/arch/arm/tools/mach-types 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/tools/mach-types 2012-08-11 10:18:52.849620229 -0400 +@@ -448,6 +448,7 @@ + riot_bei2 MACH_RIOT_BEI2 RIOT_BEI2 2576 + riot_x37 MACH_RIOT_X37 RIOT_X37 2578 + pca101 MACH_PCA101 PCA101 2595 ++guruplug MACH_GURUPLUG GURUPLUG 2601 + capc7117 MACH_CAPC7117 CAPC7117 2612 + icontrol MACH_ICONTROL ICONTROL 2624 + gplugd MACH_GPLUGD GPLUGD 2625 +@@ -455,7 +456,7 @@ + mx23evk MACH_MX23EVK MX23EVK 2629 + ap4evb MACH_AP4EVB AP4EVB 2630 + mityomapl138 MACH_MITYOMAPL138 MITYOMAPL138 2650 +-guruplug MACH_GURUPLUG GURUPLUG 2659 ++dreamplug1 MACH_DREAMPLUG1 DREAMPLUG1 2659 + spear310 MACH_SPEAR310 SPEAR310 2660 + spear320 MACH_SPEAR320 SPEAR320 2661 + aquila MACH_AQUILA AQUILA 2676 +@@ -1123,6 +1124,7 @@ + thales_adc MACH_THALES_ADC THALES_ADC 3492 + ubisys_p9d_evp MACH_UBISYS_P9D_EVP UBISYS_P9D_EVP 3493 + atdgp318 MACH_ATDGP318 ATDGP318 3494 ++dreamplug MACH_DREAMPLUG DREAMPLUG 3550 + m28evk MACH_M28EVK M28EVK 3613 + smdk4212 MACH_SMDK4212 SMDK4212 3638 + smdk4412 MACH_SMDK4412 SMDK4412 3765 diff --git a/src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch b/src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch new file mode 100644 index 0000000..f46c57c --- /dev/null +++ b/src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch @@ -0,0 +1,38 @@ +diff -Naur linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile +--- linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile 2012-08-21 05:05:46.000000000 -0400 ++++ linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile 2012-08-21 06:32:23.501695852 -0400 +@@ -30,15 +30,6 @@ + + else + +-ifeq ($(KDIR),) +-$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment) +-endif +- +-ifeq ($(ARCH),) +-$(error Must give "ARCH=<arch>" on command line or in environment. Also, if \ +- cross-compiling, must give "CROSS_COMPILE=/path/to/compiler/plus/tool-prefix-") +-endif +- + ifeq ($(DOXYGEN),) + DOXYGEN := doxygen + endif +diff -Naur linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile.linux linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile.linux +--- linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile.linux 2012-08-21 05:05:46.000000000 -0400 ++++ linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile.linux 2012-08-21 05:22:35.964969680 -0400 +@@ -21,15 +21,6 @@ + + else + +-ifeq ($(KDIR),) +-$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment) +-endif +- +-ifeq ($(ARCH),) +-$(error Must give "ARCH=<arch>" on command line or in environment. Also, if \ +- cross-compiling, must give "CROSS_COMPILE=/path/to/compiler/plus/tool-prefix-") +-endif +- + ifeq ($(DOXYGEN),) + DOXYGEN := doxygen + endif diff --git a/src/patches/linux-3.2.33-ledtrig-netdev-1.patch b/src/patches/linux-3.2.33-ledtrig-netdev-1.patch new file mode 100644 index 0000000..f42ca73 --- /dev/null +++ b/src/patches/linux-3.2.33-ledtrig-netdev-1.patch @@ -0,0 +1,479 @@ +diff -Naur linux-3.2.33.org/drivers/leds/Kconfig linux-3.2.33/drivers/leds/Kconfig +--- linux-3.2.33.org/drivers/leds/Kconfig 2012-10-31 00:27:11.000000000 +0100 ++++ linux-3.2.33/drivers/leds/Kconfig 2012-11-04 12:47:10.661589825 +0100 +@@ -457,4 +457,11 @@ + comment "iptables trigger is under Netfilter config (LED target)" + depends on LEDS_TRIGGERS + ++config LEDS_TRIGGER_NETDEV ++ tristate "LED Netdev Trigger" ++ depends on LEDS_TRIGGERS ++ help ++ This allows LEDs to be controlled by network device activity. ++ If unsure, say Y. ++ + endif # NEW_LEDS +diff -Naur linux-3.2.33.org/drivers/leds/ledtrig-netdev.c linux-3.2.33/drivers/leds/ledtrig-netdev.c +--- linux-3.2.33.org/drivers/leds/ledtrig-netdev.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.2.33/drivers/leds/ledtrig-netdev.c 2012-11-04 13:43:51.414865799 +0100 +@@ -0,0 +1,452 @@ ++/* ++ * LED Kernel Netdev Trigger ++ * ++ * Toggles the LED to reflect the link and traffic state of a named net device ++ * ++ * Copyright 2007 Oliver Jowett oliver@opencloud.com ++ * ++ * Derived from ledtrig-timer.c which is: ++ * Copyright 2005-2006 Openedhand Ltd. ++ * Author: Richard Purdie rpurdie@openedhand.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/jiffies.h> ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/list.h> ++#include <linux/spinlock.h> ++#include <linux/device.h> ++#include <linux/sysdev.h> ++#include <linux/netdevice.h> ++#include <linux/timer.h> ++#include <linux/ctype.h> ++#include <linux/leds.h> ++#include <linux/version.h> ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ++#include <net/net_namespace.h> ++#endif ++ ++#include "leds.h" ++ ++/* ++ * Configurable sysfs attributes: ++ * ++ * device_name - network device name to monitor ++ * ++ * interval - duration of LED blink, in milliseconds ++ * ++ * mode - either "none" (LED is off) or a space separated list of one or more of: ++ * link: LED's normal state reflects whether the link is up (has carrier) or not ++ * tx: LED blinks on transmitted data ++ * rx: LED blinks on receive data ++ * ++ * Some suggestions: ++ * ++ * Simple link status LED: ++ * $ echo netdev >someled/trigger ++ * $ echo eth0 >someled/device_name ++ * $ echo link >someled/mode ++ * ++ * Ethernet-style link/activity LED: ++ * $ echo netdev >someled/trigger ++ * $ echo eth0 >someled/device_name ++ * $ echo "link tx rx" >someled/mode ++ * ++ * Modem-style tx/rx LEDs: ++ * $ echo netdev >led1/trigger ++ * $ echo ppp0 >led1/device_name ++ * $ echo tx >led1/mode ++ * $ echo netdev >led2/trigger ++ * $ echo ppp0 >led2/device_name ++ * $ echo rx >led2/mode ++ * ++ */ ++ ++#define MODE_LINK 1 ++#define MODE_TX 2 ++#define MODE_RX 4 ++ ++struct led_netdev_data { ++ rwlock_t lock; ++ ++ struct timer_list timer; ++ struct notifier_block notifier; ++ ++ struct led_classdev *led_cdev; ++ struct net_device *net_dev; ++ ++ char device_name[IFNAMSIZ]; ++ unsigned interval; ++ unsigned mode; ++ unsigned link_up; ++ unsigned last_activity; ++}; ++ ++static void set_baseline_state(struct led_netdev_data *trigger_data) ++{ ++ if ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ else ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ ++ if ((trigger_data->mode & (MODE_TX | MODE_RX)) != 0 && trigger_data->link_up) ++ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); ++ else ++ del_timer(&trigger_data->timer); ++} ++ ++static ssize_t led_device_name_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ sprintf(buf, "%s\n", trigger_data->device_name); ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf) + 1; ++} ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++extern struct net init_net; ++#endif ++ ++static ssize_t led_device_name_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ if (size < 0 || size >= IFNAMSIZ) ++ return -EINVAL; ++ ++ write_lock(&trigger_data->lock); ++ ++ strcpy(trigger_data->device_name, buf); ++ if (size > 0 && trigger_data->device_name[size-1] == '\n') ++ trigger_data->device_name[size-1] = 0; ++ ++ if (trigger_data->device_name[0] != 0) { ++ /* check for existing device to update from */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ++ trigger_data->net_dev = dev_get_by_name(&init_net, trigger_data->device_name); ++#else ++ trigger_data->net_dev = dev_get_by_name(trigger_data->device_name); ++#endif ++ if (trigger_data->net_dev != NULL) ++ trigger_data->link_up = (dev_get_flags(trigger_data->net_dev) & IFF_LOWER_UP) != 0; ++ set_baseline_state(trigger_data); /* updates LEDs, may start timers */ ++ } ++ ++ write_unlock(&trigger_data->lock); ++ return size; ++} ++ ++static DEVICE_ATTR(device_name, 0644, led_device_name_show, led_device_name_store); ++ ++static ssize_t led_mode_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ ++ if (trigger_data->mode == 0) { ++ strcpy(buf, "none\n"); ++ } else { ++ if (trigger_data->mode & MODE_LINK) ++ strcat(buf, "link "); ++ if (trigger_data->mode & MODE_TX) ++ strcat(buf, "tx "); ++ if (trigger_data->mode & MODE_RX) ++ strcat(buf, "rx "); ++ strcat(buf, "\n"); ++ } ++ ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf)+1; ++} ++ ++static ssize_t led_mode_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ char copybuf[1024]; ++ int new_mode = -1; ++ char *p, *token; ++ ++ /* take a copy since we don't want to trash the inbound buffer when using strsep */ ++ strncpy(copybuf, buf, sizeof(copybuf)); ++ copybuf[1023] = 0; ++ p = copybuf; ++ ++ while ((token = strsep(&p, " \t\n")) != NULL) { ++ if (!*token) ++ continue; ++ ++ if (new_mode == -1) ++ new_mode = 0; ++ ++ if (!strcmp(token, "none")) ++ new_mode = 0; ++ else if (!strcmp(token, "tx")) ++ new_mode |= MODE_TX; ++ else if (!strcmp(token, "rx")) ++ new_mode |= MODE_RX; ++ else if (!strcmp(token, "link")) ++ new_mode |= MODE_LINK; ++ else ++ return -EINVAL; ++ } ++ ++ if (new_mode == -1) ++ return -EINVAL; ++ ++ write_lock(&trigger_data->lock); ++ trigger_data->mode = new_mode; ++ set_baseline_state(trigger_data); ++ write_unlock(&trigger_data->lock); ++ ++ return size; ++} ++ ++static DEVICE_ATTR(mode, 0644, led_mode_show, led_mode_store); ++ ++static ssize_t led_interval_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ sprintf(buf, "%u\n", jiffies_to_msecs(trigger_data->interval)); ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf) + 1; ++} ++ ++static ssize_t led_interval_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ int ret = -EINVAL; ++ char *after; ++ unsigned long value = simple_strtoul(buf, &after, 10); ++ size_t count = after - buf; ++ ++ if (*after && isspace(*after)) ++ count++; ++ ++ /* impose some basic bounds on the timer interval */ ++ if (count == size && value >= 5 && value <= 10000) { ++ write_lock(&trigger_data->lock); ++ trigger_data->interval = msecs_to_jiffies(value); ++ set_baseline_state(trigger_data); // resets timer ++ write_unlock(&trigger_data->lock); ++ ret = count; ++ } ++ ++ return ret; ++} ++ ++static DEVICE_ATTR(interval, 0644, led_interval_show, led_interval_store); ++ ++static int netdev_trig_notify(struct notifier_block *nb, ++ unsigned long evt, ++ void *dv) ++{ ++ struct net_device *dev = dv; ++ struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier); ++ ++ if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER) ++ return NOTIFY_DONE; ++ ++ write_lock(&trigger_data->lock); ++ ++ if (strcmp(dev->name, trigger_data->device_name)) ++ goto done; ++ ++ if (evt == NETDEV_REGISTER) { ++ if (trigger_data->net_dev != NULL) ++ dev_put(trigger_data->net_dev); ++ dev_hold(dev); ++ trigger_data->net_dev = dev; ++ trigger_data->link_up = 0; ++ goto done; ++ } ++ ++ if (evt == NETDEV_UNREGISTER && trigger_data->net_dev != NULL) { ++ dev_put(trigger_data->net_dev); ++ trigger_data->net_dev = NULL; ++ goto done; ++ } ++ ++ /* UP / DOWN / CHANGE */ ++ ++ trigger_data->link_up = (evt != NETDEV_DOWN && netif_carrier_ok(dev)); ++ set_baseline_state(trigger_data); ++ ++done: ++ write_unlock(&trigger_data->lock); ++ return NOTIFY_DONE; ++} ++ ++/* here's the real work! */ ++static void netdev_trig_timer(unsigned long arg) ++{ ++ struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg; ++ struct rtnl_link_stats64 *dev_stats; ++ unsigned new_activity; ++ struct rtnl_link_stats64 temp; ++ ++ write_lock(&trigger_data->lock); ++ ++ if (!trigger_data->link_up || !trigger_data->net_dev || (trigger_data->mode & (MODE_TX | MODE_RX)) == 0) { ++ /* we don't need to do timer work, just reflect link state. */ ++ led_set_brightness(trigger_data->led_cdev, ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ? LED_FULL : LED_OFF); ++ goto no_restart; ++ } ++ ++ dev_stats = dev_get_stats(trigger_data->net_dev, &temp); ++ new_activity = ++ ((trigger_data->mode & MODE_TX) ? dev_stats->tx_packets : 0) + ++ ((trigger_data->mode & MODE_RX) ? dev_stats->rx_packets : 0); ++ ++ if (trigger_data->mode & MODE_LINK) { ++ /* base state is ON (link present) */ ++ /* if there's no link, we don't get this far and the LED is off */ ++ ++ /* OFF -> ON always */ ++ /* ON -> OFF on activity */ ++ if (trigger_data->led_cdev->brightness == LED_OFF) { ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ } else if (trigger_data->last_activity != new_activity) { ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ } ++ } else { ++ /* base state is OFF */ ++ /* ON -> OFF always */ ++ /* OFF -> ON on activity */ ++ if (trigger_data->led_cdev->brightness == LED_FULL) { ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ } else if (trigger_data->last_activity != new_activity) { ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ } ++ } ++ ++ trigger_data->last_activity = new_activity; ++ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); ++ ++no_restart: ++ write_unlock(&trigger_data->lock); ++} ++ ++static void netdev_trig_activate(struct led_classdev *led_cdev) ++{ ++ struct led_netdev_data *trigger_data; ++ int rc; ++ ++ trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL); ++ if (!trigger_data) ++ return; ++ ++ rwlock_init(&trigger_data->lock); ++ ++ trigger_data->notifier.notifier_call = netdev_trig_notify; ++ trigger_data->notifier.priority = 10; ++ ++ setup_timer(&trigger_data->timer, netdev_trig_timer, (unsigned long) trigger_data); ++ ++ trigger_data->led_cdev = led_cdev; ++ trigger_data->net_dev = NULL; ++ trigger_data->device_name[0] = 0; ++ ++ trigger_data->mode = 0; ++ trigger_data->interval = msecs_to_jiffies(50); ++ trigger_data->link_up = 0; ++ trigger_data->last_activity = 0; ++ ++ led_cdev->trigger_data = trigger_data; ++ ++ rc = device_create_file(led_cdev->dev, &dev_attr_device_name); ++ if (rc) ++ goto err_out; ++ rc = device_create_file(led_cdev->dev, &dev_attr_mode); ++ if (rc) ++ goto err_out_device_name; ++ rc = device_create_file(led_cdev->dev, &dev_attr_interval); ++ if (rc) ++ goto err_out_mode; ++ ++ register_netdevice_notifier(&trigger_data->notifier); ++ return; ++ ++err_out_mode: ++ device_remove_file(led_cdev->dev, &dev_attr_mode); ++err_out_device_name: ++ device_remove_file(led_cdev->dev, &dev_attr_device_name); ++err_out: ++ led_cdev->trigger_data = NULL; ++ kfree(trigger_data); ++} ++ ++static void netdev_trig_deactivate(struct led_classdev *led_cdev) ++{ ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ if (trigger_data) { ++ unregister_netdevice_notifier(&trigger_data->notifier); ++ ++ device_remove_file(led_cdev->dev, &dev_attr_device_name); ++ device_remove_file(led_cdev->dev, &dev_attr_mode); ++ device_remove_file(led_cdev->dev, &dev_attr_interval); ++ ++ write_lock(&trigger_data->lock); ++ ++ if (trigger_data->net_dev) { ++ dev_put(trigger_data->net_dev); ++ trigger_data->net_dev = NULL; ++ } ++ ++ write_unlock(&trigger_data->lock); ++ ++ del_timer_sync(&trigger_data->timer); ++ ++ kfree(trigger_data); ++ } ++} ++ ++static struct led_trigger netdev_led_trigger = { ++ .name = "netdev", ++ .activate = netdev_trig_activate, ++ .deactivate = netdev_trig_deactivate, ++}; ++ ++static int __init netdev_trig_init(void) ++{ ++ return led_trigger_register(&netdev_led_trigger); ++} ++ ++static void __exit netdev_trig_exit(void) ++{ ++ led_trigger_unregister(&netdev_led_trigger); ++} ++ ++module_init(netdev_trig_init); ++module_exit(netdev_trig_exit); ++ ++MODULE_AUTHOR("Oliver Jowett oliver@opencloud.com"); ++MODULE_DESCRIPTION("Netdev LED trigger"); ++MODULE_LICENSE("GPL"); +diff -Naur linux-3.2.33.org/drivers/leds/Makefile linux-3.2.33/drivers/leds/Makefile +--- linux-3.2.33.org/drivers/leds/Makefile 2012-10-31 00:27:11.000000000 +0100 ++++ linux-3.2.33/drivers/leds/Makefile 2012-11-04 12:47:10.661589825 +0100 +@@ -54,3 +54,4 @@ + obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += ledtrig-backlight.o + obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o + obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o ++obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o diff --git a/src/patches/linux-3.2.33_ipg-fix-driver-name.patch b/src/patches/linux-3.2.33_ipg-fix-driver-name.patch new file mode 100644 index 0000000..95e6107 --- /dev/null +++ b/src/patches/linux-3.2.33_ipg-fix-driver-name.patch @@ -0,0 +1,15 @@ +Patch by Arne Fitzenreiter arne_f@ipfire.org +Fix PHYSDEVDRIVER from "Sundance IPG ..." to the modulname (ipg) + +diff -Naur linux-3.2.33.org/drivers/net/ethernet/icplus/ipg.c linux-3.2.33/drivers/net/ethernet/icplus/ipg.c +--- linux-3.2.33.org/drivers/net/ethernet/icplus/ipg.c 2012-10-31 00:27:11.000000000 +0100 ++++ linux-3.2.33/drivers/net/ethernet/icplus/ipg.c 2012-11-05 20:02:36.529101528 +0100 +@@ -2304,7 +2304,7 @@ + } + + static struct pci_driver ipg_pci_driver = { +- .name = IPG_DRIVER_NAME, ++ .name = DRV_NAME, + .id_table = ipg_pci_tbl, + .probe = ipg_probe, + .remove = __devexit_p(ipg_remove), diff --git a/src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch b/src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch deleted file mode 100644 index 4acfd8f..0000000 --- a/src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch +++ /dev/null @@ -1,115 +0,0 @@ -Submitted By: Dan Nicholson <dnicholson at linuxfromscratch dot org> -Date: 2006-08-01 -Initial Package Version: 2.6.12.0 -Origin: linux-2.6.16 series, syscalls diffed by Alexander Patrakov -Upstream Status: Project is dead -Description: Adds userspace headers and syscalls for inotify -Testcase: dovecot-1.0rc2, ./configure --with-notify=inotify - -diff -pNur linux-libc-headers-2.6.12.0.orig/include/asm-i386/unistd.h linux-libc-headers-2.6.12.0/include/asm-i386/unistd.h ---- linux-libc-headers-2.6.12.0.orig/include/asm-i386/unistd.h 2005-07-06 00:17:47.000000000 +0000 -+++ linux-libc-headers-2.6.12.0/include/asm-i386/unistd.h 2006-08-01 05:56:42.000000000 +0000 -@@ -294,8 +294,13 @@ - #define __NR_add_key 286 - #define __NR_request_key 287 - #define __NR_keyctl 288 -+/* #define __NR_ioprio_set 289 */ -+/* #define __NR_ioprio_get 290 */ -+#define __NR_inotify_init 291 -+#define __NR_inotify_add_watch 292 -+#define __NR_inotify_rm_watch 293 - --#define NR_syscalls 289 -+#define NR_syscalls 294 - - /* - * user-visible error numbers are in the range -1 - -128: see -diff -pNur linux-libc-headers-2.6.12.0.orig/include/asm-ppc/unistd.h linux-libc-headers-2.6.12.0/include/asm-ppc/unistd.h ---- linux-libc-headers-2.6.12.0.orig/include/asm-ppc/unistd.h 2005-07-06 00:17:23.000000000 +0000 -+++ linux-libc-headers-2.6.12.0/include/asm-ppc/unistd.h 2006-08-01 05:56:42.000000000 +0000 -@@ -277,8 +277,13 @@ - #define __NR_request_key 270 - #define __NR_keyctl 271 - #define __NR_waitid 272 -+/* #define __NR_ioprio_set 273 */ -+/* #define __NR_ioprio_get 274 */ -+#define __NR_inotify_init 275 -+#define __NR_inotify_add_watch 276 -+#define __NR_inotify_rm_watch 277 - --#define __NR_syscalls 273 -+#define __NR_syscalls 278 - - #define __NR(n) #n - -diff -pNur linux-libc-headers-2.6.12.0.orig/include/linux/inotify.h linux-libc-headers-2.6.12.0/include/linux/inotify.h ---- linux-libc-headers-2.6.12.0.orig/include/linux/inotify.h 1970-01-01 00:00:00.000000000 +0000 -+++ linux-libc-headers-2.6.12.0/include/linux/inotify.h 2006-08-01 05:56:42.000000000 +0000 -@@ -0,0 +1,67 @@ -+/* -+ * Inode based directory notification for Linux -+ * -+ * Copyright (C) 2005 John McCutchan -+ */ -+ -+#ifndef _LINUX_INOTIFY_H -+#define _LINUX_INOTIFY_H -+ -+#include <linux/types.h> -+ -+/* -+ * struct inotify_event - structure read from the inotify device for each event -+ * -+ * When you are watching a directory, you will receive the filename for events -+ * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd. -+ */ -+struct inotify_event { -+ __s32 wd; /* watch descriptor */ -+ __u32 mask; /* watch mask */ -+ __u32 cookie; /* cookie to synchronize two events */ -+ __u32 len; /* length (including nulls) of name */ -+ char name[0]; /* stub for possible name */ -+}; -+ -+/* the following are legal, implemented events that user-space can watch for */ -+#define IN_ACCESS 0x00000001 /* File was accessed */ -+#define IN_MODIFY 0x00000002 /* File was modified */ -+#define IN_ATTRIB 0x00000004 /* Metadata changed */ -+#define IN_CLOSE_WRITE 0x00000008 /* Writtable file was closed */ -+#define IN_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed */ -+#define IN_OPEN 0x00000020 /* File was opened */ -+#define IN_MOVED_FROM 0x00000040 /* File was moved from X */ -+#define IN_MOVED_TO 0x00000080 /* File was moved to Y */ -+#define IN_CREATE 0x00000100 /* Subfile was created */ -+#define IN_DELETE 0x00000200 /* Subfile was deleted */ -+#define IN_DELETE_SELF 0x00000400 /* Self was deleted */ -+#define IN_MOVE_SELF 0x00000800 /* Self was moved */ -+ -+/* the following are legal events. they are sent as needed to any watch */ -+#define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted */ -+#define IN_Q_OVERFLOW 0x00004000 /* Event queued overflowed */ -+#define IN_IGNORED 0x00008000 /* File was ignored */ -+ -+/* helper events */ -+#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */ -+#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */ -+ -+/* special flags */ -+#define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */ -+#define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */ -+#define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */ -+#define IN_ISDIR 0x40000000 /* event occurred against dir */ -+#define IN_ONESHOT 0x80000000 /* only send event once */ -+ -+/* -+ * All of the events - we build the list by hand so that we can add flags in -+ * the future and not break backward compatibility. Apps will get only the -+ * events that they originally wanted. Be sure to add new events here! -+ */ -+#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \ -+ IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \ -+ IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \ -+ IN_MOVE_SELF) -+ -+ -+#endif /* _LINUX_INOTIFY_H */ diff --git a/src/patches/mISDN_hfc-s_add_id.patch b/src/patches/mISDN_hfc-s_add_id.patch index d544b1f..724b1f2 100644 --- a/src/patches/mISDN_hfc-s_add_id.patch +++ b/src/patches/mISDN_hfc-s_add_id.patch @@ -1,7 +1,16 @@ diff -Naur mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c mISDN/drivers/isdn/hardware/mISDN/hfcpci.c ---- mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c 2010-05-25 10:41:29.000000000 +0200 -+++ mISDN/drivers/isdn/hardware/mISDN/hfcpci.c 2010-10-31 11:19:05.000000000 +0100 -@@ -88,6 +88,7 @@ +--- mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c 2012-10-08 14:48:40.000000000 +0200 ++++ mISDN/drivers/isdn/hardware/mISDN/hfcpci.c 2012-10-08 17:09:29.527792226 +0200 +@@ -53,6 +53,8 @@ + + #include "hfc_pci.h" + ++#define PCI_VENDOR_ID_0x1AE7 0x1AE7 ++ + static const char *hfcpci_revision = "2.0"; + + static int HFC_cnt; +@@ -90,6 +92,7 @@ HFC_DIGI_DF_M_A, HFC_ABOCOM_2BD1, HFC_SITECOM_DC105V2, @@ -9,20 +18,20 @@ diff -Naur mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c mISDN/drivers/isdn/har };
struct hfcPCI_hw { -@@ -2182,6 +2183,7 @@ +@@ -2161,6 +2164,7 @@ {HFC_DIGI_DF_M_A, 0, - "Digi International DataFire Micro V (North America)"}, + "Digi International DataFire Micro V (North America)"}, {HFC_SITECOM_DC105V2, 0, "Sitecom Connectivity DC-105 ISDN TA"}, + {HFC_NONAME_1AE7_0520, 0, "NoName HFC-S (1AE7:0520) ISDN TA"}, {}, };
-@@ -2233,6 +2235,8 @@ - PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned long) &hfc_map[21]}, - {PCI_VENDOR_ID_SITECOM, PCI_DEVICE_ID_SITECOM_DC105V2, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned long) &hfc_map[22]}, -+ {0x1ae7, 0x0520, -+ PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned long) &hfc_map[23]}, +@@ -2212,6 +2216,8 @@ + (unsigned long) &hfc_map[21] }, + { PCI_VDEVICE(SITECOM, PCI_DEVICE_ID_SITECOM_DC105V2), + (unsigned long) &hfc_map[22] }, ++ { PCI_VDEVICE(0x1AE7, 0x0520), ++ (unsigned long) &hfc_map[23] }, {}, };
diff --git a/src/patches/miniupnpd-iptcrdr.patch b/src/patches/miniupnpd-iptcrdr.patch deleted file mode 100644 index 677043b..0000000 --- a/src/patches/miniupnpd-iptcrdr.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- netfilter/iptcrdr.c.old 2010-02-24 14:22:23.000000000 +0100 -+++ netfilter/iptcrdr.c 2010-02-24 14:48:00.000000000 +0100 -@@ -20,6 +20,13 @@ - - #if IPTABLES_143 - /* IPTABLES API version >= 1.4.3 */ -+ -+#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) -+#define __must_be_array(a) \ -+ BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0]))) -+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) -+#define LIST_POISON2 ((void *) 0x00200200 ) -+ - #include <net/netfilter/nf_nat.h> - #define ip_nat_multi_range nf_nat_multi_range - #define ip_nat_range nf_nat_range diff --git a/src/patches/ncurses-5.5-fixes-1.patch b/src/patches/ncurses-5.5-fixes-1.patch deleted file mode 100644 index 73e084d..0000000 --- a/src/patches/ncurses-5.5-fixes-1.patch +++ /dev/null @@ -1,225 +0,0 @@ -Submitted by: Alexander E. Patrakov -Date: 2005-12-07 -Initial Package Version: 5.5 -Upstream Status: Backport -Origin: Cherry-picked from ftp://invisible-island.net/ncurses/5.5/*.gz -Description: Fixes the following bugs: - -* memory leak in keyname() -* mishandling of overlapped wide characters, http://bugs.debian.org/316663 -* problems with line-drawing characters on cygwin, http://bugs.debian.org/338234 -* mishandling of EINTR in tcgetattr/tcsetattr, http://bugs.debian.org/339518 -* mishandling of single-column multibyte characters, http://bugs.debian.org/341661 - ---- ncurses-5.5-20051015+/ncurses/base/MKkeyname.awk 2005-04-30 19:26:25.000000000 +0000 -+++ ncurses-5.5-20051022/ncurses/base/MKkeyname.awk 2005-10-22 19:01:23.000000000 +0000 -@@ -97,6 +97,7 @@ - print " break;" - print " }" - print " }" -+ print " free(bound);" - print " if (result != 0)" - print " break;" - print " }" ---- ncurses-5.5-20051022+/ncurses/base/lib_addch.c 2005-03-27 16:52:16.000000000 +0000 -+++ ncurses-5.5-20051029/ncurses/base/lib_addch.c 2005-10-30 00:51:36.000000000 +0000 -@@ -315,7 +315,7 @@ - * setup though. - */ - for (i = 0; i < len; ++i) { -- if (isWidecBase(win->_line[y].text[i])) { -+ if (isWidecBase(win->_line[y].text[x + i])) { - break; - } else if (isWidecExt(win->_line[y].text[x + i])) { - for (j = i; x + j <= win->_maxx; ++j) { -@@ -334,7 +334,9 @@ - for (i = 0; i < len; ++i) { - NCURSES_CH_T value = ch; - SetWidecExt(value, i); -- TR(TRACE_VIRTPUT, ("multicolumn %d:%d", i + 1, len)); -+ TR(TRACE_VIRTPUT, ("multicolumn %d:%d (%d,%d)", -+ i + 1, len, -+ win->_begy + y, win->_begx + x)); - line->text[x] = value; - CHANGED_CELL(line, x); - ++x; ---- ncurses-5.5-20051022+/ncurses/base/lib_bkgd.c 2005-04-16 18:03:48.000000000 +0000 -+++ ncurses-5.5-20051029/ncurses/base/lib_bkgd.c 2005-10-30 00:41:09.000000000 +0000 -@@ -131,11 +131,11 @@ - - for (y = 0; y <= win->_maxy; y++) { - for (x = 0; x <= win->_maxx; x++) { -- if (CharEq(win->_line[y].text[x], old_bkgrnd)) -+ if (CharEq(win->_line[y].text[x], old_bkgrnd)) { - win->_line[y].text[x] = win->_nc_bkgd; -- else { -+ } else { - NCURSES_CH_T wch = win->_line[y].text[x]; -- RemAttr(wch, (~A_ALTCHARSET)); -+ RemAttr(wch, (~(A_ALTCHARSET | A_CHARTEXT))); - win->_line[y].text[x] = _nc_render(win, wch); - } - } ---- ncurses-5.5-20051022+/ncurses/base/lib_erase.c 2001-12-19 01:06:13.000000000 +0000 -+++ ncurses-5.5-20051029/ncurses/base/lib_erase.c 2005-10-30 00:36:36.000000000 +0000 -@@ -58,6 +59,24 @@ - start = win->_line[y].text; - end = &start[win->_maxx]; - -+ /* -+ * If this is a derived window, we have to handle the case where -+ * a multicolumn character extends into the window that we are -+ * erasing. -+ */ -+ if_WIDEC({ -+ if (isWidecExt(start[0])) { -+ int x = (win->_parent != 0) ? (win->_begx) : 0; -+ while (x-- > 0) { -+ if (isWidecBase(start[-1])) { -+ --start; -+ break; -+ } -+ --start; -+ } -+ } -+ }); -+ - for (sp = start; sp <= end; sp++) - *sp = blank; - ---- ncurses-5.5-20051029+/misc/terminfo.src 2005-10-26 23:21:06.000000000 +0000 -+++ ncurses-5.5-20051112/misc/terminfo.src 2005-11-12 23:01:03.000000000 +0000 -@@ -4731,32 +4731,35 @@ - # civis [make cursor invisible] causes everything to stackdump? \E[?25l\E[?1c - # ech [erase characters param] broken \E[%p1%dX - # kcbt [back-tab key] not implemented in cygwin? \E[Z -+# -+# 2005/11/12 -TD -+# Remove cbt since it does not work in current cygwin -+# Add 'mir' and 'in' flags based on tack - cygwin|ansi emulation for Cygwin, -- am, hs, in, msgr, xon, -+ am, hs, mir, msgr, xon, - colors#8, it#8, pairs#64, - acsc=+\020,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, -- bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, cr=^M, -- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, -- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, -- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, -- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, -- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, -- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, -- kb2=\E[G, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, -- kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, -- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, -- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, -- kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, -- kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, -- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, -- knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m, -- rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, -- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmpch=\E[10m, -- rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7, -- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, -+ bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, -+ cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, -+ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, -+ cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, -+ dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, home=\E[H, -+ hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@, -+ il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G, -+ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, -+ kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~, -+ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, -+ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, -+ kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, -+ kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, -+ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z, -+ nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, -+ rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, -+ rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, -+ sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, - sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, -- sgr0=\E[0;10m, smacs=\E11m, smcup=\E7\E[?47h, smir=\E[4h, -- smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];, -+ sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h, -+ smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];, - u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\E[c, - vpa=\E[%i%p1%dd, - ---- ncurses-5.5-20051112+/ncurses/tinfo/lib_ttyflags.c 2003-05-17 23:50:37.000000000 +0000 -+++ ncurses-5.5-20051119/ncurses/tinfo/lib_ttyflags.c 2005-11-19 20:36:23.000000000 +0000 -@@ -59,28 +59,51 @@ - NCURSES_EXPORT(int) - _nc_get_tty_mode(TTY * buf) - { -- if (cur_term == 0 -- || GET_TTY(cur_term->Filedes, buf) != 0) { -- memset(buf, 0, sizeof(*buf)); -- return (ERR); -+ int result = OK; -+ -+ if (cur_term == 0) { -+ result = ERR; -+ } else { -+ for (;;) { -+ if (GET_TTY(cur_term->Filedes, buf) != 0) { -+ if (errno == EINTR) -+ continue; -+ result = ERR; -+ } -+ break; -+ } - } -+ -+ if (result == ERR) -+ memset(buf, 0, sizeof(*buf)); -+ - TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s", - cur_term->Filedes, _nc_trace_ttymode(buf))); -- return (OK); -+ return (result); - } - - NCURSES_EXPORT(int) - _nc_set_tty_mode(TTY * buf) - { -- if (cur_term == 0 -- || SET_TTY(cur_term->Filedes, buf) != 0) { -- if ((errno == ENOTTY) && (SP != 0)) -- SP->_notty = TRUE; -- return (ERR); -+ int result = OK; -+ -+ if (cur_term == 0) { -+ result = ERR; -+ } else { -+ for (;;) { -+ if (SET_TTY(cur_term->Filedes, buf) != 0) { -+ if (errno == EINTR) -+ continue; -+ if ((errno == ENOTTY) && (SP != 0)) -+ SP->_notty = TRUE; -+ result = ERR; -+ } -+ break; -+ } - } - TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s", - cur_term->Filedes, _nc_trace_ttymode(buf))); -- return (OK); -+ return (result); - } - - NCURSES_EXPORT(int) ---- ncurses-5.5-20051126+/ncurses/widechar/lib_ins_wch.c 2005-09-17 19:25:13.000000000 +0000 -+++ ncurses-5.5-20051203/ncurses/widechar/lib_ins_wch.c 2005-12-03 20:24:19.000000000 +0000 -@@ -117,7 +117,7 @@ - for (cp = wstr; *cp && ((cp - wstr) < n); cp++) { - int len = wcwidth(*cp); - -- if (len != 1) { -+ if (len != 1 || !is8bits(*cp)) { - cchar_t tmp_cchar; - wchar_t tmp_wchar = *cp; - memset(&tmp_cchar, 0, sizeof(tmp_cchar)); diff --git a/src/patches/netfilter_layer7_2.22_kernel3.0.patch b/src/patches/netfilter_layer7_2.22_kernel3.0.patch new file mode 100644 index 0000000..82d8509 --- /dev/null +++ b/src/patches/netfilter_layer7_2.22_kernel3.0.patch @@ -0,0 +1,2160 @@ +diff -Naur linux-3.0.24.org/include/linux/netfilter/xt_layer7.h linux-3.0.24/include/linux/netfilter/xt_layer7.h +--- linux-3.0.24.org/include/linux/netfilter/xt_layer7.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/include/linux/netfilter/xt_layer7.h 2012-03-15 20:08:48.976050501 +0100 +@@ -0,0 +1,13 @@ ++#ifndef _XT_LAYER7_H ++#define _XT_LAYER7_H ++ ++#define MAX_PATTERN_LEN 8192 ++#define MAX_PROTOCOL_LEN 256 ++ ++struct xt_layer7_info { ++ char protocol[MAX_PROTOCOL_LEN]; ++ char pattern[MAX_PATTERN_LEN]; ++ u_int8_t invert; ++}; ++ ++#endif /* _XT_LAYER7_H */ +diff -Naur linux-3.0.24.org/include/net/netfilter/nf_conntrack.h linux-3.0.24/include/net/netfilter/nf_conntrack.h +--- linux-3.0.24.org/include/net/netfilter/nf_conntrack.h 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/include/net/netfilter/nf_conntrack.h 2012-03-15 20:11:43.806042495 +0100 +@@ -134,6 +134,22 @@ + struct net *ct_net; + #endif + ++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || \ ++ defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ struct { ++ /* ++ * e.g. "http". NULL before decision. "unknown" after decision ++ * if no match. ++ */ ++ char *app_proto; ++ /* ++ * application layer data so far. NULL after match decision. ++ */ ++ char *app_data; ++ unsigned int app_data_len; ++ } layer7; ++#endif ++ + /* Storage reserved for other modules, must be the last member */ + union nf_conntrack_proto proto; + }; +diff -Naur linux-3.0.24.org/net/netfilter/Kconfig linux-3.0.24/net/netfilter/Kconfig +--- linux-3.0.24.org/net/netfilter/Kconfig 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/netfilter/Kconfig 2012-03-15 20:46:12.046043918 +0100 +@@ -1020,6 +1020,26 @@ + + To compile it as a module, choose M here. If unsure, say N. + ++config NETFILTER_XT_MATCH_LAYER7 ++ tristate '"layer7" match support' ++ depends on NETFILTER_XTABLES ++ depends on EXPERIMENTAL && (IP_NF_CONNTRACK || NF_CONNTRACK) ++ help ++ Say Y if you want to be able to classify connections (and their ++ packets) based on regular expression matching of their application ++ layer data. This is one way to classify applications such as ++ peer-to-peer filesharing systems that do not always use the same ++ port. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ ++config NETFILTER_XT_MATCH_LAYER7_DEBUG ++ bool 'Layer 7 debugging output' ++ depends on NETFILTER_XT_MATCH_LAYER7 ++ help ++ Say Y to get lots of debugging output. ++ ++ + config NETFILTER_XT_MATCH_STATISTIC + tristate '"statistic" match support' + depends on NETFILTER_ADVANCED +diff -Naur linux-3.0.24.org/net/netfilter/Makefile linux-3.0.24/net/netfilter/Makefile +--- linux-3.0.24.org/net/netfilter/Makefile 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/netfilter/Makefile 2012-03-15 20:08:49.016044445 +0100 +@@ -102,6 +102,7 @@ + obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o + obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o ++obj-$(CONFIG_NETFILTER_XT_MATCH_LAYER7) += xt_layer7.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STATISTIC) += xt_statistic.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STRING) += xt_string.o + obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS) += xt_tcpmss.o +diff -Naur linux-3.0.24.org/net/netfilter/nf_conntrack_core.c linux-3.0.24/net/netfilter/nf_conntrack_core.c +--- linux-3.0.24.org/net/netfilter/nf_conntrack_core.c 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/netfilter/nf_conntrack_core.c 2012-03-15 20:08:49.026044761 +0100 +@@ -213,6 +213,14 @@ + * too. */ + nf_ct_remove_expectations(ct); + ++ #if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ if(ct->layer7.app_proto) ++ kfree(ct->layer7.app_proto); ++ if(ct->layer7.app_data) ++ kfree(ct->layer7.app_data); ++ #endif ++ ++ + /* We overload first tuple to link into unconfirmed list. */ + if (!nf_ct_is_confirmed(ct)) { + BUG_ON(hlist_nulls_unhashed(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode)); +diff -Naur linux-3.0.24.org/net/netfilter/nf_conntrack_standalone.c linux-3.0.24/net/netfilter/nf_conntrack_standalone.c +--- linux-3.0.24.org/net/netfilter/nf_conntrack_standalone.c 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/netfilter/nf_conntrack_standalone.c 2012-03-15 20:08:49.036047262 +0100 +@@ -239,6 +239,12 @@ + if (ct_show_delta_time(s, ct)) + goto release; + ++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ if(ct->layer7.app_proto && ++ seq_printf(s, "l7proto=%s ", ct->layer7.app_proto)) ++ return -ENOSPC; ++#endif ++ + if (seq_printf(s, "use=%u\n", atomic_read(&ct->ct_general.use))) + goto release; + +diff -Naur linux-3.0.24.org/net/netfilter/regexp/regexp.c linux-3.0.24/net/netfilter/regexp/regexp.c +--- linux-3.0.24.org/net/netfilter/regexp/regexp.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/netfilter/regexp/regexp.c 2012-03-15 20:08:49.066043520 +0100 +@@ -0,0 +1,1197 @@ ++/* ++ * regcomp and regexec -- regsub and regerror are elsewhere ++ * @(#)regexp.c 1.3 of 18 April 87 ++ * ++ * Copyright (c) 1986 by University of Toronto. ++ * Written by Henry Spencer. Not derived from licensed software. ++ * ++ * Permission is granted to anyone to use this software for any ++ * purpose on any computer system, and to redistribute it freely, ++ * subject to the following restrictions: ++ * ++ * 1. The author is not responsible for the consequences of use of ++ * this software, no matter how awful, even if they arise ++ * from defects in it. ++ * ++ * 2. The origin of this software must not be misrepresented, either ++ * by explicit claim or by omission. ++ * ++ * 3. Altered versions must be plainly marked as such, and must not ++ * be misrepresented as being the original software. ++ * ++ * Beware that some of this code is subtly aware of the way operator ++ * precedence is structured in regular expressions. Serious changes in ++ * regular-expression syntax might require a total rethink. ++ * ++ * This code was modified by Ethan Sommer to work within the kernel ++ * (it now uses kmalloc etc..) ++ * ++ * Modified slightly by Matthew Strait to use more modern C. ++ */ ++ ++#include "regexp.h" ++#include "regmagic.h" ++ ++/* added by ethan and matt. Lets it work in both kernel and user space. ++(So iptables can use it, for instance.) Yea, it goes both ways... */ ++#if __KERNEL__ ++ #define malloc(foo) kmalloc(foo,GFP_ATOMIC) ++#else ++ #define printk(format,args...) printf(format,##args) ++#endif ++ ++void regerror(char * s) ++{ ++ printk("<3>Regexp: %s\n", s); ++ /* NOTREACHED */ ++} ++ ++/* ++ * The "internal use only" fields in regexp.h are present to pass info from ++ * compile to execute that permits the execute phase to run lots faster on ++ * simple cases. They are: ++ * ++ * regstart char that must begin a match; '\0' if none obvious ++ * reganch is the match anchored (at beginning-of-line only)? ++ * regmust string (pointer into program) that match must include, or NULL ++ * regmlen length of regmust string ++ * ++ * Regstart and reganch permit very fast decisions on suitable starting points ++ * for a match, cutting down the work a lot. Regmust permits fast rejection ++ * of lines that cannot possibly match. The regmust tests are costly enough ++ * that regcomp() supplies a regmust only if the r.e. contains something ++ * potentially expensive (at present, the only such thing detected is * or + ++ * at the start of the r.e., which can involve a lot of backup). Regmlen is ++ * supplied because the test in regexec() needs it and regcomp() is computing ++ * it anyway. ++ */ ++ ++/* ++ * Structure for regexp "program". This is essentially a linear encoding ++ * of a nondeterministic finite-state machine (aka syntax charts or ++ * "railroad normal form" in parsing technology). Each node is an opcode ++ * plus a "next" pointer, possibly plus an operand. "Next" pointers of ++ * all nodes except BRANCH implement concatenation; a "next" pointer with ++ * a BRANCH on both ends of it is connecting two alternatives. (Here we ++ * have one of the subtle syntax dependencies: an individual BRANCH (as ++ * opposed to a collection of them) is never concatenated with anything ++ * because of operator precedence.) The operand of some types of node is ++ * a literal string; for others, it is a node leading into a sub-FSM. In ++ * particular, the operand of a BRANCH node is the first node of the branch. ++ * (NB this is *not* a tree structure: the tail of the branch connects ++ * to the thing following the set of BRANCHes.) The opcodes are: ++ */ ++ ++/* definition number opnd? meaning */ ++#define END 0 /* no End of program. */ ++#define BOL 1 /* no Match "" at beginning of line. */ ++#define EOL 2 /* no Match "" at end of line. */ ++#define ANY 3 /* no Match any one character. */ ++#define ANYOF 4 /* str Match any character in this string. */ ++#define ANYBUT 5 /* str Match any character not in this string. */ ++#define BRANCH 6 /* node Match this alternative, or the next... */ ++#define BACK 7 /* no Match "", "next" ptr points backward. */ ++#define EXACTLY 8 /* str Match this string. */ ++#define NOTHING 9 /* no Match empty string. */ ++#define STAR 10 /* node Match this (simple) thing 0 or more times. */ ++#define PLUS 11 /* node Match this (simple) thing 1 or more times. */ ++#define OPEN 20 /* no Mark this point in input as start of #n. */ ++ /* OPEN+1 is number 1, etc. */ ++#define CLOSE 30 /* no Analogous to OPEN. */ ++ ++/* ++ * Opcode notes: ++ * ++ * BRANCH The set of branches constituting a single choice are hooked ++ * together with their "next" pointers, since precedence prevents ++ * anything being concatenated to any individual branch. The ++ * "next" pointer of the last BRANCH in a choice points to the ++ * thing following the whole choice. This is also where the ++ * final "next" pointer of each individual branch points; each ++ * branch starts with the operand node of a BRANCH node. ++ * ++ * BACK Normal "next" pointers all implicitly point forward; BACK ++ * exists to make loop structures possible. ++ * ++ * STAR,PLUS '?', and complex '*' and '+', are implemented as circular ++ * BRANCH structures using BACK. Simple cases (one character ++ * per match) are implemented with STAR and PLUS for speed ++ * and to minimize recursive plunges. ++ * ++ * OPEN,CLOSE ...are numbered at compile time. ++ */ ++ ++/* ++ * A node is one char of opcode followed by two chars of "next" pointer. ++ * "Next" pointers are stored as two 8-bit pieces, high order first. The ++ * value is a positive offset from the opcode of the node containing it. ++ * An operand, if any, simply follows the node. (Note that much of the ++ * code generation knows about this implicit relationship.) ++ * ++ * Using two bytes for the "next" pointer is vast overkill for most things, ++ * but allows patterns to get big without disasters. ++ */ ++#define OP(p) (*(p)) ++#define NEXT(p) (((*((p)+1)&0377)<<8) + (*((p)+2)&0377)) ++#define OPERAND(p) ((p) + 3) ++ ++/* ++ * See regmagic.h for one further detail of program structure. ++ */ ++ ++ ++/* ++ * Utility definitions. ++ */ ++#ifndef CHARBITS ++#define UCHARAT(p) ((int)*(unsigned char *)(p)) ++#else ++#define UCHARAT(p) ((int)*(p)&CHARBITS) ++#endif ++ ++#define FAIL(m) { regerror(m); return(NULL); } ++#define ISMULT(c) ((c) == '*' || (c) == '+' || (c) == '?') ++#define META "^$.[()|?+*\" ++ ++/* ++ * Flags to be passed up and down. ++ */ ++#define HASWIDTH 01 /* Known never to match null string. */ ++#define SIMPLE 02 /* Simple enough to be STAR/PLUS operand. */ ++#define SPSTART 04 /* Starts with * or +. */ ++#define WORST 0 /* Worst case. */ ++ ++/* ++ * Global work variables for regcomp(). ++ */ ++struct match_globals { ++char *reginput; /* String-input pointer. */ ++char *regbol; /* Beginning of input, for ^ check. */ ++char **regstartp; /* Pointer to startp array. */ ++char **regendp; /* Ditto for endp. */ ++char *regparse; /* Input-scan pointer. */ ++int regnpar; /* () count. */ ++char regdummy; ++char *regcode; /* Code-emit pointer; ®dummy = don't. */ ++long regsize; /* Code size. */ ++}; ++ ++/* ++ * Forward declarations for regcomp()'s friends. ++ */ ++#ifndef STATIC ++#define STATIC static ++#endif ++STATIC char *reg(struct match_globals *g, int paren,int *flagp); ++STATIC char *regbranch(struct match_globals *g, int *flagp); ++STATIC char *regpiece(struct match_globals *g, int *flagp); ++STATIC char *regatom(struct match_globals *g, int *flagp); ++STATIC char *regnode(struct match_globals *g, char op); ++STATIC char *regnext(struct match_globals *g, char *p); ++STATIC void regc(struct match_globals *g, char b); ++STATIC void reginsert(struct match_globals *g, char op, char *opnd); ++STATIC void regtail(struct match_globals *g, char *p, char *val); ++STATIC void regoptail(struct match_globals *g, char *p, char *val); ++ ++ ++__kernel_size_t my_strcspn(const char *s1,const char *s2) ++{ ++ char *scan1; ++ char *scan2; ++ int count; ++ ++ count = 0; ++ for (scan1 = (char *)s1; *scan1 != '\0'; scan1++) { ++ for (scan2 = (char *)s2; *scan2 != '\0';) /* ++ moved down. */ ++ if (*scan1 == *scan2++) ++ return(count); ++ count++; ++ } ++ return(count); ++} ++ ++/* ++ - regcomp - compile a regular expression into internal code ++ * ++ * We can't allocate space until we know how big the compiled form will be, ++ * but we can't compile it (and thus know how big it is) until we've got a ++ * place to put the code. So we cheat: we compile it twice, once with code ++ * generation turned off and size counting turned on, and once "for real". ++ * This also means that we don't allocate space until we are sure that the ++ * thing really will compile successfully, and we never have to move the ++ * code and thus invalidate pointers into it. (Note that it has to be in ++ * one piece because free() must be able to free it all.) ++ * ++ * Beware that the optimization-preparation code in here knows about some ++ * of the structure of the compiled regexp. ++ */ ++regexp * ++regcomp(char *exp,int *patternsize) ++{ ++ register regexp *r; ++ register char *scan; ++ register char *longest; ++ register int len; ++ int flags; ++ struct match_globals g; ++ ++ /* commented out by ethan ++ extern char *malloc(); ++ */ ++ ++ if (exp == NULL) ++ FAIL("NULL argument"); ++ ++ /* First pass: determine size, legality. */ ++ g.regparse = exp; ++ g.regnpar = 1; ++ g.regsize = 0L; ++ g.regcode = &g.regdummy; ++ regc(&g, MAGIC); ++ if (reg(&g, 0, &flags) == NULL) ++ return(NULL); ++ ++ /* Small enough for pointer-storage convention? */ ++ if (g.regsize >= 32767L) /* Probably could be 65535L. */ ++ FAIL("regexp too big"); ++ ++ /* Allocate space. */ ++ *patternsize=sizeof(regexp) + (unsigned)g.regsize; ++ r = (regexp *)malloc(sizeof(regexp) + (unsigned)g.regsize); ++ if (r == NULL) ++ FAIL("out of space"); ++ ++ /* Second pass: emit code. */ ++ g.regparse = exp; ++ g.regnpar = 1; ++ g.regcode = r->program; ++ regc(&g, MAGIC); ++ if (reg(&g, 0, &flags) == NULL) ++ return(NULL); ++ ++ /* Dig out information for optimizations. */ ++ r->regstart = '\0'; /* Worst-case defaults. */ ++ r->reganch = 0; ++ r->regmust = NULL; ++ r->regmlen = 0; ++ scan = r->program+1; /* First BRANCH. */ ++ if (OP(regnext(&g, scan)) == END) { /* Only one top-level choice. */ ++ scan = OPERAND(scan); ++ ++ /* Starting-point info. */ ++ if (OP(scan) == EXACTLY) ++ r->regstart = *OPERAND(scan); ++ else if (OP(scan) == BOL) ++ r->reganch++; ++ ++ /* ++ * If there's something expensive in the r.e., find the ++ * longest literal string that must appear and make it the ++ * regmust. Resolve ties in favor of later strings, since ++ * the regstart check works with the beginning of the r.e. ++ * and avoiding duplication strengthens checking. Not a ++ * strong reason, but sufficient in the absence of others. ++ */ ++ if (flags&SPSTART) { ++ longest = NULL; ++ len = 0; ++ for (; scan != NULL; scan = regnext(&g, scan)) ++ if (OP(scan) == EXACTLY && strlen(OPERAND(scan)) >= len) { ++ longest = OPERAND(scan); ++ len = strlen(OPERAND(scan)); ++ } ++ r->regmust = longest; ++ r->regmlen = len; ++ } ++ } ++ ++ return(r); ++} ++ ++/* ++ - reg - regular expression, i.e. main body or parenthesized thing ++ * ++ * Caller must absorb opening parenthesis. ++ * ++ * Combining parenthesis handling with the base level of regular expression ++ * is a trifle forced, but the need to tie the tails of the branches to what ++ * follows makes it hard to avoid. ++ */ ++static char * ++reg(struct match_globals *g, int paren, int *flagp /* Parenthesized? */ ) ++{ ++ register char *ret; ++ register char *br; ++ register char *ender; ++ register int parno = 0; /* 0 makes gcc happy */ ++ int flags; ++ ++ *flagp = HASWIDTH; /* Tentatively. */ ++ ++ /* Make an OPEN node, if parenthesized. */ ++ if (paren) { ++ if (g->regnpar >= NSUBEXP) ++ FAIL("too many ()"); ++ parno = g->regnpar; ++ g->regnpar++; ++ ret = regnode(g, OPEN+parno); ++ } else ++ ret = NULL; ++ ++ /* Pick up the branches, linking them together. */ ++ br = regbranch(g, &flags); ++ if (br == NULL) ++ return(NULL); ++ if (ret != NULL) ++ regtail(g, ret, br); /* OPEN -> first. */ ++ else ++ ret = br; ++ if (!(flags&HASWIDTH)) ++ *flagp &= ~HASWIDTH; ++ *flagp |= flags&SPSTART; ++ while (*g->regparse == '|') { ++ g->regparse++; ++ br = regbranch(g, &flags); ++ if (br == NULL) ++ return(NULL); ++ regtail(g, ret, br); /* BRANCH -> BRANCH. */ ++ if (!(flags&HASWIDTH)) ++ *flagp &= ~HASWIDTH; ++ *flagp |= flags&SPSTART; ++ } ++ ++ /* Make a closing node, and hook it on the end. */ ++ ender = regnode(g, (paren) ? CLOSE+parno : END); ++ regtail(g, ret, ender); ++ ++ /* Hook the tails of the branches to the closing node. */ ++ for (br = ret; br != NULL; br = regnext(g, br)) ++ regoptail(g, br, ender); ++ ++ /* Check for proper termination. */ ++ if (paren && *g->regparse++ != ')') { ++ FAIL("unmatched ()"); ++ } else if (!paren && *g->regparse != '\0') { ++ if (*g->regparse == ')') { ++ FAIL("unmatched ()"); ++ } else ++ FAIL("junk on end"); /* "Can't happen". */ ++ /* NOTREACHED */ ++ } ++ ++ return(ret); ++} ++ ++/* ++ - regbranch - one alternative of an | operator ++ * ++ * Implements the concatenation operator. ++ */ ++static char * ++regbranch(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ register char *chain; ++ register char *latest; ++ int flags; ++ ++ *flagp = WORST; /* Tentatively. */ ++ ++ ret = regnode(g, BRANCH); ++ chain = NULL; ++ while (*g->regparse != '\0' && *g->regparse != '|' && *g->regparse != ')') { ++ latest = regpiece(g, &flags); ++ if (latest == NULL) ++ return(NULL); ++ *flagp |= flags&HASWIDTH; ++ if (chain == NULL) /* First piece. */ ++ *flagp |= flags&SPSTART; ++ else ++ regtail(g, chain, latest); ++ chain = latest; ++ } ++ if (chain == NULL) /* Loop ran zero times. */ ++ (void) regnode(g, NOTHING); ++ ++ return(ret); ++} ++ ++/* ++ - regpiece - something followed by possible [*+?] ++ * ++ * Note that the branching code sequences used for ? and the general cases ++ * of * and + are somewhat optimized: they use the same NOTHING node as ++ * both the endmarker for their branch list and the body of the last branch. ++ * It might seem that this node could be dispensed with entirely, but the ++ * endmarker role is not redundant. ++ */ ++static char * ++regpiece(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ register char op; ++ register char *next; ++ int flags; ++ ++ ret = regatom(g, &flags); ++ if (ret == NULL) ++ return(NULL); ++ ++ op = *g->regparse; ++ if (!ISMULT(op)) { ++ *flagp = flags; ++ return(ret); ++ } ++ ++ if (!(flags&HASWIDTH) && op != '?') ++ FAIL("*+ operand could be empty"); ++ *flagp = (op != '+') ? (WORST|SPSTART) : (WORST|HASWIDTH); ++ ++ if (op == '*' && (flags&SIMPLE)) ++ reginsert(g, STAR, ret); ++ else if (op == '*') { ++ /* Emit x* as (x&|), where & means "self". */ ++ reginsert(g, BRANCH, ret); /* Either x */ ++ regoptail(g, ret, regnode(g, BACK)); /* and loop */ ++ regoptail(g, ret, ret); /* back */ ++ regtail(g, ret, regnode(g, BRANCH)); /* or */ ++ regtail(g, ret, regnode(g, NOTHING)); /* null. */ ++ } else if (op == '+' && (flags&SIMPLE)) ++ reginsert(g, PLUS, ret); ++ else if (op == '+') { ++ /* Emit x+ as x(&|), where & means "self". */ ++ next = regnode(g, BRANCH); /* Either */ ++ regtail(g, ret, next); ++ regtail(g, regnode(g, BACK), ret); /* loop back */ ++ regtail(g, next, regnode(g, BRANCH)); /* or */ ++ regtail(g, ret, regnode(g, NOTHING)); /* null. */ ++ } else if (op == '?') { ++ /* Emit x? as (x|) */ ++ reginsert(g, BRANCH, ret); /* Either x */ ++ regtail(g, ret, regnode(g, BRANCH)); /* or */ ++ next = regnode(g, NOTHING); /* null. */ ++ regtail(g, ret, next); ++ regoptail(g, ret, next); ++ } ++ g->regparse++; ++ if (ISMULT(*g->regparse)) ++ FAIL("nested *?+"); ++ ++ return(ret); ++} ++ ++/* ++ - regatom - the lowest level ++ * ++ * Optimization: gobbles an entire sequence of ordinary characters so that ++ * it can turn them into a single node, which is smaller to store and ++ * faster to run. Backslashed characters are exceptions, each becoming a ++ * separate node; the code is simpler that way and it's not worth fixing. ++ */ ++static char * ++regatom(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ int flags; ++ ++ *flagp = WORST; /* Tentatively. */ ++ ++ switch (*g->regparse++) { ++ case '^': ++ ret = regnode(g, BOL); ++ break; ++ case '$': ++ ret = regnode(g, EOL); ++ break; ++ case '.': ++ ret = regnode(g, ANY); ++ *flagp |= HASWIDTH|SIMPLE; ++ break; ++ case '[': { ++ register int class; ++ register int classend; ++ ++ if (*g->regparse == '^') { /* Complement of range. */ ++ ret = regnode(g, ANYBUT); ++ g->regparse++; ++ } else ++ ret = regnode(g, ANYOF); ++ if (*g->regparse == ']' || *g->regparse == '-') ++ regc(g, *g->regparse++); ++ while (*g->regparse != '\0' && *g->regparse != ']') { ++ if (*g->regparse == '-') { ++ g->regparse++; ++ if (*g->regparse == ']' || *g->regparse == '\0') ++ regc(g, '-'); ++ else { ++ class = UCHARAT(g->regparse-2)+1; ++ classend = UCHARAT(g->regparse); ++ if (class > classend+1) ++ FAIL("invalid [] range"); ++ for (; class <= classend; class++) ++ regc(g, class); ++ g->regparse++; ++ } ++ } else ++ regc(g, *g->regparse++); ++ } ++ regc(g, '\0'); ++ if (*g->regparse != ']') ++ FAIL("unmatched []"); ++ g->regparse++; ++ *flagp |= HASWIDTH|SIMPLE; ++ } ++ break; ++ case '(': ++ ret = reg(g, 1, &flags); ++ if (ret == NULL) ++ return(NULL); ++ *flagp |= flags&(HASWIDTH|SPSTART); ++ break; ++ case '\0': ++ case '|': ++ case ')': ++ FAIL("internal urp"); /* Supposed to be caught earlier. */ ++ break; ++ case '?': ++ case '+': ++ case '*': ++ FAIL("?+* follows nothing"); ++ break; ++ case '\': ++ if (*g->regparse == '\0') ++ FAIL("trailing \"); ++ ret = regnode(g, EXACTLY); ++ regc(g, *g->regparse++); ++ regc(g, '\0'); ++ *flagp |= HASWIDTH|SIMPLE; ++ break; ++ default: { ++ register int len; ++ register char ender; ++ ++ g->regparse--; ++ len = my_strcspn((const char *)g->regparse, (const char *)META); ++ if (len <= 0) ++ FAIL("internal disaster"); ++ ender = *(g->regparse+len); ++ if (len > 1 && ISMULT(ender)) ++ len--; /* Back off clear of ?+* operand. */ ++ *flagp |= HASWIDTH; ++ if (len == 1) ++ *flagp |= SIMPLE; ++ ret = regnode(g, EXACTLY); ++ while (len > 0) { ++ regc(g, *g->regparse++); ++ len--; ++ } ++ regc(g, '\0'); ++ } ++ break; ++ } ++ ++ return(ret); ++} ++ ++/* ++ - regnode - emit a node ++ */ ++static char * /* Location. */ ++regnode(struct match_globals *g, char op) ++{ ++ register char *ret; ++ register char *ptr; ++ ++ ret = g->regcode; ++ if (ret == &g->regdummy) { ++ g->regsize += 3; ++ return(ret); ++ } ++ ++ ptr = ret; ++ *ptr++ = op; ++ *ptr++ = '\0'; /* Null "next" pointer. */ ++ *ptr++ = '\0'; ++ g->regcode = ptr; ++ ++ return(ret); ++} ++ ++/* ++ - regc - emit (if appropriate) a byte of code ++ */ ++static void ++regc(struct match_globals *g, char b) ++{ ++ if (g->regcode != &g->regdummy) ++ *g->regcode++ = b; ++ else ++ g->regsize++; ++} ++ ++/* ++ - reginsert - insert an operator in front of already-emitted operand ++ * ++ * Means relocating the operand. ++ */ ++static void ++reginsert(struct match_globals *g, char op, char* opnd) ++{ ++ register char *src; ++ register char *dst; ++ register char *place; ++ ++ if (g->regcode == &g->regdummy) { ++ g->regsize += 3; ++ return; ++ } ++ ++ src = g->regcode; ++ g->regcode += 3; ++ dst = g->regcode; ++ while (src > opnd) ++ *--dst = *--src; ++ ++ place = opnd; /* Op node, where operand used to be. */ ++ *place++ = op; ++ *place++ = '\0'; ++ *place++ = '\0'; ++} ++ ++/* ++ - regtail - set the next-pointer at the end of a node chain ++ */ ++static void ++regtail(struct match_globals *g, char *p, char *val) ++{ ++ register char *scan; ++ register char *temp; ++ register int offset; ++ ++ if (p == &g->regdummy) ++ return; ++ ++ /* Find last node. */ ++ scan = p; ++ for (;;) { ++ temp = regnext(g, scan); ++ if (temp == NULL) ++ break; ++ scan = temp; ++ } ++ ++ if (OP(scan) == BACK) ++ offset = scan - val; ++ else ++ offset = val - scan; ++ *(scan+1) = (offset>>8)&0377; ++ *(scan+2) = offset&0377; ++} ++ ++/* ++ - regoptail - regtail on operand of first argument; nop if operandless ++ */ ++static void ++regoptail(struct match_globals *g, char *p, char *val) ++{ ++ /* "Operandless" and "op != BRANCH" are synonymous in practice. */ ++ if (p == NULL || p == &g->regdummy || OP(p) != BRANCH) ++ return; ++ regtail(g, OPERAND(p), val); ++} ++ ++/* ++ * regexec and friends ++ */ ++ ++ ++/* ++ * Forwards. ++ */ ++STATIC int regtry(struct match_globals *g, regexp *prog, char *string); ++STATIC int regmatch(struct match_globals *g, char *prog); ++STATIC int regrepeat(struct match_globals *g, char *p); ++ ++#ifdef DEBUG ++int regnarrate = 0; ++void regdump(); ++STATIC char *regprop(char *op); ++#endif ++ ++/* ++ - regexec - match a regexp against a string ++ */ ++int ++regexec(regexp *prog, char *string) ++{ ++ register char *s; ++ struct match_globals g; ++ ++ /* Be paranoid... */ ++ if (prog == NULL || string == NULL) { ++ printk("<3>Regexp: NULL parameter\n"); ++ return(0); ++ } ++ ++ /* Check validity of program. */ ++ if (UCHARAT(prog->program) != MAGIC) { ++ printk("<3>Regexp: corrupted program\n"); ++ return(0); ++ } ++ ++ /* If there is a "must appear" string, look for it. */ ++ if (prog->regmust != NULL) { ++ s = string; ++ while ((s = strchr(s, prog->regmust[0])) != NULL) { ++ if (strncmp(s, prog->regmust, prog->regmlen) == 0) ++ break; /* Found it. */ ++ s++; ++ } ++ if (s == NULL) /* Not present. */ ++ return(0); ++ } ++ ++ /* Mark beginning of line for ^ . */ ++ g.regbol = string; ++ ++ /* Simplest case: anchored match need be tried only once. */ ++ if (prog->reganch) ++ return(regtry(&g, prog, string)); ++ ++ /* Messy cases: unanchored match. */ ++ s = string; ++ if (prog->regstart != '\0') ++ /* We know what char it must start with. */ ++ while ((s = strchr(s, prog->regstart)) != NULL) { ++ if (regtry(&g, prog, s)) ++ return(1); ++ s++; ++ } ++ else ++ /* We don't -- general case. */ ++ do { ++ if (regtry(&g, prog, s)) ++ return(1); ++ } while (*s++ != '\0'); ++ ++ /* Failure. */ ++ return(0); ++} ++ ++/* ++ - regtry - try match at specific point ++ */ ++static int /* 0 failure, 1 success */ ++regtry(struct match_globals *g, regexp *prog, char *string) ++{ ++ register int i; ++ register char **sp; ++ register char **ep; ++ ++ g->reginput = string; ++ g->regstartp = prog->startp; ++ g->regendp = prog->endp; ++ ++ sp = prog->startp; ++ ep = prog->endp; ++ for (i = NSUBEXP; i > 0; i--) { ++ *sp++ = NULL; ++ *ep++ = NULL; ++ } ++ if (regmatch(g, prog->program + 1)) { ++ prog->startp[0] = string; ++ prog->endp[0] = g->reginput; ++ return(1); ++ } else ++ return(0); ++} ++ ++/* ++ - regmatch - main matching routine ++ * ++ * Conceptually the strategy is simple: check to see whether the current ++ * node matches, call self recursively to see whether the rest matches, ++ * and then act accordingly. In practice we make some effort to avoid ++ * recursion, in particular by going through "ordinary" nodes (that don't ++ * need to know whether the rest of the match failed) by a loop instead of ++ * by recursion. ++ */ ++static int /* 0 failure, 1 success */ ++regmatch(struct match_globals *g, char *prog) ++{ ++ register char *scan = prog; /* Current node. */ ++ char *next; /* Next node. */ ++ ++#ifdef DEBUG ++ if (scan != NULL && regnarrate) ++ fprintf(stderr, "%s(\n", regprop(scan)); ++#endif ++ while (scan != NULL) { ++#ifdef DEBUG ++ if (regnarrate) ++ fprintf(stderr, "%s...\n", regprop(scan)); ++#endif ++ next = regnext(g, scan); ++ ++ switch (OP(scan)) { ++ case BOL: ++ if (g->reginput != g->regbol) ++ return(0); ++ break; ++ case EOL: ++ if (*g->reginput != '\0') ++ return(0); ++ break; ++ case ANY: ++ if (*g->reginput == '\0') ++ return(0); ++ g->reginput++; ++ break; ++ case EXACTLY: { ++ register int len; ++ register char *opnd; ++ ++ opnd = OPERAND(scan); ++ /* Inline the first character, for speed. */ ++ if (*opnd != *g->reginput) ++ return(0); ++ len = strlen(opnd); ++ if (len > 1 && strncmp(opnd, g->reginput, len) != 0) ++ return(0); ++ g->reginput += len; ++ } ++ break; ++ case ANYOF: ++ if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) == NULL) ++ return(0); ++ g->reginput++; ++ break; ++ case ANYBUT: ++ if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) != NULL) ++ return(0); ++ g->reginput++; ++ break; ++ case NOTHING: ++ case BACK: ++ break; ++ case OPEN+1: ++ case OPEN+2: ++ case OPEN+3: ++ case OPEN+4: ++ case OPEN+5: ++ case OPEN+6: ++ case OPEN+7: ++ case OPEN+8: ++ case OPEN+9: { ++ register int no; ++ register char *save; ++ ++ no = OP(scan) - OPEN; ++ save = g->reginput; ++ ++ if (regmatch(g, next)) { ++ /* ++ * Don't set startp if some later ++ * invocation of the same parentheses ++ * already has. ++ */ ++ if (g->regstartp[no] == NULL) ++ g->regstartp[no] = save; ++ return(1); ++ } else ++ return(0); ++ } ++ break; ++ case CLOSE+1: ++ case CLOSE+2: ++ case CLOSE+3: ++ case CLOSE+4: ++ case CLOSE+5: ++ case CLOSE+6: ++ case CLOSE+7: ++ case CLOSE+8: ++ case CLOSE+9: ++ { ++ register int no; ++ register char *save; ++ ++ no = OP(scan) - CLOSE; ++ save = g->reginput; ++ ++ if (regmatch(g, next)) { ++ /* ++ * Don't set endp if some later ++ * invocation of the same parentheses ++ * already has. ++ */ ++ if (g->regendp[no] == NULL) ++ g->regendp[no] = save; ++ return(1); ++ } else ++ return(0); ++ } ++ break; ++ case BRANCH: { ++ register char *save; ++ ++ if (OP(next) != BRANCH) /* No choice. */ ++ next = OPERAND(scan); /* Avoid recursion. */ ++ else { ++ do { ++ save = g->reginput; ++ if (regmatch(g, OPERAND(scan))) ++ return(1); ++ g->reginput = save; ++ scan = regnext(g, scan); ++ } while (scan != NULL && OP(scan) == BRANCH); ++ return(0); ++ /* NOTREACHED */ ++ } ++ } ++ break; ++ case STAR: ++ case PLUS: { ++ register char nextch; ++ register int no; ++ register char *save; ++ register int min; ++ ++ /* ++ * Lookahead to avoid useless match attempts ++ * when we know what character comes next. ++ */ ++ nextch = '\0'; ++ if (OP(next) == EXACTLY) ++ nextch = *OPERAND(next); ++ min = (OP(scan) == STAR) ? 0 : 1; ++ save = g->reginput; ++ no = regrepeat(g, OPERAND(scan)); ++ while (no >= min) { ++ /* If it could work, try it. */ ++ if (nextch == '\0' || *g->reginput == nextch) ++ if (regmatch(g, next)) ++ return(1); ++ /* Couldn't or didn't -- back up. */ ++ no--; ++ g->reginput = save + no; ++ } ++ return(0); ++ } ++ break; ++ case END: ++ return(1); /* Success! */ ++ break; ++ default: ++ printk("<3>Regexp: memory corruption\n"); ++ return(0); ++ break; ++ } ++ ++ scan = next; ++ } ++ ++ /* ++ * We get here only if there's trouble -- normally "case END" is ++ * the terminating point. ++ */ ++ printk("<3>Regexp: corrupted pointers\n"); ++ return(0); ++} ++ ++/* ++ - regrepeat - repeatedly match something simple, report how many ++ */ ++static int ++regrepeat(struct match_globals *g, char *p) ++{ ++ register int count = 0; ++ register char *scan; ++ register char *opnd; ++ ++ scan = g->reginput; ++ opnd = OPERAND(p); ++ switch (OP(p)) { ++ case ANY: ++ count = strlen(scan); ++ scan += count; ++ break; ++ case EXACTLY: ++ while (*opnd == *scan) { ++ count++; ++ scan++; ++ } ++ break; ++ case ANYOF: ++ while (*scan != '\0' && strchr(opnd, *scan) != NULL) { ++ count++; ++ scan++; ++ } ++ break; ++ case ANYBUT: ++ while (*scan != '\0' && strchr(opnd, *scan) == NULL) { ++ count++; ++ scan++; ++ } ++ break; ++ default: /* Oh dear. Called inappropriately. */ ++ printk("<3>Regexp: internal foulup\n"); ++ count = 0; /* Best compromise. */ ++ break; ++ } ++ g->reginput = scan; ++ ++ return(count); ++} ++ ++/* ++ - regnext - dig the "next" pointer out of a node ++ */ ++static char* ++regnext(struct match_globals *g, char *p) ++{ ++ register int offset; ++ ++ if (p == &g->regdummy) ++ return(NULL); ++ ++ offset = NEXT(p); ++ if (offset == 0) ++ return(NULL); ++ ++ if (OP(p) == BACK) ++ return(p-offset); ++ else ++ return(p+offset); ++} ++ ++#ifdef DEBUG ++ ++STATIC char *regprop(); ++ ++/* ++ - regdump - dump a regexp onto stdout in vaguely comprehensible form ++ */ ++void ++regdump(regexp *r) ++{ ++ register char *s; ++ register char op = EXACTLY; /* Arbitrary non-END op. */ ++ register char *next; ++ /* extern char *strchr(); */ ++ ++ ++ s = r->program + 1; ++ while (op != END) { /* While that wasn't END last time... */ ++ op = OP(s); ++ printf("%2d%s", s-r->program, regprop(s)); /* Where, what. */ ++ next = regnext(s); ++ if (next == NULL) /* Next ptr. */ ++ printf("(0)"); ++ else ++ printf("(%d)", (s-r->program)+(next-s)); ++ s += 3; ++ if (op == ANYOF || op == ANYBUT || op == EXACTLY) { ++ /* Literal string, where present. */ ++ while (*s != '\0') { ++ putchar(*s); ++ s++; ++ } ++ s++; ++ } ++ putchar('\n'); ++ } ++ ++ /* Header fields of interest. */ ++ if (r->regstart != '\0') ++ printf("start `%c' ", r->regstart); ++ if (r->reganch) ++ printf("anchored "); ++ if (r->regmust != NULL) ++ printf("must have "%s"", r->regmust); ++ printf("\n"); ++} ++ ++/* ++ - regprop - printable representation of opcode ++ */ ++static char * ++regprop(char *op) ++{ ++#define BUFLEN 50 ++ register char *p; ++ static char buf[BUFLEN]; ++ ++ strcpy(buf, ":"); ++ ++ switch (OP(op)) { ++ case BOL: ++ p = "BOL"; ++ break; ++ case EOL: ++ p = "EOL"; ++ break; ++ case ANY: ++ p = "ANY"; ++ break; ++ case ANYOF: ++ p = "ANYOF"; ++ break; ++ case ANYBUT: ++ p = "ANYBUT"; ++ break; ++ case BRANCH: ++ p = "BRANCH"; ++ break; ++ case EXACTLY: ++ p = "EXACTLY"; ++ break; ++ case NOTHING: ++ p = "NOTHING"; ++ break; ++ case BACK: ++ p = "BACK"; ++ break; ++ case END: ++ p = "END"; ++ break; ++ case OPEN+1: ++ case OPEN+2: ++ case OPEN+3: ++ case OPEN+4: ++ case OPEN+5: ++ case OPEN+6: ++ case OPEN+7: ++ case OPEN+8: ++ case OPEN+9: ++ snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "OPEN%d", OP(op)-OPEN); ++ p = NULL; ++ break; ++ case CLOSE+1: ++ case CLOSE+2: ++ case CLOSE+3: ++ case CLOSE+4: ++ case CLOSE+5: ++ case CLOSE+6: ++ case CLOSE+7: ++ case CLOSE+8: ++ case CLOSE+9: ++ snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "CLOSE%d", OP(op)-CLOSE); ++ p = NULL; ++ break; ++ case STAR: ++ p = "STAR"; ++ break; ++ case PLUS: ++ p = "PLUS"; ++ break; ++ default: ++ printk("<3>Regexp: corrupted opcode\n"); ++ break; ++ } ++ if (p != NULL) ++ strncat(buf, p, BUFLEN-strlen(buf)); ++ return(buf); ++} ++#endif ++ ++ +diff -Naur linux-3.0.24.org/net/netfilter/regexp/regexp.h linux-3.0.24/net/netfilter/regexp/regexp.h +--- linux-3.0.24.org/net/netfilter/regexp/regexp.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/netfilter/regexp/regexp.h 2012-03-15 20:08:49.066043520 +0100 +@@ -0,0 +1,41 @@ ++/* ++ * Definitions etc. for regexp(3) routines. ++ * ++ * Caveat: this is V8 regexp(3) [actually, a reimplementation thereof], ++ * not the System V one. ++ */ ++ ++#ifndef REGEXP_H ++#define REGEXP_H ++ ++ ++/* ++http://www.opensource.apple.com/darwinsource/10.3/expect-1/expect/expect.h , ++which contains a version of this library, says: ++ ++ * ++ * NSUBEXP must be at least 10, and no greater than 117 or the parser ++ * will not work properly. ++ * ++ ++However, it looks rather like this library is limited to 10. If you think ++otherwise, let us know. ++*/ ++ ++#define NSUBEXP 10 ++typedef struct regexp { ++ char *startp[NSUBEXP]; ++ char *endp[NSUBEXP]; ++ char regstart; /* Internal use only. */ ++ char reganch; /* Internal use only. */ ++ char *regmust; /* Internal use only. */ ++ int regmlen; /* Internal use only. */ ++ char program[1]; /* Unwarranted chumminess with compiler. */ ++} regexp; ++ ++regexp * regcomp(char *exp, int *patternsize); ++int regexec(regexp *prog, char *string); ++void regsub(regexp *prog, char *source, char *dest); ++void regerror(char *s); ++ ++#endif +diff -Naur linux-3.0.24.org/net/netfilter/regexp/regmagic.h linux-3.0.24/net/netfilter/regexp/regmagic.h +--- linux-3.0.24.org/net/netfilter/regexp/regmagic.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/netfilter/regexp/regmagic.h 2012-03-15 20:08:49.066043520 +0100 +@@ -0,0 +1,5 @@ ++/* ++ * The first byte of the regexp internal "program" is actually this magic ++ * number; the start node begins in the second byte. ++ */ ++#define MAGIC 0234 +diff -Naur linux-3.0.24.org/net/netfilter/regexp/regsub.c linux-3.0.24/net/netfilter/regexp/regsub.c +--- linux-3.0.24.org/net/netfilter/regexp/regsub.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/netfilter/regexp/regsub.c 2012-03-15 20:08:49.076047746 +0100 +@@ -0,0 +1,95 @@ ++/* ++ * regsub ++ * @(#)regsub.c 1.3 of 2 April 86 ++ * ++ * Copyright (c) 1986 by University of Toronto. ++ * Written by Henry Spencer. Not derived from licensed software. ++ * ++ * Permission is granted to anyone to use this software for any ++ * purpose on any computer system, and to redistribute it freely, ++ * subject to the following restrictions: ++ * ++ * 1. The author is not responsible for the consequences of use of ++ * this software, no matter how awful, even if they arise ++ * from defects in it. ++ * ++ * 2. The origin of this software must not be misrepresented, either ++ * by explicit claim or by omission. ++ * ++ * 3. Altered versions must be plainly marked as such, and must not ++ * be misrepresented as being the original software. ++ * ++ * ++ * This code was modified by Ethan Sommer to work within the kernel ++ * (it now uses kmalloc etc..) ++ * ++ */ ++#include "regexp.h" ++#include "regmagic.h" ++#include <linux/string.h> ++ ++ ++#ifndef CHARBITS ++#define UCHARAT(p) ((int)*(unsigned char *)(p)) ++#else ++#define UCHARAT(p) ((int)*(p)&CHARBITS) ++#endif ++ ++#if 0 ++//void regerror(char * s) ++//{ ++// printk("regexp(3): %s", s); ++// /* NOTREACHED */ ++//} ++#endif ++ ++/* ++ - regsub - perform substitutions after a regexp match ++ */ ++void ++regsub(regexp * prog, char * source, char * dest) ++{ ++ register char *src; ++ register char *dst; ++ register char c; ++ register int no; ++ register int len; ++ ++ /* Not necessary and gcc doesn't like it -MLS */ ++ /*extern char *strncpy();*/ ++ ++ if (prog == NULL || source == NULL || dest == NULL) { ++ regerror("NULL parm to regsub"); ++ return; ++ } ++ if (UCHARAT(prog->program) != MAGIC) { ++ regerror("damaged regexp fed to regsub"); ++ return; ++ } ++ ++ src = source; ++ dst = dest; ++ while ((c = *src++) != '\0') { ++ if (c == '&') ++ no = 0; ++ else if (c == '\' && '0' <= *src && *src <= '9') ++ no = *src++ - '0'; ++ else ++ no = -1; ++ ++ if (no < 0) { /* Ordinary character. */ ++ if (c == '\' && (*src == '\' || *src == '&')) ++ c = *src++; ++ *dst++ = c; ++ } else if (prog->startp[no] != NULL && prog->endp[no] != NULL) { ++ len = prog->endp[no] - prog->startp[no]; ++ (void) strncpy(dst, prog->startp[no], len); ++ dst += len; ++ if (len != 0 && *(dst-1) == '\0') { /* strncpy hit NUL. */ ++ regerror("damaged match string"); ++ return; ++ } ++ } ++ } ++ *dst++ = '\0'; ++} +diff -Naur linux-3.0.24.org/net/netfilter/xt_layer7.c linux-3.0.24/net/netfilter/xt_layer7.c +--- linux-3.0.24.org/net/netfilter/xt_layer7.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/netfilter/xt_layer7.c 2012-03-20 01:44:50.907527097 +0100 +@@ -0,0 +1,684 @@ ++/* ++ Kernel module to match application layer (OSI layer 7) data in connections. ++ ++ http://l7-filter.sf.net ++ ++ (C) 2003-2009 Matthew Strait and Ethan Sommer. ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU General Public License ++ as published by the Free Software Foundation; either version ++ 2 of the License, or (at your option) any later version. ++ http://www.gnu.org/licenses/gpl.txt ++ ++ Based on ipt_string.c (C) 2000 Emmanuel Roger winfield@freegates.be, ++ xt_helper.c (C) 2002 Harald Welte and cls_layer7.c (C) 2003 Matthew Strait, ++ Ethan Sommer, Justin Levandoski. ++*/ ++ ++#include <linux/spinlock.h> ++#include <linux/version.h> ++#include <net/ip.h> ++#include <net/tcp.h> ++#include <linux/module.h> ++#include <linux/skbuff.h> ++#include <linux/netfilter.h> ++#include <net/netfilter/nf_conntrack.h> ++#include <net/netfilter/nf_conntrack_core.h> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++#include <net/netfilter/nf_conntrack_extend.h> ++#include <net/netfilter/nf_conntrack_acct.h> ++#endif ++#include <linux/netfilter/x_tables.h> ++#include <linux/netfilter/xt_layer7.h> ++#include <linux/ctype.h> ++#include <linux/proc_fs.h> ++ ++#include "regexp/regexp.c" ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Matthew Strait quadong@users.sf.net, Ethan Sommer sommere@users.sf.net"); ++MODULE_DESCRIPTION("iptables application layer match module"); ++MODULE_ALIAS("ipt_layer7"); ++MODULE_VERSION("2.22ipfire"); ++ ++static int maxdatalen = 2048; // this is the default ++module_param(maxdatalen, int, 0444); ++MODULE_PARM_DESC(maxdatalen, "maximum bytes of data looked at by l7-filter"); ++#ifdef CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG ++ #define DPRINTK(format,args...) printk(format,##args) ++#else ++ #define DPRINTK(format,args...) ++#endif ++ ++/* Number of packets whose data we look at. ++This can be modified through /proc/net/layer7_numpackets */ ++static int num_packets = 10; ++ ++static struct pattern_cache { ++ char * regex_string; ++ regexp * pattern; ++ struct pattern_cache * next; ++} * first_pattern_cache = NULL; ++ ++DEFINE_SPINLOCK(l7_lock); ++ ++static int total_acct_packets(struct nf_conn *ct) ++{ ++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26) ++ BUG_ON(ct == NULL); ++ return (ct->counters[IP_CT_DIR_ORIGINAL].packets + ct->counters[IP_CT_DIR_REPLY].packets); ++#else ++ struct nf_conn_counter *acct; ++ ++ BUG_ON(ct == NULL); ++ acct = nf_conn_acct_find(ct); ++ if (!acct) ++ return 0; ++ return (acct[IP_CT_DIR_ORIGINAL].packets + acct[IP_CT_DIR_REPLY].packets); ++#endif ++} ++ ++#ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG ++/* Converts an unfriendly string into a friendly one by ++replacing unprintables with periods and all whitespace with " ". */ ++static char * friendly_print(unsigned char * s) ++{ ++ char * f = kmalloc(strlen(s) + 1, GFP_ATOMIC); ++ int i; ++ ++ if(!f) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "friendly_print, bailing.\n"); ++ return NULL; ++ } ++ ++ for(i = 0; i < strlen(s); i++){ ++ if(isprint(s[i]) && s[i] < 128) f[i] = s[i]; ++ else if(isspace(s[i])) f[i] = ' '; ++ else f[i] = '.'; ++ } ++ f[i] = '\0'; ++ return f; ++} ++ ++static char dec2hex(int i) ++{ ++ switch (i) { ++ case 0 ... 9: ++ return (i + '0'); ++ break; ++ case 10 ... 15: ++ return (i - 10 + 'a'); ++ break; ++ default: ++ if (net_ratelimit()) ++ printk("layer7: Problem in dec2hex\n"); ++ return '\0'; ++ } ++} ++ ++static char * hex_print(unsigned char * s) ++{ ++ char * g = kmalloc(strlen(s)*3 + 1, GFP_ATOMIC); ++ int i; ++ ++ if(!g) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in hex_print, " ++ "bailing.\n"); ++ return NULL; ++ } ++ ++ for(i = 0; i < strlen(s); i++) { ++ g[i*3 ] = dec2hex(s[i]/16); ++ g[i*3 + 1] = dec2hex(s[i]%16); ++ g[i*3 + 2] = ' '; ++ } ++ g[i*3] = '\0'; ++ ++ return g; ++} ++#endif // DEBUG ++ ++/* Use instead of regcomp. As we expect to be seeing the same regexps over and ++over again, it make sense to cache the results. */ ++static regexp * compile_and_cache(const char * regex_string, ++ const char * protocol) ++{ ++ struct pattern_cache * node = first_pattern_cache; ++ struct pattern_cache * last_pattern_cache = first_pattern_cache; ++ struct pattern_cache * tmp; ++ unsigned int len; ++ ++ while (node != NULL) { ++ if (!strcmp(node->regex_string, regex_string)) ++ return node->pattern; ++ ++ last_pattern_cache = node;/* points at the last non-NULL node */ ++ node = node->next; ++ } ++ ++ /* If we reach the end of the list, then we have not yet cached ++ the pattern for this regex. Let's do that now. ++ Be paranoid about running out of memory to avoid list corruption. */ ++ tmp = kmalloc(sizeof(struct pattern_cache), GFP_ATOMIC); ++ ++ if(!tmp) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "compile_and_cache, bailing.\n"); ++ return NULL; ++ } ++ ++ tmp->regex_string = kmalloc(strlen(regex_string) + 1, GFP_ATOMIC); ++ tmp->pattern = kmalloc(sizeof(struct regexp), GFP_ATOMIC); ++ tmp->next = NULL; ++ ++ if(!tmp->regex_string || !tmp->pattern) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "compile_and_cache, bailing.\n"); ++ kfree(tmp->regex_string); ++ kfree(tmp->pattern); ++ kfree(tmp); ++ return NULL; ++ } ++ ++ /* Ok. The new node is all ready now. */ ++ node = tmp; ++ ++ if(first_pattern_cache == NULL) /* list is empty */ ++ first_pattern_cache = node; /* make node the beginning */ ++ else ++ last_pattern_cache->next = node; /* attach node to the end */ ++ ++ /* copy the string and compile the regex */ ++ len = strlen(regex_string); ++ DPRINTK("layer7: about to compile this: "%s"\n", regex_string); ++ node->pattern = regcomp((char *)regex_string, &len); ++ if ( !node->pattern ) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: Error compiling regexp " ++ ""%s" (%s)\n", ++ regex_string, protocol); ++ /* pattern is now cached as NULL, so we won't try again. */ ++ } ++ ++ strcpy(node->regex_string, regex_string); ++ return node->pattern; ++} ++ ++static int can_handle(const struct sk_buff *skb) ++{ ++ if(!ip_hdr(skb)) /* not IP */ ++ return 0; ++ if(ip_hdr(skb)->protocol != IPPROTO_TCP && ++ ip_hdr(skb)->protocol != IPPROTO_UDP && ++ ip_hdr(skb)->protocol != IPPROTO_ICMP) ++ return 0; ++ return 1; ++} ++ ++/* Returns offset the into the skb->data that the application data starts */ ++static int app_data_offset(const struct sk_buff *skb) ++{ ++ /* In case we are ported somewhere (ebtables?) where ip_hdr(skb) ++ isn't set, this can be gotten from 4*(skb->data[0] & 0x0f) as well. */ ++ int ip_hl = 4*ip_hdr(skb)->ihl; ++ ++ if( ip_hdr(skb)->protocol == IPPROTO_TCP ) { ++ /* 12 == offset into TCP header for the header length field. ++ Can't get this with skb->h.th->doff because the tcphdr ++ struct doesn't get set when routing (this is confirmed to be ++ true in Netfilter as well as QoS.) */ ++ int tcp_hl = 4*(skb->data[ip_hl + 12] >> 4); ++ ++ return ip_hl + tcp_hl; ++ } else if( ip_hdr(skb)->protocol == IPPROTO_UDP ) { ++ return ip_hl + 8; /* UDP header is always 8 bytes */ ++ } else if( ip_hdr(skb)->protocol == IPPROTO_ICMP ) { ++ return ip_hl + 8; /* ICMP header is 8 bytes */ ++ } else { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: tried to handle unknown " ++ "protocol!\n"); ++ return ip_hl + 8; /* something reasonable */ ++ } ++} ++ ++/* handles whether there's a match when we aren't appending data anymore */ ++static int match_no_append(struct nf_conn * conntrack, ++ struct nf_conn * master_conntrack, ++ enum ip_conntrack_info ctinfo, ++ enum ip_conntrack_info master_ctinfo, ++ const struct xt_layer7_info * info) ++{ ++ /* If we're in here, throw the app data away */ ++ if(master_conntrack->layer7.app_data != NULL) { ++ ++ #ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG ++ if(!master_conntrack->layer7.app_proto) { ++ char * f = ++ friendly_print(master_conntrack->layer7.app_data); ++ char * g = ++ hex_print(master_conntrack->layer7.app_data); ++ DPRINTK("\nl7-filter gave up after %d bytes " ++ "(%d packets):\n%s\n", ++ strlen(f), total_acct_packets(master_conntrack), f); ++ kfree(f); ++ DPRINTK("In hex: %s\n", g); ++ kfree(g); ++ } ++ #endif ++ ++ kfree(master_conntrack->layer7.app_data); ++ master_conntrack->layer7.app_data = NULL; /* don't free again */ ++ } ++ ++ if(master_conntrack->layer7.app_proto){ ++ /* Here child connections set their .app_proto (for /proc) */ ++ if(!conntrack->layer7.app_proto) { ++ conntrack->layer7.app_proto = ++ kmalloc(strlen(master_conntrack->layer7.app_proto)+1, ++ GFP_ATOMIC); ++ if(!conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory " ++ "in match_no_append, " ++ "bailing.\n"); ++ return 1; ++ } ++ strcpy(conntrack->layer7.app_proto, ++ master_conntrack->layer7.app_proto); ++ } ++ ++ return (!strcmp(master_conntrack->layer7.app_proto, ++ info->protocol)); ++ } ++ else { ++ /* If not classified, set to "unknown" to distinguish from ++ connections that are still being tested. */ ++ master_conntrack->layer7.app_proto = ++ kmalloc(strlen("unknown")+1, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match_no_append, bailing.\n"); ++ return 1; ++ } ++ strcpy(master_conntrack->layer7.app_proto, "unknown"); ++ return 0; ++ } ++} ++ ++/* add the new app data to the conntrack. Return number of bytes added. */ ++static int add_data(struct nf_conn * master_conntrack, ++ char * app_data, int appdatalen) ++{ ++ int length = 0, i; ++ int oldlength = master_conntrack->layer7.app_data_len; ++ ++ /* This is a fix for a race condition by Deti Fliegl. However, I'm not ++ clear on whether the race condition exists or whether this really ++ fixes it. I might just be being dense... Anyway, if it's not really ++ a fix, all it does is waste a very small amount of time. */ ++ if(!master_conntrack->layer7.app_data) return 0; ++ ++ /* Strip nulls. Make everything lower case (our regex lib doesn't ++ do case insensitivity). Add it to the end of the current data. */ ++ for(i = 0; i < maxdatalen-oldlength-1 && ++ i < appdatalen; i++) { ++ if(app_data[i] != '\0') { ++ /* the kernel version of tolower mungs 'upper ascii' */ ++ master_conntrack->layer7.app_data[length+oldlength] = ++ isascii(app_data[i])? ++ tolower(app_data[i]) : app_data[i]; ++ length++; ++ } ++ } ++ ++ master_conntrack->layer7.app_data[length+oldlength] = '\0'; ++ master_conntrack->layer7.app_data_len = length + oldlength; ++ ++ return length; ++} ++ ++/* taken from drivers/video/modedb.c */ ++static int my_atoi(const char *s) ++{ ++ int val = 0; ++ ++ for (;; s++) { ++ switch (*s) { ++ case '0'...'9': ++ val = 10*val+(*s-'0'); ++ break; ++ default: ++ return val; ++ } ++ } ++} ++ ++/* write out num_packets to userland. */ ++static int layer7_read_proc(char* page, char ** start, off_t off, int count, ++ int* eof, void * data) ++{ ++ if(num_packets > 99 && net_ratelimit()) ++ printk(KERN_ERR "layer7: NOT REACHED. num_packets too big\n"); ++ ++ page[0] = num_packets/10 + '0'; ++ page[1] = num_packets%10 + '0'; ++ page[2] = '\n'; ++ page[3] = '\0'; ++ ++ *eof=1; ++ ++ return 3; ++} ++ ++/* Read in num_packets from userland */ ++static int layer7_write_proc(struct file* file, const char* buffer, ++ unsigned long count, void *data) ++{ ++ char * foo = kmalloc(count, GFP_ATOMIC); ++ ++ if(!foo){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory, bailing. " ++ "num_packets unchanged.\n"); ++ return count; ++ } ++ ++ if(copy_from_user(foo, buffer, count)) { ++ return -EFAULT; ++ } ++ ++ ++ num_packets = my_atoi(foo); ++ kfree (foo); ++ ++ /* This has an arbitrary limit to make the math easier. I'm lazy. ++ But anyway, 99 is a LOT! If you want more, you're doing it wrong! */ ++ if(num_packets > 99) { ++ printk(KERN_WARNING "layer7: num_packets can't be > 99.\n"); ++ num_packets = 99; ++ } else if(num_packets < 1) { ++ printk(KERN_WARNING "layer7: num_packets can't be < 1.\n"); ++ num_packets = 1; ++ } ++ ++ return count; ++} ++ ++static bool ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++match(const struct sk_buff *skbin, struct xt_action_param *par) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++match(const struct sk_buff *skbin, const struct xt_match_param *par) ++#else ++match(const struct sk_buff *skbin, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ bool *hotdrop) ++#endif ++{ ++ /* sidestep const without getting a compiler warning... */ ++ struct sk_buff * skb = (struct sk_buff *)skbin; ++ ++ const struct xt_layer7_info * info = ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++ par->matchinfo; ++ #else ++ matchinfo; ++ #endif ++ ++ enum ip_conntrack_info master_ctinfo, ctinfo; ++ struct nf_conn *master_conntrack, *conntrack; ++ unsigned char * app_data; ++ unsigned int pattern_result, appdatalen; ++ regexp * comppattern; ++ ++ /* Be paranoid/incompetent - lock the entire match function. */ ++ spin_lock_bh(&l7_lock); ++ ++ if(!can_handle(skb)){ ++ DPRINTK("layer7: This is some protocol I can't handle.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ /* Treat parent & all its children together as one connection, except ++ for the purpose of setting conntrack->layer7.app_proto in the actual ++ connection. This makes /proc/net/ip_conntrack more satisfying. */ ++ if(!(conntrack = nf_ct_get(skb, &ctinfo)) || ++ !(master_conntrack=nf_ct_get(skb,&master_ctinfo))){ ++ DPRINTK("layer7: couldn't get conntrack.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ /* Try to get a master conntrack (and its master etc) for FTP, etc. */ ++ while (master_ct(master_conntrack) != NULL) ++ master_conntrack = master_ct(master_conntrack); ++ ++ /* if we've classified it or seen too many packets */ ++ if(total_acct_packets(master_conntrack) > num_packets || ++ master_conntrack->layer7.app_proto) { ++ ++ pattern_result = match_no_append(conntrack, master_conntrack, ++ ctinfo, master_ctinfo, info); ++ ++ /* skb->cb[0] == seen. Don't do things twice if there are ++ multiple l7 rules. I'm not sure that using cb for this purpose ++ is correct, even though it says "put your private variables ++ there". But it doesn't look like it is being used for anything ++ else in the skbs that make it here. */ ++ skb->cb[0] = 1; /* marking it seen here's probably irrelevant */ ++ ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++ } ++ ++ if(skb_is_nonlinear(skb)){ ++ if(skb_linearize(skb) != 0){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: failed to linearize " ++ "packet, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ } ++ ++ /* now that the skb is linearized, it's safe to set these. */ ++ app_data = skb->data + app_data_offset(skb); ++ appdatalen = skb_tail_pointer(skb) - app_data; ++ ++ /* the return value gets checked later, when we're ready to use it */ ++ comppattern = compile_and_cache(info->pattern, info->protocol); ++ ++ /* On the first packet of a connection, allocate space for app data */ ++ if(total_acct_packets(master_conntrack) == 1 && !skb->cb[0] && ++ !master_conntrack->layer7.app_data){ ++ master_conntrack->layer7.app_data = ++ kmalloc(maxdatalen, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_data){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ master_conntrack->layer7.app_data[0] = '\0'; ++ } ++ ++ /* Can be here, but unallocated, if numpackets is increased near ++ the beginning of a connection */ ++ if(master_conntrack->layer7.app_data == NULL){ ++ spin_unlock_bh(&l7_lock); ++ return info->invert; /* unmatched */ ++ } ++ ++ if(!skb->cb[0]){ ++ int newbytes; ++ newbytes = add_data(master_conntrack, app_data, appdatalen); ++ ++ if(newbytes == 0) { /* didn't add any data */ ++ skb->cb[0] = 1; ++ /* Didn't match before, not going to match now */ ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ } ++ ++ /* If looking for "unknown", then never match. "Unknown" means that ++ we've given up; we're still trying with these packets. */ ++ if(!strcmp(info->protocol, "unknown")) { ++ pattern_result = 0; ++ /* If looking for "unset", then always match. "Unset" means that we ++ haven't yet classified the connection. */ ++ } else if(!strcmp(info->protocol, "unset")) { ++ pattern_result = 2; ++ DPRINTK("layer7: matched unset: not yet classified " ++ "(%d/%d packets)\n", ++ total_acct_packets(master_conntrack), num_packets); ++ /* If the regexp failed to compile, don't bother running it */ ++ } else if(comppattern && ++ regexec(comppattern, master_conntrack->layer7.app_data)){ ++ DPRINTK("layer7: matched %s\n", info->protocol); ++ pattern_result = 1; ++ } else pattern_result = 0; ++ ++ if(pattern_result == 1) { ++ master_conntrack->layer7.app_proto = ++ kmalloc(strlen(info->protocol)+1, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++ } ++ strcpy(master_conntrack->layer7.app_proto, info->protocol); ++ } else if(pattern_result > 1) { /* cleanup from "unset" */ ++ pattern_result = 1; ++ } ++ ++ /* mark the packet seen */ ++ skb->cb[0] = 1; ++ ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++} ++ ++// load nf_conntrack_ipv4 ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++static int ++#else ++static bool ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++check(const struct xt_mtchk_param *par) ++{ ++ if (nf_ct_l3proto_try_module_get(par->match->family) < 0) { ++ printk(KERN_WARNING "can't load conntrack support for " ++ "proto=%d\n", par->match->family); ++#else ++check(const char *tablename, const void *inf, ++ const struct xt_match *match, void *matchinfo, ++ unsigned int hook_mask) ++{ ++ if (nf_ct_l3proto_try_module_get(match->family) < 0) { ++ printk(KERN_WARNING "can't load conntrack support for " ++ "proto=%d\n", match->family); ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++ return -EINVAL; ++ } ++ return 0; ++#else ++ return 0; ++ } ++ return 1; ++#endif ++} ++ ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++ static void destroy(const struct xt_mtdtor_param *par) ++ { ++ nf_ct_l3proto_module_put(par->match->family); ++ } ++#else ++ static void destroy(const struct xt_match *match, void *matchinfo) ++ { ++ nf_ct_l3proto_module_put(match->family); ++ } ++#endif ++ ++static struct xt_match xt_layer7_match[] __read_mostly = { ++{ ++ .name = "layer7", ++ .family = AF_INET, ++ .checkentry = check, ++ .match = match, ++ .destroy = destroy, ++ .matchsize = sizeof(struct xt_layer7_info), ++ .me = THIS_MODULE ++} ++}; ++ ++static void layer7_cleanup_proc(void) ++{ ++ remove_proc_entry("layer7_numpackets", init_net.proc_net); ++} ++ ++/* register the proc file */ ++static void layer7_init_proc(void) ++{ ++ struct proc_dir_entry* entry; ++ entry = create_proc_entry("layer7_numpackets", 0644, init_net.proc_net); ++ entry->read_proc = layer7_read_proc; ++ entry->write_proc = layer7_write_proc; ++} ++ ++static int __init xt_layer7_init(void) ++{ ++ need_conntrack(); ++ ++ if (init_net.ct.sysctl_acct == 0) { ++ printk(KERN_WARNING "layer7: enabling nf_conntrack_acct\n"); ++ init_net.ct.sysctl_acct = 1; ++ } ++ ++ layer7_init_proc(); ++ if(maxdatalen < 1) { ++ printk(KERN_WARNING "layer7: maxdatalen can't be < 1, " ++ "using 1\n"); ++ maxdatalen = 1; ++ } ++ /* This is not a hard limit. It's just here to prevent people from ++ bringing their slow machines to a grinding halt. */ ++ else if(maxdatalen > 65536) { ++ printk(KERN_WARNING "layer7: maxdatalen can't be > 65536, " ++ "using 65536\n"); ++ maxdatalen = 65536; ++ } ++ return xt_register_matches(xt_layer7_match, ++ ARRAY_SIZE(xt_layer7_match)); ++} ++ ++static void __exit xt_layer7_fini(void) ++{ ++ layer7_cleanup_proc(); ++ xt_unregister_matches(xt_layer7_match, ARRAY_SIZE(xt_layer7_match)); ++} ++ ++module_init(xt_layer7_init); ++module_exit(xt_layer7_fini); diff --git a/src/patches/netpbm-10.26.46-getline.patch b/src/patches/netpbm-10.26.46-getline.patch new file mode 100644 index 0000000..c5a961b --- /dev/null +++ b/src/patches/netpbm-10.26.46-getline.patch @@ -0,0 +1,202 @@ +The getline function used in a couple of places in netpbm-free is also +defined by POSIX:2008, and so netpbm-free fails to build with newer +versions of (e)glibc. Here's a patch to rename it. + + * Rename getline functions to get_line to avoid conflict with POSIX:2008. + +--- netpbm-free-10.0.orig/ppm/xvminitoppm.c ++++ netpbm-free-10.0/ppm/xvminitoppm.c +@@ -14,7 +14,7 @@ + #include "ppm.h" + #define BUFSIZE 256 + +-static void getline ARGS((FILE *fp, char *buf)); ++static void get_line ARGS((FILE *fp, char *buf)); + + int + main(argc, argv) +@@ -48,18 +48,18 @@ + i++; + } + +- getline(ifp, buf); ++ get_line(ifp, buf); + if( strncmp(buf, "P7 332", 6) != 0 ) + pm_error("bad magic number - not a XV thumbnail picture"); + + while(1) { +- getline(ifp, buf); ++ get_line(ifp, buf); + if( strncmp(buf, "#END_OF_COMMENTS", 16)==0 ) + break; + if( strncmp(buf, "#BUILTIN", 8)==0 ) + pm_error("cannot convert builtin XV thumbnail pictures"); + } +- getline(ifp, buf); ++ get_line(ifp, buf); + if( sscanf(buf, "%d %d %d", &cols, &rows, &maxval) != 3 ) + pm_error("error parsing dimension info"); + if( maxval != 255 ) +@@ -85,7 +85,7 @@ + + + static void +-getline(fp, buf) ++get_line(fp, buf) + FILE *fp; + char *buf; + { +--- netpbm-free-10.0.orig/ppm/xpmtoppm.c ++++ netpbm-free-10.0/ppm/xpmtoppm.c +@@ -114,7 +114,7 @@ + + + static void +-getline(char * const line, int const size, FILE * const stream) { ++get_line(char * const line, int const size, FILE * const stream) { + /*---------------------------------------------------------------------------- + Read the next line from the input file 'stream', through the one-line + buffer lastInputLine[]. +@@ -130,7 +130,7 @@ + Exit program if the line doesn't fit in the buffer. + -----------------------------------------------------------------------------*/ + if (size > MAX_LINE+1) +- pm_error("INTERNAL ERROR: getline() received 'size' parameter " ++ pm_error("INTERNAL ERROR: get_line() received 'size' parameter " + "which is out of bounds"); + + if (backup) { +@@ -346,7 +346,7 @@ + int * const transparentP) { + /*---------------------------------------------------------------------------- + Read the header of the XPM file on stream 'stream'. Assume the +- getline() stream is presently positioned to the beginning of the ++ get_line() stream is presently positioned to the beginning of the + file and it is a Version 3 XPM file. Leave the stream positioned + after the header. + +@@ -377,25 +377,25 @@ + *widthP = *heightP = *ncolorsP = *chars_per_pixelP = -1; + + /* Read the XPM signature comment */ +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + if (strncmp(line, xpm3_signature, strlen(xpm3_signature)) != 0) + pm_error("Apparent XPM 3 file does not start with '/* XPM */'. " + "First line is '%s'", xpm3_signature); + + /* Read the assignment line */ +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + if (strncmp(line, "static char", 11) != 0) + pm_error("Cannot find data structure declaration. Expected a " + "line starting with 'static char', but found the line " + "'%s'.", line); + + /* Read the hints line */ +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + /* skip the comment line if any */ + if (!strncmp(line, "/*", 2)) { + while (!strstr(line, "*/")) +- getline(line, sizeof(line), stream); +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + } + if (sscanf(line, ""%d %d %d %d",", widthP, heightP, + ncolorsP, chars_per_pixelP) != 4) +@@ -427,10 +427,10 @@ + *transparentP = -1; /* initial value */ + + for (seqNum = 0; seqNum < *ncolorsP; seqNum++) { +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + /* skip the comment line if any */ + if (!strncmp(line, "/*", 2)) +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + + interpretXpm3ColorTableLine(line, seqNum, *chars_per_pixelP, + *colorsP, *ptabP, transparentP); +@@ -445,7 +445,7 @@ + pixel ** const colorsP, int ** const ptabP) { + /*---------------------------------------------------------------------------- + Read the header of the XPM file on stream 'stream'. Assume the +- getline() stream is presently positioned to the beginning of the ++ get_line() stream is presently positioned to the beginning of the + file and it is a Version 1 XPM file. Leave the stream positioned + after the header. + +@@ -464,7 +464,7 @@ + /* Read the initial defines. */ + processedStaticChar = FALSE; + while (!processedStaticChar) { +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + + if (sscanf(line, "#define %s %d", str1, &v) == 2) { + char *t1; +@@ -512,7 +512,7 @@ + /* If there's a monochrome color table, skip it. */ + if (!strncmp(t1, "mono", 4)) { + for (;;) { +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + if (!strncmp(line, "static char", 11)) + break; + } +@@ -533,7 +533,7 @@ + + /* Read color table. */ + for (i = 0; i < *ncolorsP; ++i) { +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + + if ((t1 = strchr(line, '"')) == NULL) + pm_error("D error scanning color table"); +@@ -569,7 +569,7 @@ + "static char ..."). + */ + for (;;) { +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + if (strncmp(line, "static char", 11) == 0) + break; + } +@@ -660,7 +660,7 @@ + backup = FALSE; + + /* Read the header line */ +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + backup = TRUE; /* back up so next read reads this line again */ + + rc = sscanf(line, "/* %s */", str1); +@@ -681,7 +681,7 @@ + pm_error("Could not get %d bytes of memory for image", totalpixels); + cursor = *dataP; + maxcursor = *dataP + totalpixels - 1; +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + /* read next line (first line may not always start with comment) */ + while (cursor <= maxcursor) { + if (strncmp(line, "/*", 2) == 0) { +@@ -691,7 +691,7 @@ + ncolors, ptab, &cursor, maxcursor); + } + if (cursor <= maxcursor) +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + } + if (ptab) free(ptab); + } + +Thanks, + +-- +Colin Watson [cjwatson@ubuntu.com] + + + + diff --git a/src/patches/openldap-gcc44-fixes.patch b/src/patches/openldap-gcc44-fixes.patch new file mode 100644 index 0000000..53b8ea0 --- /dev/null +++ b/src/patches/openldap-gcc44-fixes.patch @@ -0,0 +1,31 @@ +--- include/ldap_pvt_thread.h~ 2008-11-12 07:37:16.000000000 +0000 ++++ include/ldap_pvt_thread.h 2008-11-12 08:01:45.000000000 +0000 +@@ -59,12 +59,12 @@ + + #ifndef LDAP_PVT_THREAD_H_DONE + #define LDAP_PVT_THREAD_SET_STACK_SIZE +-#ifndef LDAP_PVT_THREAD_STACK_SIZE +- /* LARGE stack. Will be twice as large on 64 bit machine. */ +-#define LDAP_PVT_THREAD_STACK_SIZE ( 1 * 1024 * 1024 * sizeof(void *) ) + /* May be explicitly defined to zero to disable it */ +-#elif LDAP_PVT_THREAD_STACK_SIZE == 0 ++#if LDAP_PVT_THREAD_STACK_SIZE == 0 + #undef LDAP_PVT_THREAD_SET_STACK_SIZE ++#elif !defined(LDAP_PVT_THREAD_STACK_SIZE) ++ /* LARGE stack. Will be twice as large on 64 bit machine. */ ++#define LDAP_PVT_THREAD_STACK_SIZE ( 1 * 1024 * 1024 * sizeof(void *) ) + #endif + #endif /* !LDAP_PVT_THREAD_H_DONE */ + +--- libraries/libldap/os-ip.c~ 2008-11-12 07:33:10.000000000 +0000 ++++ libraries/libldap/os-ip.c 2008-11-12 07:33:31.000000000 +0000 +@@ -690,7 +690,7 @@ + char *herr; + #ifdef NI_MAXHOST + char hbuf[NI_MAXHOST]; +-#elif defined( MAXHOSTNAMELEN ++#elif defined( MAXHOSTNAMELEN ) + char hbuf[MAXHOSTNAMELEN]; + #else + char hbuf[256]; + diff --git a/src/patches/pakfire3-changes-for-ipfire2.diff b/src/patches/pakfire3-changes-for-ipfire2.diff new file mode 100644 index 0000000..e0f476a --- /dev/null +++ b/src/patches/pakfire3-changes-for-ipfire2.diff @@ -0,0 +1,35 @@ +diff --git a/Makefile b/Makefile +index 0361af6..0bcb1bf 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,7 +1,7 @@ + + include Makeconfig + +-SUBDIRS = po python tools tools/fake-environ ++SUBDIRS = python tools tools/fake-environ + + all: build + +diff --git a/tools/Makefile b/tools/Makefile +index d7cbf70..499beb4 100644 +--- a/tools/Makefile ++++ b/tools/Makefile +@@ -12,7 +12,7 @@ LIBS_POPT = -lpopt + + SCRIPTS = $(SCRIPTS_BIN) $(SCRIPTS_SHELL) + SCRIPTS_BIN = \ +- debugedit ++ #debugedit + + SCRIPTS_SHELL = \ + chroot-shell \ +@@ -50,7 +50,7 @@ install: $(SCRIPTS) + + # Create script aliases. + -mkdir -pv $(DESTDIR)/usr/bin +- ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire ++ ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire3 + ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire-builder + ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire-client + ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire-daemon diff --git a/src/patches/pptp-1.7.2-compat.patch b/src/patches/pptp-1.7.2-compat.patch new file mode 100644 index 0000000..0ea1551 --- /dev/null +++ b/src/patches/pptp-1.7.2-compat.patch @@ -0,0 +1,71 @@ +Index: pptp_compat.c +=================================================================== +RCS file: /cvsroot/pptpclient/pptp-linux/pptp_compat.c,v +retrieving revision 1.1 +retrieving revision 1.3 +diff -u -r1.1 -r1.3 +--- pptp_compat.c 19 Feb 2008 21:43:28 -0000 1.1 ++++ pptp_compat.c 25 Jul 2008 00:13:56 -0000 1.3 +@@ -7,14 +7,15 @@ + #include <fcntl.h> + #include <sys/types.h> + #include <unistd.h> +-#include <stropts.h> + #include <stdlib.h> ++#if defined (__SVR4) && defined (__sun) /* Solaris */ ++#include <stropts.h> ++#endif + #include <strings.h> + #include "pptp_compat.h" + #include <stdio.h> + #include "util.h" + +- + #if defined (__SVR4) && defined (__sun) /* Solaris */ + /* + * daemon implementation from uClibc +Index: pptp.c +=================================================================== +RCS file: /cvsroot/pptpclient/pptp-linux/pptp.c,v +retrieving revision 1.49 +retrieving revision 1.51 +diff -u -r1.49 -r1.51 +--- pptp.c 14 May 2008 06:32:52 -0000 1.49 ++++ pptp.c 24 Jul 2008 05:53:05 -0000 1.51 +@@ -61,9 +61,8 @@ + #include "version.h" + #if defined(__linux__) + #include <sys/prctl.h> +-#else +-#include "inststr.h" + #endif ++#include "inststr.h" + #include "util.h" + #include "pptp_quirks.h" + #include "pqueue.h" +@@ -129,7 +128,7 @@ + } + + #if defined (__SVR4) && defined (__sun) +-struct in_addr localbind = { INADDR_ANY }; ++struct in_addr localbind = { .s_addr = INADDR_ANY }; + #else + struct in_addr localbind = { INADDR_NONE }; + #endif +@@ -183,6 +182,7 @@ + struct in_addr inetaddr; + volatile int callmgr_sock = -1; + char ttydev[PATH_MAX]; ++ char *tty_name; + int pty_fd, tty_fd, gre_fd, rc; + volatile pid_t parent_pid, child_pid; + u_int16_t call_id, peer_call_id; +@@ -391,7 +391,7 @@ + file2fd("/dev/null", "wb", STDERR_FILENO); + } + +- char *tty_name = ttyname(tty_fd); ++ tty_name = ttyname(tty_fd); + snprintf(buf, sizeof(buf), "pptp: GRE-to-PPP gateway on %s", + tty_name ? tty_name : "(null)"); + #ifdef PR_SET_NAME diff --git a/src/patches/python-pycurl-fix-do_curl_reset-refcount.patch b/src/patches/python-pycurl-fix-do_curl_reset-refcount.patch new file mode 100644 index 0000000..7e20b15 --- /dev/null +++ b/src/patches/python-pycurl-fix-do_curl_reset-refcount.patch @@ -0,0 +1,24 @@ +--- a/src/pycurl.c ++++ a/src/pycurl.c +@@ -1452,6 +1452,7 @@ do_curl_reset(CurlObject *self) + } + } + ++ Py_INCREF(Py_None); + return Py_None; + } + +--- a/tests/test_internals.py ++++ a/tests/test_internals.py +@@ -245,6 +245,11 @@ if 1 and gc: + if opts.verbose >= 1: + print "Tracked objects:", len(gc.get_objects()) + ++if 1: ++ # Ensure that the refcounting error in "reset" is fixed: ++ for i in xrange(100000): ++ c = Curl() ++ c.reset() + + # /*********************************************************************** + # // done diff --git a/src/patches/python-pycurl-no-static-libs.patch b/src/patches/python-pycurl-no-static-libs.patch new file mode 100644 index 0000000..c1410dc --- /dev/null +++ b/src/patches/python-pycurl-no-static-libs.patch @@ -0,0 +1,12 @@ +--- setup.py~ 2008-04-22 17:00:45.000000000 +0300 ++++ setup.py 2008-07-03 21:53:36.000000000 +0300 +@@ -97,8 +97,7 @@ + else: + extra_compile_args.append(e) + libs = split_quoted( +- os.popen("'%s' --libs" % CURL_CONFIG).read()+\ +- os.popen("'%s' --static-libs" % CURL_CONFIG).read()) ++ os.popen("'%s' --libs" % CURL_CONFIG).read()) + for e in libs: + if e[:2] == "-l": + libraries.append(e[2:]) diff --git a/src/patches/qemu-kqemu_change-default-kqemu-bios.patch b/src/patches/qemu-kqemu_change-default-kqemu-bios.patch deleted file mode 100644 index a36c54e..0000000 --- a/src/patches/qemu-kqemu_change-default-kqemu-bios.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur qemu-0.11.1.org/hw/pc.c qemu-0.11.1/hw/pc.c ---- qemu-0.11.1.org/hw/pc.c 2009-12-02 21:27:02.000000000 +0100 -+++ qemu-0.11.1/hw/pc.c 2010-12-27 12:09:41.845206649 +0100 -@@ -43,7 +43,7 @@ - /* Show multiboot debug output */ - //#define DEBUG_MULTIBOOT - --#define BIOS_FILENAME "bios.bin" -+#define BIOS_FILENAME "bios-kqemu.bin" - #define VGABIOS_FILENAME "vgabios.bin" - #define VGABIOS_CIRRUS_FILENAME "vgabios-cirrus.bin" - diff --git a/src/patches/r8169_add_missing_pciids.patch b/src/patches/r8169_add_missing_pciids.patch index dab3af0..86916f6 100644 --- a/src/patches/r8169_add_missing_pciids.patch +++ b/src/patches/r8169_add_missing_pciids.patch @@ -1,12 +1,14 @@ -diff -Naur r8169-6.011.00.org/src/r8169_n.c r8169-6.011.00/src/r8169_n.c ---- r8169-6.011.00.org/src/r8169_n.c 2009-07-14 08:39:25.000000000 +0200 -+++ r8169-6.011.00/src/r8169_n.c 2009-10-22 19:18:42.000000000 +0200 -@@ -114,6 +114,11 @@ +diff -Naur r8169-6.017.00.org/src/r8169_n.c r8169-6.017.00/src/r8169_n.c +--- r8169-6.017.00.org/src/r8169_n.c 2012-05-03 14:23:12.000000000 +0200 ++++ r8169-6.017.00/src/r8169_n.c 2012-10-14 12:43:52.478555777 +0200 +@@ -115,7 +115,12 @@ static struct pci_device_id rtl8169_pci_tbl[] = { { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8167), 0, 0, RTL_CFG_0 }, { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 }, +- { PCI_VENDOR_ID_DLINK, 0x4300, PCI_VENDOR_ID_DLINK, 0x4c00, 0, 0, RTL_CFG_0 }, + { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8129), 0, 0, RTL_CFG_0 }, + { PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4300), 0, 0, RTL_CFG_0 }, ++ { PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4302), 0, 0, RTL_CFG_0 }, + { PCI_DEVICE(PCI_VENDOR_ID_AT, 0xC107), 0, 0, RTL_CFG_0 }, + { PCI_DEVICE(0x16EC, 0x0116), 0, 0, RTL_CFG_0 }, + { PCI_VENDOR_ID_LINKSYS, 0x1032, PCI_ANY_ID, 0x0024, 0, 0, RTL_CFG_0 }, diff --git a/src/patches/readline-5.1-fixes-3.patch b/src/patches/readline-5.1-fixes-3.patch deleted file mode 100644 index e0fb875..0000000 --- a/src/patches/readline-5.1-fixes-3.patch +++ /dev/null @@ -1,128 +0,0 @@ -Submitted By: Matthew Burgess (matthew at linuxfromscratch dot org) -Date: 2006-03-17 -Initial Package Version: 5.1 -Origin: http://ftp.gnu.org/gnu/readline/readline-5.1-patches/ -Upstream Status: From Upstream -Description: Contains Patch 001-004 from Upstream - -diff -Naur readline-5.1.orig/display.c readline-5.1/display.c ---- readline-5.1.orig/display.c 2005-11-30 19:05:02.000000000 +0000 -+++ readline-5.1/display.c 2006-03-17 16:03:09.000000000 +0000 -@@ -1983,11 +1983,15 @@ - int pchar; - { - int len; -- char *pmt; -+ char *pmt, *p; - - rl_save_prompt (); - -- if (saved_local_prompt == 0) -+ /* We've saved the prompt, and can do anything with the various prompt -+ strings we need before they're restored. We want the unexpanded -+ portion of the prompt string after any final newline. */ -+ p = rl_prompt ? strrchr (rl_prompt, '\n') : 0; -+ if (p == 0) - { - len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; - pmt = (char *)xmalloc (len + 2); -@@ -1998,19 +2002,17 @@ - } - else - { -- len = *saved_local_prompt ? strlen (saved_local_prompt) : 0; -+ p++; -+ len = strlen (p); - pmt = (char *)xmalloc (len + 2); - if (len) -- strcpy (pmt, saved_local_prompt); -+ strcpy (pmt, p); - pmt[len] = pchar; - pmt[len+1] = '\0'; -- local_prompt = savestring (pmt); -- prompt_last_invisible = saved_last_invisible; -- prompt_visible_length = saved_visible_length + 1; -- } -+ } - -+ /* will be overwritten by expand_prompt, called from rl_message */ - prompt_physical_chars = saved_physical_chars + 1; -- - return pmt; - } - -diff -Naur readline-5.1.orig/readline.c readline-5.1/readline.c ---- readline-5.1.orig/readline.c 2005-07-05 02:29:35.000000000 +0000 -+++ readline-5.1/readline.c 2006-03-17 16:03:05.000000000 +0000 -@@ -282,6 +282,7 @@ - { - FREE (rl_prompt); - rl_prompt = prompt ? savestring (prompt) : (char *)NULL; -+ rl_display_prompt = rl_prompt ? rl_prompt : ""; - - rl_visible_prompt_length = rl_expand_prompt (rl_prompt); - return 0; -@@ -714,7 +715,7 @@ - - rl_dispatching = 1; - RL_SETSTATE(RL_STATE_DISPATCHING); -- r = (*map[key].function)(rl_numeric_arg * rl_arg_sign, key); -+ (*map[key].function)(rl_numeric_arg * rl_arg_sign, key); - RL_UNSETSTATE(RL_STATE_DISPATCHING); - rl_dispatching = 0; - -diff -Naur readline-5.1.orig/terminal.c readline-5.1/terminal.c ---- readline-5.1.orig/terminal.c 2005-11-13 01:46:54.000000000 +0000 -+++ readline-5.1/terminal.c 2006-03-17 16:03:02.000000000 +0000 -@@ -122,7 +122,7 @@ - static char *_rl_visible_bell; - - /* Non-zero means the terminal can auto-wrap lines. */ --int _rl_term_autowrap; -+int _rl_term_autowrap = -1; - - /* Non-zero means that this terminal has a meta key. */ - static int term_has_meta; -@@ -274,6 +274,9 @@ - _rl_set_screen_size (rows, cols) - int rows, cols; - { -+ if (_rl_term_autowrap == -1) -+ _rl_init_terminal_io (rl_terminal_name); -+ - if (rows > 0) - _rl_screenheight = rows; - if (cols > 0) -diff -Naur readline-5.1.orig/text.c readline-5.1/text.c ---- readline-5.1.orig/text.c 2005-09-24 23:06:07.000000000 +0000 -+++ readline-5.1/text.c 2006-03-17 16:02:58.000000000 +0000 -@@ -1071,8 +1071,6 @@ - rl_delete (count, key) - int count, key; - { -- int r; -- - if (count < 0) - return (_rl_rubout_char (-count, key)); - -@@ -1090,17 +1088,17 @@ - else - rl_forward_byte (count, key); - -- r = rl_kill_text (orig_point, rl_point); -+ rl_kill_text (orig_point, rl_point); - rl_point = orig_point; -- return r; - } - else - { - int new_point; - - new_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); -- return (rl_delete_text (rl_point, new_point)); -+ rl_delete_text (rl_point, new_point); - } -+ return 0; - } - - /* Delete the character under the cursor, unless the insertion diff --git a/src/patches/readline/readline52-001 b/src/patches/readline/readline52-001 new file mode 100644 index 0000000..0bec9a2 --- /dev/null +++ b/src/patches/readline/readline52-001 @@ -0,0 +1,30 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-001 + +Bug-Reported-by: ebb9@byu.net +Bug-Reference-ID: 45540862.9030900@byu.net +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html + http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html + +Bug-Description: + +In some cases, code that is intended to be used in the presence of multibyte +characters is called when no such characters are present, leading to incorrect +display position calculations and incorrect redisplay. + +Patch: + +*** ../readline-5.2/display.c Thu Sep 14 14:20:12 2006 +--- display.c Mon Nov 13 17:55:57 2006 +*************** +*** 2381,2384 **** +--- 2409,2414 ---- + if (end <= start) + return 0; ++ if (MB_CUR_MAX == 1 || rl_byte_oriented) ++ return (end - start); + + memset (&ps, 0, sizeof (mbstate_t)); diff --git a/src/patches/readline/readline52-002 b/src/patches/readline/readline52-002 new file mode 100644 index 0000000..b0d8c92 --- /dev/null +++ b/src/patches/readline/readline52-002 @@ -0,0 +1,49 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-002 + +Bug-Reported-by: Magnus Svensson msvensson@mysql.com +Bug-Reference-ID: 45BDC44D.80609@mysql.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html + +Bug-Description: + +Readline neglects to reallocate the array it uses to keep track of wrapped +screen lines when increasing its size. This will eventually result in +segmentation faults when given sufficiently long input. + +Patch: + +*** ../readline-5.2-patched/display.c Thu Sep 14 14:20:12 2006 +--- display.c Fri Feb 2 20:23:17 2007 +*************** +*** 561,574 **** +--- 561,586 ---- + wrap_offset = prompt_invis_chars_first_line = 0; + } + ++ #if defined (HANDLE_MULTIBYTE) + #define CHECK_INV_LBREAKS() \ + do { \ + if (newlines >= (inv_lbsize - 2)) \ + { \ + inv_lbsize *= 2; \ + inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \ + } \ + } while (0) ++ #else ++ #define CHECK_INV_LBREAKS() \ ++ do { \ ++ if (newlines >= (inv_lbsize - 2)) \ ++ { \ ++ inv_lbsize *= 2; \ ++ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ } \ ++ } while (0) ++ #endif /* HANDLE_MULTIBYTE */ + + #if defined (HANDLE_MULTIBYTE) + #define CHECK_LPOS() \ diff --git a/src/patches/readline/readline52-003 b/src/patches/readline/readline52-003 new file mode 100644 index 0000000..06916b3 --- /dev/null +++ b/src/patches/readline/readline52-003 @@ -0,0 +1,37 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-003 + +Bug-Reported-by: Peter Volkov torre_cremata@mail.ru +Bug-Reference-ID: 1171795523.8021.18.camel@localhost +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html + +Bug-Description: + +When moving the cursor, bash sometimes misplaces the cursor when the prompt +contains two or more multibyte characters. The particular circumstance that +uncovered the problem was having the (multibyte) current directory name in +the prompt string. + +Patch: + +*** ../readline-5.2.2/display.c Fri Jan 19 13:34:50 2007 +--- display.c Sat Mar 10 17:25:44 2007 +*************** +*** 1745,1749 **** + { + dpos = _rl_col_width (data, 0, new); +! if (dpos > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1745,1752 ---- + { + dpos = _rl_col_width (data, 0, new); +! /* Use NEW when comparing against the last invisible character in the +! prompt string, since they're both buffer indices and DPOS is a +! desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; diff --git a/src/patches/readline/readline52-004 b/src/patches/readline/readline52-004 new file mode 100644 index 0000000..b165ad9 --- /dev/null +++ b/src/patches/readline/readline52-004 @@ -0,0 +1,70 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-004 + +Bug-Reported-by: Peter Volkov torre_cremata@mail.ru +Bug-Reference-ID: 1173636022.7039.36.camel@localhost +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html + +Bug-Description: + +When restoring the original prompt after finishing an incremental search, +bash sometimes places the cursor incorrectly if the primary prompt contains +invisible characters. + +Patch: + +*** ../readline-5.2.3/display.c Fri Apr 20 13:30:16 2007 +--- display.c Fri Apr 20 15:17:01 2007 +*************** +*** 1599,1604 **** + if (temp > 0) + { + _rl_output_some_chars (nfd, temp); +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);; + } + } +--- 1599,1618 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! { +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp); +! if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) +! { +! _rl_last_c_pos -= wrap_offset; +! cpos_adjusted = 1; +! } +! } +! else +! _rl_last_c_pos += temp; + } + } +*************** +*** 1608,1613 **** +--- 1622,1639 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; /* XXX */ ++ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ++ { ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ } + } + lendiff = (oe - old) - (ne - new); diff --git a/src/patches/readline/readline52-005 b/src/patches/readline/readline52-005 new file mode 100644 index 0000000..d192ac1 --- /dev/null +++ b/src/patches/readline/readline52-005 @@ -0,0 +1,328 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-005 + +Bug-Reported-by: Thomas Loeber ifp@loeber1.de +Bug-Reference-ID: 200703082223.08919.ifp@loeber1.de +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html + +Bug-Description: + +When rl_read_key returns -1, indicating that readline's controlling terminal +has been invalidated for some reason (e.g., receiving a SIGHUP), the error +status was not reported correctly to the caller. This could cause input +loops. + +Patch: + +*** ../readline-5.2/complete.c Fri Jul 28 11:35:49 2006 +--- complete.c Tue Mar 13 08:50:16 2007 +*************** +*** 429,433 **** + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +--- 440,444 ---- + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR || c < 0) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +*** ../readline-5.2/input.c Wed Aug 16 15:15:16 2006 +--- input.c Wed May 2 16:07:59 2007 +*************** +*** 514,518 **** + int size; + { +! int mb_len = 0; + size_t mbchar_bytes_length; + wchar_t wc; +--- 522,526 ---- + int size; + { +! int mb_len, c; + size_t mbchar_bytes_length; + wchar_t wc; +*************** +*** 521,531 **** + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! mbchar[mb_len++] = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +--- 529,545 ---- + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! +! mb_len = 0; + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ break; ++ ++ mbchar[mb_len++] = c; ++ + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +*************** +*** 565,569 **** + c = first; + memset (mb, 0, mlen); +! for (i = 0; i < mlen; i++) + { + mb[i] = (char)c; +--- 579,583 ---- + c = first; + memset (mb, 0, mlen); +! for (i = 0; c >= 0 && i < mlen; i++) + { + mb[i] = (char)c; +*** ../readline-5.2/isearch.c Mon Dec 26 17:18:53 2005 +--- isearch.c Fri Mar 9 14:30:59 2007 +*************** +*** 328,333 **** + + f = (rl_command_func_t *)NULL; +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +--- 328,340 ---- + + f = (rl_command_func_t *)NULL; +! +! if (c < 0) +! { +! cxt->sflags |= SF_FAILED; +! cxt->history_pos = cxt->last_found_line; +! return -1; +! } +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +*** ../readline-5.2/misc.c Mon Dec 26 17:20:46 2005 +--- misc.c Fri Mar 9 14:44:11 2007 +*************** +*** 147,150 **** +--- 147,152 ---- + rl_clear_message (); + RL_UNSETSTATE(RL_STATE_NUMERICARG); ++ if (key < 0) ++ return -1; + return (_rl_dispatch (key, _rl_keymap)); + } +*** ../readline-5.2/readline.c Wed Aug 16 15:00:36 2006 +--- readline.c Fri Mar 9 14:47:24 2007 +*************** +*** 646,649 **** +--- 669,677 ---- + { + nkey = _rl_subseq_getchar (cxt->okey); ++ if (nkey < 0) ++ { ++ _rl_abort_internal (); ++ return -1; ++ } + r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg); + cxt->flags |= KSEQ_DISPATCHED; +*** ../readline-5.2/text.c Fri Jul 28 11:55:27 2006 +--- text.c Sun Mar 25 13:41:38 2007 +*************** +*** 858,861 **** +--- 864,870 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_SIGNALS) + if (RL_ISSTATE (RL_STATE_CALLBACK) == 0) +*************** +*** 1521,1524 **** +--- 1530,1536 ---- + mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX); + ++ if (mb_len <= 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, mbchar, mb_len)); +*************** +*** 1537,1540 **** +--- 1549,1555 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, c)); +*** ../readline-5.2/vi_mode.c Sat Jul 29 16:42:28 2006 +--- vi_mode.c Fri Mar 9 15:02:11 2007 +*************** +*** 887,890 **** +--- 887,897 ---- + c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } ++ + *nextkey = c; + +*************** +*** 903,906 **** +--- 910,918 ---- + c = rl_read_key (); /* real command */ + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } + *nextkey = c; + } +*************** +*** 1225,1236 **** + _rl_callback_generic_arg *data; + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + + _rl_callback_func = 0; + _rl_want_redisplay = 1; +--- 1243,1262 ---- + _rl_callback_generic_arg *data; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) +! c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + ++ if (c <= 0) ++ return -1; ++ ++ #if !defined (HANDLE_MULTIBYTE) ++ _rl_vi_last_search_char = c; ++ #endif ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1248,1251 **** +--- 1274,1278 ---- + int count, key; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) + static char *target; +*************** +*** 1294,1302 **** + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + } +--- 1321,1335 ---- + { + #if defined (HANDLE_MULTIBYTE) +! c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); +! if (c <= 0) +! return -1; +! _rl_vi_last_search_mblen = c; + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ return -1; ++ _rl_vi_last_search_char = c; + #endif + } +*************** +*** 1468,1471 **** +--- 1501,1507 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +*************** +*** 1486,1489 **** +--- 1522,1528 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1517,1520 **** +--- 1556,1562 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + return (_rl_vi_change_char (count, c, mb)); + } +*************** +*** 1651,1655 **** + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1693,1697 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); +*************** +*** 1703,1707 **** + return 0; + } +! else if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1745,1749 ---- + return 0; + } +! else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); diff --git a/src/patches/readline/readline52-006 b/src/patches/readline/readline52-006 new file mode 100644 index 0000000..d739143 --- /dev/null +++ b/src/patches/readline/readline52-006 @@ -0,0 +1,62 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-006 + +Bug-Reported-by: Peter Volkov torre_cremata@mail.ru +Bug-Reference-ID: 1178376645.9063.25.camel@localhost +Bug-Reference-URL: http://bugs.gentoo.org/177095 + +Bug-Description: + +The readline display code miscalculated the screen position when performing +a redisplay in which the new text occupies more screen space that the old, +but takes fewer bytes to do so (e.g., when replacing a shorter string +containing multibyte characters with a longer one containing only ASCII). + +Patch: + +*** ../readline-5.2/display.c Thu Apr 26 11:38:22 2007 +--- display.c Thu Jul 12 23:10:10 2007 +*************** +*** 1519,1527 **** + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and +--- 1568,1596 ---- + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; ++ /* If col_lendiff is > 0, implying that the new string takes up more ++ screen real estate than the old, but lendiff is < 0, meaning that it ++ takes fewer bytes, we need to just output the characters starting ++ from the first difference. These will overwrite what is on the ++ display, so there's no reason to do a smart update. This can really ++ only happen in a multibyte environment. */ ++ if (lendiff < 0) ++ { ++ _rl_output_some_chars (nfd, temp); ++ _rl_last_c_pos += _rl_col_width (nfd, 0, temp); ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ return; ++ } + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and diff --git a/src/patches/readline/readline52-007 b/src/patches/readline/readline52-007 new file mode 100644 index 0000000..f75f53f --- /dev/null +++ b/src/patches/readline/readline52-007 @@ -0,0 +1,65 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-007 + +Bug-Reported-by: Tom Bjorkholm tom.bjorkholm@ericsson.com +Bug-Reference-ID: AEA1A32F001C6B4F98614B5B80D7647D01C075E9@esealmw115.eemea.ericsson.se +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html + + +Bug-Description: + +An off-by-one error in readline's input buffering caused readline to drop +each 511th character of buffered input (e.g., when pasting a large amount +of data into a terminal window). + +Patch: + +*** ../readline-5.2/input.c Wed Aug 16 15:15:16 2006 +--- input.c Tue Jul 17 09:24:21 2007 +*************** +*** 134,139 **** + + *key = ibuffer[pop_index++]; +! + if (pop_index >= ibuffer_len) + pop_index = 0; + +--- 134,142 ---- + + *key = ibuffer[pop_index++]; +! #if 0 + if (pop_index >= ibuffer_len) ++ #else ++ if (pop_index > ibuffer_len) ++ #endif + pop_index = 0; + +*************** +*** 251,255 **** + { + k = (*rl_getc_function) (rl_instream); +! rl_stuff_char (k); + if (k == NEWLINE || k == RETURN) + break; +--- 254,259 ---- + { + k = (*rl_getc_function) (rl_instream); +! if (rl_stuff_char (k) == 0) +! break; /* some problem; no more room */ + if (k == NEWLINE || k == RETURN) + break; +*************** +*** 374,378 **** +--- 378,386 ---- + } + ibuffer[push_index++] = key; ++ #if 0 + if (push_index >= ibuffer_len) ++ #else ++ if (push_index > ibuffer_len) ++ #endif + push_index = 0; + diff --git a/src/patches/readline/readline52-008 b/src/patches/readline/readline52-008 new file mode 100644 index 0000000..1d7f327 --- /dev/null +++ b/src/patches/readline/readline52-008 @@ -0,0 +1,70 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-008 + +Bug-Reported-by: dAniel hAhler ubuntu@thequod.de +Bug-Reference-ID: 4702ED8A.5000503@thequod.de +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938 + +Bug-Description: + +When updating the display after displaying, for instance, a list of possible +completions, readline will place the cursor at the wrong position if the +prompt contains invisible characters and a newline. + +Patch: + +*** ../readline-5.2-patched/display.c Mon Aug 6 14:26:29 2007 +--- display.c Wed Oct 10 22:43:58 2007 +*************** +*** 1049,1053 **** + else + tx = nleft; +! if (_rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +--- 1049,1053 ---- + else + tx = nleft; +! if (tx >= 0 && _rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1205,1209 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1466,1469 **** +--- 1466,1471 ---- + } + ++ o_cpos = _rl_last_c_pos; ++ + /* When this function returns, _rl_last_c_pos is correct, and an absolute + cursor postion in multibyte mode, but a buffer index when not in a +*************** +*** 1475,1479 **** + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif +--- 1477,1483 ---- + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && +! (_rl_last_c_pos > 0 || o_cpos > 0) && +! _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif diff --git a/src/patches/readline/readline52-009 b/src/patches/readline/readline52-009 new file mode 100644 index 0000000..af9e381 --- /dev/null +++ b/src/patches/readline/readline52-009 @@ -0,0 +1,45 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-009 + +Bug-Reported-by: dAniel hAhler ubuntu@thequod.de +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under some circumstances, readline will incorrectly display a prompt string +containing invisible characters after the final newline. + +Patch: + +*** ../readline-5.2-patched/display.c 2007-08-25 13:47:08.000000000 -0400 +--- display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 392,396 **** + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! (int *)NULL, + &prompt_physical_chars); + c = *t; *t = '\0'; +--- 420,424 ---- + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! &prompt_invis_chars_first_line, + &prompt_physical_chars); + c = *t; *t = '\0'; +*************** +*** 399,403 **** + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! &prompt_invis_chars_first_line, + (int *)NULL); + *t = c; +--- 427,431 ---- + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! (int *)NULL, + (int *)NULL); + *t = c; diff --git a/src/patches/readline/readline52-010 b/src/patches/readline/readline52-010 new file mode 100644 index 0000000..ee5c026 --- /dev/null +++ b/src/patches/readline/readline52-010 @@ -0,0 +1,47 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-010 + +Bug-Reported-by: Miroslav Lichvar mlichvar@redhat.com +Bug-Reference-ID: Fri, 02 Nov 2007 14:07:45 +0100 +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html + +Bug-Description: + +In certain cases when outputting characters at the end of the line, +e.g., when displaying the prompt string, readline positions the cursor +incorrectly if the prompt string contains invisible characters and the +text being drawn begins before the last invisible character in the line. + +Patch: + +*** ../readline-5.2-patched/display.c 2007-08-25 13:47:08.000000000 -0400 +--- display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 1566,1574 **** + else + { +- /* We have horizontal scrolling and we are not inserting at +- the end. We have invisible characters in this line. This +- is a dumb update. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; + return; + } +--- 1619,1632 ---- + else + { + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } + return; + } diff --git a/src/patches/readline/readline52-011 b/src/patches/readline/readline52-011 new file mode 100644 index 0000000..a1197ed --- /dev/null +++ b/src/patches/readline/readline52-011 @@ -0,0 +1,32 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-011 + +Bug-Reported-by: Uwe Doering gemini@geminix.org +Bug-Reference-ID: 46F3DD72.2090801@geminix.org +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html + +Bug-Description: + +There is an off-by-one error in the code that buffers characters received +very quickly in succession, causing characters to be dropped. + +Patch: + +*** ../readline-5.2-patched/input.c 2007-08-25 13:47:10.000000000 -0400 +--- input.c 2007-10-12 22:55:25.000000000 -0400 +*************** +*** 155,159 **** + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len - 1; + ibuffer[pop_index] = key; + return (1); +--- 155,159 ---- + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len; + ibuffer[pop_index] = key; + return (1); diff --git a/src/patches/readline/readline52-012 b/src/patches/readline/readline52-012 new file mode 100644 index 0000000..7b37024 --- /dev/null +++ b/src/patches/readline/readline52-012 @@ -0,0 +1,150 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-012 + +Bug-Reported-by: Chet Ramey chet.ramey@case.edu +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +This updates the options required to create shared libraries on several +systems, including Mac OS X 10.5 (darwin9.x), FreeBSD, NetBSD, OpenBSD, +AIX, and HP/UX. + +Patch: + +*** ../readline-5.2-patched/support/shobj-conf 2006-04-11 09:15:43.000000000 -0400 +--- support/shobj-conf 2007-12-06 23:46:41.000000000 -0500 +*************** +*** 11,15 **** + # chet@po.cwru.edu + +! # Copyright (C) 1996-2002 Free Software Foundation, Inc. + # + # This program is free software; you can redistribute it and/or modify +--- 11,15 ---- + # chet@po.cwru.edu + +! # Copyright (C) 1996-2007 Free Software Foundation, Inc. + # + # This program is free software; you can redistribute it and/or modify +*************** +*** 115,119 **** + ;; + +! freebsd2* | netbsd*) + SHOBJ_CFLAGS=-fpic + SHOBJ_LD=ld +--- 115,119 ---- + ;; + +! freebsd2*) + SHOBJ_CFLAGS=-fpic + SHOBJ_LD=ld +*************** +*** 126,130 **** + # FreeBSD-3.x ELF + freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*) +! SHOBJ_CFLAGS=-fpic + SHOBJ_LD='${CC}' + +--- 126,130 ---- + # FreeBSD-3.x ELF + freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*) +! SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' + +*************** +*** 143,147 **** + + # Darwin/MacOS X +! darwin8*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +--- 143,147 ---- + + # Darwin/MacOS X +! darwin[89]*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +*************** +*** 154,158 **** + SHLIB_LIBSUFF='dylib' + +! SHOBJ_LDFLAGS='-undefined dynamic_lookup' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + +--- 154,158 ---- + SHLIB_LIBSUFF='dylib' + +! SHOBJ_LDFLAGS='-dynamiclib -dynamic -undefined dynamic_lookup -arch_only `/usr/bin/arch`' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + +*************** +*** 172,176 **** + + case "${host_os}" in +! darwin[78]*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; +--- 172,176 ---- + + case "${host_os}" in +! darwin[789]*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; +*************** +*** 183,187 **** + ;; + +! openbsd*) + SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' +--- 183,187 ---- + ;; + +! openbsd*|netbsd*) + SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' +*************** +*** 248,252 **** + ;; + +! aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com + SHOBJ_CFLAGS=-fpic + SHOBJ_LD='ld' +--- 248,252 ---- + ;; + +! aix4.[2-9]*-*gcc*|aix[5-9].*-*gcc*) # lightly tested by jik@cisco.com + SHOBJ_CFLAGS=-fpic + SHOBJ_LD='ld' +*************** +*** 259,263 **** + ;; + +! aix4.[2-9]*) + SHOBJ_CFLAGS=-K + SHOBJ_LD='ld' +--- 259,263 ---- + ;; + +! aix4.[2-9]*|aix[5-9].*) + SHOBJ_CFLAGS=-K + SHOBJ_LD='ld' +*************** +*** 330,334 **** + # if you have problems linking here, moving the `-Wl,+h,$@' from + # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work +! SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s' + + SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)' +--- 330,334 ---- + # if you have problems linking here, moving the `-Wl,+h,$@' from + # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work +! SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s' + + SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)' diff --git a/src/patches/readline/readline52-013 b/src/patches/readline/readline52-013 new file mode 100644 index 0000000..82a1897 --- /dev/null +++ b/src/patches/readline/readline52-013 @@ -0,0 +1,135 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-013 + +Bug-Reported-by: slinkp stuff@slinkp.com +Bug-Reference-ID: da52a26a-9f38-4861-a918-14d3482b539d@c65g2000hsa.googlegroups.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-05/msg00085.html + +Bug-Description: + +The presence of invisible characters in a prompt longer than the screenwidth +with invisible characters on the first and last prompt lines caused readline +to place the cursor in the wrong physical location. + +Patch: + +*** ../readline-5.2-patched/display.c 2007-12-14 21:12:40.000000000 -0500 +--- display.c 2008-10-23 09:39:46.000000000 -0400 +*************** +*** 911,914 **** +--- 944,951 ---- + OFFSET (which has already been calculated above). */ + ++ #define INVIS_FIRST() (prompt_physical_chars > _rl_screenwidth ? prompt_invis_chars_first_line : wrap_offset) ++ #define WRAP_OFFSET(line, offset) ((line == 0) \ ++ ? (offset ? INVIS_FIRST() : 0) \ ++ : ((line == prompt_last_screen_line) ? wrap_offset-prompt_invis_chars_first_line : 0)) + #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0) + #define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l])) +*************** +*** 945,949 **** + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= wrap_offset; + + /* If this is the line with the prompt, we might need to +--- 982,992 ---- + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */ +! else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth && +! (MB_CUR_MAX > 1 && rl_byte_oriented == 0) && +! cpos_adjusted == 0 && +! _rl_last_c_pos != o_cpos && +! _rl_last_c_pos > (prompt_last_invisible - _rl_screenwidth - prompt_invis_chars_first_line)) +! _rl_last_c_pos -= (wrap_offset-prompt_invis_chars_first_line); + + /* If this is the line with the prompt, we might need to +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1264,1268 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, twidth, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1221,1225 **** + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +--- 1280,1284 ---- + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - WRAP_OFFSET (_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +*************** +*** 1587,1599 **** + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); +- #if 1 + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! #else +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff); +! #endif + } + } +--- 1648,1660 ---- + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! else +! twidth = temp - lendiff; +! _rl_last_c_pos += twidth; + } + } +*************** +*** 1789,1793 **** + int cpos, dpos; /* current and desired cursor positions */ + +! woff = W_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +--- 1850,1854 ---- + int cpos, dpos; /* current and desired cursor positions */ + +! woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +*************** +*** 1803,1807 **** + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1864,1872 ---- + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if ((new > prompt_last_invisible) || /* XXX - don't use woff here */ +! (prompt_physical_chars > _rl_screenwidth && +! _rl_last_v_pos == prompt_last_screen_line && +! wrap_offset != woff && +! new > (prompt_last_invisible-_rl_screenwidth-wrap_offset))) + { + dpos -= woff; diff --git a/src/patches/readline/readline52-014 b/src/patches/readline/readline52-014 new file mode 100644 index 0000000..8dfaae4 --- /dev/null +++ b/src/patches/readline/readline52-014 @@ -0,0 +1,49 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-014 + +Bug-Reported-by: Len Lattanzi llattanzi@apple.com +Bug-Reference-ID: 52B1297F-6675-45CC-B63E-24745337D006@apple.com +Bug-Reference-URL: + +Bug-Description: + +On systems where mbrtowc() returns -2 when passed a length argument with +value 0, when using a multibyte locale, Readline's emacs-mode forward-char +at the end of a line will leave the point beyond the end of the line. + +Patch: + +*** ../readline-5.2-patched/mbutil.c 2009-05-29 23:09:26.000000000 -0400 +--- mbutil.c 2009-05-29 23:10:12.000000000 -0400 +*************** +*** 78,82 **** + int seed, count, find_non_zero; + { +! size_t tmp; + mbstate_t ps; + int point; +--- 78,82 ---- + int seed, count, find_non_zero; + { +! size_t tmp, len; + mbstate_t ps; + int point; +*************** +*** 99,103 **** + while (count > 0) + { +! tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps); + if (MB_INVALIDCH ((size_t)tmp)) + { +--- 99,106 ---- + while (count > 0) + { +! len = strlen (string + point); +! if (len == 0) +! break; +! tmp = mbrtowc (&wc, string+point, len, &ps); + if (MB_INVALIDCH ((size_t)tmp)) + { diff --git a/src/patches/readline/readline62-001 b/src/patches/readline/readline62-001 new file mode 100644 index 0000000..d4563c3 --- /dev/null +++ b/src/patches/readline/readline62-001 @@ -0,0 +1,46 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-001 + +Bug-Reported-by: Clark J. Wang dearvoid@gmail.com +Bug-Reference-ID: AANLkTimGbW7aC4E5infXP6ku5WPci4t=xVc+L1SyHqrD@mail.gmail.com +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html + +Bug-Description: + +The readline vi-mode `cc', `dd', and `yy' commands failed to modify the +entire line. + +[This patch intentionally does not modify patchlevel] + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/vi_mode.c 2010-11-20 19:51:39.000000000 -0500 +--- vi_mode.c 2011-02-17 20:24:25.000000000 -0500 +*************** +*** 1115,1119 **** + _rl_vi_last_motion = c; + RL_UNSETSTATE (RL_STATE_VIMOTION); +! return (0); + } + #if defined (READLINE_CALLBACKS) +--- 1115,1119 ---- + _rl_vi_last_motion = c; + RL_UNSETSTATE (RL_STATE_VIMOTION); +! return (vidomove_dispatch (m)); + } + #if defined (READLINE_CALLBACKS) +*** ../readline-6.2-patched/callback.c 2010-06-06 12:18:58.000000000 -0400 +--- callback.c 2011-02-17 20:43:28.000000000 -0500 +*************** +*** 149,152 **** +--- 149,155 ---- + /* Should handle everything, including cleanup, numeric arguments, + and turning off RL_STATE_VIMOTION */ ++ if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) ++ _rl_internal_char_cleanup (); ++ + return; + } diff --git a/src/patches/readline/readline62-002 b/src/patches/readline/readline62-002 new file mode 100644 index 0000000..3dc2604 --- /dev/null +++ b/src/patches/readline/readline62-002 @@ -0,0 +1,57 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-002 + +Bug-Reported-by: Vincent Sheffer vince.sheffer@apisphere.com +Bug-Reference-ID: F13C1C4F-C44C-4071-BFED-4BB6D13CF92F@apisphere.com +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2011-08/msg00000.html + +Bug-Description: + +The readline shared library helper script needs to be updated for Mac OS X +10.7 (Lion, darwin11). + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/support/shobj-conf 2009-10-28 09:20:21.000000000 -0400 +--- support/shobj-conf 2011-08-27 13:25:23.000000000 -0400 +*************** +*** 158,162 **** + + # Darwin/MacOS X +! darwin[89]*|darwin10*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +--- 172,176 ---- + + # Darwin/MacOS X +! darwin[89]*|darwin1[012]*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +*************** +*** 187,191 **** + + case "${host_os}" in +! darwin[789]*|darwin10*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; +--- 201,205 ---- + + case "${host_os}" in +! darwin[789]*|darwin1[012]*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; + +*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 +--- patchlevel 2011-11-17 11:09:35.000000000 -0500 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 1 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 2 diff --git a/src/patches/readline/readline62-003 b/src/patches/readline/readline62-003 new file mode 100644 index 0000000..0462242 --- /dev/null +++ b/src/patches/readline/readline62-003 @@ -0,0 +1,76 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-003 + +Bug-Reported-by: Max Horn max@quendi.de +Bug-Reference-ID: 20CC5C60-07C3-4E41-9817-741E48D407C5@quendi.de +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2012-06/msg00005.html + +Bug-Description: + +A change between readline-6.1 and readline-6.2 to prevent the readline input +hook from being called too frequently had the side effect of causing delays +when reading pasted input on systems such as Mac OS X. This patch fixes +those delays while retaining the readline-6.2 behavior. + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/input.c 2010-05-30 18:33:01.000000000 -0400 +--- input.c 2012-06-25 21:08:42.000000000 -0400 +*************** +*** 410,414 **** + rl_read_key () + { +! int c; + + rl_key_sequence_length++; +--- 412,416 ---- + rl_read_key () + { +! int c, r; + + rl_key_sequence_length++; +*************** +*** 430,441 **** + while (rl_event_hook) + { +! if (rl_gather_tyi () < 0) /* XXX - EIO */ + { + rl_done = 1; + return ('\n'); + } + RL_CHECK_SIGNALS (); +- if (rl_get_char (&c) != 0) +- break; + if (rl_done) /* XXX - experimental */ + return ('\n'); +--- 432,447 ---- + while (rl_event_hook) + { +! if (rl_get_char (&c) != 0) +! break; +! +! if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */ + { + rl_done = 1; + return ('\n'); + } ++ else if (r == 1) /* read something */ ++ continue; ++ + RL_CHECK_SIGNALS (); + if (rl_done) /* XXX - experimental */ + return ('\n'); +*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 +--- patchlevel 2011-11-17 11:09:35.000000000 -0500 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 2 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 3 diff --git a/src/patches/readline/readline62-004 b/src/patches/readline/readline62-004 new file mode 100644 index 0000000..5f3ba9b --- /dev/null +++ b/src/patches/readline/readline62-004 @@ -0,0 +1,108 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-004 + +Bug-Reported-by: Jakub Filak +Bug-Reference-ID: +Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=813289 + +Bug-Description: + +Attempting to redo (using `.') the vi editing mode `cc', `dd', or `yy' +commands leads to an infinite loop. + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/vi_mode.c 2011-02-25 11:17:02.000000000 -0500 +--- vi_mode.c 2012-06-02 12:24:47.000000000 -0400 +*************** +*** 1235,1243 **** + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing) + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +--- 1297,1313 ---- + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing && _rl_vi_last_motion != 'd') /* `dd' is special */ + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } ++ else if (vi_redoing) /* handle redoing `dd' here */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ rl_mark = rl_end; ++ rl_beg_of_line (1, key); ++ RL_UNSETSTATE (RL_STATE_VIMOTION); ++ r = vidomove_dispatch (_rl_vimvcxt); ++ } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +*************** +*** 1317,1325 **** + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing) + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +--- 1387,1403 ---- + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing && _rl_vi_last_motion != 'c') /* `cc' is special */ + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } ++ else if (vi_redoing) /* handle redoing `cc' here */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ rl_mark = rl_end; ++ rl_beg_of_line (1, key); ++ RL_UNSETSTATE (RL_STATE_VIMOTION); ++ r = vidomove_dispatch (_rl_vimvcxt); ++ } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +*************** +*** 1378,1381 **** +--- 1456,1472 ---- + r = rl_domove_motion_callback (_rl_vimvcxt); + } ++ else if (vi_redoing && _rl_vi_last_motion != 'y') /* `yy' is special */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ r = rl_domove_motion_callback (_rl_vimvcxt); ++ } ++ else if (vi_redoing) /* handle redoing `yy' here */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ rl_mark = rl_end; ++ rl_beg_of_line (1, key); ++ RL_UNSETSTATE (RL_STATE_VIMOTION); ++ r = vidomove_dispatch (_rl_vimvcxt); ++ } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 +--- patchlevel 2011-11-17 11:09:35.000000000 -0500 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 3 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 4 diff --git a/src/patches/screen-4.0.3-stropts.patch b/src/patches/screen-4.0.3-stropts.patch new file mode 100644 index 0000000..d6cbed7 --- /dev/null +++ b/src/patches/screen-4.0.3-stropts.patch @@ -0,0 +1,48 @@ +diff -up screen-4.0.3/tty.sh.stropts screen-4.0.3/tty.sh +--- screen-4.0.3/tty.sh.stropts 2003-09-08 16:24:25.000000000 +0200 ++++ screen-4.0.3/tty.sh 2008-04-07 11:28:34.000000000 +0200 +@@ -76,7 +76,7 @@ exit 0 + #endif + + #include "config.h" +-#ifdef SVR4 ++#if 0 + #include <sys/stropts.h> /* for I_POP */ + #endif + +diff -up screen-4.0.3/screen.c.stropts screen-4.0.3/screen.c +--- screen-4.0.3/screen.c.stropts 2008-04-07 11:25:21.000000000 +0200 ++++ screen-4.0.3/screen.c 2008-04-07 11:29:14.000000000 +0200 +@@ -50,7 +50,7 @@ + + #include "config.h" + +-#ifdef SVR4 ++#if 0 + # include <sys/stropts.h> + #endif + +diff -up screen-4.0.3/process.c.stropts screen-4.0.3/process.c +--- screen-4.0.3/process.c.stropts 2003-09-18 14:53:54.000000000 +0200 ++++ screen-4.0.3/process.c 2008-04-07 11:29:47.000000000 +0200 +@@ -37,7 +37,7 @@ + #include "config.h" + + /* for solaris 2.1, Unixware (SVR4.2) and possibly others: */ +-#ifdef SVR4 ++#if 0 + # include <sys/stropts.h> + #endif + +diff -up screen-4.0.3/pty.c.stropts screen-4.0.3/pty.c +--- screen-4.0.3/pty.c.stropts 2003-09-08 16:26:18.000000000 +0200 ++++ screen-4.0.3/pty.c 2008-04-07 11:30:07.000000000 +0200 +@@ -34,7 +34,7 @@ + #endif + + /* for solaris 2.1, Unixware (SVR4.2) and possibly others */ +-#ifdef HAVE_SVR4_PTYS ++#if 0 + # include <sys/stropts.h> + #endif + diff --git a/src/patches/slang-1.4.9-uclibc.patch b/src/patches/slang-1.4.9-uclibc.patch deleted file mode 100644 index 7847147..0000000 --- a/src/patches/slang-1.4.9-uclibc.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru slang-1.4.9.orig/src/slmisc.c slang-1.4.9/src/slmisc.c ---- slang-1.4.9.orig/src/slmisc.c 2003-03-23 07:06:40.000000000 +0000 -+++ slang-1.4.9/src/slmisc.c 2004-05-05 14:27:24.000000000 +0000 -@@ -565,7 +565,7 @@ - return (int) SLatol (s); - } - --#if !defined(HAVE_ISSETUGID) && defined(__GLIBC__) && (__GLIBC__ >= 2) -+#if 0 - extern int __libc_enable_secure; - # define HAVE___LIBC_ENABLE_SECURE 1 - #endif diff --git a/src/patches/texinfo-4.8-multibyte-1.patch b/src/patches/texinfo-4.8-multibyte-1.patch deleted file mode 100644 index 4676a79..0000000 --- a/src/patches/texinfo-4.8-multibyte-1.patch +++ /dev/null @@ -1,44 +0,0 @@ -Submitted By: Alexander E. Patrakov -Date: 2005-07-12 -Initial Package Version: 4.8 -Upstream Status: Hack, won't submit -Origin: Alexander E. Patrakov -Description: Info assumes that a string width in character cells is the -same as its length in bytes. This patch avoids cases when this assumption -is not true. - -diff -ur texinfo-4.8/info/info.c texinfo-4.8.hacked/info/info.c ---- texinfo-4.8/info/info.c 2004-04-11 23:56:45.000000000 +0600 -+++ texinfo-4.8.hacked/info/info.c 2005-07-12 12:11:34.852485776 +0600 -@@ -154,6 +154,10 @@ - #ifdef HAVE_SETLOCALE - /* Set locale via LC_ALL. */ - setlocale (LC_ALL, ""); -+ /* But don't use translated messages in the case when -+ string width and length can differ */ -+ if (MB_CUR_MAX > 1) -+ setlocale(LC_MESSAGES, "C"); - #endif - - #ifdef ENABLE_NLS -diff -ur texinfo-4.8/info/man.c texinfo-4.8.hacked/info/man.c ---- texinfo-4.8/info/man.c 2004-04-11 23:56:46.000000000 +0600 -+++ texinfo-4.8.hacked/info/man.c 2005-07-12 12:08:40.267026800 +0600 -@@ -325,6 +325,17 @@ - freopen (NULL_DEVICE, "r", stdin); - dup2 (pipes[1], fileno (stdout)); - -+ if (MB_CUR_MAX > 1) -+ { -+ /* Info has trouble wrapping man output if it contains -+ multibyte characters */ -+ setenv("LANGUAGE", "C", 1); -+ setenv("LANG", "C", 1); -+ setenv("LC_MESSAGES", "C", 1); -+ setenv("LC_CTYPE", "C", 1); -+ setenv("LC_ALL", "C", 1); -+ } -+ - execv (formatter_args[0], formatter_args); - - /* If we get here, we couldn't exec, so close out the pipe and diff --git a/src/patches/texinfo-4.8-tempfile_fix-2.patch b/src/patches/texinfo-4.8-tempfile_fix-2.patch deleted file mode 100644 index 0d0b594..0000000 --- a/src/patches/texinfo-4.8-tempfile_fix-2.patch +++ /dev/null @@ -1,80 +0,0 @@ -Updated By: Bruce Dubbs (bdubbs -aT- linuxfromscratch -DoT- org) -Date: 2005-12-12 -Submitted By: Archaic (archaic -aT- linuxfromscratch -DoT- org) -Date: 2005-10-08 -Initial Package Version: 4.8 -Origin: http://gentoo.kems.net/gentoo-portage/sys-apps/texinfo/files/texinfo-4.8-tem... -Upstream Status: A few patches are floating around in Debian BZ #328365 of which - upstream hasn't made a full commitment on yet. -Description: (CAN-2005-3011) texindex in texinfo 4.8 and earlier allows local - users to overwrite arbitrary files via a symlink attack on - temporary files. -Update: Changed to not pass a constant string to mktemp(). - -diff -Naur texinfo-4.8.orig/util/texindex.c texinfo-4.8/util/texindex.c ---- texinfo-4.8.orig/util/texindex.c 2005-12-11 23:29:08.000000000 -0600 -+++ texinfo-4.8/util/texindex.c 2005-12-11 23:33:31.000000000 -0600 -@@ -99,6 +99,9 @@ - /* Directory to use for temporary files. On Unix, it ends with a slash. */ - char *tempdir; - -+/* Basename for temp files inside of tempdir. */ -+char *tempbase; -+ - /* Number of last temporary file. */ - int tempcount; - -@@ -153,6 +156,7 @@ - main (int argc, char **argv) - { - int i; -+ char template[]="txidxXXXXXX"; - - tempcount = 0; - last_deleted_tempcount = 0; -@@ -190,6 +194,11 @@ - - decode_command (argc, argv); - -+ /* XXX mkstemp not appropriate, as we need to have somewhat predictable -+ * names. But race condition was fixed, see maketempname. -+ */ -+ tempbase = mktemp (template); -+ - /* Process input files completely, one by one. */ - - for (i = 0; i < num_infiles; i++) -@@ -389,21 +398,21 @@ - static char * - maketempname (int count) - { -- static char *tempbase = NULL; - char tempsuffix[10]; -- -- if (!tempbase) -- { -- int fd; -- tempbase = concat (tempdir, "txidxXXXXXX"); -- -- fd = mkstemp (tempbase); -- if (fd == -1) -- pfatal_with_name (tempbase); -- } -+ char *name, *tmp_name; -+ int fd; - - sprintf (tempsuffix, ".%d", count); -- return concat (tempbase, tempsuffix); -+ tmp_name = concat (tempdir, tempbase); -+ name = concat (tmp_name, tempsuffix); -+ free(tmp_name); -+ -+ fd = open (name, O_CREAT|O_EXCL|O_WRONLY, 0600); -+ if (fd == -1) -+ pfatal_with_name (name); -+ -+ close(fd); -+ return name; - } - - diff --git a/src/patches/uClibc-gcc4-genwctype.patch b/src/patches/uClibc-gcc4-genwctype.patch deleted file mode 100644 index 568e5bd..0000000 --- a/src/patches/uClibc-gcc4-genwctype.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- uClibc-0.9.28/extra/locale/gen_wctype.c.orig 2005-08-18 00:49:41.000000000 +0200 -+++ uClibc-0.9.28/extra/locale/gen_wctype.c 2005-12-09 16:29:53.000000000 +0100 -@@ -796,6 +796,7 @@ - ti[i] = ut + j; - j += blocksize; - } -+ memset(uniqblock, 0, sizeof(uniqblock)); - - /* sort */ - nu_val = blocksize; - diff --git a/src/patches/udev-125-ext4_wo_journal.patch b/src/patches/udev-125-ext4_wo_journal.patch new file mode 100644 index 0000000..77072ce --- /dev/null +++ b/src/patches/udev-125-ext4_wo_journal.patch @@ -0,0 +1,50 @@ +diff -Naur udev-125.org/extras/volume_id/lib/ext.c udev-125/extras/volume_id/lib/ext.c +--- udev-125.org/extras/volume_id/lib/ext.c 2008-07-18 16:26:55.000000000 +0200 ++++ udev-125/extras/volume_id/lib/ext.c 2012-06-25 00:52:40.976563010 +0200 +@@ -160,32 +160,31 @@ + goto found; + } + +- /* has journal */ +- if ((feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0) { +- /* "use on development code" is ext4dev */ +- if ((flags & EXT2_FLAGS_TEST_FILESYS) != 0) { +- id->type = "ext4dev"; +- goto found; +- } ++ /* "use on development code" is ext4dev */ ++ if ((flags & EXT2_FLAGS_TEST_FILESYS) != 0) { ++ id->type = "ext4dev"; ++ goto found; ++ } + +- /* incompatible ext3 features is ext4 */ +- if ((feature_ro_compat & EXT3_FEATURE_RO_COMPAT_UNSUPPORTED) != 0 || +- (feature_incompat & EXT3_FEATURE_INCOMPAT_UNSUPPORTED) != 0) { +- id->type = "ext4"; +- goto found; +- } ++ /* incompatible ext3 features is ext4 */ ++ if ((feature_ro_compat & EXT3_FEATURE_RO_COMPAT_UNSUPPORTED) != 0 || ++ (feature_incompat & EXT3_FEATURE_INCOMPAT_UNSUPPORTED) != 0) { ++ id->type = "ext4"; ++ goto found; ++ } + ++ /* has journal */ ++ if ((feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0) { + id->type = "ext3"; + goto found; + } else { +- /* no incompatible ext2 feature is ext2 */ ++ /* no incompatible ext2 feature is ext2 */ + if ((feature_ro_compat & EXT2_FEATURE_RO_COMPAT_UNSUPPORTED) == 0 && + (feature_incompat & EXT2_FEATURE_INCOMPAT_UNSUPPORTED) == 0) { + id->type = "ext2"; + goto found; + } + } +- + return -1; + + found: diff --git a/src/patches/udev-125-netif_rename.patch b/src/patches/udev-125-netif_rename.patch deleted file mode 100644 index c80b05a..0000000 --- a/src/patches/udev-125-netif_rename.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff -Nur udev-125.vanilla/udev_device.c udev-125/udev_device.c ---- udev-125.vanilla/udev_device.c 2008-07-18 16:26:55.000000000 +0200 -+++ udev-125/udev_device.c 2010-07-25 18:15:12.289242450 +0200 -@@ -123,42 +123,7 @@ - if (retval == 0) - kernel_log(ifr); - else { -- int loop; -- -- /* see if the destination interface name already exists */ -- if (errno != EEXIST) { -- err("error changing netif name %s to %s: %s\n", ifr.ifr_name, ifr.ifr_newname, strerror(errno)); -- goto exit; -- } -- -- /* free our own name, another process may wait for us */ -- strlcpy(ifr.ifr_newname, udev->dev->kernel, IFNAMSIZ); -- strlcat(ifr.ifr_newname, "_rename", IFNAMSIZ); -- retval = ioctl(sk, SIOCSIFNAME, &ifr); -- if (retval != 0) { -- err("error changing netif name %s to %s: %s\n", ifr.ifr_name, ifr.ifr_newname, strerror(errno)); -- goto exit; -- } -- -- /* wait 30 seconds for our target to become available */ -- strlcpy(ifr.ifr_name, ifr.ifr_newname, IFNAMSIZ); -- strlcpy(ifr.ifr_newname, udev->name, IFNAMSIZ); -- loop = 30 * 20; -- while (loop--) { -- retval = ioctl(sk, SIOCSIFNAME, &ifr); -- if (retval == 0) { -- kernel_log(ifr); -- break; -- } -- -- if (errno != EEXIST) { -- err("error changing net interface name %s to %s: %s\n", -- ifr.ifr_name, ifr.ifr_newname, strerror(errno)); -- break; -- } -- dbg("wait for netif '%s' to become free, loop=%i\n", udev->name, (30 * 20) - loop); -- usleep(1000 * 1000 / 20); -- } -+ err("error changing netif name %s to %s: %s\n", ifr.ifr_name, ifr.ifr_newname, strerror(errno)); - } - - exit: diff --git a/src/patches/udev-141_no_netif_rename.patch b/src/patches/udev-141_no_netif_rename.patch new file mode 100644 index 0000000..fcc5009 --- /dev/null +++ b/src/patches/udev-141_no_netif_rename.patch @@ -0,0 +1,50 @@ +diff -Naur udev-141.org/udev/udev-event.c udev-141/udev/udev-event.c +--- udev-141.org/udev/udev-event.c 2009-02-24 15:08:35.000000000 +0100 ++++ udev-141/udev/udev-event.c 2012-10-30 12:27:00.262833136 +0100 +@@ -486,45 +486,8 @@ + if (err == 0) + rename_netif_kernel_log(ifr); + else { +- int loop; +- +- /* see if the destination interface name already exists */ +- if (errno != EEXIST) { +- err(event->udev, "error changing netif name %s to %s: %m\n", +- ifr.ifr_name, ifr.ifr_newname); +- goto exit; +- } +- +- /* free our own name, another process may wait for us */ +- util_strlcpy(ifr.ifr_newname, udev_device_get_sysname(dev), IFNAMSIZ); +- util_strlcat(ifr.ifr_newname, "_rename", IFNAMSIZ); +- err = ioctl(sk, SIOCSIFNAME, &ifr); +- if (err != 0) { +- err(event->udev, "error changing netif name %s to %s: %m\n", ++ err(event->udev, "error changing netif name %s to %s: %m\n", + ifr.ifr_name, ifr.ifr_newname); +- goto exit; +- } +- +- /* wait 90 seconds for our target to become available */ +- util_strlcpy(ifr.ifr_name, ifr.ifr_newname, IFNAMSIZ); +- util_strlcpy(ifr.ifr_newname, event->name, IFNAMSIZ); +- loop = 90 * 20; +- while (loop--) { +- err = ioctl(sk, SIOCSIFNAME, &ifr); +- if (err == 0) { +- rename_netif_kernel_log(ifr); +- break; +- } +- +- if (errno != EEXIST) { +- err(event->udev, "error changing net interface name %s to %s: %m\n", +- ifr.ifr_name, ifr.ifr_newname); +- break; +- } +- dbg(event->udev, "wait for netif '%s' to become free, loop=%i\n", +- event->name, (90 * 20) - loop); +- usleep(1000 * 1000 / 20); +- } + } + exit: + close(sk); diff --git a/src/patches/udev-config-6.2_persistent-storage-fix.patch b/src/patches/udev-config-6.2_persistent-storage-fix.patch deleted file mode 100644 index 172091a..0000000 --- a/src/patches/udev-config-6.2_persistent-storage-fix.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur udev-config-6.2.org/60-persistent-storage.rules udev-config-6.2/60-persistent-storage.rules ---- udev-config-6.2.org/60-persistent-storage.rules 2006-05-13 01:03:13.000000000 +0200 -+++ udev-config-6.2/60-persistent-storage.rules 2010-08-14 11:08:35.000000000 +0200 -@@ -9,7 +9,7 @@ - - # never access removable ide devices, the drivers are causing event loops on open() - KERNEL=="hd*[!0-9]", SYSFS{removable}=="1", DRIVER=="ide-cs|ide-floppy", GOTO="persistent_storage_end" --KERNEL=="hd*[0-9]", SYSFS{../removable}=="1", GOTO="persistent_storage_end" -+KERNEL=="hd*[0-9]", SYSFS{removable}=="1", GOTO="persistent_storage_end" - - # for partitions import parent information - KERNEL=="*[0-9]", IMPORT{parent}=="ID_*" diff --git a/src/patches/udev-config-6.2_remove-lfs-usb-rule.patch b/src/patches/udev-config-6.2_remove-lfs-usb-rule.patch deleted file mode 100644 index ef02bf7..0000000 --- a/src/patches/udev-config-6.2_remove-lfs-usb-rule.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur udev-config-6.2.org/25-lfs.rules udev-config-6.2/25-lfs.rules ---- udev-config-6.2.org/25-lfs.rules 2006-07-14 23:29:28.000000000 +0200 -+++ udev-config-6.2/25-lfs.rules 2010-12-21 18:55:40.375602794 +0100 -@@ -84,7 +84,6 @@ - - # USB devices go in their own subdirectory - --SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'X=%k; X=$${X#usbdev}; B=$${X%%%%.*} D=$${X#*.}; echo bus/usb/$$B/$$D'", NAME="%c" - KERNEL=="hiddev*", NAME="usb/%k" - KERNEL=="auer*", NAME="usb/%k" - KERNEL=="legousbtower*", NAME="usb/%k" diff --git a/src/patches/v4l-dvb_bestunar_us638x.patch b/src/patches/v4l-dvb_bestunar_us638x.patch new file mode 100644 index 0000000..e3ac8d2 --- /dev/null +++ b/src/patches/v4l-dvb_bestunar_us638x.patch @@ -0,0 +1,2810 @@ +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Kconfig v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Kconfig +--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Kconfig 2012-08-22 05:45:23.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Kconfig 2012-11-24 13:35:19.220030262 +0100 +@@ -200,6 +200,13 @@ + help + A DVB-S/S2 tuner module. Say Y when you want to support this frontend. + ++config DVB_M88DS3103 ++ tristate "Montage DS3103 based" ++ depends on DVB_CORE && I2C ++ default m if DVB_FE_CUSTOMISE ++ help ++ A DVB-S/S2 tuner module. Say Y when you want to support this frontend. ++ + config DVB_SI21XX + tristate "Silicon Labs SI21XX based" + depends on DVB_CORE && I2C +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.c v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.c +--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.c 1970-01-01 01:00:00.000000000 +0100 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.c 2012-11-24 13:34:43.713346302 +0100 +@@ -0,0 +1,1710 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ Copyright (C) 2011 Max nibblenibble.max@gmail.com ++ Copyright (C) 2010 Montage Technology<www.montage-tech.com> ++ Copyright (C) 2009 Konstantin Dimitrov. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include <linux/slab.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/moduleparam.h> ++#include <linux/init.h> ++#include <linux/firmware.h> ++ ++#include "dvb_frontend.h" ++#include "m88ds3103.h" ++#include "m88ds3103_priv.h" ++ ++static int debug; ++module_param(debug, int, 0644); ++MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)"); ++ ++#define dprintk(args...) \ ++ do { \ ++ if (debug) \ ++ printk(KERN_INFO "m88ds3103: " args); \ ++ } while (0) ++ ++/*demod register operations.*/ ++static int m88ds3103_writereg(struct m88ds3103_state *state, int reg, int data) ++{ ++ u8 buf[] = { reg, data }; ++ struct i2c_msg msg = { .addr = state->config->demod_address, ++ .flags = 0, .buf = buf, .len = 2 }; ++ int err; ++ ++ if (debug > 1) ++ printk("m88ds3103: %s: write reg 0x%02x, value 0x%02x\n", ++ __func__, reg, data); ++ ++ err = i2c_transfer(state->i2c, &msg, 1); ++ if (err != 1) { ++ printk(KERN_ERR "%s: writereg error(err == %i, reg == 0x%02x," ++ " value == 0x%02x)\n", __func__, err, reg, data); ++ return -EREMOTEIO; ++ } ++ return 0; ++} ++ ++static int m88ds3103_readreg(struct m88ds3103_state *state, u8 reg) ++{ ++ int ret; ++ u8 b0[] = { reg }; ++ u8 b1[] = { 0 }; ++ struct i2c_msg msg[] = { ++ { .addr = state->config->demod_address, .flags = 0, ++ .buf = b0, .len = 1 }, ++ { .addr = state->config->demod_address, .flags = I2C_M_RD, ++ .buf = b1, .len = 1 } ++ }; ++ ret = i2c_transfer(state->i2c, msg, 2); ++ ++ if (ret != 2) { ++ printk(KERN_ERR "%s: reg=0x%x (error=%d)\n", ++ __func__, reg, ret); ++ return ret; ++ } ++ ++ if (debug > 1) ++ printk(KERN_INFO "m88ds3103: read reg 0x%02x, value 0x%02x\n", ++ reg, b1[0]); ++ ++ return b1[0]; ++} ++ ++/*tuner register operations.*/ ++static int m88ds3103_tuner_writereg(struct m88ds3103_state *state, int reg, int data) ++{ ++ u8 buf[] = { reg, data }; ++ struct i2c_msg msg = { .addr = 0x60, ++ .flags = 0, .buf = buf, .len = 2 }; ++ int err; ++ ++ m88ds3103_writereg(state, 0x03, 0x11); ++ err = i2c_transfer(state->i2c, &msg, 1); ++ ++ if (err != 1) { ++ printk("%s: writereg error(err == %i, reg == 0x%02x," ++ " value == 0x%02x)\n", __func__, err, reg, data); ++ return -EREMOTEIO; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_tuner_readreg(struct m88ds3103_state *state, u8 reg) ++{ ++ int ret; ++ u8 b0[] = { reg }; ++ u8 b1[] = { 0 }; ++ struct i2c_msg msg[] = { ++ { .addr = 0x60, .flags = 0, ++ .buf = b0, .len = 1 }, ++ { .addr = 0x60, .flags = I2C_M_RD, ++ .buf = b1, .len = 1 } ++ }; ++ ++ m88ds3103_writereg(state, 0x03, 0x11); ++ ret = i2c_transfer(state->i2c, msg, 2); ++ ++ if (ret != 2) { ++ printk(KERN_ERR "%s: reg=0x%x(error=%d)\n", __func__, reg, ret); ++ return ret; ++ } ++ ++ return b1[0]; ++} ++ ++/* Bulk demod I2C write, for firmware download. */ ++static int m88ds3103_writeregN(struct m88ds3103_state *state, int reg, ++ const u8 *data, u16 len) ++{ ++ int ret = -EREMOTEIO; ++ struct i2c_msg msg; ++ u8 *buf; ++ ++ buf = kmalloc(len + 1, GFP_KERNEL); ++ if (buf == NULL) { ++ printk("Unable to kmalloc\n"); ++ ret = -ENOMEM; ++ goto error; ++ } ++ ++ *(buf) = reg; ++ memcpy(buf + 1, data, len); ++ ++ msg.addr = state->config->demod_address; ++ msg.flags = 0; ++ msg.buf = buf; ++ msg.len = len + 1; ++ ++ if (debug > 1) ++ printk(KERN_INFO "m88ds3103: %s: write regN 0x%02x, len = %d\n", ++ __func__, reg, len); ++ ++ ret = i2c_transfer(state->i2c, &msg, 1); ++ if (ret != 1) { ++ printk(KERN_ERR "%s: writereg error(err == %i, reg == 0x%02x\n", ++ __func__, ret, reg); ++ ret = -EREMOTEIO; ++ } ++ ++error: ++ kfree(buf); ++ ++ return ret; ++} ++ ++static int m88ds3103_load_firmware(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ const struct firmware *fw; ++ int i, ret = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ if (state->skip_fw_load) ++ return 0; ++ /* Load firmware */ ++ /* request the firmware, this will block until someone uploads it */ ++ if(state->demod_id == DS3000_ID){ ++ printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__, ++ DS3000_DEFAULT_FIRMWARE); ++ ret = request_firmware(&fw, DS3000_DEFAULT_FIRMWARE, ++ state->i2c->dev.parent); ++ }else if(state->demod_id == DS3103_ID){ ++ printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__, ++ DS3103_DEFAULT_FIRMWARE); ++ ret = request_firmware(&fw, DS3103_DEFAULT_FIRMWARE, ++ state->i2c->dev.parent); ++ } ++ ++ printk(KERN_INFO "%s: Waiting for firmware upload(2)...\n", __func__); ++ if (ret) { ++ printk(KERN_ERR "%s: No firmware uploaded (timeout or file not " ++ "found?)\n", __func__); ++ return ret; ++ } ++ ++ /* Make sure we don't recurse back through here during loading */ ++ state->skip_fw_load = 1; ++ ++ dprintk("Firmware is %zu bytes (%02x %02x .. %02x %02x)\n", ++ fw->size, ++ fw->data[0], ++ fw->data[1], ++ fw->data[fw->size - 2], ++ fw->data[fw->size - 1]); ++ ++ /* stop internal mcu. */ ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ /* split firmware to download.*/ ++ for(i = 0; i < FW_DOWN_LOOP; i++){ ++ ret = m88ds3103_writeregN(state, 0xb0, &(fw->data[FW_DOWN_SIZE*i]), FW_DOWN_SIZE); ++ if(ret != 1) break; ++ } ++ /* start internal mcu. */ ++ if(ret == 1) ++ m88ds3103_writereg(state, 0xb2, 0x00); ++ ++ release_firmware(fw); ++ ++ dprintk("%s: Firmware upload %s\n", __func__, ++ ret == 1 ? "complete" : "failed"); ++ ++ if(ret == 1) ret = 0; ++ ++ /* Ensure firmware is always loaded if required */ ++ state->skip_fw_load = 0; ++ ++ return ret; ++} ++ ++ ++static int m88ds3103_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 data; ++ ++ dprintk("%s(%d)\n", __func__, voltage); ++ ++ dprintk("m88ds3103:pin_ctrl = (%02x)\n", state->config->pin_ctrl); ++ ++ if(state->config->set_voltage) ++ state->config->set_voltage(fe, voltage); ++ ++ data = m88ds3103_readreg(state, 0xa2); ++ ++ if(state->config->pin_ctrl & 0x80){ /*If control pin is assigned.*/ ++ data &= ~0x03; /* bit0 V/H, bit1 off/on */ ++ if(state->config->pin_ctrl & 0x02) ++ data |= 0x02; ++ ++ switch (voltage) { ++ case SEC_VOLTAGE_18: ++ if((state->config->pin_ctrl & 0x01) == 0) ++ data |= 0x01; ++ break; ++ case SEC_VOLTAGE_13: ++ if(state->config->pin_ctrl & 0x01) ++ data |= 0x01; ++ break; ++ case SEC_VOLTAGE_OFF: ++ if(state->config->pin_ctrl & 0x02) ++ data &= ~0x02; ++ else ++ data |= 0x02; ++ break; ++ } ++ } ++ ++ m88ds3103_writereg(state, 0xa2, data); ++ ++ return 0; ++} ++ ++static int m88ds3103_read_status(struct dvb_frontend *fe, fe_status_t* status) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int lock = 0; ++ ++ *status = 0; ++ ++ switch (state->delivery_system){ ++ case SYS_DVBS: ++ lock = m88ds3103_readreg(state, 0xd1); ++ dprintk("%s: SYS_DVBS status=%x.\n", __func__, lock); ++ ++ if ((lock & 0x07) == 0x07){ ++ /*if((m88ds3103_readreg(state, 0x0d) & 0x07) == 0x07)*/ ++ *status = FE_HAS_SIGNAL | FE_HAS_CARRIER ++ | FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK; ++ ++ } ++ break; ++ case SYS_DVBS2: ++ lock = m88ds3103_readreg(state, 0x0d); ++ dprintk("%s: SYS_DVBS2 status=%x.\n", __func__, lock); ++ ++ if ((lock & 0x8f) == 0x8f) ++ *status = FE_HAS_SIGNAL | FE_HAS_CARRIER ++ | FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK; ++ ++ break; ++ default: ++ break; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_read_ber(struct dvb_frontend *fe, u32* ber) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp1, tmp2, tmp3; ++ u32 ldpc_frame_cnt, pre_err_packags, code_rate_fac = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ m88ds3103_writereg(state, 0xf9, 0x04); ++ tmp3 = m88ds3103_readreg(state, 0xf8); ++ if ((tmp3&0x10) == 0){ ++ tmp1 = m88ds3103_readreg(state, 0xf7); ++ tmp2 = m88ds3103_readreg(state, 0xf6); ++ tmp3 |= 0x10; ++ m88ds3103_writereg(state, 0xf8, tmp3); ++ state->preBer = (tmp1<<8) | tmp2; ++ } ++ break; ++ case SYS_DVBS2: ++ tmp1 = m88ds3103_readreg(state, 0x7e) & 0x0f; ++ switch(tmp1){ ++ case 0: code_rate_fac = 16008 - 80; break; ++ case 1: code_rate_fac = 21408 - 80; break; ++ case 2: code_rate_fac = 25728 - 80; break; ++ case 3: code_rate_fac = 32208 - 80; break; ++ case 4: code_rate_fac = 38688 - 80; break; ++ case 5: code_rate_fac = 43040 - 80; break; ++ case 6: code_rate_fac = 48408 - 80; break; ++ case 7: code_rate_fac = 51648 - 80; break; ++ case 8: code_rate_fac = 53840 - 80; break; ++ case 9: code_rate_fac = 57472 - 80; break; ++ case 10: code_rate_fac = 58192 - 80; break; ++ } ++ ++ tmp1 = m88ds3103_readreg(state, 0xd7) & 0xff; ++ tmp2 = m88ds3103_readreg(state, 0xd6) & 0xff; ++ tmp3 = m88ds3103_readreg(state, 0xd5) & 0xff; ++ ldpc_frame_cnt = (tmp1 << 16) | (tmp2 << 8) | tmp3; ++ ++ tmp1 = m88ds3103_readreg(state, 0xf8) & 0xff; ++ tmp2 = m88ds3103_readreg(state, 0xf7) & 0xff; ++ pre_err_packags = tmp1<<8 | tmp2; ++ ++ if (ldpc_frame_cnt > 1000){ ++ m88ds3103_writereg(state, 0xd1, 0x01); ++ m88ds3103_writereg(state, 0xf9, 0x01); ++ m88ds3103_writereg(state, 0xf9, 0x00); ++ m88ds3103_writereg(state, 0xd1, 0x00); ++ state->preBer = pre_err_packags; ++ } ++ break; ++ default: ++ break; ++ } ++ *ber = state->preBer; ++ ++ return 0; ++} ++ ++static int m88ds3103_read_signal_strength(struct dvb_frontend *fe, ++ u16 *signal_strength) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u16 gain; ++ u8 gain1, gain2, gain3 = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ gain1 = m88ds3103_tuner_readreg(state, 0x3d) & 0x1f; ++ dprintk("%s: gain1 = 0x%02x \n", __func__, gain1); ++ ++ if (gain1 > 15) gain1 = 15; ++ gain2 = m88ds3103_tuner_readreg(state, 0x21) & 0x1f; ++ dprintk("%s: gain2 = 0x%02x \n", __func__, gain2); ++ ++ if(state->tuner_id == TS2022_ID){ ++ gain3 = (m88ds3103_tuner_readreg(state, 0x66)>>3) & 0x07; ++ dprintk("%s: gain3 = 0x%02x \n", __func__, gain3); ++ ++ if (gain2 > 16) gain2 = 16; ++ if (gain2 < 2) gain2 = 2; ++ if (gain3 > 6) gain3 = 6; ++ }else{ ++ if (gain2 > 13) gain2 = 13; ++ gain3 = 0; ++ } ++ ++ gain = gain1*23 + gain2*35 + gain3*29; ++ *signal_strength = 60000 - gain*55; ++ ++ return 0; ++} ++ ++ ++static int m88ds3103_read_snr(struct dvb_frontend *fe, u16 *p_snr) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val, npow1, npow2, spow1, cnt; ++ u16 tmp, snr; ++ u32 npow, spow, snr_total; ++ static const u16 mes_log10[] ={ ++ 0, 3010, 4771, 6021, 6990, 7781, 8451, 9031, 9542, 10000, ++ 10414, 10792, 11139, 11461, 11761, 12041, 12304, 12553, 12788, 13010, ++ 13222, 13424, 13617, 13802, 13979, 14150, 14314, 14472, 14624, 14771, ++ 14914, 15052, 15185, 15315, 15441, 15563, 15682, 15798, 15911, 16021, ++ 16128, 16232, 16335, 16435, 16532, 16628, 16721, 16812, 16902, 16990, ++ 17076, 17160, 17243, 17324, 17404, 17482, 17559, 17634, 17709, 17782, ++ 17853, 17924, 17993, 18062, 18129, 18195, 18261, 18325, 18388, 18451, ++ 18513, 18573, 18633, 18692, 18751, 18808, 18865, 18921, 18976, 19031 ++ }; ++ static const u16 mes_loge[] ={ ++ 0, 6931, 10986, 13863, 16094, 17918, 19459, 20794, 21972, 23026, ++ 23979, 24849, 25649, 26391, 27081, 27726, 28332, 28904, 29444, 29957, ++ 30445, 30910, 31355, 31781, 32189, 32581, 32958, 33322, 33673, 34012, ++ 34340, 34657, ++ }; ++ ++ dprintk("%s()\n", __func__); ++ ++ snr = 0; ++ ++ switch (state->delivery_system){ ++ case SYS_DVBS: ++ cnt = 10; snr_total = 0; ++ while(cnt > 0){ ++ val = m88ds3103_readreg(state, 0xff); ++ snr_total += val; ++ cnt--; ++ } ++ tmp = (u16)(snr_total/80); ++ if(tmp > 0){ ++ if (tmp > 32) tmp = 32; ++ snr = (mes_loge[tmp - 1] * 100) / 45; ++ }else{ ++ snr = 0; ++ } ++ break; ++ case SYS_DVBS2: ++ cnt = 10; npow = 0; spow = 0; ++ while(cnt >0){ ++ npow1 = m88ds3103_readreg(state, 0x8c) & 0xff; ++ npow2 = m88ds3103_readreg(state, 0x8d) & 0xff; ++ npow += (((npow1 & 0x3f) + (u16)(npow2 << 6)) >> 2); ++ ++ spow1 = m88ds3103_readreg(state, 0x8e) & 0xff; ++ spow += ((spow1 * spow1) >> 1); ++ cnt--; ++ } ++ npow /= 10; spow /= 10; ++ if(spow == 0){ ++ snr = 0; ++ }else if(npow == 0){ ++ snr = 19; ++ }else{ ++ if(spow > npow){ ++ tmp = (u16)(spow / npow); ++ if (tmp > 80) tmp = 80; ++ snr = mes_log10[tmp - 1]*3; ++ }else{ ++ tmp = (u16)(npow / spow); ++ if (tmp > 80) tmp = 80; ++ snr = -(mes_log10[tmp - 1] / 1000); ++ } ++ } ++ break; ++ default: ++ break; ++ } ++ *p_snr = snr; ++ ++ return 0; ++} ++ ++ ++static int m88ds3103_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp1, tmp2, tmp3, data; ++ ++ dprintk("%s()\n", __func__); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ data = m88ds3103_readreg(state, 0xf8); ++ data |= 0x40; ++ m88ds3103_writereg(state, 0xf8, data); ++ tmp1 = m88ds3103_readreg(state, 0xf5); ++ tmp2 = m88ds3103_readreg(state, 0xf4); ++ *ucblocks = (tmp1 <<8) | tmp2; ++ data &= ~0x20; ++ m88ds3103_writereg(state, 0xf8, data); ++ data |= 0x20; ++ m88ds3103_writereg(state, 0xf8, data); ++ data &= ~0x40; ++ m88ds3103_writereg(state, 0xf8, data); ++ break; ++ case SYS_DVBS2: ++ tmp1 = m88ds3103_readreg(state, 0xda); ++ tmp2 = m88ds3103_readreg(state, 0xd9); ++ tmp3 = m88ds3103_readreg(state, 0xd8); ++ *ucblocks = (tmp1 <<16)|(tmp2 <<8)|tmp3; ++ data = m88ds3103_readreg(state, 0xd1); ++ data |= 0x01; ++ m88ds3103_writereg(state, 0xd1, data); ++ data &= ~0x01; ++ m88ds3103_writereg(state, 0xd1, data); ++ break; ++ default: ++ break; ++ } ++ return 0; ++} ++ ++static int m88ds3103_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 data_a1, data_a2; ++ ++ dprintk("%s(%d)\n", __func__, tone); ++ if ((tone != SEC_TONE_ON) && (tone != SEC_TONE_OFF)) { ++ printk(KERN_ERR "%s: Invalid, tone=%d\n", __func__, tone); ++ return -EINVAL; ++ } ++ ++ data_a1 = m88ds3103_readreg(state, 0xa1); ++ data_a2 = m88ds3103_readreg(state, 0xa2); ++ if(state->demod_id == DS3103_ID) ++ data_a2 &= 0xdf; /* Normal mode */ ++ switch (tone) { ++ case SEC_TONE_ON: ++ dprintk("%s: SEC_TONE_ON\n", __func__); ++ data_a1 |= 0x04; ++ data_a1 &= ~0x03; ++ data_a1 &= ~0x40; ++ data_a2 &= ~0xc0; ++ break; ++ case SEC_TONE_OFF: ++ dprintk("%s: SEC_TONE_OFF\n", __func__); ++ data_a2 &= ~0xc0; ++ data_a2 |= 0x80; ++ break; ++ } ++ m88ds3103_writereg(state, 0xa2, data_a2); ++ m88ds3103_writereg(state, 0xa1, data_a1); ++ return 0; ++} ++ ++static int m88ds3103_send_diseqc_msg(struct dvb_frontend *fe, ++ struct dvb_diseqc_master_cmd *d) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int i, ret = 0; ++ u8 tmp, time_out; ++ ++ /* Dump DiSEqC message */ ++ if (debug) { ++ printk(KERN_INFO "m88ds3103: %s(", __func__); ++ for (i = 0 ; i < d->msg_len ;) { ++ printk(KERN_INFO "0x%02x", d->msg[i]); ++ if (++i < d->msg_len) ++ printk(KERN_INFO ", "); ++ } ++ } ++ ++ tmp = m88ds3103_readreg(state, 0xa2); ++ tmp &= ~0xc0; ++ if(state->demod_id == DS3103_ID) ++ tmp &= ~0x20; ++ m88ds3103_writereg(state, 0xa2, tmp); ++ ++ for (i = 0; i < d->msg_len; i ++) ++ m88ds3103_writereg(state, (0xa3+i), d->msg[i]); ++ ++ tmp = m88ds3103_readreg(state, 0xa1); ++ tmp &= ~0x38; ++ tmp &= ~0x40; ++ tmp |= ((d->msg_len-1) << 3) | 0x07; ++ tmp &= ~0x80; ++ m88ds3103_writereg(state, 0xa1, tmp); ++ /* 1.5 * 9 * 8 = 108ms */ ++ time_out = 150; ++ while (time_out > 0){ ++ msleep(10); ++ time_out -= 10; ++ tmp = m88ds3103_readreg(state, 0xa1); ++ if ((tmp & 0x40) == 0) ++ break; ++ } ++ if (time_out == 0){ ++ tmp = m88ds3103_readreg(state, 0xa1); ++ tmp &= ~0x80; ++ tmp |= 0x40; ++ m88ds3103_writereg(state, 0xa1, tmp); ++ ret = 1; ++ } ++ tmp = m88ds3103_readreg(state, 0xa2); ++ tmp &= ~0xc0; ++ tmp |= 0x80; ++ m88ds3103_writereg(state, 0xa2, tmp); ++ return ret; ++} ++ ++ ++static int m88ds3103_diseqc_send_burst(struct dvb_frontend *fe, ++ fe_sec_mini_cmd_t burst) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val, time_out; ++ ++ dprintk("%s()\n", __func__); ++ ++ val = m88ds3103_readreg(state, 0xa2); ++ val &= ~0xc0; ++ if(state->demod_id == DS3103_ID) ++ val &= 0xdf; /* Normal mode */ ++ m88ds3103_writereg(state, 0xa2, val); ++ /* DiSEqC burst */ ++ if (burst == SEC_MINI_B) ++ m88ds3103_writereg(state, 0xa1, 0x01); ++ else ++ m88ds3103_writereg(state, 0xa1, 0x02); ++ ++ msleep(13); ++ ++ time_out = 5; ++ do{ ++ val = m88ds3103_readreg(state, 0xa1); ++ if ((val & 0x40) == 0) ++ break; ++ msleep(1); ++ time_out --; ++ } while (time_out > 0); ++ ++ val = m88ds3103_readreg(state, 0xa2); ++ val &= ~0xc0; ++ val |= 0x80; ++ m88ds3103_writereg(state, 0xa2, val); ++ ++ return 0; ++} ++ ++static void m88ds3103_release(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ ++ dprintk("%s\n", __func__); ++ kfree(state); ++} ++ ++static int m88ds3103_check_id(struct m88ds3103_state *state) ++{ ++ int val_00, val_01; ++ ++ /*check demod id*/ ++ val_01 = m88ds3103_readreg(state, 0x01); ++ printk(KERN_INFO "DS3000 chip version: %x attached.\n", val_01); ++ ++ if(val_01 == 0xD0) ++ state->demod_id = DS3103_ID; ++ else if(val_01 == 0xC0) ++ state->demod_id = DS3000_ID; ++ else ++ state->demod_id = UNKNOW_ID; ++ ++ /*check tuner id*/ ++ val_00 = m88ds3103_tuner_readreg(state, 0x00); ++ printk(KERN_INFO "TS202x chip version[1]: %x attached.\n", val_00); ++ val_00 &= 0x03; ++ if(val_00 == 0) ++ { ++ m88ds3103_tuner_writereg(state, 0x00, 0x01); ++ msleep(3); ++ } ++ m88ds3103_tuner_writereg(state, 0x00, 0x03); ++ msleep(5); ++ ++ val_00 = m88ds3103_tuner_readreg(state, 0x00); ++ printk(KERN_INFO "TS202x chip version[2]: %x attached.\n", val_00); ++ val_00 &= 0xff; ++ if((val_00 == 0x01) || (val_00 == 0x41) || (val_00 == 0x81)) ++ state->tuner_id = TS2020_ID; ++ else if(((val_00 & 0xc0)== 0xc0) || (val_00 == 0x83)) ++ state->tuner_id = TS2022_ID; ++ else ++ state->tuner_id = UNKNOW_ID; ++ ++ return state->demod_id; ++} ++ ++static struct dvb_frontend_ops m88ds3103_ops; ++static int m88ds3103_initilaze(struct dvb_frontend *fe); ++ ++struct dvb_frontend *m88ds3103_attach(const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c) ++{ ++ struct m88ds3103_state *state = NULL; ++ ++ dprintk("%s\n", __func__); ++ ++ /* allocate memory for the internal state */ ++ state = kzalloc(sizeof(struct m88ds3103_state), GFP_KERNEL); ++ if (state == NULL) { ++ printk(KERN_ERR "Unable to kmalloc\n"); ++ goto error2; ++ } ++ ++ state->config = config; ++ state->i2c = i2c; ++ state->preBer = 0xffff; ++ state->delivery_system = SYS_DVBS; /*Default to DVB-S.*/ ++ ++ /* check demod id */ ++ if(m88ds3103_check_id(state) == UNKNOW_ID){ ++ printk(KERN_ERR "Unable to find Montage chip\n"); ++ goto error3; ++ } ++ ++ memcpy(&state->frontend.ops, &m88ds3103_ops, ++ sizeof(struct dvb_frontend_ops)); ++ state->frontend.demodulator_priv = state; ++ ++ m88ds3103_initilaze(&state->frontend); ++ ++ return &state->frontend; ++ ++error3: ++ kfree(state); ++error2: ++ return NULL; ++} ++EXPORT_SYMBOL(m88ds3103_attach); ++ ++static int m88ds3103_set_carrier_offset(struct dvb_frontend *fe, ++ s32 carrier_offset_khz) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ s32 tmp; ++ ++ tmp = carrier_offset_khz; ++ tmp *= 65536; ++ ++ tmp = (2*tmp + MT_FE_MCLK_KHZ) / (2*MT_FE_MCLK_KHZ); ++ ++ if (tmp < 0) ++ tmp += 65536; ++ ++ m88ds3103_writereg(state, 0x5f, tmp >> 8); ++ m88ds3103_writereg(state, 0x5e, tmp & 0xff); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_symrate(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ u16 value; ++ ++ value = (((c->symbol_rate / 1000) << 15) + (MT_FE_MCLK_KHZ / 4)) / (MT_FE_MCLK_KHZ / 2); ++ m88ds3103_writereg(state, 0x61, value & 0x00ff); ++ m88ds3103_writereg(state, 0x62, (value & 0xff00) >> 8); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_CCI(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp; ++ ++ tmp = m88ds3103_readreg(state, 0x56); ++ tmp &= ~0x01; ++ m88ds3103_writereg(state, 0x56, tmp); ++ ++ tmp = m88ds3103_readreg(state, 0x76); ++ tmp &= ~0x80; ++ m88ds3103_writereg(state, 0x76, tmp); ++ ++ return 0; ++} ++ ++static int m88ds3103_init_reg(struct m88ds3103_state *state, const u8 *p_reg_tab, u32 size) ++{ ++ u32 i; ++ ++ for(i = 0; i < size; i+=2) ++ m88ds3103_writereg(state, p_reg_tab[i], p_reg_tab[i+1]); ++ ++ return 0; ++} ++ ++static int m88ds3103_get_locked_sym_rate(struct m88ds3103_state *state, u32 *sym_rate_KSs) ++{ ++ u16 tmp; ++ u32 sym_rate_tmp; ++ u8 val_0x6d, val_0x6e; ++ ++ val_0x6d = m88ds3103_readreg(state, 0x6d); ++ val_0x6e = m88ds3103_readreg(state, 0x6e); ++ ++ tmp = (u16)((val_0x6e<<8) | val_0x6d); ++ ++ sym_rate_tmp = (u32)(tmp * MT_FE_MCLK_KHZ); ++ sym_rate_tmp = (u32)(sym_rate_tmp / (1<<16)); ++ *sym_rate_KSs = sym_rate_tmp; ++ ++ return 0; ++} ++ ++static int m88ds3103_get_channel_info(struct m88ds3103_state *state, u8 *p_mode, u8 *p_coderate) ++{ ++ u8 tmp, val_0x7E; ++ ++ if(state->delivery_system == SYS_DVBS2){ ++ val_0x7E = m88ds3103_readreg(state, 0x7e); ++ tmp = (u8)((val_0x7E&0xC0) >> 6); ++ *p_mode = tmp; ++ tmp = (u8)(val_0x7E & 0x0f); ++ *p_coderate = tmp; ++ } else { ++ *p_mode = 0; ++ tmp = m88ds3103_readreg(state, 0xe6); ++ tmp = (u8)(tmp >> 5); ++ *p_coderate = tmp; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_set_clock_ratio(struct m88ds3103_state *state) ++{ ++ u8 val, mod_fac, tmp1, tmp2; ++ u32 input_datarate, locked_sym_rate_KSs; ++ u32 MClk_KHz = 96000; ++ u8 mod_mode, code_rate, divid_ratio = 0; ++ ++ locked_sym_rate_KSs = 0; ++ m88ds3103_get_locked_sym_rate(state, &locked_sym_rate_KSs); ++ if(locked_sym_rate_KSs == 0) ++ return 0; ++ ++ m88ds3103_get_channel_info(state, &mod_mode, &code_rate); ++ ++ if (state->delivery_system == SYS_DVBS2) ++ { ++ switch(mod_mode) { ++ case 1: mod_fac = 3; break; ++ case 2: mod_fac = 4; break; ++ case 3: mod_fac = 5; break; ++ default: mod_fac = 2; break; ++ } ++ ++ switch(code_rate) { ++ case 0: input_datarate = locked_sym_rate_KSs*mod_fac/8/4; break; ++ case 1: input_datarate = locked_sym_rate_KSs*mod_fac/8/3; break; ++ case 2: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/5; break; ++ case 3: input_datarate = locked_sym_rate_KSs*mod_fac/8/2; break; ++ case 4: input_datarate = locked_sym_rate_KSs*mod_fac*3/8/5; break; ++ case 5: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/3; break; ++ case 6: input_datarate = locked_sym_rate_KSs*mod_fac*3/8/4; break; ++ case 7: input_datarate = locked_sym_rate_KSs*mod_fac*4/8/5; break; ++ case 8: input_datarate = locked_sym_rate_KSs*mod_fac*5/8/6; break; ++ case 9: input_datarate = locked_sym_rate_KSs*mod_fac*8/8/9; break; ++ case 10: input_datarate = locked_sym_rate_KSs*mod_fac*9/8/10; break; ++ default: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/3; break; ++ } ++ ++ if(state->demod_id == DS3000_ID) ++ input_datarate = input_datarate * 115 / 100; ++ ++ if(input_datarate < 4800) {tmp1 = 15;tmp2 = 15;} //4.8MHz TS clock ++ else if(input_datarate < 4966) {tmp1 = 14;tmp2 = 15;} //4.966MHz TS clock ++ else if(input_datarate < 5143) {tmp1 = 14;tmp2 = 14;} //5.143MHz TS clock ++ else if(input_datarate < 5333) {tmp1 = 13;tmp2 = 14;} //5.333MHz TS clock ++ else if(input_datarate < 5538) {tmp1 = 13;tmp2 = 13;} //5.538MHz TS clock ++ else if(input_datarate < 5760) {tmp1 = 12;tmp2 = 13;} //5.76MHz TS clock allan 0809 ++ else if(input_datarate < 6000) {tmp1 = 12;tmp2 = 12;} //6MHz TS clock ++ else if(input_datarate < 6260) {tmp1 = 11;tmp2 = 12;} //6.26MHz TS clock ++ else if(input_datarate < 6545) {tmp1 = 11;tmp2 = 11;} //6.545MHz TS clock ++ else if(input_datarate < 6857) {tmp1 = 10;tmp2 = 11;} //6.857MHz TS clock ++ else if(input_datarate < 7200) {tmp1 = 10;tmp2 = 10;} //7.2MHz TS clock ++ else if(input_datarate < 7578) {tmp1 = 9;tmp2 = 10;} //7.578MHz TS clock ++ else if(input_datarate < 8000) {tmp1 = 9;tmp2 = 9;} //8MHz TS clock ++ else if(input_datarate < 8470) {tmp1 = 8;tmp2 = 9;} //8.47MHz TS clock ++ else if(input_datarate < 9000) {tmp1 = 8;tmp2 = 8;} //9MHz TS clock ++ else if(input_datarate < 9600) {tmp1 = 7;tmp2 = 8;} //9.6MHz TS clock ++ else if(input_datarate < 10285) {tmp1 = 7;tmp2 = 7;} //10.285MHz TS clock ++ else if(input_datarate < 12000) {tmp1 = 6;tmp2 = 6;} //12MHz TS clock ++ else if(input_datarate < 14400) {tmp1 = 5;tmp2 = 5;} //14.4MHz TS clock ++ else if(input_datarate < 18000) {tmp1 = 4;tmp2 = 4;} //18MHz TS clock ++ else {tmp1 = 3;tmp2 = 3;} //24MHz TS clock ++ ++ if(state->demod_id == DS3000_ID) { ++ val = (u8)((tmp1<<4) + tmp2); ++ m88ds3103_writereg(state, 0xfe, val); ++ } else { ++ tmp1 = m88ds3103_readreg(state, 0x22); ++ tmp2 = m88ds3103_readreg(state, 0x24); ++ ++ tmp1 >>= 6; ++ tmp1 &= 0x03; ++ tmp2 >>= 6; ++ tmp2 &= 0x03; ++ ++ if((tmp1 == 0x00) && (tmp2 == 0x01)) ++ MClk_KHz = 144000; ++ else if((tmp1 == 0x00) && (tmp2 == 0x03)) ++ MClk_KHz = 72000; ++ else if((tmp1 == 0x01) && (tmp2 == 0x01)) ++ MClk_KHz = 115200; ++ else if((tmp1 == 0x02) && (tmp2 == 0x01)) ++ MClk_KHz = 96000; ++ else if((tmp1 == 0x03) && (tmp2 == 0x00)) ++ MClk_KHz = 192000; ++ else ++ return 0; ++ ++ if(input_datarate < 5200) /*Max. 2011-12-23 11:55*/ ++ input_datarate = 5200; ++ ++ if(input_datarate != 0) ++ divid_ratio = (u8)(MClk_KHz / input_datarate); ++ else ++ divid_ratio = 0xFF; ++ ++ if(divid_ratio > 128) ++ divid_ratio = 128; ++ ++ if(divid_ratio < 2) ++ divid_ratio = 2; ++ ++ tmp1 = (u8)(divid_ratio / 2); ++ tmp2 = (u8)(divid_ratio / 2); ++ ++ if((divid_ratio % 2) != 0) ++ tmp2 += 1; ++ ++ tmp1 -= 1; ++ tmp2 -= 1; ++ ++ tmp1 &= 0x3f; ++ tmp2 &= 0x3f; ++ ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xF0; ++ val |= (tmp2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, val); ++ ++ val = (u8)((tmp2 & 0x03) << 6); ++ val |= tmp1; ++ m88ds3103_writereg(state, 0xea, val); ++ } ++ } else { ++ mod_fac = 2; ++ ++ switch(code_rate) { ++ case 4: input_datarate = locked_sym_rate_KSs*mod_fac/2/8; break; ++ case 3: input_datarate = locked_sym_rate_KSs*mod_fac*2/3/8; break; ++ case 2: input_datarate = locked_sym_rate_KSs*mod_fac*3/4/8; break; ++ case 1: input_datarate = locked_sym_rate_KSs*mod_fac*5/6/8; break; ++ case 0: input_datarate = locked_sym_rate_KSs*mod_fac*7/8/8; break; ++ default: input_datarate = locked_sym_rate_KSs*mod_fac*3/4/8; break; ++ } ++ ++ if(state->demod_id == DS3000_ID) ++ input_datarate = input_datarate * 115 / 100; ++ ++ if(input_datarate < 6857) {tmp1 = 7;tmp2 = 7;} //6.857MHz TS clock ++ else if(input_datarate < 7384) {tmp1 = 6;tmp2 = 7;} //7.384MHz TS clock ++ else if(input_datarate < 8000) {tmp1 = 6;tmp2 = 6;} //8MHz TS clock ++ else if(input_datarate < 8727) {tmp1 = 5;tmp2 = 6;} //8.727MHz TS clock ++ else if(input_datarate < 9600) {tmp1 = 5;tmp2 = 5;} //9.6MHz TS clock ++ else if(input_datarate < 10666) {tmp1 = 4;tmp2 = 5;} //10.666MHz TS clock ++ else if(input_datarate < 12000) {tmp1 = 4;tmp2 = 4;} //12MHz TS clock ++ else if(input_datarate < 13714) {tmp1 = 3;tmp2 = 4;} //13.714MHz TS clock ++ else if(input_datarate < 16000) {tmp1 = 3;tmp2 = 3;} //16MHz TS clock ++ else if(input_datarate < 19200) {tmp1 = 2;tmp2 = 3;} //19.2MHz TS clock ++ else {tmp1 = 2;tmp2 = 2;} //24MHz TS clock ++ ++ if(state->demod_id == DS3000_ID) { ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xc0; ++ val |= ((u8)((tmp1<<3) + tmp2)); ++ m88ds3103_writereg(state, 0xfe, val); ++ } else { ++ if(input_datarate < 5200) /*Max. 2011-12-23 11:55*/ ++ input_datarate = 5200; ++ ++ if(input_datarate != 0) ++ divid_ratio = (u8)(MClk_KHz / input_datarate); ++ else ++ divid_ratio = 0xFF; ++ ++ if(divid_ratio > 128) ++ divid_ratio = 128; ++ ++ if(divid_ratio < 2) ++ divid_ratio = 2; ++ ++ tmp1 = (u8)(divid_ratio / 2); ++ tmp2 = (u8)(divid_ratio / 2); ++ ++ if((divid_ratio % 2) != 0) ++ tmp2 += 1; ++ ++ tmp1 -= 1; ++ tmp2 -= 1; ++ ++ tmp1 &= 0x3f; ++ tmp2 &= 0x3f; ++ ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xF0; ++ val |= (tmp2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, val); ++ ++ val = (u8)((tmp2 & 0x03) << 6); ++ val |= tmp1; ++ m88ds3103_writereg(state, 0xea, val); ++ } ++ } ++ return 0; ++} ++ ++static int m88ds3103_demod_connect(struct dvb_frontend *fe, s32 carrier_offset_khz) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ u16 value; ++ u8 val1,val2,data; ++ ++ dprintk("connect delivery system = %d\n", state->delivery_system); ++ ++ /* ds3000 global reset */ ++ m88ds3103_writereg(state, 0x07, 0x80); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ /* ds3000 build-in uC reset */ ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ /* ds3000 software reset */ ++ m88ds3103_writereg(state, 0x00, 0x01); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ /* initialise the demod in DVB-S mode */ ++ if(state->demod_id == DS3000_ID){ ++ m88ds3103_init_reg(state, ds3000_dvbs_init_tab, sizeof(ds3000_dvbs_init_tab)); ++ ++ value = m88ds3103_readreg(state, 0xfe); ++ value &= 0xc0; ++ value |= 0x1b; ++ m88ds3103_writereg(state, 0xfe, value); ++ ++ if(state->config->ci_mode) ++ val1 = 0x80; ++ else if(state->config->ts_mode) ++ val1 = 0x60; ++ else ++ val1 = 0x20; ++ m88ds3103_writereg(state, 0xfd, val1); ++ ++ }else if(state->demod_id == DS3103_ID){ ++ m88ds3103_init_reg(state, ds3103_dvbs_init_tab, sizeof(ds3103_dvbs_init_tab)); ++ ++ /* set ts clock */ ++ if(state->config->ci_mode == 2){ ++ val1 = 6; val2 = 6; ++ }else if(state->config->ts_mode == 0) { ++ val1 = 3; val2 = 3; ++ }else{ ++ val1 = 0; val2 = 0; ++ } ++ val1 -= 1; val2 -= 1; ++ val1 &= 0x3f; val2 &= 0x3f; ++ data = m88ds3103_readreg(state, 0xfe); ++ data &= 0xf0; ++ data |= (val2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, data); ++ data = (val2 & 0x03) << 6; ++ data |= val1; ++ m88ds3103_writereg(state, 0xea, data); ++ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ ++ /* set master clock */ ++ val1 = m88ds3103_readreg(state, 0x22); ++ val2 = m88ds3103_readreg(state, 0x24); ++ ++ val1 &= 0x3f; ++ val2 &= 0x3f; ++ val1 |= 0x80; ++ val2 |= 0x40; ++ ++ m88ds3103_writereg(state, 0x22, val1); ++ m88ds3103_writereg(state, 0x24, val2); ++ ++ if(state->config->ci_mode) ++ val1 = 0x03; ++ else if(state->config->ts_mode) ++ val1 = 0x06; ++ else ++ val1 = 0x42; ++ m88ds3103_writereg(state, 0xfd, val1); ++ } ++ break; ++ case SYS_DVBS2: ++ /* initialise the demod in DVB-S2 mode */ ++ if(state->demod_id == DS3000_ID){ ++ m88ds3103_init_reg(state, ds3000_dvbs2_init_tab, sizeof(ds3000_dvbs2_init_tab)); ++ ++ if (c->symbol_rate >= 30000000) ++ m88ds3103_writereg(state, 0xfe, 0x54); ++ else ++ m88ds3103_writereg(state, 0xfe, 0x98); ++ ++ }else if(state->demod_id == DS3103_ID){ ++ m88ds3103_init_reg(state, ds3103_dvbs2_init_tab, sizeof(ds3103_dvbs2_init_tab)); ++ ++ /* set ts clock */ ++ if(state->config->ci_mode == 2){ ++ val1 = 6; val2 = 6; ++ }else if(state->config->ts_mode == 0){ ++ val1 = 5; val2 = 4; ++ }else{ ++ val1 = 0; val2 = 0; ++ } ++ val1 -= 1; val2 -= 1; ++ val1 &= 0x3f; val2 &= 0x3f; ++ data = m88ds3103_readreg(state, 0xfe); ++ data &= 0xf0; ++ data |= (val2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, data); ++ data = (val2 & 0x03) << 6; ++ data |= val1; ++ m88ds3103_writereg(state, 0xea, data); ++ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ ++ /* set master clock */ ++ val1 = m88ds3103_readreg(state, 0x22); ++ val2 = m88ds3103_readreg(state, 0x24); ++ ++ val1 &= 0x3f; ++ val2 &= 0x3f; ++ if((state->config->ci_mode == 2) || (state->config->ts_mode == 1)){ ++ val1 |= 0x80; ++ val2 |= 0x40; ++ }else{ ++ if (c->symbol_rate >= 28000000){ ++ val1 |= 0xc0; ++ }else if (c->symbol_rate >= 18000000){ ++ val2 |= 0x40; ++ }else{ ++ val1 |= 0x80; ++ val2 |= 0x40; ++ } ++ } ++ m88ds3103_writereg(state, 0x22, val1); ++ m88ds3103_writereg(state, 0x24, val2); ++ } ++ ++ if(state->config->ci_mode) ++ val1 = 0x03; ++ else if(state->config->ts_mode) ++ val1 = 0x06; ++ else ++ val1 = 0x42; ++ m88ds3103_writereg(state, 0xfd, val1); ++ ++ break; ++ default: ++ return 1; ++ } ++ /* disable 27MHz clock output */ ++ m88ds3103_writereg(state, 0x29, 0x80); ++ /* enable ac coupling */ ++ m88ds3103_writereg(state, 0x25, 0x8a); ++ ++ if ((c->symbol_rate / 1000) <= 3000){ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 32 * 100 / 64 = 400*/ ++ m88ds3103_writereg(state, 0xc8, 0x20); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ }else if((c->symbol_rate / 1000) <= 10000){ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 16 * 100 / 64 = 200*/ ++ m88ds3103_writereg(state, 0xc8, 0x10); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ }else{ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 6 * 100 / 64 = 75*/ ++ m88ds3103_writereg(state, 0xc8, 0x06); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ } ++ ++ m88ds3103_set_symrate(fe); ++ ++ m88ds3103_set_CCI(fe); ++ ++ m88ds3103_set_carrier_offset(fe, carrier_offset_khz); ++ ++ /* ds3000 out of software reset */ ++ m88ds3103_writereg(state, 0x00, 0x00); ++ /* start ds3000 build-in uC */ ++ m88ds3103_writereg(state, 0xb2, 0x00); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_frontend(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ ++ int i; ++ fe_status_t status; ++ u8 lpf_mxdiv, mlpf_max, mlpf_min, nlpf, div4, capCode, changePLL; ++ s32 offset_khz, lpf_offset_KHz; ++ u16 value, ndiv, lpf_coeff; ++ u32 f3db, gdiv28, realFreq; ++ u8 RFgain; ++ ++ dprintk("%s() ", __func__); ++ dprintk("c frequency = %d\n", c->frequency); ++ dprintk("symbol rate = %d\n", c->symbol_rate); ++ dprintk("delivery system = %d\n", c->delivery_system); ++ ++ realFreq = c->frequency; ++ lpf_offset_KHz = 0; ++ if(c->symbol_rate < 5000000){ ++ lpf_offset_KHz = FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz; ++ realFreq += FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz; ++ } ++ ++ if (state->config->set_ts_params) ++ state->config->set_ts_params(fe, 0); ++ ++ div4 = 0; ++ RFgain = 0; ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x0a); ++ m88ds3103_tuner_writereg(state, 0x11, 0x40); ++ if (realFreq < 1103000) { ++ m88ds3103_tuner_writereg(state, 0x10, 0x1b); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4)/MT_FE_CRYSTAL_KHZ; ++ }else { ++ ndiv = (realFreq * (6 + 8) * 2)/MT_FE_CRYSTAL_KHZ; ++ } ++ ndiv = ndiv + ndiv%2; ++ if(ndiv < 4095) ++ ndiv = ndiv - 1024; ++ else if (ndiv < 6143) ++ ndiv = ndiv + 1024; ++ else ++ ndiv = ndiv + 3072; ++ ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv & 0x3f00) >> 8); ++ }else{ ++ m88ds3103_tuner_writereg(state, 0x10, 0x00); ++ if (realFreq < 1146000){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x11); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4) / MT_FE_CRYSTAL_KHZ; ++ }else{ ++ m88ds3103_tuner_writereg(state, 0x10, 0x01); ++ ndiv = (realFreq * (6 + 8) * 2) / MT_FE_CRYSTAL_KHZ; ++ } ++ ndiv = ndiv + ndiv%2; ++ ndiv = ndiv - 1024; ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv>>8)&0x0f); ++ } ++ /* set pll */ ++ m88ds3103_tuner_writereg(state, 0x02, ndiv & 0x00ff); ++ m88ds3103_tuner_writereg(state, 0x03, 0x06); ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ if(state->tuner_id == TS2022_ID){ ++ if(( realFreq >= 1650000 ) && (realFreq <= 1850000)){ ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x14); ++ value &= 0x7f; ++ if(value < 64){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x82); ++ m88ds3103_tuner_writereg(state, 0x11, 0x6f); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x14); ++ value &= 0x1f; ++ ++ if(value > 19){ ++ value = m88ds3103_tuner_readreg(state, 0x10); ++ value &= 0x1d; ++ m88ds3103_tuner_writereg(state, 0x10, value); ++ } ++ }else{ ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x66); ++ changePLL = (((value & 0x80) >> 7) != div4); ++ ++ if(changePLL){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x11); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4)/MT_FE_CRYSTAL_KHZ; ++ ndiv = ndiv + ndiv%2; ++ ndiv = ndiv - 1024; ++ ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv>>8) & 0x0f); ++ m88ds3103_tuner_writereg(state, 0x02, ndiv & 0xff); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ /*set the RF gain*/ ++ if(state->tuner_id == TS2020_ID) ++ m88ds3103_tuner_writereg(state, 0x60, 0x79); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ if(state->tuner_id == TS2020_ID){ ++ RFgain = m88ds3103_tuner_readreg(state, 0x3d); ++ RFgain &= 0x0f; ++ if(RFgain < 15){ ++ if(RFgain < 4) ++ RFgain = 0; ++ else ++ RFgain = RFgain -3; ++ value = ((RFgain << 3) | 0x01) & 0x79; ++ m88ds3103_tuner_writereg(state, 0x60, value); ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ ++ /* set the LPF */ ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x25, 0x00); ++ m88ds3103_tuner_writereg(state, 0x27, 0x70); ++ m88ds3103_tuner_writereg(state, 0x41, 0x09); ++ m88ds3103_tuner_writereg(state, 0x08, 0x0b); ++ } ++ ++ f3db = ((c->symbol_rate / 1000) *135) / 200 + 2000; ++ f3db += lpf_offset_KHz; ++ if (f3db < 7000) ++ f3db = 7000; ++ if (f3db > 40000) ++ f3db = 40000; ++ ++ gdiv28 = (MT_FE_CRYSTAL_KHZ / 1000 * 1694 + 500) / 1000; ++ m88ds3103_tuner_writereg(state, 0x04, gdiv28 & 0xff); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ capCode = value & 0x3f; ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x41, 0x0d); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ msleep(2); ++ ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ value &= 0x3f; ++ value = (capCode + value) / 2; ++ } ++ else ++ value = capCode; ++ ++ gdiv28 = gdiv28 * 207 / (value * 2 + 151); ++ mlpf_max = gdiv28 * 135 / 100; ++ mlpf_min = gdiv28 * 78 / 100; ++ if (mlpf_max > 63) ++ mlpf_max = 63; ++ ++ if(state->tuner_id == TS2022_ID) ++ lpf_coeff = 3200; ++ else ++ lpf_coeff = 2766; ++ ++ nlpf = (f3db * gdiv28 * 2 / lpf_coeff / (MT_FE_CRYSTAL_KHZ / 1000) + 1) / 2 ; ++ if (nlpf > 23) nlpf = 23; ++ if (nlpf < 1) nlpf = 1; ++ ++ lpf_mxdiv = (nlpf * (MT_FE_CRYSTAL_KHZ / 1000) * lpf_coeff * 2 / f3db + 1) / 2; ++ ++ if (lpf_mxdiv < mlpf_min){ ++ nlpf++; ++ lpf_mxdiv = (nlpf * (MT_FE_CRYSTAL_KHZ / 1000) * lpf_coeff * 2 / f3db + 1) / 2; ++ } ++ ++ if (lpf_mxdiv > mlpf_max) ++ lpf_mxdiv = mlpf_max; ++ ++ m88ds3103_tuner_writereg(state, 0x04, lpf_mxdiv); ++ m88ds3103_tuner_writereg(state, 0x06, nlpf); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ if(state->tuner_id == TS2022_ID){ ++ msleep(2); ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ capCode = value & 0x3f; ++ ++ m88ds3103_tuner_writereg(state, 0x41, 0x09); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ msleep(2); ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ value &= 0x3f; ++ value = (capCode + value) / 2; ++ ++ value = value | 0x80; ++ m88ds3103_tuner_writereg(state, 0x25, value); ++ m88ds3103_tuner_writereg(state, 0x27, 0x30); ++ ++ m88ds3103_tuner_writereg(state, 0x08, 0x09); ++ } ++ ++ /* Set the BB gain */ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1e); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x01); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ if(state->tuner_id == TS2020_ID){ ++ if(RFgain == 15){ ++ msleep(40); ++ value = m88ds3103_tuner_readreg(state, 0x21); ++ value &= 0x0f; ++ if(value < 3){ ++ m88ds3103_tuner_writereg(state, 0x60, 0x61); ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ } ++ msleep(60); ++ ++ offset_khz = (ndiv - ndiv % 2 + 1024) * MT_FE_CRYSTAL_KHZ ++ / (6 + 8) / (div4 + 1) / 2 - realFreq; ++ ++ m88ds3103_demod_connect(fe, offset_khz+lpf_offset_KHz); ++ ++ for (i = 0; i < 30 ; i++) { ++ m88ds3103_read_status(fe, &status); ++ if (status & FE_HAS_LOCK){ ++ break; ++ } ++ msleep(20); ++ } ++ ++ if((status & FE_HAS_LOCK) == 0){ ++ state->delivery_system = (state->delivery_system == SYS_DVBS) ? SYS_DVBS2 : SYS_DVBS; ++ m88ds3103_demod_connect(fe, offset_khz); ++ ++ for (i = 0; i < 30 ; i++) { ++ m88ds3103_read_status(fe, &status); ++ if (status & FE_HAS_LOCK){ ++ break; ++ } ++ msleep(20); ++ } ++ } ++ ++ if (status & FE_HAS_LOCK){ ++ if(state->config->ci_mode == 2) ++ m88ds3103_set_clock_ratio(state); ++ if(state->config->start_ctrl){ ++ if(state->first_lock == 0){ ++ state->config->start_ctrl(fe); ++ state->first_lock = 1; ++ } ++ } ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_tune(struct dvb_frontend *fe, ++ bool re_tune, ++ unsigned int mode_flags, ++ unsigned int *delay, ++ fe_status_t *status) ++{ ++ *delay = HZ / 5; ++ ++ dprintk("%s() ", __func__); ++ dprintk("re_tune = %d\n", re_tune); ++ ++ if (re_tune) { ++ int ret = m88ds3103_set_frontend(fe); ++ if (ret) ++ return ret; ++ } ++ ++ return m88ds3103_read_status(fe, status); ++} ++ ++static enum dvbfe_algo m88ds3103_get_algo(struct dvb_frontend *fe) ++{ ++ return DVBFE_ALGO_HW; ++} ++ ++ /* ++ * Power config will reset and load initial firmware if required ++ */ ++static int m88ds3103_initilaze(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int ret; ++ ++ dprintk("%s()\n", __func__); ++ /* hard reset */ ++ m88ds3103_writereg(state, 0x07, 0x80); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ msleep(1); ++ ++ m88ds3103_writereg(state, 0x08, 0x01 | m88ds3103_readreg(state, 0x08)); ++ msleep(1); ++ ++ if(state->tuner_id == TS2020_ID){ ++ /* TS2020 init */ ++ m88ds3103_tuner_writereg(state, 0x42, 0x73); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x05, 0x01); ++ m88ds3103_tuner_writereg(state, 0x62, 0xb5); ++ m88ds3103_tuner_writereg(state, 0x07, 0x02); ++ m88ds3103_tuner_writereg(state, 0x08, 0x01); ++ } ++ else if(state->tuner_id == TS2022_ID){ ++ /* TS2022 init */ ++ m88ds3103_tuner_writereg(state, 0x62, 0x6c); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x42, 0x6c); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x7d, 0x9d); ++ m88ds3103_tuner_writereg(state, 0x7c, 0x9a); ++ m88ds3103_tuner_writereg(state, 0x7a, 0x76); ++ ++ m88ds3103_tuner_writereg(state, 0x3b, 0x01); ++ m88ds3103_tuner_writereg(state, 0x63, 0x88); ++ ++ m88ds3103_tuner_writereg(state, 0x61, 0x85); ++ m88ds3103_tuner_writereg(state, 0x22, 0x30); ++ m88ds3103_tuner_writereg(state, 0x30, 0x40); ++ m88ds3103_tuner_writereg(state, 0x20, 0x23); ++ m88ds3103_tuner_writereg(state, 0x24, 0x02); ++ m88ds3103_tuner_writereg(state, 0x12, 0xa0); ++ } ++ ++ if(state->demod_id == DS3103_ID){ ++ m88ds3103_writereg(state, 0x07, 0xe0); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ msleep(1); ++ } ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ ++ /* Load the firmware if required */ ++ ret = m88ds3103_load_firmware(fe); ++ if (ret != 0){ ++ printk(KERN_ERR "%s: Unable initialize firmware\n", __func__); ++ return ret; ++ } ++ if(state->demod_id == DS3103_ID){ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ } ++ ++ return 0; ++} ++ ++/* ++ * Initialise or wake up device ++ */ ++static int m88ds3103_initfe(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val; ++ ++ dprintk("%s()\n", __func__); ++ ++ /* 1st step to wake up demod */ ++ m88ds3103_writereg(state, 0x08, 0x01 | m88ds3103_readreg(state, 0x08)); ++ m88ds3103_writereg(state, 0x04, 0xfe & m88ds3103_readreg(state, 0x04)); ++ m88ds3103_writereg(state, 0x23, 0xef & m88ds3103_readreg(state, 0x23)); ++ ++ /* 2nd step to wake up tuner */ ++ val = m88ds3103_tuner_readreg(state, 0x00) & 0xff; ++ if((val & 0x01) == 0){ ++ m88ds3103_tuner_writereg(state, 0x00, 0x01); ++ msleep(50); ++ } ++ m88ds3103_tuner_writereg(state, 0x00, 0x03); ++ msleep(50); ++ ++ return 0; ++} ++ ++/* Put device to sleep */ ++static int m88ds3103_sleep(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ ++ dprintk("%s()\n", __func__); ++ ++ /* 1st step to sleep tuner */ ++ m88ds3103_tuner_writereg(state, 0x00, 0x00); ++ ++ /* 2nd step to sleep demod */ ++ m88ds3103_writereg(state, 0x08, 0xfe & m88ds3103_readreg(state, 0x08)); ++ m88ds3103_writereg(state, 0x04, 0x01 | m88ds3103_readreg(state, 0x04)); ++ m88ds3103_writereg(state, 0x23, 0x10 | m88ds3103_readreg(state, 0x23)); ++ ++ ++ return 0; ++} ++ ++static struct dvb_frontend_ops m88ds3103_ops = { ++ .delsys = { SYS_DVBS, SYS_DVBS2}, ++ .info = { ++ .name = "Montage DS3103/TS2022", ++ .type = FE_QPSK, ++ .frequency_min = 950000, ++ .frequency_max = 2150000, ++ .frequency_stepsize = 1011, /* kHz for QPSK frontends */ ++ .frequency_tolerance = 5000, ++ .symbol_rate_min = 1000000, ++ .symbol_rate_max = 45000000, ++ .caps = FE_CAN_INVERSION_AUTO | ++ FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | ++ FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | ++ FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | ++ FE_CAN_2G_MODULATION | ++ FE_CAN_QPSK | FE_CAN_RECOVER ++ }, ++ ++ .release = m88ds3103_release, ++ ++ .init = m88ds3103_initfe, ++ .sleep = m88ds3103_sleep, ++ .read_status = m88ds3103_read_status, ++ .read_ber = m88ds3103_read_ber, ++ .read_signal_strength = m88ds3103_read_signal_strength, ++ .read_snr = m88ds3103_read_snr, ++ .read_ucblocks = m88ds3103_read_ucblocks, ++ .set_tone = m88ds3103_set_tone, ++ .set_voltage = m88ds3103_set_voltage, ++ .diseqc_send_master_cmd = m88ds3103_send_diseqc_msg, ++ .diseqc_send_burst = m88ds3103_diseqc_send_burst, ++ .get_frontend_algo = m88ds3103_get_algo, ++ .tune = m88ds3103_tune, ++ .set_frontend = m88ds3103_set_frontend, ++}; ++ ++MODULE_DESCRIPTION("DVB Frontend module for Montage DS3103/TS2022 hardware"); ++MODULE_AUTHOR("Max nibble"); ++MODULE_LICENSE("GPL"); +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.h v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.h +--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.h 1970-01-01 01:00:00.000000000 +0100 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.h 2012-11-24 13:34:43.716679774 +0100 +@@ -0,0 +1,53 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef M88DS3103_H ++#define M88DS3103_H ++ ++#include <linux/dvb/frontend.h> ++ ++struct m88ds3103_config { ++ /* the demodulator's i2c address */ ++ u8 demod_address; ++ u8 ci_mode; ++ u8 pin_ctrl; ++ u8 ts_mode; /* 0: Parallel, 1: Serial */ ++ ++ /* Set device param to start dma */ ++ int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured); ++ /* Start to transfer data */ ++ int (*start_ctrl)(struct dvb_frontend *fe); ++ /* Set LNB voltage */ ++ int (*set_voltage)(struct dvb_frontend* fe, fe_sec_voltage_t voltage); ++}; ++ ++#if defined(CONFIG_DVB_M88DS3103) || \ ++ (defined(CONFIG_DVB_M88DS3103_MODULE) && defined(MODULE)) ++extern struct dvb_frontend *m88ds3103_attach( ++ const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c); ++#else ++static inline struct dvb_frontend *m88ds3103_attach( ++ const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c) ++{ ++ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); ++ return NULL; ++} ++#endif /* CONFIG_DVB_M88DS3103 */ ++#endif /* M88DS3103_H */ +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103_priv.h v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103_priv.h +--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103_priv.h 1970-01-01 01:00:00.000000000 +0100 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103_priv.h 2012-11-24 13:34:43.716679774 +0100 +@@ -0,0 +1,403 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef M88DS3103_PRIV_H ++#define M88DS3103_PRIV_H ++ ++#define FW_DOWN_SIZE 32 ++#define FW_DOWN_LOOP (8192/FW_DOWN_SIZE) ++#define DS3103_DEFAULT_FIRMWARE "dvb-fe-ds3103.fw" ++#define DS3000_DEFAULT_FIRMWARE "dvb-fe-ds300x.fw" ++#define MT_FE_MCLK_KHZ 96000 /* in kHz */ ++#define MT_FE_CRYSTAL_KHZ 27000 /* in kHz */ ++#define FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz 3000 ++#define DS3000_ID 0x3000 ++#define DS3103_ID 0x3103 ++#define TS2020_ID 0x2020 ++#define TS2022_ID 0x2022 ++#define UNKNOW_ID 0x0000 ++ ++struct m88ds3103_state { ++ struct i2c_adapter *i2c; ++ const struct m88ds3103_config *config; ++ ++ struct dvb_frontend frontend; ++ ++ u32 preBer; ++ u8 skip_fw_load; ++ u8 first_lock; /* The first time of signal lock */ ++ u16 demod_id; /* demod chip type */ ++ u16 tuner_id; /* tuner chip type */ ++ fe_delivery_system_t delivery_system; ++}; ++ ++/* For M88DS3103 demod dvbs mode.*/ ++static u8 ds3103_dvbs_init_tab[] = { ++ 0x23, 0x07, ++ 0x08, 0x03, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x40, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x0f, ++ 0x64, 0x30, ++ 0x65, 0x40, ++ 0x68, 0x26, ++ 0x69, 0x4c, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x38, ++ 0x77, 0xa6, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x14, ++ 0x7c, 0x00, ++ 0xae, 0x82, ++ 0x80, 0x64, ++ 0x81, 0x66, ++ 0x82, 0x44, ++ 0x85, 0x04, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xff, ++ 0xc7, 0x00, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xe0, 0xf8, ++ 0xe6, 0x8b, ++ 0xd0, 0x40, ++ 0xf8, 0x20, ++ 0xfa, 0x0f, ++ 0x00, 0x00, ++ 0xbd, 0x01, ++ 0xb8, 0x00, ++}; ++/* For M88DS3103 demod dvbs2 mode.*/ ++static u8 ds3103_dvbs2_init_tab[] = { ++ 0x23, 0x07, ++ 0x08, 0x07, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x0f, ++ 0x64, 0x10, ++ 0x65, 0x20, ++ 0x68, 0x46, ++ 0x69, 0xcd, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x38, ++ 0x77, 0xa6, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x14, ++ 0x85, 0x08, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0x86, 0x00, ++ 0x87, 0x0f, ++ 0x89, 0x00, ++ 0x8b, 0x44, ++ 0x8c, 0x66, ++ 0x9d, 0xc1, ++ 0x8a, 0x10, ++ 0xad, 0x40, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc1, 0x10, ++ 0xc2, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xff, ++ 0xc7, 0x00, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xca, 0x23, ++ 0xcb, 0x24, ++ 0xcc, 0xf4, ++ 0xce, 0x74, ++ 0x00, 0x00, ++ 0xbd, 0x01, ++ 0xb8, 0x00, ++}; ++ ++/* For M88DS3000 demod dvbs mode.*/ ++static u8 ds3000_dvbs_init_tab[] = { ++ 0x23, 0x05, ++ 0x08, 0x03, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x40, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x40, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x77, ++ 0x51, 0x77, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x56, 0x01, ++ 0x63, 0x47, ++ 0x64, 0x30, ++ 0x65, 0x40, ++ 0x68, 0x26, ++ 0x69, 0x4c, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x00, ++ 0x77, 0xd1, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x04, ++ 0x7c, 0x00, ++ 0x80, 0x86, ++ 0x81, 0xa6, ++ 0x85, 0x04, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0xa0, 0x44, ++ 0xc0, 0x18, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0x80, ++ 0xc6, 0x80, ++ 0xc7, 0x0a, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xfe, 0xb6, ++ 0xe0, 0xf8, ++ 0xe6, 0x8b, ++ 0xd0, 0x40, ++ 0xf8, 0x20, ++ 0xfa, 0x0f, ++ 0xad, 0x20, ++ 0xae, 0x07, ++ 0xb8, 0x00, ++}; ++ ++/* For M88DS3000 demod dvbs2 mode.*/ ++static u8 ds3000_dvbs2_init_tab[] = { ++ 0x23, 0x0f, ++ 0x08, 0x07, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x32, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0x88, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x60, ++ 0x64, 0x10, ++ 0x65, 0x10, ++ 0x68, 0x04, ++ 0x69, 0x29, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc1, 0x10, ++ 0xc2, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xf0, ++ 0xc7, 0x0a, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xca, 0x23, ++ 0xcb, 0x24, ++ 0xce, 0x74, ++ 0x56, 0x01, ++ 0x90, 0x03, ++ 0x76, 0x80, ++ 0x77, 0x42, ++ 0x78, 0x0a, ++ 0x79, 0x80, ++ 0xad, 0x40, ++ 0xae, 0x07, ++ 0x7f, 0xd4, ++ 0x7c, 0x00, ++ 0x80, 0xa8, ++ 0x81, 0xda, ++ 0x7c, 0x01, ++ 0x80, 0xda, ++ 0x81, 0xec, ++ 0x7c, 0x02, ++ 0x80, 0xca, ++ 0x81, 0xeb, ++ 0x7c, 0x03, ++ 0x80, 0xba, ++ 0x81, 0xdb, ++ 0x85, 0x08, ++ 0x86, 0x00, ++ 0x87, 0x02, ++ 0x89, 0x80, ++ 0x8b, 0x44, ++ 0x8c, 0xaa, ++ 0x8a, 0x10, ++ 0xba, 0x00, ++ 0xf5, 0x04, ++ 0xd2, 0x32, ++ 0xb8, 0x00, ++}; ++ ++#endif /* M88DS3103_PRIV_H */ +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Makefile v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Makefile +--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Makefile 2012-08-17 05:45:27.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Makefile 2012-11-24 13:34:43.716679774 +0100 +@@ -102,4 +102,7 @@ + obj-$(CONFIG_DVB_RTL2832) += rtl2832.o + obj-$(CONFIG_DVB_M88RS2000) += m88rs2000.o + obj-$(CONFIG_DVB_AF9033) += af9033.o ++obj-$(CONFIG_DVB_M88DS3103) += m88ds3103.o ++ ++ + +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/Makefile v4l-dvb-20120916/linux/drivers/media/rc/keymaps/Makefile +--- v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/Makefile 2012-05-21 05:45:41.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/rc/keymaps/Makefile 2012-11-24 13:34:43.716679774 +0100 +@@ -27,6 +27,7 @@ + rc-dm1105-nec.o \ + rc-dntv-live-dvb-t.o \ + rc-dntv-live-dvbt-pro.o \ ++ rc-dvbsky.o \ + rc-em-terratec.o \ + rc-encore-enltv2.o \ + rc-encore-enltv.o \ +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/rc-dvbsky.c v4l-dvb-20120916/linux/drivers/media/rc/keymaps/rc-dvbsky.c +--- v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/rc-dvbsky.c 1970-01-01 01:00:00.000000000 +0100 ++++ v4l-dvb-20120916/linux/drivers/media/rc/keymaps/rc-dvbsky.c 2012-11-24 13:34:43.716679774 +0100 +@@ -0,0 +1,78 @@ ++/* rc-dvbsky.c - Keytable for Dvbsky Remote Controllers ++ * ++ * keymap imported from ir-keymaps.c ++ * ++ * ++ * Copyright (c) 2010-2011 by Mauro Carvalho Chehab mchehab@redhat.com ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ */ ++ ++#include <media/rc-map.h> ++#include <linux/module.h> ++/* ++ * This table contains the complete RC5 code, instead of just the data part ++ */ ++ ++static struct rc_map_table rc5_dvbsky[] = { ++ { 0x0000, KEY_0 }, ++ { 0x0001, KEY_1 }, ++ { 0x0002, KEY_2 }, ++ { 0x0003, KEY_3 }, ++ { 0x0004, KEY_4 }, ++ { 0x0005, KEY_5 }, ++ { 0x0006, KEY_6 }, ++ { 0x0007, KEY_7 }, ++ { 0x0008, KEY_8 }, ++ { 0x0009, KEY_9 }, ++ { 0x000a, KEY_MUTE }, ++ { 0x000d, KEY_OK }, ++ { 0x000b, KEY_STOP }, ++ { 0x000c, KEY_EXIT }, ++ { 0x000e, KEY_CAMERA }, /*Snap shot*/ ++ { 0x000f, KEY_SUBTITLE }, /*PIP*/ ++ { 0x0010, KEY_VOLUMEUP }, ++ { 0x0011, KEY_VOLUMEDOWN }, ++ { 0x0012, KEY_FAVORITES }, ++ { 0x0013, KEY_LIST }, /*Info*/ ++ { 0x0016, KEY_PAUSE }, ++ { 0x0017, KEY_PLAY }, ++ { 0x001f, KEY_RECORD }, ++ { 0x0020, KEY_CHANNELDOWN }, ++ { 0x0021, KEY_CHANNELUP }, ++ { 0x0025, KEY_POWER2 }, ++ { 0x0026, KEY_REWIND }, ++ { 0x0027, KEY_FASTFORWARD }, ++ { 0x0029, KEY_LAST }, ++ { 0x002b, KEY_MENU }, ++ { 0x002c, KEY_EPG }, ++ { 0x002d, KEY_ZOOM }, ++}; ++ ++static struct rc_map_list rc5_dvbsky_map = { ++ .map = { ++ .scan = rc5_dvbsky, ++ .size = ARRAY_SIZE(rc5_dvbsky), ++ .rc_type = RC_TYPE_RC5, ++ .name = RC_MAP_DVBSKY, ++ } ++}; ++ ++static int __init init_rc_map_rc5_dvbsky(void) ++{ ++ return rc_map_register(&rc5_dvbsky_map); ++} ++ ++static void __exit exit_rc_map_rc5_dvbsky(void) ++{ ++ rc_map_unregister(&rc5_dvbsky_map); ++} ++ ++module_init(init_rc_map_rc5_dvbsky) ++module_exit(exit_rc_map_rc5_dvbsky) ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Mauro Carvalho Chehab mchehab@redhat.com"); +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/dw2102.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/dw2102.c +--- v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/dw2102.c 2012-08-14 05:45:22.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/dw2102.c 2012-11-24 15:44:13.269971182 +0100 +@@ -3,6 +3,7 @@ + * TeVii S600, S630, S650, S660, S480, + * Prof 1100, 7500, + * Geniatech SU3000 Cards ++ * Bestunar US683x HD, DVBsky S860, S960 USB + * Copyright (C) 2008-2011 Igor M. Liplianin (liplianin@me.by) + * + * This program is free software; you can redistribute it and/or modify it +@@ -19,6 +20,7 @@ + #include "stb6000.h" + #include "eds1547.h" + #include "cx24116.h" ++#include "m88ds3103.h" + #include "tda1002x.h" + #include "mt312.h" + #include "zl10039.h" +@@ -786,7 +788,7 @@ + struct su3000_state *state = (struct su3000_state *)d->priv; + u8 obuf[] = {0xde, 0}; + +- info("%s: %d, initialized %d\n", __func__, i, state->initialized); ++ info("%s: %d, initialized %d", __func__, i, state->initialized); + + if (i && !state->initialized) { + state->initialized = 1; +@@ -824,7 +826,40 @@ + else + mac[i] = ibuf[0]; + +- debug_dump(mac, 6, printk); ++ debug_dump(mac, 6, deb_xfer); ++ } ++ ++ return 0; ++} ++ ++static int dvbsky_read_mac_address(struct dvb_usb_device *d, u8 mac[6]) ++{ ++ int i; ++ u8 obuf[] = { 0x1e, 0x00 }; ++ u8 ibuf[] = { 0 }; ++ struct i2c_msg msg[] = { ++ { ++ .addr = 0x51, ++ .flags = 0, ++ .buf = obuf, ++ .len = 2, ++ }, { ++ .addr = 0x51, ++ .flags = I2C_M_RD, ++ .buf = ibuf, ++ .len = 1, ++ ++ } ++ }; ++ ++ for (i = 0; i < 6; i++) { ++ obuf[1] = i; ++ if (i2c_transfer(&d->i2c_adap, msg, 2) != 2) ++ break; ++ else ++ mac[i] = ibuf[0]; ++ ++ debug_dump(mac, 6, deb_xfer); + } + + return 0; +@@ -835,7 +870,7 @@ + struct dvb_usb_device_description **desc, + int *cold) + { +- info("%s\n", __func__); ++ info("%s", __func__); + + *cold = 0; + return 0; +@@ -878,6 +913,43 @@ + return 0; + } + ++static int bstusb_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ ++ struct dvb_usb_adapter *udev_adap = ++ (struct dvb_usb_adapter *)(fe->dvb->priv); ++ ++ u8 obuf[3] = { 0xe, 0x80, 0 }; ++ u8 ibuf[] = { 0 }; ++ ++ //info("US6830: %s!", __func__); ++ ++ if (voltage == SEC_VOLTAGE_OFF) ++ obuf[2] = 0; ++ else ++ obuf[2] = 1; ++ ++ if (dvb_usb_generic_rw(udev_adap->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ return 0; ++} ++ ++static int bstusb_restart(struct dvb_frontend *fe) ++{ ++ ++ struct dvb_usb_adapter *udev_adap = ++ (struct dvb_usb_adapter *)(fe->dvb->priv); ++ ++ u8 obuf[3] = { 0x36, 3, 0 }; ++ u8 ibuf[] = { 0 }; ++ ++ if (dvb_usb_generic_rw(udev_adap->dev, obuf, 3, ibuf, 0, 0) < 0) ++ err("command 0x36 transfer failed."); ++ ++ return 0; ++} ++ + static void dw210x_led_ctrl(struct dvb_frontend *fe, int offon) + { + static u8 led_off[] = { 0 }; +@@ -983,6 +1055,24 @@ + .ci_mode = 1, + }; + ++static struct m88ds3103_config US6830_ds3103_config = { ++ .demod_address = 0x68, ++ .ci_mode = 1, ++ .pin_ctrl = 0x83, ++ .ts_mode = 0, ++ .start_ctrl = bstusb_restart, ++ .set_voltage = bstusb_set_voltage, ++}; ++ ++static struct m88ds3103_config US6832_ds3103_config = { ++ .demod_address = 0x68, ++ .ci_mode = 1, ++ .pin_ctrl = 0x80, ++ .ts_mode = 0, ++ .start_ctrl = bstusb_restart, ++ .set_voltage = bstusb_set_voltage, ++}; ++ + static int dw2104_frontend_attach(struct dvb_usb_adapter *d) + { + struct dvb_tuner_ops *tuner_ops = NULL; +@@ -1000,7 +1090,7 @@ + tuner_ops->set_bandwidth = stb6100_set_bandw; + tuner_ops->get_bandwidth = stb6100_get_bandw; + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached STV0900+STB6100!\n"); ++ info("Attached STV0900+STB6100!"); + return 0; + } + } +@@ -1014,7 +1104,7 @@ + &dw2104_stv6110_config, + &d->dev->i2c_adap)) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached STV0900+STV6110A!\n"); ++ info("Attached STV0900+STV6110A!"); + return 0; + } + } +@@ -1025,7 +1115,7 @@ + &d->dev->i2c_adap); + if (d->fe_adap[0].fe != NULL) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached cx24116!\n"); ++ info("Attached cx24116!"); + return 0; + } + } +@@ -1034,7 +1124,7 @@ + &d->dev->i2c_adap); + if (d->fe_adap[0].fe != NULL) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached DS3000!\n"); ++ info("Attached DS3000!"); + return 0; + } + +@@ -1053,7 +1143,7 @@ + &d->dev->i2c_adap); + if (d->fe_adap[0].fe != NULL) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached si21xx!\n"); ++ info("Attached si21xx!"); + return 0; + } + } +@@ -1065,7 +1155,7 @@ + if (dvb_attach(stb6000_attach, d->fe_adap[0].fe, 0x61, + &d->dev->i2c_adap)) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached stv0288!\n"); ++ info("Attached stv0288!"); + return 0; + } + } +@@ -1077,7 +1167,7 @@ + &d->dev->i2c_adap); + if (d->fe_adap[0].fe != NULL) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached stv0299!\n"); ++ info("Attached stv0299!"); + return 0; + } + } +@@ -1089,7 +1179,7 @@ + d->fe_adap[0].fe = dvb_attach(tda10023_attach, &dw3101_tda10023_config, + &d->dev->i2c_adap, 0x48); + if (d->fe_adap[0].fe != NULL) { +- info("Attached tda10023!\n"); ++ info("Attached tda10023!"); + return 0; + } + return -EIO; +@@ -1103,7 +1193,7 @@ + if (dvb_attach(zl10039_attach, d->fe_adap[0].fe, 0x60, + &d->dev->i2c_adap)) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached zl100313+zl10039!\n"); ++ info("Attached zl100313+zl10039!"); + return 0; + } + } +@@ -1128,7 +1218,7 @@ + + dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); + +- info("Attached stv0288+stb6000!\n"); ++ info("Attached stv0288+stb6000!"); + + return 0; + +@@ -1150,7 +1240,7 @@ + + dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); + +- info("Attached ds3000+ds2020!\n"); ++ info("Attached ds3000+ds2020!"); + + return 0; + } +@@ -1168,7 +1258,7 @@ + + dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); + +- info("Attached STV0900+STB6100A!\n"); ++ info("Attached STV0900+STB6100A!"); + + return 0; + } +@@ -1205,7 +1295,88 @@ + if (d->fe_adap[0].fe == NULL) + return -EIO; + +- info("Attached DS3000!\n"); ++ info("Attached DS3000!"); ++ ++ return 0; ++} ++ ++static int US6830_frontend_attach(struct dvb_usb_adapter *d) ++{ ++ u8 obuf[3] = { 0xe, 0x04, 1 }; ++ u8 ibuf[] = { 0 }; ++ ++ info("US6830: %s!\n", __func__); ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ obuf[0] = 0xe; ++ obuf[1] = 0x83; ++ obuf[2] = 0; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ msleep(20); ++ ++ obuf[0] = 0xe; ++ obuf[1] = 0x83; ++ obuf[2] = 1; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ obuf[0] = 0x51; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 1, ibuf, 1, 0) < 0) ++ err("command 0x51 transfer failed."); ++ ++ d->fe_adap[0].fe = dvb_attach(m88ds3103_attach, &US6830_ds3103_config, ++ &d->dev->i2c_adap); ++ if (d->fe_adap[0].fe == NULL) ++ return -EIO; ++ ++ info("Attached M88DS3103!"); ++ ++ return 0; ++} ++ ++static int US6832_frontend_attach(struct dvb_usb_adapter *d) ++{ ++ u8 obuf[3] = { 0xe, 0x04, 1 }; ++ u8 ibuf[] = { 0 }; ++ ++ info("US6832: %s!", __func__); ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ obuf[0] = 0xe; ++ obuf[1] = 0x83; ++ obuf[2] = 0; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ msleep(20); ++ obuf[0] = 0xe; ++ obuf[1] = 0x83; ++ obuf[2] = 1; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ obuf[0] = 0x51; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 1, ibuf, 1, 0) < 0) ++ err("command 0x51 transfer failed."); ++ ++ d->fe_adap[0].fe = dvb_attach(m88ds3103_attach, &US6832_ds3103_config, ++ &d->dev->i2c_adap); ++ if (d->fe_adap[0].fe == NULL) ++ return -EIO; ++ ++ info("Attached M88DS3103!"); + + return 0; + } +@@ -1447,6 +1618,9 @@ + TEVII_S480_1, + TEVII_S480_2, + X3M_SPC1400HD, ++ BST_US6830HD, ++ BST_US6831HD, ++ BST_US6832HD, + }; + + static struct usb_device_id dw2102_table[] = { +@@ -1465,6 +1639,9 @@ + [TEVII_S480_1] = {USB_DEVICE(0x9022, USB_PID_TEVII_S480_1)}, + [TEVII_S480_2] = {USB_DEVICE(0x9022, USB_PID_TEVII_S480_2)}, + [X3M_SPC1400HD] = {USB_DEVICE(0x1f4d, 0x3100)}, ++ [BST_US6830HD] = {USB_DEVICE(0x0572, 0x6830)}, ++ [BST_US6831HD] = {USB_DEVICE(0x0572, 0x6831)}, ++ [BST_US6832HD] = {USB_DEVICE(0x0572, 0x6832)}, + { } + }; + +@@ -1870,6 +2047,106 @@ + } + }; + ++static struct dvb_usb_device_properties US6830_properties = { ++ .caps = DVB_USB_IS_AN_I2C_ADAPTER, ++ .usb_ctrl = DEVICE_SPECIFIC, ++ .size_of_priv = sizeof(struct su3000_state), ++ .power_ctrl = su3000_power_ctrl, ++ .num_adapters = 1, ++ .identify_state = su3000_identify_state, ++ .i2c_algo = &su3000_i2c_algo, ++ ++ .rc.legacy = { ++ .rc_map_table = rc_map_su3000_table, ++ .rc_map_size = ARRAY_SIZE(rc_map_su3000_table), ++ .rc_interval = 150, ++ .rc_query = dw2102_rc_query, ++ }, ++ ++ .read_mac_address = dvbsky_read_mac_address, ++ ++ .generic_bulk_ctrl_endpoint = 0x01, ++ ++ .adapter = { ++ { ++ .num_frontends = 1, ++ .fe = {{ ++ .streaming_ctrl = su3000_streaming_ctrl, ++ .frontend_attach = US6830_frontend_attach, ++ .stream = { ++ .type = USB_BULK, ++ .count = 8, ++ .endpoint = 0x82, ++ .u = { ++ .bulk = { ++ .buffersize = 4096, ++ } ++ } ++ } ++ }}, ++ } ++ }, ++ .num_device_descs = 2, ++ .devices = { ++ { "Bestunar US6830 HD", ++ { &dw2102_table[BST_US6830HD], NULL }, ++ { NULL }, ++ }, ++ { "Bestunar US6831 HD", ++ { &dw2102_table[BST_US6831HD], NULL }, ++ { NULL }, ++ }, ++ } ++}; ++ ++static struct dvb_usb_device_properties US6832_properties = { ++ .caps = DVB_USB_IS_AN_I2C_ADAPTER, ++ .usb_ctrl = DEVICE_SPECIFIC, ++ .size_of_priv = sizeof(struct su3000_state), ++ .power_ctrl = su3000_power_ctrl, ++ .num_adapters = 1, ++ .identify_state = su3000_identify_state, ++ .i2c_algo = &su3000_i2c_algo, ++ ++ .rc.legacy = { ++ .rc_map_table = rc_map_su3000_table, ++ .rc_map_size = ARRAY_SIZE(rc_map_su3000_table), ++ .rc_interval = 150, ++ .rc_query = dw2102_rc_query, ++ }, ++ ++ .read_mac_address = dvbsky_read_mac_address, ++ ++ .generic_bulk_ctrl_endpoint = 0x01, ++ ++ .adapter = { ++ { ++ .num_frontends = 1, ++ .fe = {{ ++ .streaming_ctrl = su3000_streaming_ctrl, ++ .frontend_attach = US6832_frontend_attach, ++ .stream = { ++ .type = USB_BULK, ++ .count = 8, ++ .endpoint = 0x82, ++ .u = { ++ .bulk = { ++ .buffersize = 4096, ++ } ++ } ++ } ++ }}, ++ } ++ }, ++ .num_device_descs = 1, ++ .devices = { ++ { "Bestunar US6832 HD", ++ { &dw2102_table[BST_US6832HD], NULL }, ++ { NULL }, ++ }, ++ } ++}; ++ + static int dw2102_probe(struct usb_interface *intf, + const struct usb_device_id *id) + { +@@ -1926,6 +2203,10 @@ + 0 == dvb_usb_device_init(intf, p7500, + THIS_MODULE, NULL, adapter_nr) || + 0 == dvb_usb_device_init(intf, &su3000_properties, ++ THIS_MODULE, NULL, adapter_nr) || ++ 0 == dvb_usb_device_init(intf, &US6830_properties, ++ THIS_MODULE, NULL, adapter_nr) || ++ 0 == dvb_usb_device_init(intf, &US6832_properties, + THIS_MODULE, NULL, adapter_nr)) + return 0; + +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/Kconfig v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/Kconfig +--- v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/Kconfig 2012-08-22 05:45:23.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/Kconfig 2012-11-24 13:34:43.716679774 +0100 +@@ -1,3 +1,4 @@ +++ select DVB_M88DS3103 if !DVB_FE_CUSTOMISE + config DVB_USB + tristate "Support for various USB DVB devices" + depends on DVB_CORE && USB && I2C && RC_CORE +@@ -261,6 +262,7 @@ + select DVB_STV0299 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STV0288 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STB6000 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_M88DS3103 if MEDIA_SUBDRV_AUTOSELECT + select DVB_CX24116 if MEDIA_SUBDRV_AUTOSELECT + select DVB_SI21XX if MEDIA_SUBDRV_AUTOSELECT + select DVB_TDA10023 if MEDIA_SUBDRV_AUTOSELECT +diff -Naur v4l-dvb-20120916.ORG/linux/include/media/rc-map.h v4l-dvb-20120916/linux/include/media/rc-map.h +--- v4l-dvb-20120916.ORG/linux/include/media/rc-map.h 2012-05-21 05:45:41.000000000 +0200 ++++ v4l-dvb-20120916/linux/include/media/rc-map.h 2012-11-24 13:34:43.716679774 +0100 +@@ -86,6 +86,7 @@ + #define RC_MAP_DM1105_NEC "rc-dm1105-nec" + #define RC_MAP_DNTV_LIVE_DVBT_PRO "rc-dntv-live-dvbt-pro" + #define RC_MAP_DNTV_LIVE_DVB_T "rc-dntv-live-dvb-t" ++#define RC_MAP_DVBSKY "rc-dvbsky" + #define RC_MAP_EMPTY "rc-empty" + #define RC_MAP_EM_TERRATEC "rc-em-terratec" + #define RC_MAP_ENCORE_ENLTV2 "rc-encore-enltv2" diff --git a/src/patches/v4l-dvb_fix_tua6034_pll.patch b/src/patches/v4l-dvb_fix_tua6034_pll.patch new file mode 100644 index 0000000..a430983 --- /dev/null +++ b/src/patches/v4l-dvb_fix_tua6034_pll.patch @@ -0,0 +1,12 @@ +diff -Naur v4l-dvb-20120916.org/linux/drivers/media/dvb-frontends/dvb-pll.c v4l-dvb-20120916/linux/drivers/media/dvb-frontends/dvb-pll.c +--- v4l-dvb-20120916.org/linux/drivers/media/dvb-frontends/dvb-pll.c 2012-08-14 05:45:22.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/dvb-pll.c 2012-10-25 14:06:42.123360189 +0200 +@@ -247,7 +247,7 @@ + static void tua6034_bw(struct dvb_frontend *fe, u8 *buf) + { + u32 bw = fe->dtv_property_cache.bandwidth_hz; +- if (bw == 7000000) ++ if (bw != 7000000) + buf[3] |= 0x08; + } + diff --git a/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch b/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch new file mode 100644 index 0000000..1dd649a --- /dev/null +++ b/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch @@ -0,0 +1,14 @@ +diff -Naur v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +--- v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2012-09-16 05:46:03.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2012-09-19 20:03:04.538168193 +0200 +@@ -1228,6 +1228,10 @@ + &rtl2832u_props, "G-Tek Electronics Group Lifeview LV5TDLX DVB-T", NULL) }, + { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_NOXON_DAB_STICK, + &rtl2832u_props, "NOXON DAB/DAB+ USB dongle", NULL) }, ++ { DVB_USB_DEVICE(0x1d19, 0x1101, ++ &rtl2832u_props, "DK DVB-T USB dongle", NULL) }, ++ { DVB_USB_DEVICE(0x1f4d, 0xc803, ++ &rtl2832u_props, "Trekstor DVB-T DAB FM USB dongle", NULL) }, + { } + }; + MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table); diff --git a/src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch b/src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch new file mode 100644 index 0000000..8fb8bc4 --- /dev/null +++ b/src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch @@ -0,0 +1,12 @@ +diff -Naur v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +--- v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2012-09-16 05:46:03.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2012-10-24 13:48:13.113373414 +0200 +@@ -836,7 +836,7 @@ + if (onoff) { + buf[0] = 0x00; + buf[1] = 0x00; +- usb_clear_halt(d->udev, usb_rcvbulkpipe(d->udev, 0x81)); ++// usb_clear_halt(d->udev, usb_rcvbulkpipe(d->udev, 0x81)); + } else { + buf[0] = 0x10; /* stall EPA */ + buf[1] = 0x02; /* reset EPA */ diff --git a/src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch b/src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch new file mode 100644 index 0000000..4b16125 --- /dev/null +++ b/src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch @@ -0,0 +1,16 @@ +diff -Naur v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c +--- v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c 2012-08-16 05:45:24.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c 2012-10-24 13:53:35.636726448 +0200 +@@ -287,9 +287,9 @@ + ret = adap->props->pid_filter(adap, dvbdmxfeed->index, + dvbdmxfeed->pid, (count == 1) ? 1 : 0); + if (ret < 0) +- dev_err(&d->udev->dev, "%s: pid_filter() " \ +- "failed=%d\n", KBUILD_MODNAME, +- ret); ++// dev_err(&d->udev->dev, "%s: pid_filter() " \ ++// "failed=%d\n", KBUILD_MODNAME, ++// ret); + + /* start feeding if it is first pid */ + if (adap->feed_count == 1 && count == 1) { diff --git a/src/patches/vdr-1.6.0-gcc44-fixes.patch b/src/patches/vdr-1.6.0-gcc44-fixes.patch new file mode 100644 index 0000000..d8841d8 --- /dev/null +++ b/src/patches/vdr-1.6.0-gcc44-fixes.patch @@ -0,0 +1,62 @@ +Index: vdr-1.6.0/recording.c +=================================================================== +--- vdr-1.6.0.orig/recording.c ++++ vdr-1.6.0/recording.c +@@ -509,8 +509,8 @@ cRecording::cRecording(cTimer *Timer, co + Utf8Strn0Cpy(SubtitleBuffer, Subtitle, MAX_SUBTITLE_LENGTH); + Subtitle = SubtitleBuffer; + } +- char *macroTITLE = strstr(Timer->File(), TIMERMACRO_TITLE); +- char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE); ++ const char *macroTITLE = strstr(Timer->File(), TIMERMACRO_TITLE); ++ const char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE); + if (macroTITLE || macroEPISODE) { + name = strdup(Timer->File()); + name = strreplace(name, TIMERMACRO_TITLE, Title); +@@ -551,7 +551,7 @@ cRecording::cRecording(const char *FileN + sortBuffer = NULL; + fileName = strdup(FileName); + FileName += strlen(VideoDirectory) + 1; +- char *p = strrchr(FileName, '/'); ++ const char *p = strrchr(FileName, '/'); + + name = NULL; + info = new cRecordingInfo; +@@ -1022,7 +1022,8 @@ void cRecordings::DelByName(const char * + if (recording) { + cThreadLock DeletedRecordingsLock(&DeletedRecordings); + Del(recording, false); +- char *ext = strrchr(recording->FileName(), '.'); ++ // wtf? ++ char *ext = strrchr(const_cast<char*>(recording->FileName()), '.'); + if (ext) { + strncpy(ext, DELEXT, strlen(ext)); + recording->fileSizeMB = DirSizeMB(recording->FileName()); +Index: vdr-1.6.0/svdrp.c +=================================================================== +--- vdr-1.6.0.orig/svdrp.c ++++ vdr-1.6.0/svdrp.c +@@ -736,7 +736,7 @@ void cSVDRP::CmdGRAB(const char *Option) + char *strtok_next; + FileName = strtok_r(p, delim, &strtok_next); + // image type: +- char *Extension = strrchr(FileName, '.'); ++ const char *Extension = strrchr(FileName, '.'); + if (Extension) { + if (strcasecmp(Extension, ".jpg") == 0 || strcasecmp(Extension, ".jpeg") == 0) + Jpeg = true; +@@ -796,12 +796,12 @@ void cSVDRP::CmdGRAB(const char *Option) + if (FileName) { + if (grabImageDir) { + cString s; +- char *slash = strrchr(FileName, '/'); ++ char *slash = strrchr(const_cast<char*>(FileName), '/'); + if (!slash) { + s = AddDirectory(grabImageDir, FileName); + FileName = s; + } +- slash = strrchr(FileName, '/'); // there definitely is one ++ slash = strrchr(const_cast<char*>(FileName), '/'); // there definitely is one + *slash = 0; + char *r = realpath(FileName, RealFileName); + *slash = '/'; diff --git a/src/patches/vdr-plugin-epgsearch-gcc44.patch b/src/patches/vdr-plugin-epgsearch-gcc44.patch new file mode 100644 index 0000000..2a92a3b --- /dev/null +++ b/src/patches/vdr-plugin-epgsearch-gcc44.patch @@ -0,0 +1,78 @@ +diff -urNad vdr-plugin-epgsearch-0.9.24~/epgsearchsvdrp.c vdr-plugin-epgsearch-0.9.24/epgsearchsvdrp.c +--- vdr-plugin-epgsearch-0.9.24~/epgsearchsvdrp.c 2008-04-13 20:53:44.000000000 +0200 ++++ vdr-plugin-epgsearch-0.9.24/epgsearchsvdrp.c 2009-10-26 20:27:07.000000000 +0100 +@@ -742,12 +742,13 @@ + { + if (*Option) + { +- char* pipePos = strchr(Option, '|'); ++ const char* pipePos = strchr(Option, '|'); + if (pipePos) + { +- *pipePos = 0; +- const char* oldName = Option; +- const char* newName = pipePos+1; ++ int index = pipePos - Option; ++ char* oldName = strdup(Option); ++ *(oldName + index) = 0; ++ const char* newName = oldName + index + 1; + if (strlen(oldName) > 0 && strlen(newName) > 0) + { + cChannelGroup *changrp = ChannelGroups.GetGroupByName(Option); +@@ -769,15 +770,18 @@ + } + ChannelGroups.Save(); + SearchExts.Save(); ++ free(oldName); + return cString::sprintf("renamed channel group '%s' to '%s'", oldName, newName); + + } + else + { ++ free(oldName); + ReplyCode = 901; + return cString::sprintf("channel group '%s' not defined", Option); + } + } ++ free(oldName); + } + ReplyCode = 901; + return cString("Error in channel group parameters"); +diff -urNad vdr-plugin-epgsearch-0.9.24~/epgsearchtools.c vdr-plugin-epgsearch-0.9.24/epgsearchtools.c +--- vdr-plugin-epgsearch-0.9.24~/epgsearchtools.c 2008-04-13 20:53:42.000000000 +0200 ++++ vdr-plugin-epgsearch-0.9.24/epgsearchtools.c 2009-10-26 20:27:07.000000000 +0100 +@@ -743,7 +743,7 @@ + while(tmp) + { + // extract a single line +- char* lf = strchr(tmp, '\n'); ++ const char* lf = strchr(tmp, '\n'); + char* line = NULL; + if (lf) + line = strndup(tmp, lf-tmp); +diff -urNad vdr-plugin-epgsearch-0.9.24~/menu_dirselect.c vdr-plugin-epgsearch-0.9.24/menu_dirselect.c +--- vdr-plugin-epgsearch-0.9.24~/menu_dirselect.c 2008-04-13 20:53:44.000000000 +0200 ++++ vdr-plugin-epgsearch-0.9.24/menu_dirselect.c 2009-10-26 20:27:07.000000000 +0100 +@@ -83,7 +83,7 @@ + return 1; + do + { +- char* pos = strchr(szDir, '~'); ++ const char* pos = strchr(szDir, '~'); + if (pos) + { + iLevel++; +diff -urNad vdr-plugin-epgsearch-0.9.24~/searchtimer_thread.c vdr-plugin-epgsearch-0.9.24/searchtimer_thread.c +--- vdr-plugin-epgsearch-0.9.24~/searchtimer_thread.c 2008-04-28 18:22:31.000000000 +0200 ++++ vdr-plugin-epgsearch-0.9.24/searchtimer_thread.c 2009-10-26 20:27:28.000000000 +0100 +@@ -565,8 +565,8 @@ + if (!isempty(aux)) + { + tmpaux = strdup(aux); +- char* begin = strstr(aux, "<epgsearch>"); +- char* end = strstr(aux, "</epgsearch>"); ++ const char* begin = strstr(aux, "<epgsearch>"); ++ const char* end = strstr(aux, "</epgsearch>"); + if (begin && end) + { + if (begin == aux) strcpy(tmpaux, ""); else strn0cpy(tmpaux, aux, begin-aux+1); diff --git a/src/patches/w_scan-ipfire.patch b/src/patches/w_scan-ipfire.patch deleted file mode 100644 index 69ad359..0000000 --- a/src/patches/w_scan-ipfire.patch +++ /dev/null @@ -1,130 +0,0 @@ -diff -Naur w_scan_start.sh w_scan_start.sh ---- w_scan_start.sh 2008-01-05 19:58:44.000000000 +0100 -+++ w_scan_start.sh 2008-05-14 18:29:21.000000000 +0200 -@@ -6,11 +6,11 @@ - # - 20060812: first version - # - 20060822: many improvements - # cu@vdr-portal --# -+# - 20080514: patches for ipfire by arne_f@ipfire.org - ####################################################### - - umask 022 --export PATH="$(pwd):/bin:/usr/bin:/sbin:/usr/sbin" -+export PATH="$(pwd):/bin:/usr/bin:/sbin:/usr/sbin:/opt/vdr/bin" - DATE="$(date +%Y)$(date +%m)$(date +%d)" # $DATE == "YYYYMMDD", i.e. 20060710 - W_SCAN=$(which w_scan 2>/dev/null) - UDEVSTART=$(which udevstart) -@@ -224,7 +224,7 @@ - echo "Checking for ct-vdr style startscript.." - if [ -e /etc/init.d/vdr ]; then # c't-vdr - echo_yes -- $(/etc/init.d/vdr stop) -+ /etc/init.d/vdr stop - stopped=true - else - echo_no -@@ -375,7 +375,7 @@ - - # which generic dvb modules should be always loaded? - MODULES_TO_LOAD="videodev v4l1_compat \ -- v4l2_common video_buf dvb_core ves1820 \ -+ v4l2_common dvb_core ves1820 \ - dvb_ttpci \ - budget_ci budget_av budget_ci budget " - -@@ -661,9 +661,11 @@ - echo -e -n $NORMAL - echo -e -n "\033[1;34m" - if [ ${WHAT_TO_SCAN:0:2} != 0 ]; then -+ echo ":->W_SCAN $DATE DVB-T" >> channels.conf-$DATE - $W_SCAN >> channels.conf-$DATE - fi -- if [ ${WHAT_TO_SCAN:3:2} != 0 ]; then -+ if [ ${WHAT_TO_SCAN:3:2} != 0 ]; then -+ echo ":->W_SCAN $DATE DVB-C" >> channels.conf-$DATE - $W_SCAN -fc >> channels.conf-$DATE - fi - echo -e -n $NORMAL -@@ -671,55 +673,34 @@ - - function CopyConf () - { -- if [ -s channels.conf-$DATE ]; then -- clear -- echo -e -n $SUCCESS -- echo "****************************************************************" -- echo "* *" -- echo "* w_scan is done. *" -- echo -e "* The output file is called "$FAILURE"channels.conf-$DATE"$SUCCESS". *" -- echo "* Should I copy this to default location for you? [y/n] *" -- echo "* *" -- echo "****************************************************************" -- echo -e -n $NORMAL && tput sgr0 -- read RESPONSE -- echo -e -n $NORMAL -- if [ "$RESPONSE" != "y" ]; then -- echo "Copying channels.conf skipped - okay." -- echo "The channels.conf generated can be found at" -- echo -n -e "\033[1;34m" -- echo "$(pwd)/channels.conf-$DATE" -- echo "" -- echo -e -n $NORMAL -- else -- if [ -d /etc/vdr ]; then -- mv /etc/vdr/channels.conf /etc/vdr/channels.conf-backup$DATE -- cp channels.conf-$DATE /etc/vdr/channels.conf -- fi -- if [ -d /var/lib/vdr ]; then -- mv /var/lib/vdr/channels.conf /var/lib/vdr/channels.conf-backup$DATE -- cp channels.conf-$DATE /var/lib/vdr/channels.conf -- fi -- fi -- else -- clear -- echo -e -n $FAILURE -- echo "****************************************************************" -- echo "* *" -- echo "* Something went wrong. The channels.conf generated is *EMPTY*!*" -- echo "* To analyze your problem I recommend the command *" -- echo "* './w_scan 2>&1 | tee w_scan.log-dvbt && *" -- echo "* ./w_scan -fc 2>&1 | tee w_scan.log-dvbc' *" -- echo "* *" -- echo "* w_scan will report the problem into the logfiles *" -- echo "* w_scan.log-dvbt and w_scan.log-dvbc. *" -- echo "* *" -- echo "* PRESS ANY KEY TO CONTINUE *" -- echo "****************************************************************" -+ echo -e -n $SUCCESS -+ echo "****************************************************************" -+ echo "* *" -+ echo "* w_scan is done. *" -+ echo -e "* The output file is called "$FAILURE"channels.conf-$DATE"$SUCCESS". *" -+ echo "* Should I copy this to default location for you? [y/n] *" -+ echo "* *" -+ echo "****************************************************************" -+ echo -e -n $NORMAL && tput sgr0 -+ read RESPONSE -+ echo -e -n $NORMAL -+ if [ "$RESPONSE" != "y" ]; then -+ echo "Copying channels.conf skipped - okay." -+ echo "The channels.conf generated can be found at" -+ echo -n -e "\033[1;34m" -+ echo "$(pwd)/channels.conf-$DATE" -+ echo "" - echo -e -n $NORMAL -- read -+ else -+ if [ -d /opt/vdr/etc ]; then -+ mv /opt/vdr/etc/channels.conf /opt/vdr/etc/channels.conf-backup$DATE -+ cp channels.conf-$DATE /opt/vdr/etc/channels.conf -+ fi -+ if [ -d /var/lib/vdr ]; then -+ mv /var/lib/vdr/channels.conf /var/lib/vdr/channels.conf-backup$DATE -+ cp channels.conf-$DATE /var/lib/vdr/channels.conf -+ fi - fi -- - } - - # the program itself. diff --git a/src/scripts/makegraphs b/src/scripts/makegraphs index 7cdd2f9..0b56b93 100644 --- a/src/scripts/makegraphs +++ b/src/scripts/makegraphs @@ -3,7 +3,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2008-2011 IPFire Team info@ipfire.org # +# Copyright (C) 2008-2013 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -102,7 +102,7 @@ sub updatehdddata{ ## Update vnstat system ('/usr/bin/vnstat -u');
-my @disks = `ls -1 /sys/block | grep -E '^sd|^xvd|^vd|^md' | sort | uniq`; +my @disks = `ls -1 /sys/block | grep -E '^sd|^mmcblk|^xvd|^vd|^md' | sort | uniq`; system("unlink /var/run/hddstatus 2>/dev/null && touch /var/run/hddstatus"); foreach (@disks){ my $disk = $_; diff --git a/src/scripts/ovpn-ccd-convert b/src/scripts/ovpn-ccd-convert index ac76435..7aa8cf1 100644 --- a/src/scripts/ovpn-ccd-convert +++ b/src/scripts/ovpn-ccd-convert @@ -31,6 +31,7 @@ open(FILE,"/var/ipfire/ovpn/server.conf"); &General::readhasharray("/var/ipfire/ovpn/ovpnconfig", %ovpnconfig); foreach my $key (keys %ovpnconfig){ if($ovpnconfig{$key}[32] eq '' && $ovpnconfig{$key}[3] eq 'host'){ + $ovpnconfig{$key}[2] =~ s/ /_/gi; open ( CCDRWCONF,'>',"/var/ipfire/ovpn/ccd/$ovpnconfig{$key}[2]") or die "Unable to create clientconfigfile $!"; print CCDRWCONF "# OpenVPN Clientconfig from CCD extension by Copymaster#\n\n"; print CCDRWCONF "#This client uses the dynamic pool\n\n"; diff --git a/src/scripts/readhash b/src/scripts/readhash index 8c187d5..cc063a7 100644 --- a/src/scripts/readhash +++ b/src/scripts/readhash @@ -9,7 +9,7 @@
# shell variables must consist of alphanumeric characters and underscores, # and begin with an alphabetic character or underscore. -VARNAME='[A-Za-z_][A-zA-z0-9_]*' +VARNAME='[A-Za-z_][A-Za-z0-9_]*'
# For the assigned value we only accept a limited number of characters - none # of which are shell metachars diff --git a/src/scripts/scanhd b/src/scripts/scanhd index f46a630..b208bbb 100644 --- a/src/scripts/scanhd +++ b/src/scripts/scanhd @@ -11,7 +11,7 @@ case "$1" in done ;; partitions) - cat /proc/partitions | awk '{print $4 " " $3 }' | grep -v name | grep -v "^[:space:]*$" | \ + cat /proc/partitions | awk '{print $4 " " $3 }' | grep -v name | grep -v "^[[:space:]]*$" | \ while read device size; do [ -z "${device}" ] && continue echo "${device};${size};$(blkid -c /dev/null -s UUID -o value /dev/${device});" diff --git a/src/scripts/vpn-watch b/src/scripts/vpn-watch deleted file mode 100755 index 7eae873..0000000 --- a/src/scripts/vpn-watch +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/perl -################################################## -##### VPN-Watch.pl Version 0.7 ##### -################################################## -# # -# VPN-Watch is part of the IPFire Firewall # -# # -################################################## - -use strict; - -require '/var/ipfire/general-functions.pl'; -my @vpnsettings; -my $i = 0; -my $file = "/var/run/vpn-watch.pid"; -my $debug = 0; - -if ( -e $file ){ - logger("There my be another vpn-watch runnning because $file exists, vpn-watch will try kill the process."); - open(FILE, "<$file"); - my $PID = <FILE>; - close(FILE); - system("kill -9 $PID"); - } - -system("echo $$ > $file"); -my $round=0; -while ( $i == 0){ - if ($debug){logger("We will wait 60 seconds before next action.");} - sleep(60); - - $round++; - - # Reset roundcounter after 10 min. To do established check. - if ($round > 9) { $round=0; } - - if (open(FILE, "<${General::swroot}/vpn/config")) { @vpnsettings = <FILE>; - close(FILE); - unless(@vpnsettings) {exit 1;} - } - -my $status = `ipsec status`; -foreach (@vpnsettings){ - my @settings = split(/,/,$_); - - chomp($settings[30]); - if ($settings[27] ne 'RED'){next;} - if ($settings[4] ne 'net'){next;} - if ($settings[1] ne 'on'){next;}chomp($settings[29]); - if ($settings[29] ne 'on'){next;} - - my $remotehostname = $settings[11]; - - if ($debug){logger("Checking connection to $remotehostname.");} - - my $remoteip = `/usr/bin/ping -c 1 $remotehostname 2>/dev/null | head -n1 | awk '{print $3}' | tr -d '()' | tr -d ':'`;chomp($remoteip); - if ($remoteip eq ""){next;if ($debug){logger("Unable to resolve $remotehostname.");}} - my $ipmatch= `echo "$status" | grep '$remoteip' | grep '$settings[2]'`; - my $established= `echo "$status" | grep '$settings[2]' | grep -e 'erouted;' -e 'INSTALLED'`; - my $known= `echo "$status" | grep '$settings[2]'`; - - if ( $ipmatch eq '' && $known ne '' ){ - logger("Remote IP for host $remotehostname($remoteip) has changed, restarting ipsec."); - system("/usr/local/bin/ipsecctrl S $settings[0]"); - $round=0; - } - - if ($debug){logger("Round=".$round." and established=".$established);} - - if ( ($round == 0) && ($established eq '')) { - logger("Connection to $remotehostname($remoteip) not erouted, restarting ipsec."); - system("/usr/local/bin/ipsecctrl S $settings[0]"); - $round=0; - - } - } - if ($debug){logger("All connections may be fine nothing was done.");} -} - -sub logger { - my $log = shift; - system("logger -t vpnwatch "$log""); -} diff --git a/src/stripper b/src/stripper new file mode 100755 index 0000000..2b4feaf --- /dev/null +++ b/src/stripper @@ -0,0 +1,57 @@ +#!/tools/bin/bash + +dirs="" +excludes="/dev /proc /sys /run" + +while [ $# -gt 0 ]; do + case "${1}" in + --exclude=*) + excludes="${excludes} ${1#*=}" + ;; + *) + dirs="${dirs} ${1}" + ;; + esac + shift +done + +function _strip() { + local file=${1} + local cmd="${STRIP-strip}" + + local exclude l + for exclude in ${excludes}; do + l=${#exclude} + if [ "${file:0:${l}}" = "${exclude}" ]; then + return 0 + fi + done + + case "$(file -bi ${file})" in + application/x-sharedlib*|application/x-archive*) + cmd="${cmd} --strip-debug --remove-section=.comment --remove-section=.note" + ;; + *) + cmd="${cmd} --strip-unneeded" + ;; + esac + + echo "Stripping ${file}..." + ${cmd} ${file} +} + +for dir in ${dirs}; do + # Strip shared objects. + find ${dir} -type f ( -perm -0100 -or -perm -0010 -or -perm -0001 ) \ + | file -N -f - | sed -n -e 's/^(.*):[ ]*.*ELF.*, not stripped/\1/p' | + while read file; do + _strip ${file} + done + + # Strip static archives. + find ${dir} -name *.a -a -exec file {} ; \ + | grep 'current ar archive' | sed -n -e 's/^(.*):[ ]*current ar archive/\1/p' | + while read file; do + _strip ${file} + done +done diff --git a/tools/make-functions b/tools/make-functions index 783b46e..16352b4 100644 --- a/tools/make-functions +++ b/tools/make-functions @@ -220,15 +220,17 @@ get_pkg_ver() if [ 'x86_64' = $MACHINE -o 'i686' = $MACHINE -o 'i586' = $MACHINE ]; then echo "`date -u '+%b %e %T'`: Machine is iX86 (or equivalent)" >> $LOGFILE MACHINE=i586 + CROSSTARGET=${MACHINE}-cross-linux-gnu BUILDTARGET=i586-pc-linux-gnu CFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer" CXXFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer" C2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer" CXX2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer" -elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE -o 'armv7l' = $MACHINE ]; then +elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE -o 'armv6l' = $MACHINE -o 'armv7l' = $MACHINE ]; then echo "`date -u '+%b %e %T'`: Machine is ARM (or equivalent)" >> $LOGFILE MACHINE=armv5tel MACHINE_TYPE=arm + CROSSTARGET=${MACHINE}-cross-linux-gnueabi BUILDTARGET=${MACHINE}-unknown-linux-gnueabi CFLAGS="-O2 -march=armv5te -mfloat-abi=soft -fomit-frame-pointer -pipe" CXXFLAGS="$CFLAGS" @@ -291,16 +293,17 @@ entershell() { fi
echo "Entering to a shell inside LFS chroot, go out with exit" - $linux32 chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w$ ' \ - PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ + chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w$ ' \ + PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ VERSION=$VERSION CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$CF2LAGS" CXXFLAGS="$CXX2FLAGS" \ CCACHE_DIR=/usr/src/ccache \ CCACHE_COMPRESS=1 \ - CCACHE_HASHDIR=1 \ + CCACHE_COMPILERCHECK="none" \ KVER=$KVER \ BUILDTARGET="$BUILDTARGET" \ + CROSSTARGET="${CROSSTARGET}" \ MACHINE="$MACHINE" \ MACHINE_TYPE="$MACHINE_TYPE" \ KGCC="ccache /usr/bin/gcc" \ @@ -382,13 +385,13 @@ lfsmake1() { local PKG_TIME_START=`date +%s`
cd $BASEDIR/lfs && make -f $* BUILDTARGET=$BUILDTARGET \ + CROSSTARGET="${CROSSTARGET}" \ MACHINE=$MACHINE \ MACHINE_TYPE=$MACHINE_TYPE \ LFS_BASEDIR=$BASEDIR \ ROOT=$LFS \ KVER=$KVER \ MAKETUNING=$MAKETUNING \ - $(fake_environ) \ install >> $LOGFILE 2>&1 local COMPILE_SUCCESS=$? local PKG_TIME_END=`date +%s` @@ -408,16 +411,19 @@ lfsmake2() { [ $? == 1 ] && return 0
local PKG_TIME_START=`date +%s` - $linux32 chroot $LFS /tools/bin/env -i HOME=/root \ + chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w$ ' \ - PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ + PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ VERSION=$VERSION \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ - CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ + CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \ + CCACHE_COMPILERCHECK="none" \ KVER=$KVER MAKETUNING=$MAKETUNING \ - BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ + BUILDTARGET="$BUILDTARGET" \ + CROSSTARGET="${CROSSTARGET}" \ + MACHINE="$MACHINE" \ MACHINE_TYPE="$MACHINE_TYPE" \ $(fake_environ) \ /tools/bin/bash -x -c "cd /usr/src/lfs && \ @@ -440,17 +446,20 @@ ipfiremake() { [ $? == 1 ] && return 0
local PKG_TIME_START=`date +%s` - $linux32 chroot $LFS /tools/bin/env -i HOME=/root \ + chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w$ ' \ - PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \ + PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \ VERSION=$VERSION \ CORE=$CORE \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ - CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ + CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \ + CCACHE_COMPILERCHECK="none" \ KVER=$KVER MAKETUNING=$MAKETUNING \ - BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ + BUILDTARGET="$BUILDTARGET" \ + CROSSTARGET="${CROSSTARGET}" \ + MACHINE="$MACHINE" \ MACHINE_TYPE="$MACHINE_TYPE" \ $(fake_environ) \ /bin/bash -x -c "cd /usr/src/lfs && \ @@ -475,14 +484,17 @@ ipfiredist() { local PKG_TIME_START=`date +%s` chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w$ ' \ - PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \ + PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \ VERSION=$VERSION \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ - CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ + CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \ + CCACHE_COMPILERCHECK="none" \ KVER=$KVER \ - BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ + BUILDTARGET="$BUILDTARGET" \ + CROSSTARGET="${CROSSTARGET}" \ + MACHINE="$MACHINE" \ MACHINE_TYPE="$MACHINE_TYPE" \ $(fake_environ) \ /bin/bash -x -c "cd /usr/src/lfs && \ @@ -505,20 +517,22 @@ installmake() { [ $? == 1 ] && return 0
local PKG_TIME_START=`date +%s` - $linux32 chroot $LFS /tools/bin/env -i HOME=/root \ + chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w$ ' \ - PATH=/opt/i586-uClibc/i586-linux-uclibc/bin:/opt/i586-uClibc/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \ + PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \ VERSION=$VERSION \ CONFIG_ROOT=$CONFIG_ROOT \ - LFS_PASS="install" \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="-Os" CXXFLAGS="-Os" \ CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ KVER=$KVER \ - BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ + BUILDTARGET="$BUILDTARGET" \ + CROSSTARGET="${CROSSTARGET}" \ + MACHINE="$MACHINE" \ MACHINE_TYPE="$MACHINE_TYPE" \ - /bin/bash -x -c "cd /usr/src/lfs && \ - make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1 + LD_LIBRARY_PATH=/tools/lib \ + /tools/bin/bash -x -c "cd /usr/src/lfs && \ + /tools/bin/make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
local COMPILE_SUCCESS=$? local PKG_TIME_END=`date +%s` @@ -541,12 +555,14 @@ update_langs() { $BASEDIR/tools/sort_strings.pl es $BASEDIR/tools/sort_strings.pl pl $BASEDIR/tools/sort_strings.pl ru + $BASEDIR/tools/sort_strings.pl nl $BASEDIR/tools/check_strings.pl en > $BASEDIR/doc/language_issues.en $BASEDIR/tools/check_strings.pl de > $BASEDIR/doc/language_issues.de $BASEDIR/tools/check_strings.pl fr > $BASEDIR/doc/language_issues.fr $BASEDIR/tools/check_strings.pl es > $BASEDIR/doc/language_issues.es $BASEDIR/tools/check_strings.pl es > $BASEDIR/doc/language_issues.pl $BASEDIR/tools/check_strings.pl ru > $BASEDIR/doc/language_issues.ru + $BASEDIR/tools/check_strings.pl nl > $BASEDIR/doc/language_issues.nl $BASEDIR/tools/check_langs.sh > $BASEDIR/doc/language_missings beautify message DONE }
hooks/post-receive -- IPFire 2.x development tree